11
MODBUS INFORMATION
The remaining sections of this bulletin list ITMS Register Format information and MODBUS conformity.
MODBUS SUPPORTED FUNCTION CODES
FC01: Read Coils
1. Valid coil addresses are 1-16.
2. Only 16 coils can be requested at one time.
3. Block starting point can not exceed coil 16.
FC05: Force Single Coil
1. Valid write (force) coil addresses are 1-10.
2. <8001>HEX is echoed back that the coil did not change during the request to
write to a read only coil.
FC15: Force Multiple Coils
1. Valid write (force) coil addresses are 1-10.
2. Block starting point can not exceed coil 10.
3. If a multiple write includes read only coils, then only the write coils will change.
FC03: Read Holding Registers
1. Valid addresses are 40001-40029, 41001-41010, 41101-41116.
2. Only 16 registers can be requested at one time.
3. Block starting point can not exceed the register boundaries.
4. <8000>HEX is returned in registers beyond the boundaries.
5. Holding registers are a mirror of Input registers.
FC06: Preset Single Register
1. Valid write (preset) addresses are 40006-40029, 41101-41116.
2. <8001>HEX is echoed back that the register did not change during the
request to write to a read only register.
3. If the write value exceeds the register limit (see Register Table), then that
register value changes to its exceeded high or low limit. It is also returned in
the response.
FC16: Preset Multiple Registers
1. Valid write (force) register addresses are 40006-40029, 41101-41116.
2. No response is given with an attempt to write to more than 16 registers at a time.
3. Block starting point can not exceed the read and write boundaries.
4. If a multiple write includes read only registers, then only the write registers
will change.
5. If the write value exceeds the register limit (see Register Table), then that
register value changes to its exceeded high or low limit.
FC04: Read Input Registers
1. Valid addresses are 30001-30029, 31001-31010, 31101-31116.
2. Only 16 registers can be requested at one time.
3. Block starting point can not exceed register boundaries.
4. <8000>HEX is returned in registers beyond the boundaries.
5. Input registers are a mirror of Holding registers.
FC08: Diagnostics
The following is sent upon FC08 request:
Unit Address, 08 (FC code), 04 (byte count), “Total Comms”
2 byte count,
“Total Good Comms” 2 byte count, checksum of the string.
“Total Comms” is the total number of messages received that were addressed to
the ITMS. “Total Good Comms” is the total messages received by the ITMS
with good address, parity and checksum. Both counters are reset to 0 upon
response to FC08.
FC17: Report Slave ID
The following is sent upon FC17 request:
Unit Address, 17 (FC code), RLC-ITMS4037, 0100 (for code version 1.00), 16
(number of read supported registers), 16 (number of writes supported
registers), 16 (number of registers available for GUID/ Scratch pad memory),
checksum of the string.
The following is the HEX of the above (with unit address of 247):
<F7><11><14><52><4C><43><2D><49><54><4D><53><34><30><33>
<37><01><00><00><10><00><10><00><10><8D><9F>
SUPPORTED EXCEPTION CODES
01: Illegal Function
Issued whenever the requested function is not implemented in the unit.
02: Illegal Data Address
Issued whenever an attempt is made to access a single register or coil that
does not exist (outside the implemented space) or to access a block of registers
or coils that falls completely outside the implemented space.
03: Illegal Data Value
Issued when an attempt is made to read or write more registers or coils than
the unit can handle in one request.
07: Negative Acknowledge
Issued when a write to coil or register is attempted with an invalid string
length.
CHECKSUM ERRORS
1. Calibration checksum covers the E
2
PROM that contains calibration values
for all ranges. When a calibration checksum error occurs, coil 10 becomes a
1. (See Coils Table)
2. Parameter checksum covers the E
2
PROM that contains the stored Holding
register settings. When a parameter checksum error occurs, coil 9 becomes a
1. (See Coils Table)
3. All of the LEDs will flash as long as either error occurs.
4. The alarms are disabled as long as either error occurs.
5. Either error can be cleared or activated manually by writing to the appropriate
coil. (This does not correct the reason for the error. It may be necessary to
reconfigure or calibrate.)
6. Both checksums are verified at power up.
CALIBRATION
Calibration may be performed by using SFIMS software, or MODBUS
commands. Review Calibration explanation in Step 11, before performing these
steps.
mV Calibration
1. Connect the signal source to proper ITMS terminals.
2. To set Input Type, enter 9 into register 40008.
3. To start calibration, enter <7777> HEX into register 40029.
4. To start ADC calibration, enter <0001> HEX into register 40029.
5. Apply the appropriate voltage and enter the corresponding <>HEX value into
register 40029 for each range to be calibrated.
0 mV <0002>, 14 mV <0003>, 28 mV <0004>, 42 mV <0005>, 56 mV <0006>
6. To save the values and end calibration, enter <0000> HEX into register 40029.
CJ Calibration
Note: In this procedure, write functions are performed in HEX and a write to a
register is monitored by a read in a different register.
1. Connect the thermocouple probe source to the proper ITMS terminals. (Types
T, E, J, K, N and C only).
2. To set Input Type, enter connected TC type into register 40008.
3. To set Scale, enter 1 for °C or 0 for °F into register 40006.
4. To set High Resolution, enter 1 into register 40009.
5. Place an external reference thermometer probe at the end of the ITMS probe.
The two probes should be shielded from air movement and allow sufficient
time to equalize in temperature. (As an alternative, the ITMS probe may be
placed in a calibration bath of known temperature.)
6. To start calibration, enter <7777> HEX into register 40029.
7. To start CJ calibration, enter <0010> HEX into register 40029.
8. Read the Process Temperature Value register 40002 (Read as an Integer).
9. Subtract the external reference reading from the Process Temperature Value
register 40002 reading. Adjust the results to hundredths position, drop
decimal point, and maintain the results sign. (If the difference is -2.0 degrees,
then adjust to -2.00 and remove decimal point yielding a value of -200.)
10. Enter <0011> HEX into register 40029.
11. Add the value from step 9 (maintain the sign) to the value existing in register
40007 (Read as an Integer).
12. If necessary, continue to adjust register 40007 value until the Process
Temperature Value register 40002 matches the external reference reading.
13. To save the values and end calibration, enter <0000> HEX into register
40029.
RTD Calibration
1. Connect precision 300 ohm resistor to terminals 11 & 12. Short terminals 10 & 11.
2. To set Input Type, enter 13 (Integer) or <000D> HEX into register 40008.
3. To start calibration, enter <7777> HEX into register 40029.
4. To start 0 ohm RTD calibration, enter <0015> HEX into register 40029.
5. Apply 0 ohms by shorting terminals 11 & 12 for 10 seconds.
6. To start 300 ohm RTD calibration, enter <0016> HEX into register 40029.
7. Apply 300 ohms by removing short from terminal 11 for 10 seconds.
8. To save the values and end calibration, enter <0000> HEX into register 40029.