ModBus TCP(Transmission Control Protocol)是ModBus协议的一种扩展,它使用TCP/IP协议进行通信,可以在局域网(LAN)和广域网(WAN)之间传输数据。ModBus TCP支持多种网络设备,包括计算机、服务器、交换机、路由器等。它适用于远程监控和控制,常用于工业网络和物联网应用。该协议的物理层、数据链路层、网络层、传输层都是基于TCP协议,它只是在应用层将ModBus协议封装进去。然后接收端将该TCP数据包拆包后,重新获得原始ModBus帧,然后按照ModBus协议规范进行解析,并将要返回的数据包重新封装到TCP协议中,发回至发送端。与串行通信的传输格式不同,TCP模式去除了附加地址和校验,增加报文头,如下图所示。
ModBus ASCII(American Standard Code for Information Interchange)采用ASCII码传输文本信息,每个8Bit 字节都作为两个ASCII字符发送。相对ModBus RTU而言,它的传输效率较低,但具有更好的可读性。ModBus ASCII也使用串行通信,并支持RS232和RS485两种接口,适用于短距离通信。在ASCII模式下,每个8位的字节拆分为两个ASCII字符进行发送,消息帧以英文冒号“:”开始,以回车和换行(CRLF)符号结束。例如十六进制数0xAB,会被分解成ASCII字符“A”和“B”进行发送。