Problems in modbus configuration

Good afternoon,
I have a problem where I don’t need to integrate my anybus AB7000-C with an ethanol loading flow computer, but I can’t insert the modbus addresses into anybus, because they have an extra number next to the function.

Below is the anybus configuration manager

Below are some variable addresses to be read
|22180 float Temperatura [Med 1] (Temp. Operação)
22600 float Vazão Volumétrica TOp [ARM 1] (TOp = Temp. Operação)|
22396 float Densidade Top [MED 1] (TOp = Temp. Operação)|
22612 float Vazão Volumétrica TRf [ARM 1] (TRf = Temp. Referência 20°C)|
22624 double Totalização Volumétrica TOp [ARM 1] (TOp = Temp. Operação)|
22648 double Totalização Volumétrica TRf [ARM 1] (TRf = Temp. Referência 20°C)|

I’m very grateful if you can help us.

graciously;
Maike.

Hi Maike,

First, do not use the Wizard. It does not work as well as creating the transactions manually. I wish they would remove it.

One thought is that those are decimal numbers and you need to convert them to hex. For example, 22180 (dec) = 56A4 (hex).

Do you have a modbus map and list of supported commands (or user manual) for this device?

Kyle

These addresses are from the modbus map, below filtered only the ones I need

At.te;

Those are all 4 characters or less when converted to hex. Have you tried reading them? You can type the decimal value into field in ABCM and when you hit enter it will be converted to hex:

Then hit Enter:

Viola!

Try reading them. Are you sure function code 4 is correct?

So kyle, I did as you said above, apparently communicated, but it was with the Subnet Status led-5 in red, as if I couldn’t find the address, what to be and that the imput register I need to read this in the 22000 region, would have something you have to enable to read this data in this region and not in the 30000?

follow the log

log8.txt (5.4 KB)

This may be a timing issue. You are actually getting a good response here trying to read 0x5860:

You are getting 16 bytes of data : 0x40 0xC2 etc etc

But then other times you get no response to the same command.

You are getting a response for reading 0x5849, but it’s an error, “Illegal Data Address”.

image

Can you send me your .cfg file?

I’ll send you the log and this configuration I made last now, where led 5 is flashing green for a while
teste_09-11_2.cfg (16.0 KB) log_09-11_2.txt (3.6 KB)

address 0x5849 is wrong, it is 0x5848.

So you are getting good responses in that log, except for the read of 0x5860, where you’re getting an illegal data address error. I noticed in the last log that it timed out twice trying to read 0x5860, but once it got a good reply. The only difference between the commands is this time you’re trying to read 2 registers and last time you were trying to read 8. Did something in the Modbus slave change?

If not, try adjusting the timing. Change the timeout to 500. Then try changing ‘minimum time between broadcasts’ to something lower like 50. If that doesn’t help try something higher. Let me know if it makes a difference.

Good morning Kyle, As we had been talking, I made the changes as you had guided but the connection continued to fall, for the connection did not fall I had to change the time Update Time, as the con figuration below.
temp_vazao-22-11.cfg (16.0 KB) log_Temp_vazao-22-11.txt (2.2 KB)

I was able to communicate with the flow computer, only I need to insert more variables for reading, and I’m in doubt in these time settings, I tried to insert and make some changes in those time and sometimes crashes.

Another doubt, then I have to read some variables in double foat, and my automation system of ABB does the reading up to 32 bit, the converter can read this variable in double and move to the plc in float ?

The configuration and the log you sent looks fine. (Did you intend to read one every 1.5 sec and the other every 2 sec?) What is crashing when you have more variables?

As far as data types, the Communicator does not care about data types, it only sees bits and bytes and “moves” them from one network to the next. You have the option to swap the order of the bytes if you want, but you need to do any translating of data types in the PLC.

So because when I leave the two with 1 second, the sub-network led-5 flashes red, just like when I insert another variable for the reading

data issue and that my modbus slave has some 8 byte variables, and my PLC is up to 4 bytes, I wanted to know if the converter can take 8 bytes and pass 4 bytes

This is very strange. Have you tried setting them both to 1.5 or 2 seconds? Have you tried increasing the timeout value?

I don’t understand. Shouldn’t you just read the 4 bytes that you need? As I said before, the Communicator does not see data types - only bits and bytes, so it can’t convert data types. It can only change the byte order. You should be able to convert data types in your PLC.

kyle, I managed to read the flow computers, but when I put more than one variable inside the same Node, I start to have subnetwork failure, I follow a configuration that I put last, where I set the timeout with 10 minutes, the same communicates 10 minutes normally and goes into subnet fault.