BITS N BYTES

Produced/Consumed Tag Communications Active

11 posts in this topic

I have shared tags between two CompactLogix 5370 PLC's using produced/consumed method.

I need to confirm whether communications between each PLC is working.

Is there a built-in PLC tag available that monitors communications status or must I add an ACK/NACK heartbeat tag in the produced/consumed data.

Edited by BITS N BYTES

Share this post


Link to post
Share on other sites

In the past I have used the GSV instruction. Make the Module Object of the GSV one of your PLC's. Use the EntryStatus Attribute to see the state of the PLC. The Instruction Help for the GSV instruction has more info.

So you will have one GSV in the PLC1 logic what checks the status of PLC2, and another GSV in the PLC2 logic that checks the status of PLC1.

Share this post


Link to post
Share on other sites

Thanks for the suggestion. I'll give it a try when I'm back online next week.

Looks like I should be monitoring if the EntryStatus value in the connected PLC = 16#4000.

• 16#4000. Running. All connections to the module are established and data is transferring.

Hope I'm on the right track!!

Share this post


Link to post
Share on other sites

You are on the right track. The Studio 5000 help file has a list of the status values.

Before I investigated the GSV instruction, and when communicating between machines where produce/consume isn't possible, I use a heartbeat flasher. Have each machine blink a flag that the other has access to read. If it stays in one state too long, you have lost communications.

Share this post


Link to post
Share on other sites
Quote

Is there a built-in PLC tag available that monitors communications status

There is an option when you create a Consumed Tag to add a status header that gives you the status of the Producing controller.   The option was added in RSLogix 5000 v17, so it's definitely present for a CompactLogix 5370 series controller.

You have to make your P/C tags into UDTs with the first element being of data type Connection_Status.

https://rockwellautomation.custhelp.com/app/answers/detail/a_id/60813

 

Share this post


Link to post
Share on other sites
31 minutes ago, Ken Roach said:

There is an option when you create a Consumed Tag to add a status header that gives you the status of the Producing controller.   The option was added in RSLogix 5000 v17, so it's definitely present for a CompactLogix 5370 series controller.

You have to make your P/C tags into UDTs with the first element being of data type Connection_Status.

https://rockwellautomation.custhelp.com/app/answers/detail/a_id/60813

 

Thanks Ken but I cannot access 60813 because it is only available with a Tech Connect subscription.

 

Share this post


Link to post
Share on other sites

OK I reviewed the Ptoduced/Consumed manual so will set Connection Status Included for the tags [see picture], also found this on the Rockwell CustHelp site.

Produced/Consumed Tag Structures Status – With version 17 of RSLogix 5000 software, status information can be included with produced and consumed tags. In order to take advantage of this enhancement, the Produced/Consumed tag will need to be a User Defined Type (UDT) with the first member being of data type CONNECTION_STATUS.

Note:  RSNetWorx for ControlNet software, version 9.00.00 or later is required when scheduling a ControlNet network that has Produced/Consumed tags with status.

If RSLogix 5000 version 16 or lower is being used, this exact method is not possible.  Several options would include using the GSV with the CONTROLLERDEVICE object, Status Attribute, or use the MODULE Object with the EntryStatus Attribute.

So AndrewG's method will work, but I am using V30 and would like to implement the UDT approach. What is not clear is how the UDT is structured.

If I understand correctly the UDT requires just a single member of type CONNECTION_STATUS.

Can anyone confirm if this is the correct approach?

Again many thanks to all for feedback.

Connection Status.JPG

Share this post


Link to post
Share on other sites

AHA!! Looks like Mr. Ken answered this already!!

 

Share this post


Link to post
Share on other sites
Quote

If I understand correctly the UDT requires just a single member of type CONNECTION_STATUS.

The UDT will contain all of the data that you are Producing/Consuming.    The first element of the UDT has to be a member with the type CONNECTION_STATUS.     I would also keep it simple and make the tag name also "Connection_Status".

 

Connection_Status_UDT.PNG

Share this post


Link to post
Share on other sites

Thanks Ken,

some of the tags in the producing PLC are AOI's.

I don't currently have access to the test whether AOI's be included as a member of a UDT and successfully passed to the consuming PLC.

Any suggestions/feedback most welcome!

Share this post


Link to post
Share on other sites

In general, a tag that will be Produced/Consumed must be a Controller-scope tag.    Tags that are in a Program-scope database or are instantiated inside an AOI cannot be Produced or Consumed.

I would be skeptical of the need to directly reference anything involved in an AOI instance in a Produced data assembly.    Set up a mapping or data handling routine and use tags that are dedicated to inter-system communication.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now