工业控制系统Modbus通信的规划与实施

2020-04-13 00:39黄达
石油化工自动化 2020年2期
关键词:应用层通信协议主站

黄达

(国核自仪系统工程有限公司,上海 200241)

1 概 述

现代工业控制系统的架构早已网络化,随着工业控制系统性能的提升,网络化需求也在不断演进,其主要特征表现为: 各类控制系统的网络互连与互操作;控制器或控制站与远程I/O站的通信连接;现场总线应用的日趋广泛;与管理信息系统的数据集成。因此,建立不同控制系统之间的通信,已成为自动化工程实施中的常态化需求,而Modbus则是最为常用的通信方式之一。

2 Modbus通信协议

2.1 协议简介

Modbus 通信协议是Modicon 公司1979年提出的一种报文传输协议,它在工业控制领域中得到了广泛的应用,已成为一种事实上的工业标准。不同厂商生产的控制设备通过 Modbus协议可以进行数据传输,实现集中监控。许多工控产品,例如: DCS,PLC,变频器,人机界面和自动化仪表等,大都支持Modbus 协议。Modbus网络体系结构如图1所示。

Modbus通信协议包括3类、4个子协议,分别是:

1)基于串行链路的Modbus RTU与Modbus ASCII通信协议。

2)基于TCP/IP网络的Modbus TCP通信协议。

3)基于令牌环网的Modbus Plus通信协议。事实上,Modbus协议只定义了OSI模型的第2和7层,即: 应用层和数据链路层。它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信,并将串行链路上的协议标准化,以便在1个主站和1个或多个从站之间交换Modbus请求。

4)Modbus 应用层报文传输协议。提供了连接于总线或网络的设备之间的客户机/服务器通信。

图1 Modbus网络体系结构示意

5)Modbus串行链路协议。提供了连接于串行链路的设备之间的主/从通信,在Modbus 串行链路上,客户机的功能由主节点提供,而服务器功能由从节点实现。

对于不同类型的Modbus协议,其应用层基本相同,但其他层各不相同。Modbus RTU与Modbus ASCII通信协议只有OSI模型的第1,2和7层,各层使用的协议分别为: 物理层采用RS-485或RS-232协议;数据链路层采用Modbus串行链路协议;应用层采用Modbus 应用层报文传输协议。Modbus TCP通信协议拥有OSI模型的第1,2,3,4和7层,各层使用的协议分别为: 物理层采用以太网物理层协议;数据链路层采用以太网IEEE802.3协议;网络层采用IP协议;运输层采用TCP协议;应用层采用Modbus 应用层报文传输协议。

2.2 协议描述

通用 Modbus帧的结构如图2所示。Modbus 协议定义了1个与基础通信层无关的简单协议数据单元(PDU),特定总线或网络上的Modbus协议映射可以引入一些附加域,从而构成应用数据单元(ADU)。

图2 通用Modbus帧结构示意

Modbus是1个请求/应答协议,并且提供功能码规定的服务。Modbus功能码是Modbus请求/应答PDU的关键元素。有三类Modbus 功能码,分别是: 公共功能码、用户定义功能码和保留功能码,其取值为1~127的十进制整数。常用公共功能码定义见表1所列。

表1 常用公共功能码定义

1)公共功能码是由Modbus组织确认的、被确切定义的、唯一的功能码,包含已被定义的公共功能码和保留给未来使用的功能码。

2)用户定义功能码。Modbus分配有2个用户定义功能码的区域,即: 65~72和100~110的十进制数。用户可以自行选择和实现的1个功能码,但不能保证被选功能码的使用是唯一的。

3)保留功能码。某些公司在传统产品上现行使用的功能码,不作为公共使用。

对于Modbus的4种通信子协议而言,Modbus Plus仅用于Modicon公司的PLC中,Modbus ASCII用于串行通信链路不稳定的情况下,而Modbus RTU与Modbus TCP则是最为常用的子协议。Modbus通信协议是一种公开的协议,这也是它得到广泛应用的原因之一。目前,Modbus通信协议已有国家标准(GB/T 19582—2008),而ModbusTCP通信子协议,已被发布为国际标准(IEC 61158)。

