X-600M Users Manual
Modbus Operation
5.3.6 Write Multiple Registers – Modbus Function Code 16 (0x10)
The Modbus Write Multiple Registers function can be used to set the counter to a specific value, pulse
relays, or set internal registers on the X-600M.
Request
Set Counters
The counter value is specified using a 32-bit integer (not a floating point number).
Start Address (2 bytes):
0x0000 (counter 1) - 0x0002 (counter 2)
Register Quantity (2 bytes):
0x0002 - 0x0004 (2 registers for each counter, even number)
Byte Count (1 byte):
0x04 - 0x08 (Multiples of 4)
Counter Quantity (4 bytes/Counter):
0x00000000 – 0xFFFFFFFF
Pulse Relay
The Modbus Write Multiple Registers function is used to pulse the relay(s) for a specified time when a
relay has been mapped to a holding register address in the holding registers table. When X-600M
receives this command, it immediately turns the appropriate relay(s)
ON
(if not already on) and starts the
pulse timer. The relay(s) are selected by writing the pulse time in seconds to the register(s) associated
with the desired relay(s).
The pulse time is specified using floating point format in the register value field and can range from 0.1
seconds to 86400 seconds (1 day). When the pulse time expires, the relay will be turned
OFF
. If a pulse
time command is sent with a value greater than 86400, the pulse timer will be set to 86400. If a pulse
time command is sent with a value less than 0.1, the pulse timer will be set to 0.1.
If any commands are sent to the X-600M (e.g. Modbus, XML, SNMP, or HTML) before the pulse timer
has expired, the pulse timer will be canceled immediately and the new command will be executed.
IEEE 754 floating point format is used for the pulse time. The X-600M may be configured for little-endian
or big-endian transmission. The endian-ness is configured in the
Modbus
tab.
Start Address (2 bytes):
0x0000 ( relay 1) – 0x0006 ( relay 4)
Register Quantity (2 bytes):
0x0002 – 0x0008 (2 registers for each relay, even number)
Byte Count (1 byte):
0x04 – 0x10 (Multiples of 4)
Pulse Duration (4 bytes/relay):
0x3DCCCCCC – 0x47A8C000 (big-endian)
0xCCCC3DCC – 0xC00047A8 (little-endian)
Response
The request is acknowledged by responding with the register quantity that was requested.
Errors
Pulse Function code Error (1 Byte):
0x90
Exception codes (1 Byte):
0x01 – Feature not supported.
0x02 – Address quantity not an even number.
Incorrect combination of start address and relay count.
Xytronix Research & Design, Inc.
Page 105
Содержание X-600M
Страница 1: ...X 600MTitle Page Goes Here...
Страница 6: ...X 600M Users Manual Page 4 Xytronix Research Design Inc...
Страница 99: ...X 600M Users Manual Setup Pages Xytronix Research Design Inc Page 97...
Страница 116: ...Appendix B Installing New Firmware X 600M Users Manual Page 114 Xytronix Research Design Inc...