Preset multiple registers, Query, Response – Basler Electric BE1-700 Modbus Protocol User Manual
Page 22: Preset multiple registers -12
1-12
BE1-700 Modbus™ Protocol
9376700991 Rev D
Subfunction Hi =
00 (hex)
Subfunction Lo =
04 (hex)
Data Hi = xx
(don't care)
Data Lo = xx
(don't care)
CRC Hi error check
CRC Lo error check
Preset Multiple Registers
A preset multiple registers query could address multiple registers in one slave or multiple slaves. If the
query is a broadcast (device address = 0), no response message is returned.
A Preset Multiple Register query message requests a register or block of registers to be written. The data
block contains the starting address and the quantity of registers to be written followed by the Data Block
byte count and data. The BE1-700 will perform the write when the device address is the same as the
BE1-700's remote address or when the device address is 0. A device address is 0 for a broadcast query.
Query
A register address of N will write Holding Register N+1.
Data will cease to be written if any of the following exceptions occur:
•
Queries to write to Read Only registers result in an error response with Exception Code of "Illegal
Data Address.”
•
Queries attempting to write more than 100 registers cause an error response with Exception
Code "Illegal Function.”
•
An incorrect Byte Count will result in an error response with Exception Code of "Illegal Data
Value.”
•
There are several instances of registers that are grouped together to collectively represent a
single numerical BE1-700 data value (i.e., floating point data and 32-bit integer data). A query to
write a subset of such a register group will result in an error response with Exception Code
"Illegal Data Address.”
•
A query to write a not allowed value (out of range) to a register results in an error response with
Exception Code of "Illegal Data Value.”
Device Address
Function Code =
10 (hex)
Starting Address Hi
Starting Address Lo
No. of Registers Hi
No. of Registers Lo
Byte Count
Data Hi
Data Lo
.
.
.
Data Hi
Data Lo
CRC Hi error check
CRC Lo error check
The response message echoes the starting address and the number of registers. There is no response
message when the query is a broadcast (device address = 0).
Response
Device Address
Function Code =
10 (hex)
Starting Address Hi
Starting Address Lo
No. of Registers Hi
No. of Registers Lo
CRC Hi Error Check
CRC Lo Error Check