Modbus续篇二:Modbus TCP、Modbus RTU及Modbus ASCII的区别

Modbus续篇二:Modbus TCP、Modbus RTU及Modbus ASCII的区别

Modbus协议包括ASCII、RTU、TCP,TCP和RTU协议非常类似,只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

MBAP Header长度共7个字节,分别为Transaction identifier(事务标识符),Protocol identifier(协议标识符),Length(长度),

Unitidentifier(单元标识符)组成,具体如下表所示:

Modbus续篇二:Modbus TCP、Modbus RTU及Modbus ASCII的区别

Modbus TCP、Modbus RTU和Modbus ASCII的区别

对于不同类型的网络,Modbus的第7层实现是一样的,区别在于下层的实现方式,常见的有TCP/IP和串行通讯两种。

Modbus TCP基于以太网和TCP/IP协议,Modbus RTU和Modbus ASCII则是使用异步串行传输(通常是RS-232/422/485)。

Modbus续篇二:Modbus TCP、Modbus RTU及Modbus ASCII的区别

对于Modbus TCP而言,主站通常称为 Client,从站称为 Server;而对于Modbus RTU和 Modbus ASCII来说,主站是 Master,从站是Slave。

如上图所示,串行传输的物理层是 RS-485或 RS-232,数据链路层是Modbus的串行传输协议;Modbus TCP的1、2、3、4层实现和日常所见的以太网、因特网一样。Modbus默认采用的TCP端口号是502。

RTU 和 ASCII 的区别

RTU模式下,一个字节的数据,传输的就是一个字节。ASCII模式下,同样一个字节数据用了两个字节来传输。

例如,要传输数字0x5B,RTU传输的是0101 1011(二进制),而ASCII传输的是00110101和01000010。可见,ASCII传输的速率是RTU的一半。

ASCII模式采用LRC校验,RTU模式采用16位CRC校验,由此可见:

1、Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验。

2、ModbusTCP 模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

二者相同的地方是:应用数据单元是一致的;

差别是:Modbus TCP是传输在 TCP/IP网络上的,多了一个报文头,少了CRC校验,采用TCP的502端口,RTU多了设备地址和CRC校验。

关于 Modbus协议,就 po到这了,更多专业的 Modbus 相关知识,有连接,在评论第一条,感谢大家的关注支持,欢迎转发!


分享到:


相關文章: