9.9 Modbus Addresses
Modbus addresses can be allocated to every register that is required to be accessed as a slave. This
can either be accomplished via the register access feature of the menu or configured via the debug port using the
RM and WM commands.
A typical list of Modbus addresses is provided as default, these addresses can be changed to fit the user
requirements if required. If Modbus addresses are grouped together data transfer speeds can be optimised.
NOTE: The reading of Modbus addresses that are unallocated will result in an error packet being
returned. This is often an indicator that the Modbus address may have been miscalculated. The start
offset (normally 40001) must be taken from the Modbus addresses to obtain the correct value in the
request packet for Holding registers.
NOTE: Input registers normally start with a 30001, but within the InSpec this is the same as
40001. Therefore, any register can be read as either a holding register or Input register.
9.10 Comms Data Registers
For naming conventions alone, the InSpec also has the following assigned registers that the operator
may find useful when communicating with the InSpec using Modbus. They are as follows:
i_comm_data1… i_comm_data10
l_comm_data1… l_comm_data10
f_comm_data1… f_comm._data10
An operator may wish to use these registers to immediately identify the registers that are being used in
Modbus communication. Formerly people would return to an InSpec configuration and have trouble recalling
which registers they had set up for Modbus communication. This offers a consistent remedy.
Any dedicated Modbus communication registers also have the word “comm” in their name for example
F_COMMS_FLOW1.
9.11 RTU Delay (serial only)
This value controls the timeout period for an incomplete RTU packet and is measured in milliseconds.
The timeout is not used if a packet appears to be complete, thus improving performance. If only partial packets
are being received extending this period may resolve the problem.
9.12 String size
String sizes are configurable in Modbus allowing up to the InSpec maximum string size of 48 characters.
9.13 Float size
InSpec stores all internal floating-point data as 64bit IEEE floating point numbers. This setting allows
Modbus to access these floating points with either a truncated 32bit accuracy or the full 64bit accuracy. Most
systems now support 32bit floating point accuracy however only a few support 64bit accuracy. Thus, this only
needs to be enabled when accuracy is of prime importance and if the connecting device supports it.
9.14 Start offset
This allows the operator to select the Modbus offset for holding registers normal this will default to 40001
however this can be used to move address when an offset of 1 is seen, where some suppliers incorrect assume
the offset should be 40000. Alternatively, this can also be used to implement the non-standard 6-digit addressing
seen in some systems where the offset becomes 400001, etc.