3 Modbus通信的实施

3.1 基于工程角度的协议理解

尽管Modbus 通信协议是公开的,但由于协议的描述主要是面向产品研发人员,故内容繁多、术语深奥,非通信专业出身的控制工程师很难理解。因此,基于工程角度的协议理解至关重要,也非常实用。

1)功能码的有限性。功能码具有唯一性,选定了功能码就意味着确定了要执行的操作及数据对象。例如: 功能码02,就是对离散变量输入(DI)的存储区进行读操作。

现行的公共功能码共21个,但常用的功能码只有8个(参见表1),大多数工业控制系统只支持有限的功能码。例如: Siemens S7-200 PLC支持表1中的全部8种功能码;国核自仪系统工程有限公司的NuCON-P DCS 支持01,02,03,04,15和16共6种功能码;而UPS一般只支持02和04两种功能码。极端情况下,有些工业控制系统只支持03和06两种功能码,但只要有布尔量的打包指令,仍可以实现2个控制系统之间的双向Modbus通信。

2)Modbus 通信的可读化。Modbus 通信帧比较抽象,还要指定数据读/写的地址,直接使用比较困难。为解决该问题,工业控制系统都提供了相应的Modbus 通信指令,以支持Modbus 通信的可读化。Modbus 通信指令形态各异,但核心功能只有两点:

a)以可读的形态提供给编程者,定义地址、功能、数据类型、传输速率、差错校验方式等通信要素。

b)根据控制系统自身的指令体系,给出数据读/写的内存地址。实质上,Modbus 通信指令建立了一种映射,提供了标准Modbus 通信帧与控制系统自身的指令体系以及内存地址之间的对应关系。

3)不违反Modbus 通信协议的个性化约束。在不违反Modbus 通信协议的前提下,一些工业控制系统规定了自己的通信个性化约束。例如: 只有在支持01功能码的情况下,才能使用05功能码,在实施过程中,有必要了解该类个性化约束。

4)功能码数制导致的二义性。功能码具有唯一性,但它允许使用十进制或十六进制来表示,在应用中有时会产生二义性。因此,当通信双方论及功能码时,要说明使用何种数制来表征功能码,以避免误导,造成交流困难。

3.2 通信介质与通信设备的选择

Modbus RTU和Modbus ASCII的物理层主要采用RS-485协议,通信介质为有屏蔽的两芯双绞线,也支持光纤连接。Modbus TCP的底层协议为以太网协议,通信介质为无屏蔽的八芯双绞线,也支持光纤连接。Modbus的通信设备主要有以下3类:

1)485集线器。485集线器,又称485HUB,是支持RS-485物理层协议的通信设备,使用它可以构成Modbus RTU,Modbus ASCⅡ或Profibus-DP通信网络。485集线器的基本结构: 设备侧多个RS-485端口,监控侧1个RS-485/RS-232端口进行信号的转发,无协议转换功能。485集线器的核心功能是: 将设备侧Modbus从站的手牵手连接方式变换成星型连接方式,方便布线,并提高了通信链路的可靠性。

2)串口服务器。串口服务器是一侧支持RS-485物理层协议、另一侧支持以太网协议的通信设备,使用它可以将串口通信设备方便地接入TCP/IP网络,实现数据的双向透明传输,进而构成长距离的Modbus RTU,Modbus ASCⅡ或Profibus-DP通信网络。串口服务器的基本结构: 设备侧多个RS-485端口,监控侧1个以太网端口,内置CPU、实时操作系统、支持RS-485和TCP/IP协议。串口服务器的核心功能是: 将设备侧485从站的手牵手连接方式变换成星型连接方式,方便布线,并提高通信链路的可靠性;将485总线的数据帧和TCP/IP网络的数据报文进行双向转换,借助TCP/IP网络进行数据传输,构成长距离的485总线,实现Modbus RTU,Modbus ASCⅡ或Profibus-DP的远程通信。特别地,当设置成Real COM模式时,可以将监控计算机侧的以太网口仿真成虚拟串口,建立虚拟串口对现场串口设备的透明映射。

