Cannot poll device communicating on MODBUS RTU over TCP

Hi,

I am just starting to test out Ignition and I have come across an issue whilst trying to connect my device to Ignition.

My device talks MODBUS RTU over TCP.

I have successfully added the device and it shows as connected.
(I am using port 80. works fine with other SCADA platforms)

However when I add tags, it does not show the correct values. Just says Null. (see images)

I have set the scan rate to 6 seconds.

Is there anything else that I should be doing to get Ignition to read values off my device?

Any input would be much appreciated.

Thanks,

Shenal




Just a couple obvious things to get out of the way:

  1. You chose the “RTU over TCP” driver when creating the device, right?
  2. You’re sure slave/unit id 1 is correct?

Hi Kevin,

Yes, I chose MODBUS RTU over TCP option and not MODBUS TCP.

Yes, the unitID on my device is set to 1.

This probably will not make a difference; my device is not on the LAN which contains the PC(Ignition).
Device connection is through the cellular network (with its own IP address).
I can poll the device and obtain data, using other software applications.

Thanks.

Maybe it’s not really supposed to be RTU over TCP… Hard to say.

Can you use wireshark to capture network traffic while polling with other software and then while trying to poll with Ignition?

I am pretty certain that my device talks MODBUS RTU. and not MODBUS TCP.

I will try to use wireshark and post the results shortly.

Thanks.

A Modbus slave that directly talks Modbus RTU serial encapsulated in TCP is a bit unusual. Can you tell us the make and model of this?

Normally what you have in this situation is a Modbus serial slave and a serial device server. The device server could be something like a Moxa NPort 5100 or a Sierra Wireles Raven XT cellular modem, which has a serial device server built in.

You might want to download the Kepware’s KepserverEX and run it demo mode to ring this out. The KepserverEx has a datascope that you can turn on to see if you are getting any response at all back from the Modbus slave.

Actually, my controller is MODBUS RTU. This is connected to a 3G Modem (Maestro M100) which does the Serial to IP conversion and vice-versa. When I said ‘device’ earlier, I actually meant the ‘controller + modem’.

With reference to the settings on ignition; do you think there is anything I need to be looking at?

Thanks.

Other than adjusting the ‘communication timeout’ property of the device to something longer than 2000ms there’s not much you should need to change - Wireshark will be really helpful in this case.

You did say that you were able to poll it with another scada package? I was suggest trying to use a program like modbus poll to verify tat all of your settings are correct. Its the first thing I do when setting up a new device, make sure I get good polls and I can also figure out if there is an offset and how my data needs to be formatted when reading floats.

Sorry for the delay in posting back.
I have sorted this issue.
I installed the SCADA on a different PC, which has a dedicated connection to the VPN and no other internet connection.
Also, I just realized that I have to add 1 to the address when doing MODBUS Reads.
E.g. [PSS_Tank]1.HR164 is what I wrote to read my register address 164 on the device.
However it needed to be [PSS_Tank]1.HR165.

Thank you all for your support.

Shenal