石春竹,韩庆敏,李末军
(华北计算机系统工程研究所,北京 100083)
面向服务的物联汇聚平台的研究与开发
石春竹,韩庆敏,李末军
(华北计算机系统工程研究所,北京100083)
针对离散制造业现场设备层与上层应用系统(如ERP,MES,PLM系统)之间信息流不顺畅、数据结构异构、信息中转次数多、系统集成复杂度高的问题,提出了一种面向服务的物联汇聚平台,采用OPCUA技术使工业异构系统互联,为智能制造体系提供工业物联网平台系统解决方案。设计了灵活多样的驱动模块解决现场设备及系统异构问题,基于OPCUA地址空间的数据组态模块解决数据结构不统一的问题,最终实现数据及文件的跨层传输,简化系统集成复杂度。通过OPCUA客户端程序与Modbus模拟器程序测试,系统运行良好。
SOA;OPCUA;地址空间;通信接口;文件传输;ModbusTCP协议
智能制造已成为当今世界制造业发展的新趋势,融合信息化与自动化,利用新一代信息技术,构建一个基于数据自动流动的状态感知、实时分析、科学决策、精准执行的闭环赋能体系[1],用来解决生产制造、应用服务过程中的复杂性和不确定性问题,提高资源配置效率,实现资源优化才是智能制造的基础。智能制造的基础是信息的互联互通,而感知和自动控制是数据闭环流程的起点和终点。现今制造企业产线现场设备的通信协议、通信接口及采用的数据结构皆为异构结构,生产管理层信息化系统及其以上层次的系统若要采集现场设备上的数据,就必须对每个设备开发特定的接口,工作量大,管理复杂。另一方面,制造企业现有的信息系统层次化分明,信息必须层层传递,如采集信息要到达应用层ERP系统,就必须要经过SCADA、MES系统,这使信息中转次数多,系统集成复杂度增高。为减少信息中转次数、降低系统集成复杂度,未来的信息系统架构趋于扁平化、网状化,系统间交换的不会再是简单的数据项,而是根据各行业信息模型结构化的数据。这也是实现系统间点对点自主通信的基础。
OPC UA技术是实现上述问题的有力工具,其面向对象式的建模功能、面向服务的架构,都能极好地适应未来工业物联的要求[2]。本文设计了一个面向服务的物联汇聚平台,通过OPC UA标准接口实现现场设备到上层应用之间的互联互通,平台可以支持Modbus RTU、Modbus TCP、IEC60870-5-104等标准通信协议,实现制造现场的互联互通。本文主要通过Modbus TCP实现设备与物联汇聚平台的互联互通,介绍平台的设计及实现过程。此平台能够利用Modbus TCP协议从设备上采集数据,并依据OPC UA技术将采集到的数据组态为地址空间,统一数据结构,提供访问服务给提供OPC UA客户端的上层系统,实现跨层传输信息,且支持文件的采集与下发。
物联汇聚即将传感器、专用设备、嵌入式终端系统、智能控制系统、通信设施紧密地联系在一起,形成一个智能网络。随着新一代信息技术与先进制造技术的高速发展,我国智能制造装备的发展深度和广度日益提升,智能制造对物联汇聚的需求越来越多,物联汇聚成为实现智能制造的重要支撑[3-6]。
面向服务的架构是一种用于创建应用程序的软件架构,这种架构将一些松耦合的、黑盒式的组件进行组合,发布为明确定义的服务,继而实现业务流程或服务。
采用面向服务架构的软件具有以下优势:可重用,且不局限于重用底层组件,还可重用高层的业务服务,可保证企业业务服务的一致性,还能消除冗余,使程序具有可拓展性、一致性和可维护性。SOA使用特定的、行业认可的标准开发一些接口,使SOA中各种组件可以实现相互通信[7]。本文用到的OPC UA采用了SOA,为应用程序之间提供了互操作的、平台独立的、高性能的、可拓展的、安全和可靠的通信。
3.1总体结构设计
此平台先利用通信驱动从设备上采集数据,通过解析协议得到生数据,然后将采集得到的数据赋值给可组态的OPC UA地址空间中对应节点。整个物联汇聚平台作为OPC UA Server为其他OPC UA客户端提供数据访问服务。系统结构图如图1所示。
图1 系统结构图
采集程序主模块负责管理通信通道,可实现通道的建立、维持、终止等,驱动层主要负责各种驱动报文的收发、解析,采集系统参数库主要负责存储设备参数、所用通信协议具体参数、具体的采集模拟量、数字量等组态信息。
地址空间定义了多种支持不同驱动的设备类型,各个设备类型下配置了不同的配置变量和五种典型的采集数据类型。地址空间可用设备类型建立设备对象,并使用几种采集数据类型配置具体采集点。
3.2数据采集模块
数据采集模块能从多种不同设备上采集数据与文件,并将数据与文件下发到现场设备,实现应用程序与现场设备之间的双向通信。程序可采集AI、AO、DI、DO、STRING类型的数据,并能够对与设备通信的链路进行管理,包括建立及断开链路、配置链接参数、诊断链路故障等。一个链路可以管理多个采集数据设备和一个采集文件设备。采集数据部分监控对象层次关系如图2所示。
图2 监控对象层次关系图
3.2.1ModbusTCP通信驱动
(1)Modbus TCP协议简介
Modbus TCP是基于以太网TCP/IP的Modbus通用通信协议,已经广泛应用于当今工业控制领域,物理层接口是以太网口,采用Master/Slave(主/从)方式通信,提供不同的功能码区分不同的功能[8]。功能码是该协议的协议数据单元中的元素。本文主要使用了1、5、3、16等功能码来完成采集数据的功能。Modbus请求和响应带有6个字的前缀,如图3所示。
图3 Modbus协议帧格式
示例“以4的偏移从UI9读1寄存器”返回5的值如下:
请求:00 00 00 00 00 06 09 03 00 04 00 01
响应:00 00 00 00 00 05 09 03 02 00 05
(2)Modbus TCP协议在此系统中的应用
Modbus协议报文格式类设计:
public class ModbusMessage {
static int MAXLENGTH=255;
//最大长度
public byte[] buff = null;
//消息帧
public int length = 0;
//帧长度
//(读)操作构造函数,参数分别是功能码,设备ID,起始地址,读取数量
public ModbusMessage (int funCode,int deviceID,int beginAdd,int readCount){…}
//(写)操作构造函数,参数分别是功能码,设备ID,起始地址,线圈或寄存器数量,需要写的数据
public Message(int funCode, int deviceID, int beginAdd, int countCoilRegister, int[] value){…}}
Modbus协议收发报文类设计:
public class SendAndRecieve{
private Socket s = null;
private byte[] sendBuffer = null;
public SendAndRecieve(Socket s,byte[] sendBuffer){…}}
在OPC UA服务器的地址空间中创建OPC UA节点后,将与Modbus寄存器信息(寄存器类型、地址、长度)建立关联,之后会等待节点请求。若为读写请求,则依据节点对应的Modbus寄存器信息,生成Modbus命令,即通过将参数传递给读、写操作构造函数创建对应的ModbusMessage类的对象。再通过SendAndReceive()方法将报文发送给设备。随后,通过SendAndReceive()方法接收设备返回的报文。解析后得到寄存器的当前值,赋值给用户请求的指定OPC UA节点。
3.2.2文件传输通信驱动
(1)文件传输驱动简介
文件传输通信驱动包括两部分:文件接收及发送模块和文件传输代理程序。文件传输代理程序运行在要传输文件的设备上。搭载了文件传输代理程序的设备,可与本物联汇聚平台进行文件上传与下发。本文中用一台PC模拟一台可上传文件的设备,实际运用时可结合设备开放的接口与本文的物联汇聚平台的文件传输接口进行二次开发,以实现文件传输功能。
文件传输通信驱动可实现采集设备上指定格式的文件,包括文件名称、大小、最后修改日期。上述属性可实现订阅。有传输正确性校验与传输失败报警。采集文件部分还可刷新到能传输文件的设备,且可下发文件到该设备,通过控制设备的是否可接收文件属性实现。
(2)文件传输驱动具体设计
文件类设计:
public class FlieInfor {
String fileName;
int fileSize;
Data lastModifiedTime;
//最后修改时间
String sender;
String receiver;}
文件传输机制:此物联汇聚平台将文件下发到设备时,先从系统参数库中获取该设备是否支持文件下发的属性,若该属性为真,则获取其IP地址,然后发送文件,运行在设备上的文件传输代理程序启动接收线程接收文件。从设备上采集文件时,代理程序收到本平台发送的采集文件请求后,解析出要采集的文件名称和服务器IP地址,开启发送文件线程,将指定文件发送到本平台上。请求文件传输消息帧格式如图4所示。
图4 文件传输消息帧格式
消息帧结构说明如表1所示。
表1 文件传输消息帧格式说明
其中,Type可以为1、2、3,分别代表传输全部可采集文件信息消息、请求采集具体某文件消息、文件传输异常消息。Text处可填写传输异常信息或序列化后的文件类,包括文件名称、大小最后修改日期。本文所用Formatter类可序列化实体类为字符串,也可将字符串反序列化为实体类,便于传输有组织结构的信息。
请求文件后,开始文件传输,本系统文件传输采用分包传输,以降低传输过程中丢包现象。文件传输过程中两个重要函数:
public static int SendVarData(Socket s,byte[] data){}//分包发送文件
public static byte[] ReceiveVarData(Socket s){}//分包接收文件
3.3数据处理模块
3.3.1地址空间
本文研发的物联汇聚平台通过实现OPC UA服务器来对外提供数据访问服务。OPC UA服务器最重要的部分是地址空间,定义了服务器中数据的组织形式。地址空间节点由NodeManager对象定义、管理。节点指地址空间中所有元素,包括对象、变量、类型等。
对地址空间进行建模要遵循以下原则:使用面向对象技术,包括类型层次结构和继承。类型信息对外暴露,并且能够像访问实例一样访问。全网状的节点网络,允许信息以各种方式连接。组态总是在服务器端完成[2]。
本文对地址空间进行建模主要用到:OPC UA工具开发包(SDK),扩展标记语言(eXtensible Markup Language, XML)技术,模型解释器解析技术。OPC UA SDK是OPC 基金会提供给其会员的,封装了复杂的底层机制,只向开发者开放易使用的API,用于开发OPC UA的客户端和服务器。本文依据以下流程组态地址空间:从特定领域的各种架构图、信息图中提取信息,将得到的设备类型、属性、事件及它们之间的关系归纳到OPC UA的8个标准节点中去,建立地址空间模型图,利用UA Modeler建模并导出为XML格式。再利用模型解释器读入XML文档,建立服务器地址空间,完成地址空间组态[9]。本文依照上述流程将采集到的数据组态成如图5所示的一个地址空间。
图5 物联汇聚平台的地址空间组态
如图5所示,本文总结出一系列ObjectTypes类型节点:Modbus协议驱动设备、链路、AI、AO、DI、DO、字符串。这些类型节点均为自定义的复杂数据类型,如Modbus协议驱动设备类型节点定义了设备ID、名称、是否支持文件传输等属性。AI类型节点中定义了上限、上上限、报警等属性。这些类型节点可在Objects目录下实例化成具体设备,且可用引用组织。图中链路层次下的设备1是Modbus驱动设备的一个实例,在设备1下可增加多个AI、AO等不同类型的测量点。在收到OPC UA客户端访问节点的请求后,将依据该节点中对应寄存器地址属性,生成Modbus请求数据帧,访问该对应现实设备中寄存器值,收到回复帧解析后,赋值给该节点的Value属性。
3.3.2数据显示
数据显示部分以树形结构显示地址空间中各节点,以表格的形式显示节点属性值,如节点ID、浏览名称等。用户选中树结构任意节点,即可在表格中查看该节点各种信息。通过此部分,可直观地看到采集节点值属性,方便测试调试。
本文采用Java语言实现此物联汇聚平台,编程工具选用Eclipse,数据库采用MySQL。用Modbus模拟器ModSim32程序模拟一台支持Modbus TCP的设备。假设此设备能够测量温度和压力,其值分别对应上述模拟器的40001,40002号寄存器数值。再建立一个地址空间,内有一个Modbus协议驱动设备类型的压力测量器设备。该压力测量器有两个度量值:压力和温度。将地址空间节点与Modbus寄存器信息(寄存器类型,地址,长度)绑定后,用OPC UA客户端UaExpert访问此系统,加载出地址空间,订阅该设备的压力值、温度值。通过改变ModSim32模拟器中对应寄存器数值,可以发现UaExpert中订阅的压力值、温度值也相应地发生了变化。
本文研发的面向服务的开放式物联汇聚平台,实现了智能制造体系中端到端的数据通信需求,使现场设备互联互通,完成跨平台、跨防火墙的安全数据传输。采用面向服务的开发思想,利用SOA技术,将本物联汇聚平台变为可重用的业务服务,减少技术对企业决策的限制和约束。利用OPC UA技术,统一了数据模型,且支持自定义复杂数据类型,实现了现场设备互联互通的标准化通信要求。
智能制造是信息化与工业化深度融合的大趋势,是《中国制造2025》的五大工程之一,是我国制造业转型升级的重要战略,也是我国紧跟世界发展趋势、迈入制造强国的关键所在。本文研究的物联汇聚平台是智能制造实现的基础,对打通制造环节互联互通有重要意义。
[1] 中国电子技术标准化研究院,中国信息物理系统发展论坛.物理信息系统白皮书2017[R].2017.
[2] WOLFGANG M, STEFAN-HELMUT L, MATTHIAS D. OPC unified architecture[M].北京:机械工业出版社,2012.
[3] 夏妍娜,赵胜.工业4.0正在发生的未来[M].北京:机械工业出版社,2015.
[4] 徐勇军,刘禹,王峰.物联网关键技术[M].北京:电子工业出版社,2012.
[5] 王洁. 2017年工业物联网的机遇在哪里?[J]. 电子技术应用,2017,43(2):4-5.
[6] 张建中,王伟,宋庆军,等. 物联网在智能电网中的应用[J]. 微型机与应用,2013,32(21):1-3.
[7] HURWITZ J, BLOOR R. Service oriented architecture for DUMMIES[M].北京:人民邮电出版社,2013.
[8] SWALES A.开放型Modbus-TCP规范(中文版)[S].1991.
[9] 江城.OPC UA信息模型及其应用[D].太原:太原科技大学,2014.
2017-04-27)
石春竹(1991-),女,硕士,工程师,主要研究方向:智能制造、工业软件、通信技术等。
韩庆敏(1979-),女,硕士,高级工程师,主要研究方向:工业软件、自动化控制系统、智能制造、现场总线等。
李末军(1981-),女,硕士,工程师,主要研究方向:智能制造、工程管理、自动控制等。
Design and development of a data converging platform of IoTwith service oriented architecture
Shi Chunzhu, Han Qingmin, Li Mojun
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
In view of the problems that devices in the discrete manufacturing industry production line fail to communicate with ERP, MES and PLM conveniently, data structures are heterogeneous, information transits too many times and it’s too difficult to integrate, a service oriented IoT platform for the intelligent manufacturing system is proposed, which uses OPC UA technology to interconnect the industrial heterogeneous system. This paper designs a flexible drive module to solve the problem of the heterogeneity between devices and systems, and a data configuration module based on OPC UA address space to solve the problem that data structure is not uniform, ultimately realizes transferring data and file crossing layers and simplifying the complexity of system integration. Through the OPC UA client and Modbus simulator program test, the system runs well.
SOA; OPC UA; address space; communications interface; file transfer; Modbus TCP protocol
TP311.1
A
10.19358/j.issn.1674- 7720.2017.22.001
石春竹,韩庆敏,李末军.面向服务的物联汇聚平台的研究与开发J.微型机与应用,2017,36(22):1-4.