基于PKS系统的Modbus RTU与OPC数据通讯

2023-07-04 06:23赵国新樊雨轩
仪器仪表用户 2023年8期
关键词:组态串口通讯

李 程,赵国新,樊雨轩

(上海化工研究院有限公司,上海 200062)

0 引言

PKS 系统是霍尼韦尔公司推出的基于批处理、过程控制、SCADA 应用的开放的混合控制系统,作为霍尼韦尔公司旗下一套成熟的DCS 过程控制系统,与业内其他控制系统一样,包含所必须的各种通讯协议,并且开放了OPC(OLE for process control)接口,具有极强的兼容性,可以满足各式各样的通讯需求。集成商和用户可以依据其内嵌的程序对通讯进行组态,达成与其他软件的数据交流。现存在一套高分子量聚乙烯粉料PKS 生产控制装置,其需读取第三方设备数据,并向所在市的市应急管理局内部网络提供关键参数,保证安全生产。本文介绍了PKS 系统作为服务器与作为客户端的第三方设备以Modbus RTU 和OPC两种通讯协议进行通讯所需的软硬件配置。

表1 部分功能码说明表Table 1 Partial function code description table

1 OPC与Modbus RTU协议介绍

1.1 OPC通讯协议

OPC 是用于过程控制的OLE(object linking and embedding),基于OLE、COM(部分对象模型)和DCOM(分布式部分对象模型)技术,是一种运用广泛的工业标准,由超220 家成员的国际组织OPC 基金会管理,常见于各类过程控制与自动化系统中。OPC 最大的特点就是它包含一整套的接口,对象属性以及数据集成方法,这给用户在实际的工业自动化控制中带来了很大的便利;另外,OPC 采用了用户权限访问控制、数据加密技术、防火墙隔离技术和病毒预防技术,大大提高了数据的安全性和保密性[1]。

OPC 采用客户端/服务器模式,即Client-Server(C/S)结构,服务器Server 负责数据的管理,客户端Client 负责用户交互。客户端与服务器通过由交换机构建的局域网相连,客户端接收用户的请求后主动向服务器发出请求指令,再由服务器进行被动地响应,对数据库进行查询或其它操作后将反馈发送至客户端,客户端再将数据进行处理后呈现给用户。对一个服务器来说,能对应多个客户端;同理,单个客户端也可以连接多个服务器。这种模式交互性强、响应速度快、存取数据安全,善于处理大批量数据。

OPC 基金会推出了统一构架UA(Unified Architecture)支持分布式系统间的OPC 通讯,其包含DA(数据访问)、HAD(历史数据访问)、A&E(报警通知)。UA 框架将OPC 通讯的数据获取方式进行了统一,减少了用户调用数据次数;其还支持复杂的数据结构,提供了可扩展的元数据模型;其提供基于不同编程平台的开发包,不仅支持Windows 系统,还支持Linux 和嵌入式设备;UA 框架还使用公共密钥体系(PKI)和X509v3 证书等安全技术,定义了一套完善的安全机制[2]。

1.2 Modbus RTU通讯协议

Modbus 是工业领域内作为业界标准的一类串行通讯协议。Modbus 一次通讯其发送和接收的数据包由若干帧组成,协议定义了这些帧的意义,控制器按照协议解释这些帧数据来实现通讯[3]。Modbus 细分ASCII、RTU、TCP 等协议,其中Modbus RTU 是一种基于Modbus 协议被广泛运用于工业监控领域的通讯协议,使用RS-232、RS-422、RS-485串行口(Serial)或Ethernet 设备进行通讯,得到业内控制软件的广泛支持。

Modbus RTU 使用主/从技术在设备间进行通讯,即Master/Slave 架构。在通讯节点中,只有一个节点作为Master 节点,其余节点作为Slave 节点,每个Slave 节点必须有唯一的地址。通常只有被指定为Master 节点的节点可以发送包含地址的指令,而所有Slave 节点都会收到指令,但只有对应地址的Slave 节点会执行并回应指令,Master 节点和各Slave 节点交替发送信号,即半双工通讯。

