You are not registered yet. Please click here to register!

plc storereviewsdownloads
This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc.
Try our online PLC Simulator- FREE.  Click here now to try it.

New Here? Please read this important info!!!

Go Back - Interactive Q & A > - Interactive Q & A > LIVE PLC Questions And Answers

Thread Tools Display Modes
Old July 30th, 2020, 12:14 PM   #1
United Kingdom

gazroobari is offline
Join Date: Mar 2020
Location: Lancashire
Posts: 7
Can I read/write tags via SendRRData instead of SendUnitData ?


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 ?

  Reply With Quote
Old July 31st, 2020, 08:46 PM   #2
Lifetime Supporting Member

AlfredoQuintero is offline
Join Date: Feb 2015
Location: Yokohama
Posts: 213

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."

I hope this information is useful and sorry for not posting earlier.
  Reply With Quote
Jump to Live PLC Question and Answer Forum


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Topics
Thread Thread Starter Forum Replies Last Post
RsLogix 5000 v19 Alias Tags wperriman LIVE PLC Questions And Answers 9 June 30th, 2016 03:00 PM
Citect Vs WinCC - Long Doug_Adam LIVE PLC Questions And Answers 22 October 3rd, 2014 01:56 PM
RSLogix 5000 v16 - RSViewStudio online tags, some missing. Jimbo72 LIVE PLC Questions And Answers 2 September 17th, 2013 07:55 AM
Contrologix 5000: Program Tags vs Controller Tags Mark Snodgrass LIVE PLC Questions And Answers 5 June 10th, 2013 01:25 PM
Generate HMI / SCADA tags from S7 project! nebula_1979 LIVE PLC Questions And Answers 1 November 18th, 2009 09:32 AM

All times are GMT -4. The time now is 07:14 PM.