Protocol Manual of Modbus RTU Relay
OUTDATED WIKI, PLEASE REFER TO https://www.waveshare.com/wiki/Modbus_RTU_Relay
Command format
The command contains 8 bytes:
- Byte 1:Address
- Byte 2:Function code
- Byte3 4:Address of register (big-endian)
- Byte 5 6:data of register (big-endian)
- Byte7 8:CRC cheksum (little-endian)
Function code
Function code | Description |
---|---|
01 | Read state of Relay |
03 | Read address, revision |
05 | Write single Relay |
06 | Configure baudrate, address |
0F | Write all Relays |
Control single relay
command:01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is broadcast address;0x01-0xFF are device addresses |
05 | 05 Command | Command for controlling Relay |
00 00 | Address | The register address of controlled Relay, 0x00 - 0x0008 |
FF 00 | Command | 0xFF00:Open Replay; 0x0000:Close Relay; 0x5500:Flip Relay |
8C 3A | CRC16 | The CRC checksum of first six bytes. |
Answer: 01 05 00 00 FF 00 8C 3A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is broadcast address;0x01-0xFF are dives addresses |
05 | 05 Command | Command for controlling relay |
00 00 | Address | The register address of controlled Relay,0x0000-0x0008 |
FF 00 | Command | 0xFF00:Open Relay; 0x0000:Close Relay 0x5500:Flip Relay. |
8C 3A | CRC16 | The CRC checksum of the first six bytes. |
Examples:
[Device with address 01]:
Open Relay 0: 01 05 00 00 FF 00 8C 3A
Close Relay 0: 01 05 00 00 00 00 CD CA
Open Relay 1: 01 05 00 01 FF 00 DD FA
Close Relay 1: 01 05 00 01 00 00 9C 0A
Open Relay 2: 01 05 00 02 FF 00 2D FA
Close Relay 2: 01 05 00 02 00 00 6C 0A
Open Relay 3: 01 05 00 03 FF 00 7C 3A
Close Relay 3: 01 05 00 03 00 00 3D CA
Flip Relay 0: 01 05 00 00 55 00 F2 9A
Flip Relay 1: 01 05 00 01 55 00 A3 5A
Flip Relay 2: 01 05 00 02 55 00 53 5A
Flip Relay 3: 01 05 00 03 55 00 02 9A
Controll all Relay
Command:01 05 00 FF FF FF FC 4A
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is broadcast;0x01-0xFF are devices address |
05 | 05 command | Command for controlling Relay |
00 FF | Address | Fixed 0x00FF |
FF FF | Command | 0xFFFF:Open Relay; |
FC 4A | CRC16 | The CRC checksum of the first six bytes |
Answer: 01 05 00 FF FF FF FC 4A
Byte | Meaning | Description |
---|---|---|
01 | Devices | 0x00 is broadcast address;0x01-0xFF is device address |
05 | 05 Command | Command for controlling |
00 FF | Address | Fixed 0x00FF |
FF FF | Command | 0xFFFF:Open Relay; 0x0000:Close Relay; 0x5A00:Flip Relay; |
FC 4A | CRC16 | The CRC16 checksum of the first six bytes. |
Example:
[Device with address 01]:
Open all Relays : 01 05 00 FF FF FF FC 4A
Close all Relays : 01 05 00 FF 00 00 FD FA
Flip all Relays : 01 05 00 FF 5A 00 C7 5A
Read states of all Relays
Command:01 01 00 FF 00 01 CD FA
Bytes | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is broadcast address;0x01-0xFF are device addresses |
01 | 01 Command | Command for checking states of Relay |
00 FF | Address | Fixed 0x00FF |
00 01 | Command | Fixed 0x0001 |
CD FA | CRC16 | The CRC16 of the first six bytes |
Answer:01 01 01 00 51 88
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is broadcast address;0x01-0xFF are device addressese |
01 | 01 Command | Command for checking states of Relay |
01 | Number | The number of bytes returned。 |
00 | Sate | The state of Relay Bit0:The state of the first Relay; Bit1: The state of the second Relay; Bit2: The state of the third Relay; …… Bit7:The state of the eighth Relay; |
8C 35 | CRC16 | The CRC cheksum of first six bytes. |
Examples:
[Device with Address 01]
Command : 01 01 00 FF 00 01 CD FA
Answer: 01 01 01 00 51 88 //Close all Relays
Command : 01 01 00 FF 00 01 CD FA
Answer : 01 01 01 01 90 48 //Open Relay 0 and close other Relays
Command : 01 01 00 FF 00 01 CD FA
Answer : 01 01 01 41 91 B8 //Open Relay 0 and Relay 6, close other Relays
Write Relay
Command:01 0F 00 00 00 01 94 0B
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
0F | 0F Command | Command for writing Relay |
00 00 | Address | Fxied 0x0000 |
00 01 | Command | Bit0:Control the first Relay; Bit1:Control the second Relay; Bit2:Control the third Relay; …… Bit7:Control the eighth Relay; |
94 0B | CRC16 | The CRC checksum of first six bytes. |
Answer:01 0F 00 00 00 01 94 0B
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
0F | 0F Command | Command for controlling all Relay |
00 00 | Address | Fixed 0x0000。 |
00 01 | Command | 0x0001,Write Relay sate Bit0:Control the first Relay; Bit1:Control the second Relay; Bit2:Control the third Relay; …… Bit7: Control the eighth Relay; |
94 0B | CRC16 | The CRC checksum of first six bytes. |
Example:
[Device with address 01]
Open all Relay : 01 0F 00 00 00 FF 15 8B
Close all Relay : 01 0F 00 00 00 00 55 CB
0-1 Open;3-7 Close : 01 0F 00 00 00 03 15 CA
Open/Close Relay in current time
Command:01 05 02 00 00 07 8D B0
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
05 | 05 Command | Command for controlling signle Relay |
02 | Command | 02 is command for close Relay in current time,04 is command for open Relay in current time |
00 | Address of Relay | The address of Relay controlled |
00 07 | Delay | The Delay time is Data*100ms Data:0x0007,Delay:7*100MS = 700MS |
8D B0 | CRC16 | The CRC checksum of first six bytes. |
Answer:01 05 02 00 00 07 8D B0
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
05 | 05 Command | Command for controlling single Relay |
02 | Command | 02 is command for close Relay in current time,04 is command for open Relay in current time |
00 | Address of Relay | The address of Relay controlled |
00 07 | Delay | The delay time is the data*100ms data:0x0007,Delay:7*100MS = 700MS |
8D B0 | CRC16 | The CRC checksum of first six bytes. |
Example:
[Device with address 01]
Open Relay 0 : 01 05 02 00 00 07 8D B0 //700MS = 7*100MS = 700MS
Open Relay 1 : 01 05 02 01 00 08 9C 74 //800MS
Close Relay 0 : 01 05 04 00 00 05 0C F9 //500MS
Close Relay 1 : 01 05 04 01 00 06 1D 38 //600MS
Set baud rate
Command:00 06 20 00 00 05 43 D8
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
06 | 06 Command | Set baud rate or device address |
20 00 | Command register | 0x2000: Set baud rate,0x4000:Set device address |
00 05 | Baud rate | Baudrate: 0x0000 : 4800 0x0001 : 9600 0x0002 : 19200 0x0003 : 38400 0x0004 : 57600 0x0005 : 115200 0x0006 : 128000 0x0007 : 256000 |
43 D8 | CRC16 | The CRC checksum of first six bytes. |
Answer:00 06 20 00 00 05 43 D8
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
06 | 06 Command | Set baud rate or device address |
20 00 | Command register | 0x2000: Set baud rate,0x4000 Set device address |
00 05 | Baud rate | The baud rate 0x0000 : 4800 0x0001 : 9600 0x0002 : 19200 0x0003 : 38400 0x0004 : 57600 0x0005 : 115200 0x0006 : 128000 0x0007 : 256000 |
43 D8 | CRC16 | The CRC checksum of first six bytes |
Example:
[Device with address 0x01]
Set baud rate as 4800 :00 06 20 00 00 00 83 DB
Set baud rate as 9600 :00 06 20 00 00 01 42 1B
Set baud rate as 115200 :00 06 20 00 00 05 43 D8
Set device address
Command:00 06 40 00 00 01 5C 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
06 | 06 Command | Set baud rate or device address |
40 00 | Command register | 0x2000: Set baud rate,0x4000: Set device address |
00 01 | Device address | The device address,0x0001-0x00FF |
5C 1B | CRC16 | The CRC checksum of first six bytes. |
Answer:00 06 40 00 00 01 5C 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
06 | 06 Command | Set baud rate or device address |
40 00 | Command register | 0x2000: Set baud rate,0x4000:Set device address |
00 01 | Device address | Set device address,0x0001-0x00FF |
5C 1B | CRC16 | The CRC checksum of first six bytes. |
Example:
[Device with address 0x01]
Set device address as 0x01 :00 06 40 00 00 01 5C 1b
Set device addrss as 0x02 :00 06 40 00 00 02 1C 1A
Set device address as 0x03 :00 06 40 00 00 03 DD DA
Read device address
Command:00 03 40 00 00 01 90 1B
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
03 | 03 Command | Read Device address |
40 00 | Command register | 0x0200: Read software revision,0x0040: Read device address |
00 01 | Device address | Device address |
90 1B | CRC16 | The CRC checksum of first six bytes. |
Answer:01 03 01 01 31 88
Byte | Meaning | Description |
---|---|---|
00 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
03 | 03 command | Read software revision or device address |
01 | Number of bytes | Number of bytes returned |
01 | Device address | Devicess |
31 88 | CRC16 | The CRC checksum of first six bytes. |
Example:
[Device with address 01]
Command : 00 03 40 00 00 01 90 1B
Answer : 01 03 01 01 31 88 //Address 0x01
[Device with address 02]
Command : 00 03 40 00 00 01 90 1B
Answer : 02 03 01 02 71 CD //Address 0x02
[Device with address 03]
Command : 00 03 40 00 00 01 90 1B
Answer : 03 03 01 03 B1 F1 //Adress 0x03
Read software revision
Command:01 03 20 00 00 01 8F CA
Byte | Meaning | Description |
---|---|---|
01 | device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
03 | 03 Command | Read software revision or device address |
20 00 | Command register | 0x0200: Read software revision,0x0040: Read device address. |
00 01 | Device address | Device address |
8F CA | CRC16 | The CRC checksum of first six bytes. |
Answer:01 03 01 64 F1 A3
Byte | Meaning | Description |
---|---|---|
01 | Device address | 0x00 is the boradcast address;0x01-0xFF are device addresses |
03 | 03 Command | Read software revision, read device address |
01 | Number of bytes | number of bytes returned |
64 | Revision of Software | Convert it to DEX and multiply by 0.01 is the value of software revision.
|
F1 A3 | CRC16 | The CRC checksum of the first six bytes. |
Example:
Command:01 03 20 00 00 01 8F CA
Answer:01 03 01 64 F1 A3 // 64 = 100 =V1.00