工控学堂:解读Modbus通讯协议【宜收藏】
时间:2020-09-05 阅读:319
作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用广泛的通讯协议,因为他的开放性、可扩充性和标准化使他成为通用工业标准。
1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,所以今天我们来了解下Modbus通信协议。
Modbus是Modicon公司为其PLC通讯而开发的一种通讯协议。也是个真正用于工业现场的总线协议。Modbus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。
Modbus特点:
(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。
从1979年问世至今,已经成为工业通讯领域的业界标准,初的Modbus仅支持串口,分为Rtu和ACSII两种信号传输模式(一般基于RS485串口通信媒介)。而随着时代的变迁,Modbus新增了TCP版本,可以通过以太网进行通讯,此外Modbus还有一个Modicon的Modbus Plus版本。
Modbus是一种单主站的主/从通讯模式,由1个子站和多个从站组成,允许多个设备连接在同一个网络上进行通讯。
Modbus三种通信协议介绍:
Modbus TCP,以太网,RJ45。
Modbus RTU/ASCII,异步串行通讯,RS232/485/422、光纤、无线
Modbus Plus,高速令牌传递网络,同轴电缆或光缆。
其中Modbus RTU、Modbus TCP常用。
信号传输模式对比
一、RTU与ASCII
1、Modbus ASCII协议拥有开始和结束标记,Modbus RTU没有。
这就使得ASCII协议中对数据包的处理能够更加的方便。
例如:ASCII协议中一个数据包之间的传输间隔可以高达1s(一般不超过1s,超过1s接收设备认为出错)。
RTU协议中规定每两个字节中之间发送或接收时间不得超过3.5倍的字符传输时间,否则超过这一规定时间则会认为是新帧的开始。
2、ASCII协议的可读性强、传输效率低。
由于ASCII协议传输的都是可见的ASCII字符,所以调试阶段会显得更加直观。
但是这同时也是它的缺点,可读性的增加带来的就是通讯传输效率低。例如传输1个十六进制数0xF9,ASCII就要传送“F”和“9”两个字符,其对应的ASCII码是0x46和0x39两个字节,而RTU只需要1个字节就可以完成传输。
而Modbus作为应用于工业领域的通信协议,面向的主要是技术工人和工程师,不需要很强的可读性,反而传输的数据量一般会比较大,所以在工业现场很少会采用ASCII协议。
3、校验程序不同
RTU采用CRC校验,而ASCII采用LRC校验。LRC校验程序相对CRC校验程序简单。两种校验方法会在后续文章中详细介绍。
二、TCP与Rtu
1、概念不同:Modbus是一种标准的工业控制数据交换协议,可以用RTU和ASCII两种方式进行协议数据的互传,RTU是通过二进制数据方式直接传送数据,而TCP是通过将每字节二进制数据转换为固定两位十六进制字符串,再依次串联在一起,以TCP码形式进行数据传送,一般用得多的还是RTU方式。
2、通信方式不同:以太网,对应的通信模式是Modbus TCP。异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是Modbus Rtu或Modbus ASCII。高速令牌传递网络,对应的通信模式是Modbus PLUS。