Logix MSG, how to tell if the other PLC is down

Below is the specification for instance attribute 8 (State) of Identity Object. By checking that the State has the operational bit set, one can be confident the data is valid, I believe.

ID_ObinstanceAttr8.png
 
Thank you, Alfredo: I figured that you would be the one with a CIP reference handy.

Here's what I was able to figure out with the CompactLogix that I was able to access from home this afternoon:

Class 0x01, Instance 0x01, Attribute 0x05 is an array of bits 00-15:

Remote RUN
Extended Device Status (04-07) = 0110
Extended Device Status 2 (12-15)= 0011

Remote PROG
Extended Device Status (04-07) = 0111
Extended Device Status 2 (12-15) = 0011

Remote TEST
Extended Device Status (04-07) = 0110
Extended Device Status 2 (12-15) = 1011

Major Recoverable Fault (invalid array index)
Extended Device Status (04-07) = 0101
Major Recoverable Fault (10) = 1
Extended Device Status 2 (12-15) = 0011
 
I feel silly for not figuring this out:

The ControlLogix GSV gives you access to a "Status" value for the ControllerDevice object, which is a 16-bit word.

Look it up in the Logix 5000 Help file under "GSV/SSV Objects" and I'm confident that those bit definitions will allow you to decode the run/fault/prog status of Class 0x01, Instance 0x01, Attribute 0x05.
 
Thanks Ken. I am working on a solution via this approach, because the requirement is, as said before, that there can be no changes to the hardware settings or program of the PLCs from which data needs to be polled. I will publish my finding here as this could be helpful for others. And thanks to you and so many others who have contributed to this post.
 
Ken, I am very sorry. I had to support a customer all day and I have just seen this post. I will look into it tomorrow. Thanks so much for your advice and concern.
 
It's interesting that the Molex/ODVA tool has the bitwise definitions for an I/O adapter. It makes sense since that's what they're mostly testing.

For the ControlLogix, the meaning of the 16-bit Class 0x01, Instance 0x01, Attribute 0x05 Identity Object "Status" word is well described in the Logix 5000 GSV/SSV Help file:

Status_Bits_Logix_0x05.PNG
 
This is one of those times when I sort of wish I still worked for RA Tech Support so I could write a good technote, the kind where the information is in the manuals but it's not easy to find or understand.

Oh well, that's what PLCTalk.net is for.

Here's an example of how you could use a MSG instruction reading the Status value from the remote ControlLogix or CompactLogix to verify that it is on the network and in RUN mode so you can (very probably) rely on the data payload delivered by other MSG instructions:

Get_0x05.PNG
 
This is one of those times when I sort of wish I still worked for RA Tech Support so I could write a good technote, the kind where the information is in the manuals but it's not easy to find or understand.

Oh well, that's what PLCTalk.net is for.

Here's an example of how you could use a MSG instruction reading the Status value from the remote ControlLogix or CompactLogix to verify that it is on the network and in RUN mode so you can (very probably) rely on the data payload delivered by other MSG instructions:


you still do sort of work for tech support.... just for a lot less :geek:


This is the way we tend to do system values to determine if something is faulted or not.

I needed to send Controller status to an Ignition faceplate (making an ignition version of the stratix 5700 faceplate). So I ended up using the GSV controllerdevice , Attribute name :Status. and sent it to a Controller_Status tag.

Then using controller_status.9 .10 and .11 to turn on a fault status bit, I can determine what fault status the controller is in without trying to send a whole word back and forth and then converting back into binary whatever number I happen to have at the time.

GSV.PNG
 
Now you're making me wonder why that works.

I assumed the drawback to using GSV to read the Identity Object is that it requires the controller to be executing the program, so it could not detect Major Fault or Program Mode conditions that halt the user program.

Do you put it into a Fault routine ?
 
Now you're making me wonder why that works.

I assumed the drawback to using GSV to read the Identity Object is that it requires the controller to be executing the program, so it could not detect Major Fault or Program Mode conditions that halt the user program.

Do you put it into a Fault routine ?

this is a test condition still for the controller itself. the more typical usage is using GSVs to check module status (for me).

then yes, when specific conditions aren't met then it will go to a fault routine.

I haven't gotten to the point of seeing whether or not it will hold the data in the controller for when it's faulted so that it's readable by an external software like ignition. so it may not work as I want it to right now. But the module status work fine any other day of the week.





One thing I wonder is if the @ predefined status could be used instead, since they read externally right?

GSV2.PNG ModGSV.PNG
 
Last edited:
RSLinx Classic and FactoryTalk Linx both have some useful pre-defined objects for each controller shortcut.

They aren't useful for Alfredo's application, but they also don't require decoding: they are presented as STRING tags, not bits or an integer value.

@Status and @Mode are the ones I use the most. I haven't dug into precisely which ControllerDevice or Identity attributes they represent.
 
Hello Ken, and also all others who have provided valuable input in this post. Today I was at my customer's workshop and I helped him develop his application based on post # 25 above. I hope this company will hire me in the future for other projects. I can't say enough how very grateful I am to all, and especially to Ken for this thoroughness, patience and very clear explanations. I hope this post can help others too.
 

Similar Topics

I'm using a SLC typed write from the ControlLogix5572 to the MicroLogix 1400, with path: 2, (MicroLogix IP). The ControlLogix equipment has a...
Replies
0
Views
99
hi , I need to sorry for my bad English first. I'm newbie at plc programming ,I had been asked about E/IP protocol information for some system...
Replies
3
Views
383
To sequence through multiple MSG instructions with a Studio 5k program what are some preferred methods?
Replies
6
Views
514
Does anyone know if is possible to read data out of a ProfaceHMI/PLC into a CompactLogix PLC? I have a bunch of OEM machines on our plant floor...
Replies
2
Views
492
Hey Guys Having some trouble again with message path, I thought I had these figured out but I've not been able to get this one working. I...
Replies
4
Views
588
Back
Top Bottom