APP下载

OPC UA系统框架综述

2019-01-23

福建质量管理 2019年1期
关键词:数据模型底层客户端

(重庆三峡学院 重庆 404632)

一、OPC UA简介

OPC UA 的全称为OPC Unified Architecture,它表示OPC统一体系架构,是一种以服务为主提供一个完整的安全可靠的跨平台架构。OPC UA的优点是使开发人员能够安全地交换大量的数据,具有更高层次的相互操作性,同时产生了一些新的技术和高水准的性能水平,在原有基础上增加了原始OPC的功能,同时的,OPC UA不再仅仅依赖DCOM,而是加强建设面向服务的架构(SOA),因此OPC UA越来越得到企业的青睐运用。为了解决工控软件、PLC、嵌入式网关等产品的系统的兼容性问题,各大厂商都纷纷增加了对OPC UA协议的支持。所以,各种OPC UA设备能不能满足规约所定义的标准功能集,就要有专门的认证机构提供专业的测试服务。

因此,由OPC基金会授权和委托,OPC中国联合机械工业仪器仪表综合技术经济研究所(ITEI)建立了国内唯一的OPC认证测试实验室,并在2017年9月5日在中国职工之家饭店正式发布国家标准GB/T 33863.1~.8-2017《OPC统一架构》。

(一)OPC UA 的技术特性

传统的OPC DA规范采用COM/DCOM技术,只能在Windows平台当中运行,并且COM技术十分复杂,使OPC的推广产生许多困难,微软后期不再维护和升级COM技术。OPC UA规范再也不是基于COM/DCOM技术,也就是说OPC UA不但可以在Windows平台上实现,更可以在Linux,与其他的嵌入式平台中实现。标准OPC所具有的功能,OPC UA也都具有。

1.等价功能:OPC UA和OPC在COM中的功能都一样。

2.多功能平台支持:支持从嵌入式的微控制器到以云为基础的分散式控制架构。

3.安全:互访认证,对于信息的加密性以及安全监听功能。

4.扩展性功能:在当前程序正常工作的情况下,还可以新增其他应用功能。

5.信息建模的丰富多元化:可对复杂的信息进行定义,而不仅仅是单一的数据。

二、系统框架设计

整个系统采用三层架构设计,从下至上分别是设备驱动层、OPC UA服务层、OPC UA客户端。

设备驱动层:负责所有底层设备的数据采集;

OPC UA服务层:载入OPC Moduler数据模型,并对底层设备采集的数据按照OPC UA规范进行存储,为客户端提供统一访问接口;

OPC UA客户端:获取服务层提供的数据,以及执行可调用的方法。

整个系统的设计框架如图1所示:

图1 OPC系统设计框架

OPC服务层设计:

OPC服务层是整个系统的核心层,负责底层数据的临时存储以及向客户端提供数据访问接口的功能。

UA数据模型设计:

UA数据模型是整个系统的核心设计,在该模型中,定义了整个系统需要用到的底层设备,以及各个设备获取的数据以及可执行的方法。

构建UA数据模型,可使用Unified Automation UaModuler工具进行设计,在ObjectTypes的BaseObjectType中,对每一个设备增加一个数据模型,并设置相应的设备名称和描述,之后为新增加的模型增加Children节点,设置该设备可获取的所有变量(测试值)以及可以调用的方法。设计完成后,可导出对应的BuildingAutomation.xml通用配置文件。如下图2所示(构建的UT55A数据模型)。

图2 UT55A数据模型

关键类设计:

UANodeManager:

节点管理器,用于读取BuildingAutomation.xml配置文件,并根UA据模型文件在系统中创建节点地址空间。

UAServerManager:

实例化节点管理器,并启动整个OPCUA服务,使服务器能够被发现。

(一)底层驱动设计

在底层驱动设计中,需要考虑所有设备的数据获取方式,以及整个地址空间数据模型的组织方式,使得采集的数据能够正确对应到数据模型中。为此设计了也一个IController接口,和一个UnderlyingSystem关键类。

IController接口:

在IController接口中,定义了所有底层设备驱动需要实现的方法,所有的底层设备驱动,按照该接口定义的方法进行编写。

void DataReceived(object sender,SerialDataReceivedEventArgs e):

接收到数据数据的处理函数。

void OpenCom():

打开通信端口。

bool ReadRegisters():

读取寄存器。

void SetParam(string strName,object param):

设置底层设备驱动的参数,第一个参数为该设备的名称,第二个参数为与该设备相关的配置信息,包括设备名称、该设备对应的底层驱动的类名、与该设备对应的命令文件的路径、以及该设备的通信端口配置(串口和网口)。

UnderlyingSystem类:

UnderlyingSystem类,用于对底层设备驱动采集的数据进行整理,根据数据模型开辟内存空间,并按照数据模型的接口将数据存放在内存块中,建立数据字典,与UA模型实现对应关系。

在系统中,设计了ComCfg.xml文件,用于配置与数据模型相对应的各个设备以及设备通信端口,以及各个设备驱动类与底层设备通信所需要用到的命令文件。首先载入该文件,并根据设备类型实例化不同的底层驱动类。

底层驱动类:

实现IController接口,连接设备,通过读取命令配置文件,与底层设备进行通信读取数据。

系统中,为每一个设备设计了一个对应的命令配置文件,该文件中所有的命令配置信息与模型文件相对应,也就是说,返回数据的个数、数据类型,都要与模型文件严格对应。

如下图3所示

图3 OPC UA服务器底层驱动构架

(二)OPC UA的界面设计

1.OPC UA客户端设计

在程序中,找到其必需的设计器变量,并将系统组成成分赋空值,并清理正在使用的资源,并且同步判断是否为托管资源,若是托管资源,窗口设计器则生成相应代码,并确认服务器名称及节点地址,由此生成界面控件及标签,到此,完成客户端设计过程;若不是托管资源,则返回,继续清理正在使用的资源。

2.设备配置界面

当我们工作时,运行到指定的模型文件。并且进入到配置界面,再进行对应的串口配置,或网口配置。

服务端采用WinForm窗口程序,方便维护人员对服务端进行配置,如图4所示。

图4 OPCUSS设备配置界面

下图为根据UA数据模型,为不同变量配置命令。

图5 命令配置界面

下图为OPC UA客户端主界面,用于根据IP地址和端口号查找OPC UA服务器,并显示服务器上的模型信息。

图6 OPC UA客户端主页面

在客户端,可以显示不同节点可调用的方法,如下图所示。

图7 节点调用界面

三、OPC UA在控制系统中的应用

在企业进行工作时,当我们运用OPC UA技术时,它极大的方便了我们工作。OPC UA 很好的解决了之前的OPC规范存在的问题,在互操作性上,做了很多改进,加快了研发速度和运行效率,削并且减了工作成本。在以后的生产生活中,除了传统的OPC 客户端访问方式,还有在现场智能设备中投放使用的OPC UA服务器。OPC UA技术其在网络上具有兼容性,安全系数更高,版本更新更快,平台更多且相互独立等优点。它可以在所有的自动化层面上发挥作用,从人机界面,和 PLC,到MES、ERP等其他高层系统,加深了公司和控制系统的交流沟通,信息交互。

猜你喜欢

数据模型底层客户端
航天企业提升采购能力的底层逻辑
如何看待传统媒体新闻客户端的“断舍离”?
面板数据模型截面相关检验方法综述
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
财政支出效率与产业结构:要素积累与流动——基于DEA 和省级面板数据模型的实证研究
基于分位数回归的电力负荷特性预测面板数据模型
回到现实底层与悲悯情怀
中国底层电影研究探略