Modbus RTU与Modbus TCP的区别

转自:http://blog.csdn.net/educast/article/details/9177593

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

 MBAP Header长度共7个字节,分别为Transaction identifier(事务标识符),Protocol identifier(协议标识符),Length(长度),
 Unitidentifier(单元标识符)组成,具体如下表所示:
 +------------+---------+-----------------------------+----------------------+----------------------------+
 |   字  段   |  长 度  |         描       述         |     客   户   端     |       服   务   端         |
 +------------+---------+-----------------------------+----------------------+----------------------------+
 | 事务标识符 | 2 Bytes | 标示一个MODBUS请求/响应事务 | 由客户端初始化       | 从接收到的请求数据帧中复制 |
 +------------+---------+-----------------------------+----------------------+----------------------------+
 | 协议标识符 | 2 Bytes |       0 = MDOBUS协议        | 由客户端初始化       | 从接收到的请求数据帧中复制 |
 +-------------+--------+-----------------------------+----------------------+----------------------------+
 |   长  度   | 2 Bytes |      下列各项的字节数       | 由客户端初始化(请求) | 由服务端初始化(响应)       |
 +-------------+--------+-----------------------------+----------------------+----------------------------+
 | 单元标识符 | 1 Bytes | 标示一个已连接在串行线或    | 由客户端初始化       | 从接收到的请求数据帧中复制 |
 |            |         | 其他总线的远程从站连接      |                      |                            |
 +------------+---------+-----------------------------+----------------------+----------------------------+



实际上Modbus协议包括ASCII、RTU、TCP。
标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式。 
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验.
ModbusTCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。


MODBUS TCP和MODBUS RTU的差别不是很大。

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

差别是MODBUS TCP是传输在TCP/IP网络上的,多了一个报文头,少了CRC校验,采用TCP的502端口

RTU多了设备地址和CRC校验

你可能感兴趣的:(工控)