Protocol Manual of Modbus RTU Relay

From Waveshare Wiki
Jump to: navigation, search

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.


0x64 = 100 = V1.00

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