3)Modbus通信网关。Modbus通信网关是一侧支持Modbus RTU或Modbus ASCⅡ协议,另一侧支持以太网协议的通信设备,使用它可以将Modbus串口通信设备方便地接入TCP/IP网络,实现数据的双向透明传输。Modbus通信网关的基本结构: 设备侧多个RS-485端口,监控侧1个以太网端口,内置CPU、实时操作系统、支持Modbus RTU/ASCⅡ和Modbus TCP协议。Modbus通信网关的核心功能是: 将设备侧Modbus从站的手牵手连接方式变换成星型连接方式,方便布线,并提高通信链路的可靠性;完成Modbus RTU/ASCⅡ和Modbus TCP之间的协议转换;当Modbus通信网关设置为Modbus TCP服务器时,可以支持多达16个Modbus TCP客户端的连接。

在建立Modbus通信时,通信设备的选择需要综合考虑布线方式、通信距离、监控侧应用程序的接口方式以及设备成本等因素。例如: 如果监控侧应用程序只提供了Modbus RTU接口,就应当选择串口服务器作为通信设备。

3.3 Modbus的调试工具

Modscan32是一款第三方的Modbus调试软件,它免安装、已汉化、小巧(2.2 M)、运行在Windous环境下,可以将个人电脑模拟成Modbus主站,使用Modbus RTU或Modbus ASCII协议,与Modbus从站通信。该调试软件的主要功能是: 排除故障,可以直接检验通信链路的连接和Modbus从站侧的状态;核对数据,可以直观地观察一段连续的寄存器地址,检查核对数据点;确定配置,调试无误后直接将配置参数转移到工业控制系统里。

4 应用实例

在某垃圾发电项目中,需要建立国核自仪系统工程有限公司的NuCON-P DCS(主站)与Siemens公司的S7-200PLC(从站)之间的双向Modbus通信,这属于异构控制系统的通信问题,需要在不同的控制平台里分别进行配置和测试。Modbus通信方式如图3所示。

图3 Modbus通信方式示意

在该实例中,用于旋转喷雾器控制的从站为S-200 CPU224XP,双RS-485端口,采用自由端口通信协议,支持Modbus通信;主站为NuCON-P配置的Modbus通信卡,4通道,它与旋转喷雾器PLC之间的通信独占1个通道。尽管DCS与PLC两侧的通信组态和通信指令形式上大相径庭,但本质上是一致的,基本包括以下几个部分:

1)通信参数。从站侧: 从站地址26,波特率9 600 bit/s,奇偶校验方式(偶校验)等;主站侧: 9 600 bit/s,奇偶校验方式(偶校验)等。

2)操作参数。主站侧: 隐含给出功能码,本例中:“只读: 3区”意味着使用功能码04。

3)存储地址。从站侧: 给出寄存器区起始地址(间接寻址方式&VB1000);主站侧: 给出寄存器区间(00000~00015)、寄存器数量(16)和映像区位置(AI: 155~170)。

4)辅助参数。主要在从站侧: 模式选择参数、限值参数、执行标志、完成标志、错误代码等。

5 结束语

建立异构控制系统之间的Modbus通信是自动化工程中常见的案例,也是技术难点之一。因此,操作工程师不仅要对Modbus通信协议的基本原理有较深理解,还要熟悉通信两端控制系统的硬件结构与指令系统,这些经验均需要在实践中不断积累与提升。

猜你喜欢
应用层通信协议主站
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
车载网络通信协议标准化问题研究
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
多表远程集抄主站系统
县级配电自动化主站系统的设计
电动汽车充电接口及通信协议新国标发布
物联网技术在信息机房制冷系统中的应用
PLC控制技术在皮带上料中的应用
SIP协议系统模型的形式化研究