What happened?
Description
We are currently working on integrating a Rockwell PLC using the PLC4J library with the Ethernet/IP Protocol. While our implementation successfully communicates with a Rockwell CompactLogix PLC, we are encountering issues when attempting to connect to a Rockwell ControlLogix PLC.
Observations
During our analysis with Wireshark, we observed the following:
- The initial
GetAttributesAll call to the ControlLogix PLC fails, returning the error: 'General Status: Service not supported (0x08).'
- In contrast, the same call works without issues on the CompactLogix PLC, where we receive responses with attributes for: 'Class: Message Router (0x0002)' and 'Class: Connection Manager (0x0006)'
Current Understanding
If the GetAttributesAll call fails, then the useConnectionManager and useMessageRouter boolean values are set to false in the EipProtocolLogic class. As a result, PLC4X is attempting to perform single requests.
Issues Identified
- Sending single requests sequentially is causing issues related to the PLC4X library.
- Sending single requests when
useMessageRouter and useConnectionManager are not active has also been problematic in the past in the PLC4X library, based on my understanding of the code. Therfore I would prefer the way via Message Router / Connection Manager.
Idea
- The
GetAttributeSingle method may serve as a potential workaround instead of using GetAttributesAll, in order to get the attributes 'Class: Message Router (0x0002)' and 'Class: Connection Manager (0x0006)' one after the other. However, if the Message Router and Connection Manager are not functioning correctly, implementing this workaround may not solve the issue and we have also not tried to use GetAttributeSingle (just seen it in some documentation).
Questions
- Does anyone know why the
GetAttributesAll call may be failing with the ControlLogix PLC?
- Any ideas on potential workarounds or solutions would be greatly appreciated.
Thank you
Version
v0.12.0
Programming Languages
Protocols
What happened?
Description
We are currently working on integrating a Rockwell PLC using the PLC4J library with the Ethernet/IP Protocol. While our implementation successfully communicates with a Rockwell CompactLogix PLC, we are encountering issues when attempting to connect to a Rockwell ControlLogix PLC.
Observations
During our analysis with Wireshark, we observed the following:
GetAttributesAllcall to the ControlLogix PLC fails, returning the error: 'General Status: Service not supported (0x08).'Current Understanding
If the
GetAttributesAllcall fails, then theuseConnectionManageranduseMessageRouterboolean values are set tofalsein theEipProtocolLogicclass. As a result, PLC4X is attempting to perform single requests.Issues Identified
useMessageRouteranduseConnectionManagerare not active has also been problematic in the past in the PLC4X library, based on my understanding of the code. Therfore I would prefer the way via Message Router / Connection Manager.Idea
GetAttributeSinglemethod may serve as a potential workaround instead of using GetAttributesAll, in order to get the attributes 'Class: Message Router (0x0002)' and 'Class: Connection Manager (0x0006)' one after the other. However, if the Message Router and Connection Manager are not functioning correctly, implementing this workaround may not solve the issue and we have also not tried to use GetAttributeSingle (just seen it in some documentation).Questions
GetAttributesAllcall may be failing with the ControlLogix PLC?Thank you
Version
v0.12.0
Programming Languages
Protocols