Modbus RTU 有着严格的通讯格式,以16 进制进行表达,每个主机Master 和从机Slave 发送的通讯信息帧都遵循以下格式:地址码 功能码 数据区 校验。地址码:第一个字节,8Bit,代表从机Slave 在通讯节点中的地址ID,从1 到247(F7H),每个从机Slave 的地址码必须唯一。功能码:第二个字节,8Bit,为要求从机Slave 执行的命令。数据区:随功能码的不同而改变格式,N*8Bit,主机Master和从机Slave 对于同一个功能码的格式不同,以03H 功能码为例,数据帧格式表见表2。校验:最后两个字节,16Bit,采用CRC(循环冗余检测)标准进行校验。在同样波特率下,可比ASCII 方式传送更多的数据[4]。

表2 主机Master和从机Slave03H功能码数据帧格式表Table 2 Master and slave slave03H function code data frame format table

表3 常见错误码表Table 3 Common error codes table

CRC 码由发送设备计算,接收信息的设备再重新计算接收到信息的CRC 码,比较计算得到的CRC 码是否与接收到的相符,如果两者不相符,则表明出错[5]。地址错误或Modbus CRC 校验错误的话从机Slave 不会返回信息帧,其他错误从机Slave 会返回错误码,错误数据帧的格式如下:地址码 功能码 错误码 校验。错误数据帧中的功能码最高位置位,即在原本功能码上增加80H。错误码:第三个字节,不同错误码代表不同的错误类型,方便调试人员查询错误原因。

2 系统硬件选择与配置

OPC 通讯所需硬件较为简单,只需PKS 服务器与交换机通过网线相连,通过交换机再与第三方服务器进行连接。为保证带宽及通讯速率,所用网线均采用超五类网线。

Modbus RTU 通讯所需硬件较为复杂,需要使用串口服务器对所有第三方设备的通讯信号进行分类汇总,故PKS服务器通过网线与交换机和串口服务器相连。以本套控制系统为例,采用16 口MOXA NPort 5630-16 型号串口服务器,最多支持16 套第三方设备接入。而串口服务器与第三方设备采用2 线RS-485 进行连接,使用RS-485 专用通讯双绞线,MOXA NPort 5630-16 型号串口服务器的16 个通道统一使用RJ45 插座,RS-485 通讯线的正负端分别接RJ45 插头的6 号引脚和5 号引脚。在通讯正常的情况下,串口服务器正面正在使用的串口所对应的Tx 和Rx 指示灯将周期性闪烁,闪烁周期取决于该串口所有信号的最短读取周期;如若Tx 和Rx 指示灯常亮,请检查引脚接线。

3 软件组态

3.1 OPC DCOM配置和客户端连接

一般来说,进行OPC 通讯前需对服务端Server 和客户端Client 安装相应软件并进行DCOM 配置。由于PKS 系统作为服务端Server 自带完善的OPC 系统设置,无需额外安装软件或配置DCOM,故只需对客户端Client 进行设置。

首先,客户端Client 所使用的计算机账号名和密码需与PKS 服务器管理员账号相同。然后,需要安装OPC Core Components Redistributable 和OPC Core Components 2.00 SDK。在确保软件安装完成后改变网口设置,设为静态IP地址,将客户端Client 的网段设为PKS 服务器所用的网段,并且保证IP 地址未冲突。

在计算机组件服务界面中,找到“组件服务”菜单下的“计算机”中“我的电脑”,在“我的电脑”的属性窗口“默认属性”栏下启用分布式COM 服务并将默认身份验证级别调至连接,默认模拟级别为标识;在“默认协议”栏下,选择默认的协议为面向连接的TCP/IP;在“COM 安全”栏下,将“访问权限”和“启动和激活权限”的限制和默认值进行设置,添加所需的用户和权限(一般为Everyone、Administrator 和Anonymous Logon)。在组态服务界面的“我的电脑”下面找到“DCOM 配置”和“OpcEnum”,在“OpcEnum”属性窗口的“常规”栏取消身份验证级别,“位置”栏中选择在此计算机上运行应用程序,在“安全”栏中各项权限中添加用户和权限(和“我的电脑”的“COM安全”栏内添加的用户一致)。

