Guidance required for Modbus RTU configuration

I am trying to use Ignition to read data from Carlo-Gavazzi WM14 energy meters using information from their serial protocol documentation. I can’t get it to work properly so I’ve tested my comms using the handy Simply Modbus TCP client 8.0.4.

The registers I want to read start at address 0280h (= 640+1 decimal). When I configure Simply Modbus as shown below I get good readings back from my energy meter.

[attachment=3]Modbus RTU for WM14.png[/attachment]

Can anyone spot a problem with my configurations below?

I have tried the following configuration in Ignition:

[attachment=2]Modbus Ignition configuration (not working).png[/attachment]

… and configured the addresses as shown below …

[attachment=1]Modbus Ignition address config.png[/attachment]

… with the result …

[attachment=0]Modbus RTU for WM14.png[/attachment]

Many thanks.

  1. make sure you are using the Modbus RTU over TCP driver
  2. why is your start address configured as 72 instead of 460 or 461?

Thank you, Kevin, for your quick reply.

  1. Yes, I’m using Modbus RTU over TCP driver.
  2. I caused some confusion with the device address by using 81 in the first screengrab and 72 in a later one. (I have multiple meters.)

Your response prompted some experimentation and I have it working but with an apparent address offset. Configuring the addresses …

[attachment=1]Modbus RTU address config working.png[/attachment]

… results in …

[attachment=0]Modbus Quick Client working.png[/attachment]

What I’ve learned
Unit ID is the network address of the energy meter.
Modbus address is the address of the first register.

Question
My documentation says that Modbus address 0280h is the first address. It should return 2400 (240.0) volts in V1. Instead the voltage is showing up as V2 in the quick client so I have something wrong in my Modbus address configuration. Can you spot the error?

Try toggling the one-based addressing setting or starting at 641 instead of 640

Thanks again for the help. I have it working correctly (I think) with these configurations:

[attachment=2]Modbus Ignition one-based addressing.png[/attachment]

[attachment=0]Modbus Ignition working addresses.png[/attachment]

[attachment=1]Modbus Ignition working Quick Client.png[/attachment]

Just a further update for anyone working with the Carlo Gavazzi meters:

CG have not been consistent in their byte order or word order across different models of their meters. Some of the later ones use Float (4-byte) which solves much of the scaling problems. Wireshark and a hexadecimal calculator are your friend here.

I’m going to have to install a second serial servers to accommodate a few odd meters as there is no simple way handle two different word orders from the same OPC device.