Modbus Connection or Addressing Issue

I have discovered I know very little about Modbus addressing today. So I have a UPS that has a network card for Modbus TCP. The slave Id is set to 1 and the port is 502.

Ignition can connect to the device and I can ping it on the network, but when i try to create tags I get this error:

java.lang.Exception: Request failed by TimeoutDaemon due to timeout: ScheduledRequest[com.inductiveautomation.xopc.drivers.modbus2.requests.ReadHoldingRegistersRequest@72f8e1af]

at com.inductiveautomation.xopc.driver.api.BasicRequestCycle$TimeoutDaemon.failRequests(BasicRequestCycle.java:376)

at com.inductiveautomation.xopc.driver.api.BasicRequestCycle$TimeoutDaemon.run(BasicRequestCycle.java:328)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)

at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.base/java.lang.Thread.run(Unknown Source)

Is this error stating the comms to the device is bad, or that my tag addressing is bad. For what its worth it could very well be the tag.

The manual looks like this

My tag addressing I assumed it was is:

[DeviceName]HR768

I also have zero based addressing for my device turned on, since that is what it sounded like the manual was saying the network card is setup for.

Any advice would be appreciated thanks!

Can you ping this device directly from the server hosting your ignition gateway? That's what matters.

Check firewall rules on the gateway machine and make sure you allow TCP traffic on port 502

Why are you using C768? The screenshot from the manual you shared shows Holding Registers, which is an HR notation in the Modbus driver.

Try [DeviceName]HR768 to start. You may need [DeviceName]1.HR768 since you note that the slave ID is 1. Ignition defaults to 0, which many Modbus devices do not appreciate.

Edit: Also make sure zero based addressing is checked in the advanced settings for the device connection. The manual you shared says addresses are 0 based.

Yes I can ping it from the server. And I do have 502 opened as well. That was one of the first things I tried thinking it was the issue.

Sorry yes, I meant to say HR not C. I'll be sure to edit that. Although even when I try those address examples the tag still returns as Bad

Can you get a Wireshark capture while using [DeviceName]1.HR768?

I will get that tomorrow morning, I am off site currently and the UPS isn't accessible remotely. I'll post the results here. Thank you for your help!

1 Like

capture.pcap (6.7 KB)
Heres is the Capture file. I let it run for roughly a minute with that tag address in there as you suggested. If I need to run it longer I can do that as well.

Your device is accepting the TCP connection, but not ever replying to Modbus TCP queries. There is likely some misconfiguration on the device side. You may need help from that device manufacturer.

1 Like

Thank you Phil.