Modbus Descrete Input Addressing

I am new to Ignition, so please bear with me.

I am talking to a device over Modbus TCP. I connect to it fine, and even able to read HR, IR, and C registers just fine. I am having issues reading the DI registers however. I am getting Received response with ExceptionCode: 0x03 (IllegalDataValue).

I am not sure what the issue is. The tags I created are Boolean (I did try over types just to see if it had an effect). The addressing (from the manual) is [MBDevice]DI1 (one of the tags)
I also tried [MBDevice]DI1.0

I must be missing something simple here.

Do you know what the DI valid addresses for this device are? Typically this ExceptionCode is returned when you read a location that the device has no data for.

Yes, the device manual lists the DI registers (1 - 60) and what they are for. I suppose it is possible that the device needs to be configured properly. I was only given the task to communicate with it. Being unfamiliar with the device and Ignition, I was not sure where to start troubleshooting.

What type of device is it?

I believe it is a controller for a rectifier.

The reason why I asked is because some devices actually have a the information stated in Hex or have an offset for the memory map. The first device that comes to mind for me is the MGE/APC UPS modules.

Excellent point. I am in contact with the manufacturer that sent us the board. I will follow up here with what I find. Someone else may find the information useful.

The issue turned out to be the device, and it was indeed that I was trying to read registers that were not configured in the device I was trying to read from. I assumed all the input registers in the documentation were active. I removed the tags pointed to the invalid registers and everything seems to be working fine.

1 Like