Skip to content

[Bug]: Integration Issues with Rockwell ControlLogix PLC #2135

@korni128

Description

@korni128

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

  1. Does anyone know why the GetAttributesAll call may be failing with the ControlLogix PLC?
  2. Any ideas on potential workarounds or solutions would be greatly appreciated.

Thank you

Version

v0.12.0

Programming Languages

  • plc4c
  • plc4go
  • plc4j
  • plc4net
  • plc4py

Protocols

  • AB-Ethernet
  • ADS /AMS
  • BACnet/IP
  • C-Bus
  • CANopen
  • EtherNet/IP
  • Firmata
  • IEC-69870
  • KNXnet/IP
  • Modbus
  • OPC-UA
  • Profinet
  • S7
  • S7-light

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions