AB6674 Ethernet/IP Forward Open Connection Failure

Hi, we are trying to integrate the AB6674 Ethernet/IP Anybus CompactCom B40 to an existing codebase. We already have a working example with AB6777 - B40 Modbus TCP Brick. While sending an Explicit Message to the module I get the expected response, but Implicit Messaging keeps on giving connection errors. Implicit messaging is using Forward Open requests and I assume that’s what is failing.

Based on the ABCC_EthernetIP_Guide (page 179)
*

Set_Configuration_Data command must be implemented in order to support Configuration Data. If not implemented, “Forward_Open” requests will be rejected.

Do you have an example of how to implement this command on the anybus driver/config files? I have made sure that EIP_IA_CONFIG_INSTANCE_ENABLE is set to TRUE. Can you guide me as to which files/configurations would need to be touched in-order to properly configure the Forward_Open connection requests?

Attached Forward Open Connection Error using Wireshark.

forward_open_wireshark.txt (1.8 KB)

Hi @pdesai,

What exactly are you looking to accomplish? What is the explicit message that you are sending what data are you trying to read? Are you trying to access an object directly on the host?

If you are looking to read and write process data you might just be looking to read the produce/consume instances.


You should be able to use the get attribute single (0x0E) and Set Attribute Single (0x10) services to read and write these attributes
Service: 0x0E/0x10
Class obj. 0x04
instance 0x64/0x96
attribute 1

Hi @deryck_hms,

As per my understanding, Explicit messaging communicates using TCP/IP, which has greater overhead but is a more secure method of message delivery. Explicit messaging can be performed in two ways: Connected and Unconnected. This capability allows dynamic changes to the message request (the function, the type of data, the size of data, etc…) where Implicit does not. This should be considered for more non-time critical communications like configuration and setting parameters.

Implicit messaging communicates using UDP, which is a faster transport protocol, but there are no built-in verification methods. Implicit messaging is performed as a “Connected” message only, so each end is pre-configured and knows implicitly what to expect without all of the additional packet baggage. To change the data being requested with the Implicit method requires a costly teardown of the connection and a re-connection. But once the Implicit messaging is up and running, it is faster because it sends data bi-directionally and has less overhead versus Explicit Messaging.

I am able to request/respond Explicit message using the Get/Set Attribute Single (0x0E/0x10) Service See attached Wireshark screenshots.

The problem I am having is while making an Implicit Message request, which ends up being a connection failure as highlighted in the original post.

Also, another point to note is that Anybus Statemachine State stays in WAIT_PROCESS while I send/receive the Explicit Message to Assembly Object 0x04, Instance 0x64/0x96. Class 1 Implicit message connection will make it transition to PROCESS_ACTIVE.

I think you issue is with the service you are using.

What class and instance are you connecting to? What Master/software are you using to setup the connection?

Deryck

I am using EtherNet/IP Explorer to setup the connection.
I am connecting to Assembly Class (0x04), Instance - Producing (0x64), Attribute #3

Hi @pdesai,

Thanks i gave that software a try was able to recreate the same error when I was only making a connection to the configuration object. I then configured it as I would expect it to work using instances 100 and 150. This got me a little further but I was seeing a connection failure with the O->T connection was not valid. This looks like it might be a limitation of the software. I would like to see the connection with a fixed size in the software but I could not find a way to set this.

Deryck

Hi @deryck_hms, thanks for giving this a shot on your end. I am getting the same error when I try to send an Implicit Message using this software.

Do you happen to know of any open-source EtherNet/IP scanner software for windows/linux that can help us in debugging this issue?

The only other one similar software I can think of is the Molex EIP tool but it looks like it doent support implicit messages. I typically recommend EIPscan when working with our Compactcoms.

Deryck

Hi @deryck_hms

I gave the following tool a shot and got some interesting results:

When I try to send a connected Class 3 request to Message Router Object I get the connection failure message as follows:
Status: Connection failure, Extended: Transport class not supported

Attached Wireshark capture:
connection_failure_log.pcapng (1.2 MB)

I am just trying to figure out here I am missing any configuration on my end for the host application.

Hi @pdesai,

What assemblies is this configured for? I don’t see them in the screen shot. I also don’t see any CIP messages in the capture.

Deryck

Hi @deryck_hms, sorry for the incorrect capture and for getting back to you so late. I re-attached the log, which shows two requests:

  1. Connecting to Message Router (0x02), Instance (0x01) and Assembly (0x04), Instance (0x64), Attribute (0x03)
  2. Connecting just to Message Router (0x02), Instance (0x01)

connection_failure_log.pcapng (1.1 KB)

Hi, It took me me a bit to find time to look into this more but I was able to get a connection. Here are a few screen shots of the setup.
image

I should mention I am not sure why I don’t see received data and still need to look into this.

Deryck

Hi @deryck_hms, thanks for getting back on this one. I was also able to establish the Forward Open connection successfully over the last week. My connection path had an error where I was using Attribut ID instead of Connection Point. However, I am still struggling to figure out few of the requirements of assembly object, i.e. using Heartbeat Instances.

  • Assembly (0x04), Instance (03) - Heartbeat, Input-Only
    I believe this instance allows clients (PLCs) to monitor input data without providing output data.

  • Assembly (0x04), Instance (04) - Heartbeat, Listen-Only
    Allows output data without providing input data

Should the connection path for those instances differ from how the prod/consuming instances are setup? I am error where it says “Inconsistent Application Path Combination” I have tried changing the IO size to what worked before with no success.

My issue for receive data ended up being the firewall. once I allowed the app in the firewall it was able to see the T>O received data.

For Connection to Producing/Consuming Instances I was able to get the received data and verify the data sent over the network

Still have issues with the Heartbeat Instances!

I am not too familiar with the heartbeat instances and don’t see them used often. What is your use case with them?
The description for the instances indicates they would be used to monitor another listen only connection.
“This instance is used as heartbeat for listen-only connections. The data size of the Heartbeat instance in the Forward_Open-request should be 0 bytes, however other values are also permitted.”
I am not sure they can be used by themselves. I believe a they require a primary Scanner to setup a connection that the secondary then a second scanner will setup a listen only.

Deryck

I am just trying to follow the recommendation for Adapter class devices provided by ODVA.

Based on this note, the device should be able to handle one-way data. Attached the full pdf below from ODVA.

PUB00070_Recommended-Functionality-for-EIP-Devices-v10.pdf (409.6 KB)

Hello @pdesai,

We were able to use the heartbeats but another connection is required. Here is a note from the EIP spec.


In this example I had EIP scanner make the first connection the the ABCC then setup the Hilscher tool to make a second connection.

Deryck

Thanks, @deryck_hms for guiding me through this one. I opened two instances of the Hilscher tool and was able to open a Listen Only connection to Anybus CompactCom.

It’s unfortunate that HMS doesn’t provide a free development/troubleshooting tool with anybus modules and one needs to buy EIP scanner. Nevertheless, I am good for now with this Hilscher tool.

Thanks again for all your help!