然后,进行本地安全策略的配置。在本地安全策略界面中,“网络访问:本地账户的共享和安全模型”策略改为经典,“网络访问:将Everyone 权限应用于匿名用户”策略改称为启动;最后,是防火墙的配置。将所有的OPC Client和OpcEnum 程序添加至例外程序,然后把对应的TCP/IP端口添加至例外端口。

图1 硬件示意图Fig.1 Hardware schematic diagram

图2 客户端Client配置流程图Fig.2 Client configuration flowchart

图3 PKS系统SCADA通道监控界面Fig.3 SCADA Channel monitoring interface of PKS system

在客户端计算机上启动所需使用的OPC 客户端软件,输入PKS 服务器的计算机IP 地址,然后Prog ID 选择“HWHsc.OPCServer”后进行连接,连接成功后在项目Item中选择ASSET 下特定组中的指定点point,根据点的后缀显示有关该点的不同数据。

3.2 PKS SCADA点组态

Configuration Studio是PKS系统自带的一体化组态软件,使用其内嵌的SCADA Control 建立SCADA 点对来自第三方设备的通讯信号进行分类和显示。在浏览器中输入MOXA串口服务器的默认IP 地址,进入串口服务器配置界面,在网络设置Network Settings 中修改串口服务器的IP 地址,让其IP 地址与PKS 服务器的IP 地址处于同一网段;在串口设置Serial Setting 中,对用到的串口进行设置,修改波特率、数据位、停止位、校验类型、流控制方式,是否使用FIFO 存储器、物理接口类型。在操作设定Operating Setting中,修改操作模式Operation mode 为TCP Server,并记录本地TCP 端口号Local TCP port。

建立通道channel,在Build Channels 界面新建一个项目Item,该项目新建时选择使用Modbus 协议。打开新建的项目Item,在端口“Port”标签页中,修改端口类型“Port Type”为终端服务器“Terminal Server”,协议“protocol”内选择“Modbus RTU”,终端服务器TCP 主机名“Terminal Server TCP Host Name”内填入串口服务器的IP 地址,终端服务器端口编号“Terminal Server TCP Port No.”中输入被分配的串口服务器端口号。

建立控制器controller,在Build Controllers 界面新建一个项目Item,该项目新建时选择使用Modbus 协议。分配Modbus 地址ID 至PLC Station ID,然后在Data Table 内选择数据寄存器类型(一般为保持寄存器Holding Register)。

建立点point,在Build Points 界面新建一个项目Item,该项目新建时选择使用点类型。在Main 栏中分配点类别Asset,不同类型的点组态内容不一致,根据需求组态。保持寄存器的Modbus 地址从40001 开始,由于在controller中控制器组态里Data Table 中已经选择了Holding Register,在点组态中Address(格式为:控制器controller 名称 数据地址 数据类型或数据位)内的“数据地址”从0001 开始,数字量点最后采用数据位(0 ~15,共16 位)来进一步确定数据地址,模拟量点最后采用数据类型来定义数据,如无格式转换采用0、32 位浮点数使用IEEEFP(高低位互换,输入的数据地址需+1)或REAL 等。

选中组态好的channel、controller 和point 进行下载,而后可以在Experion Station 的CONFIGURE 菜单System Hardware 条目中SCADA Controllers 按钮进入SCADA 通道监控界面,点击Name 列中的控制器名或Channel 列中的通道名可详细查看通讯情况并做更改(如启停控制器或通道)。

4 结束语

所采用OPC 和Modbus RTU 通讯的PKS 控制系统已经正常运行了半年,期间如火炬、焚烧炉、乙烯制冷装置等第三方设备运行正常,PKS 系统通过Modbus RTU 通讯协议正常读取第三方设备数据,并通过OPC 接口向所在市的市应急管理局内部网络提供关键参数,系统丢包率极低,用户反馈良好。

猜你喜欢
组态串口通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
浅谈AB PLC串口跟RFID传感器的通讯应用
基于PLC及组态技术的恒温控制系统开发探讨
基于PLC和组态的智能电动拧紧系统
通讯简史
PLC组态控制在水箱控制系统的应用
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信