1.ModBUS TCP协议简介
其实就是加了个TCP协议头,以及去掉RTU报文的CRC校验码
* <------------------------ MODBUS TCP/IP ADU(1) ------------------------->
* <----------- MODBUS PDU (1') ---------------->
* +-----------+---------------+------------------------------------------+
* | TID | PID | Length | UID |Code | Data |
* +-----------+---------------+------------------------------------------+
* | | | | |
* (2) (3) (4) (5) (6)
*
* (2) ... MB_TCP_TID = 0 (Transaction Identifier - 2 Byte)
* (3) ... MB_TCP_PID = 2 (Protocol Identifier - 2 Byte)
* (4) ... MB_TCP_LEN = 4 (Number of bytes - 2 Byte)
* (5) ... MB_TCP_UID = 6 (Unit Identifier - 1 Byte)
* (6) ... MB_TCP_FUNC = 7 (Modbus Function Code)
*
* (1) ... Modbus TCP/IP Application Data Unit
* (1') ... Modbus Protocol Data Unit
*/
- TID:事务ID,可以理解成一次通讯事务,收到什么ID,就要回什么ID.Master每次通讯包都会自动加1(直到溢出).
- PID:这个对Modbus来说是0
- Length:后面的数据长度
- UID:一般是从地址地址(下面的配置也可以看到)
2.通讯过程展示
-
master 配置
-
Slave配置
-
收发过程:
能够看到,TID每次都会自动+1,PID一直是0,UID为配置的设备地址,不包含CRC校验码
2.Modbus RTU over TCP
这个其实就是RTU报文,只不过传输方式改成以太网了,而不是传统的串口或者485。不要多想,直接理解成RTU就行了,没区别。