走进工业以太网协议Modbus TCP

2020/6/22 0:44:19 人评论 次浏览 分类:PLC应用  文章地址:http://yunrun.com.cn/tech/3162.html

随着企业信息化进程的深入发展,实现企业上层管理网络与现场控制网络的无缝连接显得越来越重要。在企业管理信息系统中由于以太网技术应用广泛,线缆和接口设备价格相对较低等特点在工业企业综合自动化系统中的资源管理层、执行制造层得到广泛应用,同时已呈现出向下延伸直接应用于工业控制现场的趋势。基于这种发展现状,越来越多的人希望以太网技术能介入过程控制层,广泛取代目前种类繁多、标准不一的现场总线技术,这不仅可以使企业的管理信息系统实现垂直方向的集成,而且能降低不同厂家设备在水平层面上的集成成本。

工业以太网是以太网技术向工业控制领域渗透催生的产物,一般是指技术上与商用以太网(即IEEE802.13或IEEE802.11系列标准)兼容,但在产品设计、材质的选用、产品的强度、适用性以及实时性、可互操作性、可靠性、抗干扰性和本质安全等方面能满足工业现场的需要。工业以太网基于成熟的以太网技术和TCP/IP技术,具有较高实时性和传输能力。


1、现场总线协议Modbus与工业以太网协议Modbus TCP

Modbus现场总线协议是Modicon公司于1978年发明的一种工业控制器的网络协议。通过此协议,控制器相互之间、控制器经由网络和其他设备之间可以进行通信。因为Modbus协议是属于应用层的通信协议,位于OSI模型的第7层。它与物理层的设备和电气接口无关,既支持传统的RS232/RS485通信标准也支持以太网通信标准,所以根据物理层层网络的不同Modbus协议被分成串行链路版本和运行在以太网的Modbus TCP版本。Modbus TCP协议以一种比较简单的方式将Modbus帧嵌入到TCP帧中。IANA(互联网编号分配管理机构)也给Modbus TCP协议赋予TCP端口502,这是其他工业以太网协议所没有的。

2、Modbus协议通信模式

Modbus协议采用请求响应模式,通信方法是对等的。Modbus规定仅客户机能发起查询,服务器仅能对客户机发出的查询消息作出响应。典型的客户机是PC机、可编程仪表、人机界面。典型的服务器是可编程控制器。如果客户机发送请求消息,表示他期望从服务器设备得到响应。同样,当服务器接收到消息,它将建立一应答消息并返回给客户机。

3、Modbus协议数据帧格式

在Modbus串行链路上的所有设备(客户机和服务器)需要配置相同的通信参数和通信模式。串行通信参数包括波特率、奇偶校验等。通信模式包括 ASCII模式和RTU模式。当设备以ASCII模式进行通信时,消息中的每一个8位的字节作为2个ASCII字符传输。当设备以RTU模式进行通信时,消息中的每一个8位的字节分成两个4位的16进制的字符传输。因此在相同的波特率下RTU模式有更高的传输密度,应用也更广。Modbus协议是以帧为单位进行数据传送的,Modbus有三种类型的帧:在串行链路上运行的ASCII帧和RTU帧、在以太网上运行Modbus TCP帧。

①ASCII帧

ASCII帧以“:”冒号字符(0x3A)表示帧的起始,以回车和换行字符(0x0D和0x0A)表示帧的结束。帧中其他的数据只允许为16进制数中的字符0-9 和A-F。帧包含1个字节的起始字符、2个字节的地址单元、2个字节的功能代码、数据段和2个字节的LRC校验字段。网络中的Modbus服务器会不断监听冒号,如果监听到冒号则判断该帧中的地址是否为本机地址,是的话则予以响应。ASCII帧的字符之间的最大间隔为1秒,若超过1秒,接收设备认为发生了一个错误。

②RTU帧

RTU帧以超过3.5个字节的空闲时间开始,以3.5个字节的静止时间结束。帧包含1个字节的起始字符、1个字节的地址单元、1个字节的功能代码、数据段和2个字节的CRC校验字段。帧中的数据允许为任意的数。整个帧必须连续发送,发送期间若出现超过1.5个字符的静止时间,则后面的数据会被认为是新的帧。

③Mobus TCP帧

Modbus TCP没有对Modbus协议本身进行修改,而是采用了一种非常简便的方式将Modbus RTU帧嵌入到以太网的TCP帧中。Modbus TCP帧由MBAP(Modbus应用协议)头和协议数据单元组成。MBAP头包含2个字节的传输标志、2个字节的协议标志、2个字节帧长度、1个字节的地址。协议数据单元包含1个字节的功能代码和数据段。因为考虑到以太网IP包到达的顺序可能与发送的顺序不一致,所以在MBAP中增加了传输标志,Modbus TCP 服务器端(Modbus TCP网关)需要复制它做为对传输请求的响应。MBAP中的协议标志字段为0表示为Modbus协议。长度字段对该字段后的单元标志字段和协议数据单元中的字节数计数。

Modbus TCP帧的目的地址由IP地址所确定,因此不再有专门的地址字段来区分不同的Modbus TCP客户。同时TCP传输是可靠的数据传输方式,因此不再有数据校验。因为Modbus TCP协议支持承载Modbus串行链路版本的RTU帧,所以在MBAP中增加了一个地址字段以区分串行链路中不同的 Modbus服务器,实现串行链路中的路由功能。


4、Modbus协议数据模型

Modbus基本数据模型有四种:开关量输入、开关量输出、寄存器输入、寄存器保持。Modbus所有要处理的数据均放在设备的存储器中。Modbus功能代码定义的各种操作也是针对这四种基本数据模型所进行的操作。Modbus功能代码分成三类:公共功能代码、用户定义的功能代码和保留的功能代码。

Modbus协议作为一个具有悠久历史的、事实上的工业标准,加上其协议内容可以免费获得,因此Modbus的串行链路版本在市场上长期占有主导地位。大量的产品已直接运行或兼容Modbus串行链路版本。许多厂家的PLC(可编程逻辑控制器)、HMI(人机界面)、组态软件都支持它。Modbus TCP 协议的开放性及用户对Modbus协议的熟悉程度再加上协议简单易学,使它比很多受商业利益驱使的协议取得更快的发展,受到众多第三方产品厂商、终端用户、系统集成商的广泛支持。
作者:徐凤亮、史斌斌

相关阅读

工业以太网IP地址使用169.254.X.X
以太网无纸记录仪的嵌入式Web系统发展现状

共有访客发表了评论 网友评论

  客户姓名:
邮箱或QQ:
验证码: 看不清楚?