Anybus Communicator Modbus TCP (AB7072)

I am attempting to setup your device and realized it needs to be initially setup with a serial connection. The Ethernet ports are basically disabled out of the box.

Before going to far I want to make sure I am using the correct device to send ASCII serial commands to and from another device. I don’t see an option in the ACM to setup ASCII commands. Any help you can render would be greatly appreciated.

Hi,

If your communicating with a device using serial ASCII to a device using Modbus TCP then you are using the correct device. For ASCII you need to create the frame and this will depend on how your serial device sends out and receives information. There are some examples videos on this page on how this is done.
https://www.anybus.com/products/gateway-index/anybus-communicator/ascii-vendor-specific-(rs232-422-485)

Zach,

We are try to use Allen Bradley PLC to talk to the Anybus and from their speak to an ASCII only device. If I understood you correctly we have the wrong device. What would you recommend?

Zach,

I forgot to mention that the Allen Bradley PLC will be talking ethernet to the Anybus device.

This is the correct device for ASCII, but the communicator is not transparent ethernet to serial. Transactions will uses data written on the serial side of the communicator. The communicator does not look at the type of data and is sending the data as it is written to it. This means you will want to write the ascii data to it from the PLC. Section 13 of the Communicators manual will give you more details on transactions.

I was told we had the wrong device to do the ASCII by one of the product managers in a chat on your website. He mentioned we should use the EtherNet/IP to Serial Linking Device. So now I’m thoroughly confused….

Both of those devices will work for you. The EtherNet/IP to Serial Linking Device (hms-en2se-r) only works with Studio5000 and uses an add on profile in Studio5000 to configure it. The AB7072 communicator works with Studio5000 and other programs and uses the Anybus Configuration Manager program to configure it.

OK… Can you direct me to any more specific documentation you may have relating to setting up the MODBUS/TCP device to work with ASCII and a ControlLogix PLC? We have a HMS-EN2SE-R arriving today but if the other device will work I want to to have everything we need…

@rcarpenter68,

ASCII is a character encoding. The Anybus works with raw data, bits and bytes. There is nothing specific that you need to do to work with ASCII. It’s just an interpretation of the data. The anybus doesn’t care what the data represents because it’s just the gateway between the two devices communicating. The AB7072 and the HMS-EN2SE-R handle the serial communication identically. There is no difference except for the compatibility of the Add-On Profile in Studio 5000 on the Ethernet/IP side.

In either case you are going to set the Protocol Mode to either ‘Generic Data Mode’ (for simple Produce and Consume transactions) or ‘Master Mode’ (if you need to group the queries with their responses).

If you have the manual for the serial device and know what the commands are that you need to create, we can show you how to do a couple to get you started.

The user manuals as well as Application Notes and other documentation can be found on the product pages below:

AB7072

HMS-EN2SE-R

Pointing me in the right direction would be very helpful. I have not used your product or dealt with getting data from a serial port in 20 years. Attached is the appendix for the device of which we need to communicate. If you could give an example of writing too and reading from that would be awesome. The device in which we need to speak mentions a checksum and I’m not entirely sure how to do that with your device either.

Veeco Mark II HO Controller Appendix E.pdf (720 KB)

After reviewing the manual I think you are going to want to use Master Mode with Query/Response Transactions.

In the Query you have several options for the Data to use:

image

If you use the Constants, you set the values in the Anybus, they don’t come from the PLC. You can create static commands, and then trigger them with a trigger byte sent from the PLC. Let’s use ‘Read Version’ as an example from the Veeco manual:

The command format is:

image

so converting ASCII to hex we have:

[Cmd] [4-ch checksum] [CR]
52 56 [4-ch checksum] 0D

So we can create a Word Constant 0x5256, a Checksum (not exactly sure of the settings for this yet), and then a Byte Constant 0x0D:

image

And then create a trigger byte at 0x0000 that will send the command when written to:

If you add Data or variable Data (variable refers to length), this is essentially memory space that is mapped to the PLC. So, for example, if your commands are all 10 bytes or less, you could create a variable data space, and trigger it to be sent “on data change” so you could write whatever command you choose from the PLC.

Your response is going to be either an ACK or NAK (with error code):

and the response string for ‘Read Version’ will be in this format:

So :

A or N [1-ch NAK code or vv.vv] , [8-ch Timestamp], [4-ch checksum] [CR] [LF]

You are going to need to use variable data here because you could receive a 1-ch NAK code or a 5-ch version number.

[Data - 1 byte] [Variable Data - 6 byte max with ‘,’ or ‘2C’ end char] [Data 9 bytes (includes ‘,’] [checksum] 0D 0A

if you don’t need to use the checksum, you can just collect all of this as one long variable data object

Here is the .cfg file as an example:

examlpe.cfg (16.0 KB)

I received the new device this morning. From what I can tell we have an issue. My customer is currently running v19 of the RSLogix 5000 software which is not Studio 5000. Studio 5000 starts with version 21. Do you have a separate configuration utility for this device that is independent of Studio 5000?

Kyle,

Thank you so much for this. It appears that you are using the older (ModbusTCP) device to set this up. I am currently using the EN2SE-R, would this be the same setup?

My PLC is saying the device faulted……

image001.png

If you are using the HMS-EN2SE-R you are going to need at least RSLogix 5000 ver 20.1 with the Add-On profile. There is no way to use this as a generic module. You can use the AB7072 as a generic module, and they are configured exactly the same way on the serial side.

I understand, looks like we are going to use the AB7072 and stick with the current version of firmware.

So, how can I test the *.cfg file you sent me to see if it will even communicated with the Veeco? The module is still showing faulted:

Russell W. Carpenter | Control Systems Engineer

6457 Hazeltine National Drive**,** Suite 140 | Orlando, FL 32822

Tel: (407) 855-1212 | Fax: (407) 855-1213

image001.png

“We Serve To Serve Again”

Lights 1 & 2 are flashing on the Anybus device.

You need to make sure that the Input and Output values match and if you set it up as a generic IO device, I believe you need to have both input and output, i.e. having 0 as the output value won’t work. So instead of using a constant for the Query, use 2 bytes of data:

image

Then your Input will be 16 and output will be 2 bytes.

Now you will have to write the 52 56 values to the two bytes that are mapped to the output in the PLC and instead of writing to a trigger you can just Update on data change.

Try this: example.cfg (16.0 KB)

Im getting the following error message when I download to Anybus:

image003.jpg

Russell W. Carpenter | Control Systems Engineer

6457 Hazeltine National Drive**,** Suite 140 | Orlando, FL 32822

Tel: (407) 855-1212 | Fax: (407) 855-1213

image001.png

“We Serve To Serve Again”