N4IOA01 modbus
rtu protocol
Function code
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Read number (2) |
CRC16 (2) |
|
|
03 Read |
|
|
|
|
|
06 Write |
|
|
|
|
Read / write register; Read function code is 03 ,Write function code is 06 |
||||
|
Register address |
Register contents |
Number of bytes |
Units |
Remarks |
|
0x0000 |
Current value |
2 |
0.01MA |
such as: Input 0X0320 Decimal 800 Output= 800 * 0.01 = 8.00MA |
|
0x0007 |
Current ratio |
2 |
0.1% millesimal |
This value can be corrected when the Actual output Current is greater than 1%, such as: 1000 means 1:1 1010: 1% increase 990: 1% decrease |
|
0x000E |
RS485 address (Station address) |
2 |
|
Read Address 0XFF Write Address 1-247 |
|
0x000F |
Baud rate |
2 |
|
0~4 0:1200 1:2400 2:4800 3:9600(default) 4:19200 5: Factory reset |
Serial baud rate:9600(default),N,8,1
Modbus RTU Communication protocol:
Read the output Current value of channel 1, the unit is 0.01MA
1.
Read Current value
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Read number (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Number of bytes (1) |
data (n) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x03
Register
address:0x0000,
Indicates 1-channel value
Read number:0x0001
For example:
Send data(RS485 address is 1):01 03 00 00 00 01 84 0A ; 00 means channel 1
Returns data:01 03 02 03 E8 B8 FA
01 RS485 address,03 Function,02 length, B8
FA crc16
03E8 is the Output Current
value, it is converted
to decimal = 1000, 1000/100=10.00MA;
2.
Set Output Current value
Set the output Current value of channel 1, the unit is 0.01MA
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Setting Content (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Register value (2) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x06
Register address:0x0000; Indicates 1 channel
value
Setting value: 2 bytes, unit 0.01MA. The Current range set for channel 1 is 0.5-20MA.
For example 1: Let CH1 output 12MA Current. Input value 1200 and convert it to hexadecimal 04B0
Send frame: 01 06 00 00 04 B0 8A BE
Return frame: 01 06 00 00 04 B0 8A BE
3.
Read Current ratio:
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Read number (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Number of bytes
(1) |
data (n) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x03
Register address:0x0007 ; Indicates 1 channel
value
Read number:0x0001
Return data: 0.1% millesimal
The Current ratio can be corrected by this value when the Current reading deviation is greater than 1%. The default value is 1000 (3E8).
For example 1:
Send data(RS485 address is 1):01 03 00 07 00 01 35 CB;
07 is Channel 1
Returns data:01 03 02 03 E8 B8 FA
03E8 is the Current ratio, which is 1000 in decimal and divided by 1000=1; indicating that channel 1 does not need to modify the Current value.
For example 2:
send data(RS485 address is 1):01 03 00 07 00 01 35 CB ; 07 is Channel 1
Returns data:01 03 02 03 DE 38 EC
03DE is the voltage ratio, which is 990 in decimal and divided by 1000=0.99; Indicates that channel 1 reads 0.99 times the actual acquisition value.
4.
Set Current ratio
When the actual output voltage deviation is greater than 1%, it can be corrected by this value, the default is 1000 (03E8)
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Setting Content (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Register value (2) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x06
Register address:0x0007 ; Indicates 1 channel
value
Setting Content:2Bytes
Setting value: 2 bytes, unit 0.1%. When this value is set to 1000 (3E8), the voltage value does not change.
For example 1: Set the channel 1 to 10.00MA, but the actual output Current is 9.90MA. Output deviation: 10/9.9=1.010. Input 1010 (0X03F2) to correct the output error
Send frame: 01 06 00 07 03 F2 B9 7E
Return frame: 01 06 00 07 03 F2 B9 7E
For example 2: Set the channel 1 to 4.00MA, but the actual output voltage is 4.10MA. Output deviation: 4/4.1=0.975. Input 975 (0X03CF) to correct the output error
Send frame: 01 06 00 07 03 CF 78 AF
Return frame: 01 06 00 07 03 CF 78 AF
5.
Read RS485 address
Send data
|
RS485 address (Broadcast address) (1) |
Function (1) |
Register address (2) |
Read number (2) |
CRC16(2) |
Returns data
|
RS485 address ( Broadcast address ) (1) |
Function (1) |
Number of bytes
(1) |
data (n) |
CRC16(2) |
Broadcast address 0xff
Function code 0x03
Register address:0x000E
Read number:0x0001
For example:
send data:FF 03 00 0E 00 01 F0 17
Returns data:FF 03 02 00 01 50 50
FF Broadcast address,03 Function,02 length,01 is the current module RS485
address , 50 50 crc16
Note: When using
this command, only one temperature module can be connected to the RS485 bus,
more than one will be wrong!
6.
Write RS485 address
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Setting Content (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Register value (2) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x06
Register address:0x000E
Setting Content:2Bytes(1-247)
For example, The current RS485 address is 1,
We need to change the
RS485 address to 3:
send data(RS485 address is 1):01 06 00 0E 00 03 A8 08
Returns data:01 06 00 0E 00 03 A8 08
7.
Read baud rate
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Read number (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Number of bytes
(1) |
data (n) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x03
Register address:0x000F
Read number:0x0001
For example:
send data(RS485 address is 1):01 03 00 03 00 01 74 0A
Returns data:01 03 02 00 03 F8 45
01 RS485 address,03 Function,02 length,F8 45 crc16
03 means the current baud rate is 9600bps
Baud rate corresponds to the number: 0: 1200 1: 2400 2: 4800 3: 9600 4: 19200
8.
Write baud rate
Send data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Setting Content (2) |
CRC16(2) |
Returns data
|
RS485 address (Station address) (1) |
Function (1) |
Register address (2) |
Register value (2) |
CRC16(2) |
RS485 address(Slave ID) : 0x01~0xFE
Function code 0x06
Register address:0x000F
Setting Content:2Bytes(0-4)
For example, Change the baud rate to 4800bps:
send data(RS485 address is 1):01 06 00 0F 00 02 38 08
Returns data:01 06 00 0F 00 02 38 08
Baud rate corresponds to the number: 0: 1200 1: 2400 2: 4800 3: 9600 4: 19200
5: Factory reset
Note: 1 The baud rate will be
updated when the module is powered up again!
2 The factory setting can be restored when the baud rate corresponding
to the number is 5. For example: 01 06 00 0F 00 05 79 CA
MODBUS commands you can use "Modbus Poll" input, as shown below
(CRC check generated automatically)

You can also use HyperTerminal serial input, as shown below
(Manually add CRC check)
