Can I read/write tags via SendRRData instead of SendUnitData ?

gazroobari

Member
Join Date
Mar 2020
Location
Lancashire
Posts
13
Hi,

Based on other information on the web, my A-B driver currently initiates a session with an SLC or MicroLogix as follows:

Step 1 - Register Session
Step 2 - Forward Open (over CIP CM, encapsulated inside a SendRRData)
Step 3 - Can now send read/write tag requests as needed (over CIP PCCC, encapsulated inside a SendUnitData)

Please don't hesitate to correct me if I'm wrong, but this appears to be the typical way of doing things (although I've observed how RS/Linx works at a lower level than this to achieve high throughput when data monitoring).

At the moment, step 3 executes synchronously. In other words, max one request goes out and my driver can't do anything else whilst it waits for the response.

This obviously limits the use of networking bandwidth. I know I can make up payloads which request multiple reads at a time but, regardless, the approach I want to take is to do some request/response matching using a unique transaction id field. In this way, it seems to me I can transmit multiple async requests and not be worried about the order in which the responses arrive.

Reading the documentation, it seems that the "Sender Context" is almost purpose-made for this type of matching.

The "SendRRData" command certainly responds with the "Sender Context" that I send in the original request. That's great.

However the "SendUnitData" command doesn't do this; it always returns a Sender Context of zero.

And yet PCCC tag read/write requests are typically sent using "SendUnitData" - so the Sender Context field is useless ?

Can PCCC tag reads/writes be carried out with "SendRRData" and, if so, are there are any payload examples of how it's done ?

Thanks
 
Hello:

This post has not been answered in a few days, so I hope my late answer may still be helpful. The PCCC object (class ID 0x67) is a Rockwell vendor specific CIP object which through an object specific service (Execute_PCCC, 0x4B) allows, amongst other things, the read or write access of tags in a Rockwell processor. It also allows a number of system functionalities.

So basically, in order to use the Execute_PCCC command from say a Windows application, the Windows application has the role of CIP client, and as a CIP client it sends Execute_PCCC commands to the processor, and if the parameters in the command are correct, the Rockwell processor will send back the expected information.

Explicit messaging can be used in two ways:
1) Using connected messaging, in which case the client application has to do all the overhead of establishing and maintaining a CIP connection. This creates the problem of use of bandwidth which you refer to in your post.

2) The other way is by means of the UCMM or unconnected message manager. In this case the CIP client sends the explicit message request and the Rockwell processor sends the answer and no connection is established.

I would need to check the CIP specification to more specifically answer the inquiry on how to use the UCMM and whether "SendRRData" or "SendUnitData" is used, which although interesting and perhaps important for me to have clear in my mind so as to be able to answer on the fly (whihc I currently cannot), is nonetheless time consuming. But I can do further investigation on this matter if you respond to this post and show interest, so that my effort will actually benefit someone.

In the mean time I want to add some information about a company I know about which may interest you. The Execute_PCCC command is powerful but because of this requires a lot of effort to get to work properly. I just want to let you know a product that may help you. I have no idea how much it costs. The company is Real Time Automation and the product (AP PLC tag Client) allows "Read and Write to Allen-Bradley PLC Data Tables" and the company claims that the product is "easy-to-use no royalty ANSI C source code communication stack that does nothing other than read and write tags from the data table of a PLC."

https://www.rtautomation.com/product/abplc-tag-client-ethernet-ip-source-code/

I hope this information is useful and sorry for not posting earlier.
 

Similar Topics

How to read/write tags using class3 connection with omron Nx/Nj Plc? when i am seeing wireshark packets for my existing connection its shows as...
Replies
0
Views
704
Hi all. I set a tag to read only while creating a program in RSLX5000. Since then, all newly created tags have read-only as the default...
Replies
0
Views
1,452
  • Poll
So, I'm almost certain there is no great answer to this question, but I thought I would poll the masses for expert opinion... I'm running a...
Replies
23
Views
13,443
Hi plc.net I have Citect 7.2 connected to an Omron CJ1M etn 21 over Ethernet using OMFINS. Reading tags is not a problem, but writing to them is...
Replies
7
Views
7,553
Hello, I need some assistance in some programming. I have an application where I need to read/write to some AB RFID tags. The tags have 2k...
Replies
1
Views
2,626
Back
Top Bottom