Are you able to read other registers in lower ranges? I ask because there could be some configuration of the device that's wrong. Also, make sure the OPC path is in the form of
ns=1;s=[DeviceName]1.IRUS33792
Where the 1 after the device name is the node address of the modbus device.
Edit: Are you getting an error or just data that doesn't look correct? Screenshots of relevant configurations and errors can help.
When hex addresses are displayed, they are always zero-based, in my experience. IA's driver defaults to using one-based addresses. Double check your device's advanced settings.
I think it's showing -31745, which is odd because if you take 33792 in binary is:
1000 0100 0000 0000
and when converted to a 16-bit integer is: -31744
So just 1 off of the -31745 it shows which if you offset the 33792 by 1 to 33791, then you get -31745 and in binary:
1000 0011 1111 1111
So could be the logs incorrectly formatting the address.
Here is the result on my test.
I set the ModbusTCP as Zero-based adressing
and OpcItemPath as ns=1;s=[ModbusTCP]1.IRUS33792
as you and Michael suggested.
The Query and response from the I/A ModbusTCP driver are OK.
But in the Ignition log there a timeout message.
Still have bad value at the tag . (Only one tag query in the test)
You seem to be communicating with a broken Modbus implementation.
This isn't a valid response to a Read Input Registers request.
00 05 transaction id
00 00 protocol id
00 04 length
01 unit id
04 function code
02 byte count
17 only 1 byte?
in your previous modpoll screenshots it looks like the device might actually be returning 17 6E, but since it seems to be incorrectly calculating the frame size in the MBAP header that doesn't end up being read or seen by the driver. The length indicated by the header in this case should be 5, not 4.