Modbus RTU与Modbus TCP的区别是什么?
Modbus是一种开放的标准,是工业制造环境中广泛使用的网络协议,它用于在设备之间建立主从/客户端 - 服务器通信。Modbus有很多协议选项,但最常用的两种是Modbus RTU(远程终端单元),串口(RS232或RS485)协议或Modbus(TCP/IP)传输控制协议和Internet协议。
Modbus RTU与Modbus TCP的区别是什么?
在工业现场一般都是采用Modbus RTU协议,一般大家说的基于串口通信的Modbus通信协议都是指Modbus RTU通信协议。
1、传输方式不同
RTU协议需要将控制器设置成RTU模式,用二进制数据的传输方式就可以直接传送数据。
使用RTU协议传输的数据会有规定的间隔时间,每传输3.5个字节就会先停止其他数据的传输,等第一个字节传输完成后,下一个字节才能继续传输,如果一个新的字节接着上一个字节传输并且刚好凑成了3.5个字,那么设备就会自动将这两个字节当作是一个字节,CRC码检验时就会出错。
TCP协议在以太网的物理层上工作,是传输层第四层的协议,它先将每字节进行二进制传输再转换为十六进制的两个字节,依次这样操作将转换好的字节串联在一起。
2、硬件接口不同
RTU协议使用的是RS233、RS422、RS485的串行接口。
串行接口整个操作过程比较方便,通过两个引脚就可以通迅,这两个引脚分别为Rx和Tx,它们的用途是用来传送和接收数据。
串行接口默认的波特率为9600、奇偶校验为否、数据位为8、 停止位为1.
从表现形式和结构来看,RTU协议的使用度比TCP协议更广泛。
TCP协议使用的是以太网接口,能直接连接网络,连接后它可以自行与其他的网络设备联系并确定一种目前最简便的工作方式。
以太网接口的工作模式分为全双工模式和半双工模式。
以太网接口根据类型可以分为传统接口和快速接口,具体有SC光纤的接口、RJ45的接口、AUI的接口、FDDI的接口、BNC的接口和Console的接口。
3、校验码不同
RTU协议中为了检验整个数据的内容要用到16位的CRC校验,这个校验分别计算传输端的和接收端的帧内容,两个CRC值比较出来是相符合的就接收数据,若不相符就拒收这个数据并报告到上级设备。
TCP协议在连接时有着“确认对方信息”、“排序数据”、“控制数据流量”、“避免阻塞”的四个步骤,这样的连接协议相对来说会比较可靠,所以不需要再用额外的校验码去检验数据的帧内容。
4、指令内容不同
RTU协议的指令内容有五个字节,分别为从站地址、功能码、数据起始地址、数据数量量和CRC检验。
例如01、03、00 00、00 02、C4 0B。
TCP协议的指令内容在RTU指令内容的基础上增加了一个MBAP报文头,删除了CRC校验。
例如00 00 00 00 00 06 ff 03 00 00 00 02.其中00 00 00 00 00 06 ff七个字节为MBAP报文头。
5、传输速度不同
使用RTU协议因使用的是RS232、RS422、RS485这样的串行接口,因此在传输速度上会比较慢,
使用TCP协议时的传输速度较快,如果想要更快的速度可以连接PLC总线的方式去扩展以太网模块的范围,但对于许多设备来说并不需要这么快的速度,速度过快,设备向上级设备报告数据的次数就会变多间接增加了设备的工作量。
RTU协议的推出早于TCP协议,随着网络环境的发展,TCP协议凭借着RTU协议没有的功能开始渐渐超越RTU协议,但目前为止,RTU协议的使用度还是要高于TCP协议。
以上就是Modbus RTU与Modbus TCP的区别了,Modbus RTU和Modbus TCP/IP之间最基本的区别在于Modbus TCP/IP在以太网物理层上运行,而Modbus RTU是串行级协议。Modbus TCP/IP还使用6字节标头来允许路由。尝试使RS485网络正常工作可能会遇到很多问题。与以太网设备相比,必须处理电线终端问题,网络终端问题和更多配置问题。