14.9 RS485: Modbus RTU Message Function
Codes
14.9.1 Function Codes Supported by
Modbus RTU
Modbus RTU supports use of the function codes in
Table 14.17 in the function eld of a message.
Function Function code
Read coils 1 hex
Read holding registers 3 hex
Write single coil 5 hex
Write single register 6 hex
Write multiple coils F hex
Write multiple registers 10 hex
Get comm. event counter B hex
Report slave ID 11 hex
Table 14.17 Function Codes
Function Function
code
Sub-
function
code
Sub-function
Diagnostics 8 1 Restart communication.
2 Return diagnostic register.
10 Clear counters and
diagnostic register.
11 Return bus message count.
12 Return bus communication
error count.
13 Return bus exception error
count.
14 Return slave message
count.
Table 14.18 Function Codes
14.9.2 Modbus Exception Codes
For a full explanation of the structure of an exception code
response, refer to chapter 14.8 RS485: Modbus RTU Telegram
Structure.
Code Name Meaning
1 Illegal
function
The function code received in the query is
not an allowable action for the server (or
slave). This code can be because the
function code is only applicable to newer
devices, and was not implemented in the
unit selected. It could also indicate that
the server (or slave) is in the wrong state
to process a request of this type, for
example because it is not congured and
is being asked to return register values.
Code Name Meaning
2 Illegal data
address
The data address received in the query is
not an allowable address for the server
(or slave). More specically, the
combination of reference number and
transfer length is invalid. For a controller
with 100 registers, a request with oset
96 and length 4 would succeed, a request
with oset 96 and length 5 generates
exception 02.
3 Illegal data
value
A value contained in the query data eld
is not an allowable value for server (or
slave). This code indicates a fault in the
structure of the remainder of a complex
request, such as that the implied length is
incorrect. It specically does NOT mean
that a data item submitted for storage in
a register has a value outside the
expectation of the application program,
since the Modbus protocol is unaware of
the signicance of any particular value of
any particular register.
4 Slave device
failure
An unrecoverable error occurred while the
server (or slave) was attempting to
perform the requested action.
Table 14.19 Modbus Exception Codes
14.10
RS485: Modbus RTU Parameters
14.10.1 Parameter Handling
The PNU (parameter number) is translated from the
register address contained in the Modbus read or write
message. The parameter number is translated to Modbus
as (10xparameter number) DECIMAL.
14.10.2 Storage of Data
The coil 65 decimal determines whether data written to
the drive is stored in EEPROM and RAM (coil 65=1) or only
in RAM (coil 65=0).
14.10.3 IND
The array index is set in holding register 9 and used when
accessing array parameters.
14.10.4 Text Blocks
Parameters stored as text strings are accessed in the same
way as the other parameters. The maximum text block size
is 20 characters. If a read request for a parameter is for
more characters than the parameter stores, the response is
truncated. If the read request for a parameter is for fewer
characters than the parameter stores, the response is space
lled.
Appendix
VLT
®
HVAC Drive FC 102
236 Danfoss A/S © 11/2017 All rights reserved. MG16C302
1414