defcon.klaxon
Lifetime Supporting Member
Hi guys,
I'm having an issue with a comms failure issue but I can't figure out the root cause. I've narrowed down the issue a good bit, and I'm hoping someone with no experience with Control/CompactLogix PLCs might point me in the right direction.
I'm testing code, HMI connectivity, and radios here (basically a proof of concept) at my office. I have one ControlLogix PLC, and one CompactLogix PLC. The CompactLogix PLC is a remote site and the ControlLogix PLC is the local PLC that connects to the HMI. I'm using MSG instructions at the ControlLogix PLC to both send data to and receive data from the CompactLogix PLC.
I'm monitoring the connections at the ControlLogix PLC; there are several sites set up in the project (water wells), but I only have one CompactLogix PLC as a spare so I should have one good connection, and two bad. And this is true; I'm testing the connections with a GSV instruction getting EntryStatus from each site, then masking to isolate the one connection bit. The masked bit is 4 if the connection is good, 3 if it's attempting to connect, and 1 if it's failed. I am also using a GSV to get FaultCode.
Here's the weird thing: if I watch the EntryStatus data, I can see that the data is changing very quickly; the raw data (before masking) regularly indicates a lost and re-established connection, but it's so fast that the masked data never changes. Same with FaultCode; it's 0 most of the time but it'll very quickly flicker to 516, then back to 0. My MSG instructions get DN outputs, which is even more strange.
Originally I thought it was the radios, so I eliminated them from the system entirely, and plugged the PLCs both into my desk's switch. Comms issues persisted, so it's not a radio issue. I then thought maybe there was some odd reason why the switch might be the issue, so I plugged the CompactLogix straight into the ControlLogix, and monitored from my laptop to both PLC's USB ports to eliminate any other ethernet issues; comms issues STILL persist! When I change a value in either remote or local PLC, it takes MINUTES for the data to get to the other PLC, if it ever does. However, changing data in the HMI (before I went to no switch) instantly shows up on the local PLC, so the issue is definitely the comms between the PLCs.
At this point I have to imagine that there is a comms/scan/something setting somewhere that I'm not properly setting. When I first began this project I did a quick check of comms through these radios and it worked great, but I was only passing one piece of data at a time, and the rest of the code wasn't written. Now that I'm trying the code I'm going to deploy in a couple weeks, everything is now broken. I did come across a document that said a 516 code means that the connection timed out after 4xRPI, but two things are odd about that: first, the RPI setting seems to be greyed out every time I see it so I wouldn't even know how to adjust it, and that doesn't necessarily explain why the code flickers instead of being solid, like it's making connections sometimes, but not all the time.
Any thoughts on what I should look into for these comms between the two PLCs would be greatly appreciated, I'm not what else to look for since the issue seems to be quite transient, but consistent. Thanks a million.
I'm having an issue with a comms failure issue but I can't figure out the root cause. I've narrowed down the issue a good bit, and I'm hoping someone with no experience with Control/CompactLogix PLCs might point me in the right direction.
I'm testing code, HMI connectivity, and radios here (basically a proof of concept) at my office. I have one ControlLogix PLC, and one CompactLogix PLC. The CompactLogix PLC is a remote site and the ControlLogix PLC is the local PLC that connects to the HMI. I'm using MSG instructions at the ControlLogix PLC to both send data to and receive data from the CompactLogix PLC.
I'm monitoring the connections at the ControlLogix PLC; there are several sites set up in the project (water wells), but I only have one CompactLogix PLC as a spare so I should have one good connection, and two bad. And this is true; I'm testing the connections with a GSV instruction getting EntryStatus from each site, then masking to isolate the one connection bit. The masked bit is 4 if the connection is good, 3 if it's attempting to connect, and 1 if it's failed. I am also using a GSV to get FaultCode.
Here's the weird thing: if I watch the EntryStatus data, I can see that the data is changing very quickly; the raw data (before masking) regularly indicates a lost and re-established connection, but it's so fast that the masked data never changes. Same with FaultCode; it's 0 most of the time but it'll very quickly flicker to 516, then back to 0. My MSG instructions get DN outputs, which is even more strange.
Originally I thought it was the radios, so I eliminated them from the system entirely, and plugged the PLCs both into my desk's switch. Comms issues persisted, so it's not a radio issue. I then thought maybe there was some odd reason why the switch might be the issue, so I plugged the CompactLogix straight into the ControlLogix, and monitored from my laptop to both PLC's USB ports to eliminate any other ethernet issues; comms issues STILL persist! When I change a value in either remote or local PLC, it takes MINUTES for the data to get to the other PLC, if it ever does. However, changing data in the HMI (before I went to no switch) instantly shows up on the local PLC, so the issue is definitely the comms between the PLCs.
At this point I have to imagine that there is a comms/scan/something setting somewhere that I'm not properly setting. When I first began this project I did a quick check of comms through these radios and it worked great, but I was only passing one piece of data at a time, and the rest of the code wasn't written. Now that I'm trying the code I'm going to deploy in a couple weeks, everything is now broken. I did come across a document that said a 516 code means that the connection timed out after 4xRPI, but two things are odd about that: first, the RPI setting seems to be greyed out every time I see it so I wouldn't even know how to adjust it, and that doesn't necessarily explain why the code flickers instead of being solid, like it's making connections sometimes, but not all the time.
Any thoughts on what I should look into for these comms between the two PLCs would be greatly appreciated, I'm not what else to look for since the issue seems to be quite transient, but consistent. Thanks a million.
Last edited: