Handling Modbus Unsigned DINTs (UDINT)

I am trying to write to a modbus tag of type UDINT from Ignition. For example this tag is in HR1714-HR1715 (MW1714, unsigned DINT). Because this is of type unsigned but ignition integers are signed it is writing to the wrong integer within the UDINT. For example I write 5000 (1001110001000) and the PLC is receiving 327680000 (10011100010000000000000000000).

I realize I could instead just give it an OPC item path of HR1715 instead of HR1714 but then I feel I would lose half the bits in the DINT should I ever need it. Additionally, I have hundreds of these so mapping these would be a nightmare.

Am I going about this wrong, or is there a better way to handle the signed/unsigned issue? I would prefer to avoid writing an expression to every one of these tags to do a byte swap if possible.

Address the tag as HRUI1714.

See Modbus Addressing - Ignition User Manual 8.1 - Ignition Documentation for more information.

You probably also need to use word swapping (or, perhaps, zero-based addressing). Look in the device advanced settings.

Thank you for the quick response, the word swapping was it. I was wondering if I would ever be blessed to get an answer from the great pturmel.