姜泽苗 孔庆奎 范瑜
(北京交通大学电气工程学院1,北京 100044;山东能源临矿集团王楼煤矿2,山东 济宁 272000)
OPC UA技术在冶金设备监测系统中的应用
姜泽苗1孔庆奎2范瑜1
(北京交通大学电气工程学院1,北京 100044;山东能源临矿集团王楼煤矿2,山东 济宁 272000)
OPC UA技术在工业控制方面有着不可替代的优势,主要体现在其跨平台性和实时性上,可以方便地解决工业现场监控过程中各个子系统和底层设备之间互操作以及互通信的难题。结合冶金现场设备监测系统的搭建,对OPC UA技术规范进行了研究,开发了OPC UA客户端和服务器,实现了对冶金设备运行状态的实时监测并及时制定故障应对方案的目的。OPC UA技术在信息建模与跨平台方面的强大优势预示着基于OPC UA技术的集成系统必将成为今后的开发热点。
OPC统一架构 客户端 服务器 数据采集 冶金
随着计算机、通信、网络等技术的快速发展,工业生产需要的信息交换覆盖从工段、车间、工厂企业乃至世界各地的市场。沟通的领域正在迅速覆盖从底层现场设备到控制、企业管理的各个层次。但工业控制系统存在大量来自不同技术或生产厂家的产品,从多种现场总线和工业以太网技术并存发展,到底层的数据采集板卡、PLC、工业控制计算机,以及DCS控制系统。工业企业面临如何有效解决系统内不同技术间的信息访问和互操作性的问题。
用于过程控制的对象链接与嵌入统一架构(object linking and embedding for process control and unified architecture,OPC)在第一代OPC技术规范的基础上,将OPC从以微软为中心的COM/DCOM技术转化为开放式标准,统一了各种OPC技术规范。.NET全新的通信架构,便于配置和维护,可视化程度增强,具有更高的可靠性、安全性和可扩展性。鉴于OPC UA技术的强大优势,其迅速被引入了工业自动化领域,主要用于实现对工业现场设备的远程监测与控制。要实现OPC UA技术的现场应用,关键环节就在于搭建OPC UA服务器与客户端。本文以基于OPC UA技术的冶金现场设备监控系统的实现为例,重点介绍OPC UA服务器、客户端以及客户端与服务器互通信的设计实现。
OPC UA之前的通信接口规范都是基于微软的COM/DCOM技术,因此不够灵活,平台局限性大。为解决上述问题,OPC基金会发布了最新的数据通信统一方法——OPC统一架构[1]。
OPC UA不再依靠DCOM,而是基于面向服务的架构(SOA)。现在,OPC UA已经成为独立于微软、UNIX或其他的操作系统企业层和嵌入式自动组建之间的桥梁。OPC UA的基础组件是数据传输和信息建模,该技术的最大亮点在于不受平台限制,且在信息建模和通信安全方面优势显著。OPC UA的信息模型不局限于特定的协议映射,允许添加新的协议,并且其系统内部已经包含了丰富的信息模型,因此可以非常方便地为所提供的数据建立适当的模型[2]。OPC UA的服务是以抽象的方式定义的,它使用传输机制在客户端与服务器之间交换数据,这使得OPC UA的客户端可以访问最小的一块数据,而不需要了解复杂系统的整个模型。同时,OPC UA可以成功覆盖传统OPC的功能。
综上所述,OPC UA就是在传统OPC技术之上的改进,从而使得数据采集、信息模型化以及工厂底层与企业层面之间的通信更加安全、可靠。
冶金设备监测系统主要分为管理层、控制层和现场设备层。由于底层设备和各类传感器型号不同,导致设备层与控制层、管理层之间的互通信问题无法有效解决,支持跨平台的OPC UA技术为此提供了可能。工程师通过管理层界面远程掌握现场设备的实时运行状态和运行数据,在出现异常情况时可以随时下发指令给控制层,这主要由OPC UA客户端实现。控制层主要用于实现对底层设备运行信息的采集和对管理层下发指令的执行,主要由OPC UA服务器以及各类传感器和仪表组成。现场设备层即为冶金工业现场设备,如锅炉等。冶金设备监测系统一方面连续检测和控制冶金现场各种生产、公用设备的正常运行,另一方面又对各种意外事故进行实时监测,一旦出现意外问题,第一时间由客户端传送给工程人员并经过系统逻辑自动地处理控制,大大降低了冶金现场的安全隐患[3]。冶金设备监测系统架构如图1所示。
图1 系统整体架构Fig.1 Overall architecture of the system
3.1 设备状态信息采集
系统中需要实现采集的一系列重要数据就是冶金现场各设备的运行状态信息[4]。在本设计中需要采集的数据主要为锅炉等设备的运行状态、炉内温度、气流、锅炉液位以及设备耗电量。系统通过这些数据的获取来实现对设备信息的实时采集。
整个系统采用OPC UA接口技术实现能效数据采集层与数据处理层的数据交换,OPC UA服务器和客户端是系统中实现数据采集功能的中心环节。OPC UA服务器主要用于实现对底层设备数据的采集和封装,并将历史数据存放于外加的数据库内,使得一个或多个客户端可以用一个统一的方式获取不同底层设备的数据。OPC UA客户端的主要功能是搜索并连接OPC UA服务器,浏览服务器的地址空间并读取其中存放的实时数据,还可以获取服务器存放于数据库中的历史数据,并通过客户端显示界面将实时或历史数据以图表的形式展示给工作人员。OPC UA服务器与客户端的主要交互过程[5]如下。
①OPC UA客户端发出服务调用请求,经底层API发送给OPC UA通信栈,并通过OPC UA服务器接口调用相应的服务或方法函数。在地址空间节点上执行指定任务之后,返回一个响应。
②OPC UA客户端发出发布请求,经底层API发送给OPC UA通信栈,并通过OPC UA服务器接口发送给服务器内部的订阅命令。当订阅指定的监视项探测到底层设备有数据变化或者故障发生时,监视项生成一个通知发送给订阅,并由订阅发送给客户端。数据采集功能实现如图2所示。
图2 数据采集功能实现图Fig.2 Realization of data acquisition function
OPC UA服务器具有服务器接口和客户端接口,通过服务器接口与监控系统联系,通过客户端接口与具有服务器接口的底层设备联系。目前,工业现场设备大多具有OPC接口而尚未具备UA接口,但由于OPC UA技术对原有的OPC技术具有完全的覆盖性,因此可以通过读写操作实现OPC UA接口与OPC接口的通信。
3.2 OPC UA服务器开发
OPC UA服务器主要用于实现对底层设备数据的采集和封装,使得一个或多个客户端可以用一个统一的方式获取不同底层设备的数据[6]。同时,封装了多种方法,如控制底层设备启动或停止,可以由客户端来触发并由服务器执行,从而达到监测与控制的效果。本文选择在Visual Studio 2010编译环境下,利用C++语言编写实现基于OPC UA技术的服务器。
OPC UA服务器的关键在于地址空间开发。在OPC UA中,最重要的节点类别是对象、变量和方法[7]。节点类别为对象的节点用于地址空间结构,并将变量和方法等组织在一起,产生事件。节点类别为变量的节点代表一个值,该值的数据类型取决于该变量,客户端可以对这个值进行读取、写入等。节点类别为方法的节点代表服务器中一个由客户端调用并返回结果的方法。引用是两个节点之间的连接,它形成了地址空间的层次结构[8]。
本系统中服务器地址空间中所要存放的数据主要分为测量数据、控制数据和状态数据。测量数据即通过测量获得的各类底层模拟设备数据,如锅炉温度、锅炉液位、设备耗电量等。控制数据即为控制层发出的用于控制底层设备行为的数据,如控制锅炉机组运行/停止的命令等。状态数据即为表征系统内各个传感器、底层设备的运行情况的数据,如锅炉运行状态等。以一个锅炉对象为例,地址空间架构如图3所示。
图3 服务器地址空间架构图Fig.3 Architecture of server address space
建立地址空间时,首先在程序中定义节点管理类(NodeManager),用于管理整个地址空间的所有节点,并在服务器启动时申请内存空间。再定义空调对象类,在其中创建各个实例对象数据类,实际上就是在节点管理类中建立点表。在3种数据类下,分别定义对应类型的数据节点,包括定义节点ID、节点类型、节点浏览名称、节点显示名称等,所创建的地址空间类似于文件夹结构。
空间建立完毕后,应为各个节点添加相应的功能函数。设备节点属性的功能函数是由IOManager和MethodManager实现的。IOManager用于与节点建立联系,MethodManager用于实现方法的调用。编写功能函数SetMethodManager()、GetMethodManager(),就可以实现对于节点方法的添加。
3.3 监测子系统开发
能效监控子系统即为一个带有显示界面的OPC UA客户端。OPC UA客户端的主要功能是搜索并连接OPC UA服务器,浏览服务器的地址空间并读取其中存放的实时数据。同时,通过客户端显示界面将实时或历史数据以图表的形式展示给工作人员,达到对工业现场设备的实时监测与控制。
利用C++语言在MFC中进行客户端开发客开发[9]。由于OPC UA需要与MFC编程环境相结合,因此需要首先配置好编程环境的项目设置参数,之后初始化UA通信栈,添加工具包中的头文件,完成客户端功能实现的准备工作。
客户端要实现的主要功能为连接OPC UA服务器、浏览服务器地址空间和读写数据。OPC UA客户端能够连接到OPC UA服务器上,并建立OPC UA组和OPC UA数据项[10],这是OPC UA数据访问的基础。搜索并建立与服务器的连接功能通过编写连接(Connect)函数来实现。客户端通过浏览(Browse)函数对地址空间进行遍历,向服务提交初始节点和浏览过滤条件,服务器返回通过引用连接到初始节点的节点列表,建立树形层次,以便查找可用变量并选择正确变量。读取(Read)服务从一个或多个节点,读取一个或多个属性。写入(Write)服务往一个或多个节点写入一个或多个属性。
完成冶金设备监测系统的搭建后,运行整个系统,选择客户端界面上的不同按键将会显示对应锅炉数据。以系统中6台锅炉设备中的锅炉1的实时数据和运行状态为例,点击“Connect”按键,客户端将会连接相应服务器,勾选锅炉1并点击“Read”按钮,执行读取服务器地址空间以及数据的命令,则得到锅炉1的运行状态等详细信息,实现了对冶金设备的远程实时监测。当出现锅炉温度超限、液位过高或过低等异常状态时,可以立即进行停机检修等操作。
本文首先对OPC UA技术规范进行了深入研究,利用C++编程语言构建了OPC UA客户端、OPC UA服务器,成功实现了冶金现场设备运行信息的实时监测,大大方便了工程人员随时掌握设备状态信息,并且能够迅速监测到故障设备,为冶金工业现场的安全可靠运行提供了技术保障。由于整个系统都采用了OPC UA接口,因此可以方便地实现工业现场管理层与控制层之间的互通信。鉴于OPC UA技术的强大优势,将会有更多的工业控制系统采用OPC UA技术。
[1] Wolfgang M,Stefan L,Matthias D.OPC统一架构[M].北京:机械工业出版社,2010:1-14.
[2] 华镕.使用OPC UA技术的十个原因[J].中国仪器仪表,2013, 30(3):55-57.
[3] 吕治忠,钟功祥,林宁,等.钻井泵在线监测系统研究[J].自动化仪表,2013,34(6):32-34.
[4] 李相白,李建春,曹长虹.冶金工业节能减排考核体系设计[J].冶金能源,2013,32(6):7-11.
[5] 张爱绒,谢斌红,张英俊.基于OPC UA的煤矿监控系统集成设计与实现[J].太原理工大学学报,2012,43(1):69-72.
[6] Salvatore C,Ferdinando Chiacchio.Analysis of OPC UA performances[J]. Computer Standards&Interfaces,2013,36:165-177.
[7] 陆会明,闫志峰.OPC UA服务器地址空间关键技术研究与开发[J].电力自动化设备,2010,30(7):109-113.
[8] 苏延召,李艾华.基于OPC UA的自动化系统集成技术研究[J].测控技术,2011,30(3):68-71.
[9] 郑秋生,王黎明.C/C++程序设计语言面向对象分册[M].北京:电子工业出版社,2012:45-87.
[10] OPC Foundation.OPC Data Access Custom Interface Specification 2.04[S].2000:1-5.
Application of OPC UA Technology in Monitoring System for Metallurgical Equipment
The technology of OPC UA has irreplaceable superior in industrial control area,especially its cross platform and real time performance;the difficulties of the interoperability and intercommunication among all the subsystems and bottom layer equipment in industrial field monitoring.The specifications of OPC US technology is researched combining with the establishment of monitoring system for metallurgy field equipment;and client and server of OPC UA are developed for implementing real time monitoring for the operation status of metallurgy equipment and failure timely responded scheme.The outstanding superior of OPC UA in information modeling and cross-platform indicates that the integrated systems based on OPC UA will definitely become the hot spots of development in the future.
OPC UA Client Server Data acquisition Metallurgy
TP2
A
“十二五”国家科技支撑基金资助项目(编号:2012BAB18B02)。
修改稿收到日期:2014-04-28。
姜泽苗(1991-),女,现为北京交通大学电气工程专业在读硕士研究生;主要从事电网通信的研究。