Difference between revisions of "Template:Mobus RTC Relay 16CH Protocol"
m (Text replacement - "0x0200 is to read the software version, 0x0040 is to read the device address" to "0x4000 is to read the device address, 0x8000 is to read the software version") |
|||
Line 330: | Line 330: | ||
|03||03 Command||Read the device address command | |03||03 Command||Read the device address command | ||
|- | |- | ||
− | |40 00||Command register || | + | |40 00||Command register ||0x4000 is to read the device address, 0x8000 is to read the software version |
|- | |- | ||
|00 01||Bytes number||Fixed 0x0001 | |00 01||Bytes number||Fixed 0x0001 |
Latest revision as of 10:49, 11 March 2024
Development Protocol
Function Code Introduction
Function Code | Note |
---|---|
01 | Read relay status |
03 | Read the address and version |
05 | Write a single relay |
06 | Set baud rate and address |
0F | Write all relays |
Register address introduction
Address (HEX) | Address storage content | Register value | Permission | Modbus function code |
---|---|---|---|---|
0x0000 …… 0x000F |
Relay address of channel 1~channel 16 | 0xFF00: Relay on; 0x0000: Relay off; 0x5500: Relay flipped; |
Read/Write | 0x01,0x05,0x0F |
0x00FF | Operation all registers | 0xFF00: All relays are on; 0x0000: All relays are off; 0x5500: All relays are flipped; |
Write | 0x05 |
0x0200 …… 0x020F |
The relays of channel 1~channel 16 are open | The delay time is data*100ms Value: 0x0007, delay: 7*100MS = 700MS |
Write | 0x05 |
0x0400 …… 0x040F |
Doutong 1~channel 16 relay flashes | The delay time is data*100ms Value: 0x0007, delay: 7*100MS = 700MS |
Write | 0x05 |
4x2000 | Serial port parameters | The upper eight bits are the check mode: 0x00~0x02 The lower eight bits are the baud rate mode: 0x00~0x07 |
Write | 0x06 |
4x4000 | Device address | Direct storage Modbus address Device address: 0x0001-0x00FF |
Read/write | 0x03,0x06 |
4x8000 | Software version | Convert to decimal and then move the decimal point two places to the left to indicate the software version 0x0064 = 100 = V1.00 |
Read | 0x03 |
Single Relay Control
Sending Code: 01 05 00 00 FF 00 8C 3A
Fields | Meaning | Remarks |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
05 | 05 command | Control the relay command |
00 00 | Address | Control the register address of the relay, 0x00 - 0x000F |
FF 00 | Command | 0xFF00: relay on 0x0000: relay off; 0x5500: relay flip |
8C 3A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 05 00 00 FF 00 8C 3A
Field | Meaning | Remarks |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
05 | 05 command | Control the relay commands |
00 00 | Address | Control the register address of the relay: 0x0000-0x000F |
FF 00 | Command | 0xFF00: relay on; 0x0000: relay off; 0x5500: relay flip |
8C 3A | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[No. 1 address device]:
No. 0 relay on: 01 05 00 00 FF 00 8C 3A
No. 0 relay off: 01 05 00 00 00 00 CD CA
No. 1 relay on: 01 05 00 01 FF 00 DD FA
No. 1 relay off: 01 05 00 01 00 00 9C 0A
No. 2 relay on: 01 05 00 02 FF 00 2D FA
No. 2 relay off: 01 05 00 02 00 00 6C 0A
No. 3 relay on: 01 05 00 03 FF 00 7C 3A
No. 3 relay off: 01 05 00 03 00 00 3D CA
No. 0 relay flip: 01 05 00 00 55 00 F2 9A
No. 1 relay flip: 01 05 00 01 55 00 A3 5A
No. 2 relay flip: 01 05 00 02 55 00 53 5A
No. 3 relay flip: 01 05 00 03 55 00 02 9A
Control All Relays
Sending code: 01 05 00 FF FF 00 BC 0A
Fields | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
05 | 05 Command | Control relay commands |
00 FF | Address | Fixed 0x00FF |
FF 00 | Command | 0xFF00: relay on 0x0000: relay off 0x5500: relay flip |
BC 0A | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 05 00 FF FF 00 BC 0A
Fields | Meaning | Code |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF indicates the device address |
05 | 05 command | Control the relay commands |
00 FF | Address | Fixed 0x00FF |
FF 00 | Commands | 0xFF00: relay on 0x0000: relay off 0x5500: relay flip |
BC 0A | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[No. 1 address device]:
All relays on: 01 05 00 FF FF 00 BC 0A
All relays off: 01 05 00 FF 00 00 FD FA
All relays flip: 01 05 00 FF 55 00 C2 AA
Read the Relay Status
Sending code: 01 01 00 00 00 10 3D C6
Fields | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF indicates the device address |
01 | 01 Command | Query Relay Status Command |
00 00 | Relay Start Address | Fixed 0x0000 |
00 10 | Relay Numbers | Fixed 0x0010 |
3D C6 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 01 02 00 00 B9 FC
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address, 0x01-0xFF is the device address |
01 | 01 Command | Query Relay Status Command |
02 | Number of bytes | Returns all bytes of the status information |
00 00 | Status of the query | Returned relay status Bit0: the first relay status; Bit1: the second relay status; Bit2: the third relay status; …… Bit15: the 16th relay status. |
B9 FC | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[NO.1 address device]
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 02 00 00 B9 FC //All relays off
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 02 00 01 78 3C //Relay 0 is on, the rest of the relays are off.
Send: 01 01 00 00 00 08 3D CC
Return: 01 01 02 00 41 79 CC //Relays 0 and 6 are on, the rest are off
Write Relay Status
Sending code: 01 0F 00 00 00 10 02 FF FF E3 90
Field | Meaning | Note |
---|---|---|
01 | Device address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
0F | 0F Command | Write relay status command |
00 00 | Relay start address | Fixed 0x0000 |
00 10 | Relay numbers | Fixed 0x0010 |
02 | Byte count | Fixed 0x02 |
FF FF | Relay status | Bit0: control the first relay; Bit1: control the second relay; Bit2: control the third relay; …… Bit15: control the 16th relay |
E3 90 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 0F 00 00 00 10 54 07
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
0F | 0F command | All register control commands |
00 00 | Relay start address | Fixed 0x0000 |
00 10 | Relay numbers | Fixed 0x0010 |
54 07 | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[No.1 address device]
All relays on: 01 0F 00 00 00 10 02 FF FF E3 90
All relays off: 01 0F 00 00 00 10 02 00 00 E2 20
0-1 ON; 3-15 OFF: 01 0F 00 00 00 10 02 00 03 A2 21
Relay Flash On and Flash Off Command
Sending code: 01 05 02 00 00 07 8D B0
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address, 0x01-0xFF is the device address |
05 | 05 Command | Single control demmand |
02 | Command | 02 is the command for flashing on, 04 is the command for flashing off |
00 | Relay Address | The address of the relay to be controlled: 0x00~0x0F |
00 07 | Interval time | Delay time for data *100ms Value: 0x0007, Delay: 7*100MS = 700MS |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 05 02 00 00 07 8D B0
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 is the broadcast address; 0x01-0xFF is the device adress |
05 | 05 Command | Single control command |
02 | Command | 02 is the command for flashing on, 04 is the command for flashing off |
00 | Relay Address | The address of the relay to be controlled: 0x00~0x0F |
00 07 | Interval time | Delay time for data*100ms Value: 0x0007, delay: 7*100MS = 700MS |
8D B0 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Note:
The maximum setting for the flash on/flash off time is 0x7FFF.
For example:
[No.1 address device]
Relay 0 flashes on: 01 05 02 00 00 07 8D B0 //700MS = 7*100MS = 700MS
Relay 1 flashes on: 01 05 02 01 00 08 9C 74 //800MS
Relay 0 flashes off: 01 05 04 00 00 05 0C F9 //500MS
Relay 1 flashes off: 01 05 04 01 00 06 1D 38 //600MS
Set the Baudrate Command
Sending code: 00 06 20 00 00 05 43 D8
Field | Meaning | Note |
---|---|---|
00 | Device Address | 0x00 is the broadcast address, 0x01-0xFF is the device address |
06 | 06 Command | Set the baud rate and the device address |
20 00 | Command Register | 0x2000 is the configurable baudrate, 0x4000 sets the device address |
00 | Checksum Method | 0x00: no checksum, 0x01: even parity, and 0x02: odd parity |
05 | Baudrate value | The baud value corrsponding to 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06: 128000 0x07: 256000 |
43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 00 06 20 00 00 05 43 D8
Field | Meaning | Note |
---|---|---|
00 | Device address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
06 | 06 Command | Set the baudrate and the device address |
20 00 | Command Register | 0x2000 is the configurable baudrate, 0x4000 sets the device address |
00 | Checksum Method | 0x00 is no checksum, 0x01 is odd check, 0x02 is even check |
05 | Baudrate | The baud value corrsponding to 0x00: 4800 0x01: 9600 0x02: 19200 0x03: 38400 0x04: 57600 0x05: 115200 0x06 : 128000 0x07: 256000 |
43 D8 | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[No.1 address device]
Set the baudrate 4800: 00 06 20 00 00 00 83 DB
Set the baudrate 9600: 00 06 20 00 00 01 42 1B
Set the baudrate 115200: 00 06 20 00 00 05 43 D8
Set the Device Address Comand
Sending code: 00 06 40 00 00 01 5C 1B
Field | Meaning | Note |
---|---|---|
00 | Device Address | 0x00 is the broadcast address, 0x01-0xFF is the device address |
06 | 06 Command | Configurable baudrate and device address |
40 00 | Command Register | 0x2000 is for setting the baudrate, and 0x4000 is for setting the device address |
00 01 | Device address | Set the device address, 0x0001-0x00FF |
5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 00 06 40 00 00 01 5C 1B
Field | Meaning | Note |
---|---|---|
00 | Device Address | 0x00 is the broadcast address, 0x01-0xFF is the device address |
06 | 06 Command | Set the baudrate and the device address |
40 00 | Command Register | 0x2000 is for setting the baudrate, 0x4000 is for setting the device address |
00 01 | Device address | Set the device address, 0x0001-0x00FF |
5C 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[No.1 address device]
Set the device address as 0x01: 00 06 40 00 00 01 5C 1b
Set the device address as 0x02: 00 06 40 00 00 02 1C 1A
Set the device address as 0x03: 00 06 40 00 00 03 DD DA
Read the Device Address Command
Sending code: 00 03 40 00 00 01 90 1B
Field | Meaning | Note |
---|---|---|
00 | Device address | 0x00 is the broadcast address; 0x01-0xFF is the device address |
03 | 03 Command | Read the device address command |
40 00 | Command register | 0x4000 is to read the device address, 0x8000 is to read the software version |
00 01 | Bytes number | Fixed 0x0001 |
90 1B | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 03 02 00 01 79 84
Field | Meaning | Note |
---|---|---|
00 | Device address | 0x00 indicates the broadcast address; 0x01-0xFF indicates the device address |
03 | 03 command | Read software version, read device address command |
02 | Byte number | Return the number of bytes |
00 01 | Device address | Set device address, 0x0001-0x00FF |
79 84 | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
[NO.1 address device]
Sending: 00 03 40 00 00 01 90 1B
Return: 01 03 02 00 01 79 84 //address 0x01
[NO.2 address device]
Sending: 00 03 40 00 00 01 90 1B
Return: 02 03 02 00 02 7D 85 //Address 0x02
[NO.3 address device]
Sending: 00 03 40 00 00 01 90 1B
Return: 03 03 02 00 03 81 85 //Address: 0x03
Read Software Version Command
Sending code: 00 03 80 00 00 01 AC 1B
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 indicates the broadcast address; 0x01-0xFF indicates the device address |
03 | 03 Command | Read software version, read device address command |
80 00 | Command Register | 0x4000 is to read the device address, 0x8000 is to read the software version |
00 01 | Byte Number | Fixed 0x0001 |
8F CA | CRC16 | CRC16 checksum of the first 6 bytes of data |
Return code: 01 03 02 00 64 B9 AF
Field | Meaning | Note |
---|---|---|
01 | Device Address | 0x00 indicates the broadcast address; 0x01-0xFF indicates the device address |
03 | 03 Command | read the software version and the device address commands |
02 | Byte Number | Return code |
00 64 | Software Version | Convert to decimal and move the decimal point two places to the left to indicate the software version 0x0064 = 100 = V1.00 |
B9 AF | CRC16 | CRC16 checksum of the first 6 bytes of data |
For example:
Sending: 00 03 80 00 00 01 AC 1B
Return: 01 03 02 00 64 B9 AF //0x0064 = 100 =V1.00