Long Modbus Addressing for Device Registers?

I have a question regarding how Ignition handles device registers that fall outside of the standard 0-9999, 10000-19999, 30000-39999, 40000-49999 for coils and registers.

I have the below device mapping that has addresses in use ranging from ~2000 right up to the 65535 limit. For those in the 50-60k range, how would I denote that in the OPC Item Path on a UDT?
image

i.e. to read bus voltage from this device, would ns=1;s=[{deviceName}]US60448 be correct?

Can I use the data type syntax without an IR/HR declaration?

I've worked with other devices that use "long addressing" Where you can use "holding registers" where there's the 3 prefix but you can use all 65535 registers as HRs (300001-365535), but also all 65535 IRs and so on with 6 digit address numbers.

I don't have a way of connecting to the device in question to troubleshoot as I build these UDTs out so I'd like to make sure I'm at least doing it correctly in theory ahead of time.

If you read the Modbus address documentation you'd see the syntax uses an area-specific prefix before the offset, not the 5- or 6-digit numeric addressing you see in some manuals. Modbus Addressing - Ignition User Manual 8.1 - Ignition Documentation

So, if you were talking about Holding Registers in this example, the address would be e.g. [device_name]HR60448 (signed) or [device_name]HRUS60448 (unsigned).

To be fair, I think the manual does mistakenly imply the normal address range is 1-9999, but extended addressing works just the same.

1 Like

Cool, I read through the docs and a couple forum posts, and some of our other engineers were working under the assumption that the HR/IR sort of works as a prepend to the address provided.

For instance, one of our other device UDTs uses IR56 to read from register 30056, wasn't sure how that would work with extended addressing.

Thanks for the clarification Kevin :slight_smile:

Do you mean HR56 or 30056?

Typically in the numeric prefix style, 0 is coils, 1 is discrete inputs, 3 is input registers, 4 is holding registers.

30056, typo.

1 Like