APP下载

基于SDK嵌入式OPC UA服务器设计与实现

2017-02-10赵艳领闫晓风

制造业自动化 2017年1期
关键词:嵌入式客户端服务器

赵艳领,闫晓风,刘 丹

(机械工业仪器仪表综合技术经济研究所 网络控制研究中心,北京 100055)

基于SDK嵌入式OPC UA服务器设计与实现

赵艳领,闫晓风,刘 丹

(机械工业仪器仪表综合技术经济研究所 网络控制研究中心,北京 100055)

针对工业现场设备类型多样、接口不同导致的系统集成问题,通过开发一种支持多种接口类型设备的嵌入式OPC UA服务器进行设备综合管控,并可以方便的集成到已有的信息系统。该服务器以SDK为基础,并将其移植到Arm和Linux嵌入式系统平台上,根据SDK提供的API函数构建现场设备到OPC UA地址空间的映射,通过地址空间的管理达到现场设备管控的目的。测试验证表明,该服务器满足现场设备管控与集成要求。

OPC UA;OPC UA服务器;SDK;嵌入式系统

0 引言

随着智能制造的逐步发展,物联网、大数据/云计算等技术在工业中越来越受到重视和使用,工业数据越来越体现“数据即资产”这一重要的产业趋势[1,2]。然而用于获取这些工业数据的设备制造商、设备类型、集成接口等各方面存在较大差异,工业4.0与智能制造时代面临的第一个问题将是互联与互通问题[3],因此采用一种标准的集成方法显得十分重要。

在传统的工业系统集成中,OPC是事实上的集成标准。传统OPC是在微软Windows的OLE技术基础上发展起来的一种数据交换方法,其目的就是通过一个统一的接口实现不同厂商的软件产品之间的数据交换。但是由于传统的OPC 技术逐渐显示出其不够灵活、安全机制不足、平台局限、实现和使用过于复杂等诸多弱点,于是OPC基金会在2006年推出了OPC UA来取代传统的OPC技术[4,5]。OPC UA是OPC基金会推出的新一代集成规范,其目的是提出一个企业制造模型的统一架构。OPC UA支持复杂数据内置,统一的地址空间,跨平台操作,支持抽象的服务功能。它可以被应用于工业控制系统、MES以及ERP促进企业与控制系统的连通性[6,7]。

本文在分析OPC UA应用开发框架的基础上,通过对OPC UA SDK(software development kit软件开发包)进行选型和移植,以Arm和Linux为嵌入式运行平台,通过构建设备到OPC UA地址空间的映射和管控,实现嵌入式OPC UA服务器的功能。

1 OPC UA应用程序开发

1.1 概述

OPC UA功能按角色可以分为OPC UA服务器功能和OPC UA客户端功能,服务器功能是指用来提供数据和统一的访问接口和服务,客户端根据统一的访问接口和服务可以对OPC UA服务器提供的数据进行操作,这些功能即可以被单独作为一个应用程序如单纯的OPC UA客户端工具,也可以被集成到用户程序中如MRS系统支持OPC UA客户端功能,用户程序也可能集中了服务器和客户端两者的功能。

1.2 OPC UA软件层

图1 OPC UA软件层次图

图1是一个常见的OPC UA应用开发的逻辑软件层次图[8],该层次模型是为了更好的开发软件和理解OPC UA应用包含的功能。软件层次包括三个部分,最底层的是OPC UA通信栈,通信栈之上是服务器或者客户端功能集即对应的SDK软件开发包,OPC UA服务器应用或者客户端应用是根据用户业务需要开发相应的功能如创建地址空间或者定义需要读取的数据。

1.2.1 通信栈

OPC UA通信栈需要实现OPC UA规范第6部分(OPC UA统一架构第6部分:映射)的要求,主要功能包括三个部分:

1)数据编码功能包括二进制和XML编码对应于第6部分的数据编码;2)安全相关的功能,对应于第6部分的安全协议;3)通信协议包括消息传输使用的网络协议OPC UA TCP和SOAP/HTTP,对应于第6部分的传输协议。

在这里需要强调的是,该部分隐含的是用户程序运行平台必须要支持一些功能才能使得OPC UA通信栈正常运行,如运行平台需要支持TCP/IP网络协议栈。

1.2.2 OPC UA功能集

OPC UA功能集包括客户端功能集和服务器功能集如图2所示,服务器功能集主要是根据构建的地址空间提供数据和服务,客户端功能集是利用服务访问数据,在语义上两者对应的服务种类是一致的,但是角色不同,如节点属性操作服务,客户端执行的读请求,而服务器是应答对应的读操作。

图2 OPC UA服务器架构

OPC UA功能集需要实现OPC UA的概念、信息模型、服务等相关规范,如发现服务集、安全会话的创建、激活、关闭等操作;节点的创建、删除、增加、关联引用等管理服务;属性访问服务如读、写、历史数据查询服务集;订阅服务;数据访问DA(OPC UA第8部分:数据访问)等功能。

1.2.3 业务相关功能开发

对于业务功能的开发是根据用户需求制定的,对于OPC UA服务器而言,业务功能开发就是创建地址空间以及地址空间的管理;对于OPC UA客户端而言,业务功能开发主要是确定读取服务器地址空间哪些数据,怎样读取数据等功能。

2 嵌入式OPC UA服务器设计与实现

2.1 OPC UA服务器功能需求

如图2所示,该嵌入式OPC UA服务器的主要功能是对支持Modbus或Profibus协议的现场仪表进行管控,对外提供统一的OPC UA接口,可以方便的集成到支持OPC UA客户端功能的信息系统如MES系统中。支持的主要功能包括:

1)需要运行在Arm和Linux系统上;

2)对服务器地址空间里的数据节点进行读操作;

3)地服务器址空间里的数据节点进行写操作;

4)对服务器地址空间里的数据节点进行订阅;

5)对服务器地址空间进度浏览;

6)对服务器地址空间创建视图;

7)对Modbus设备或Profbus设备进行管控。

2.2 SDK的选择

一般来说,由于OPC UA规范的复杂性,如果按照OPC UA的标准从零开始开发一个OPC UA应用程序将耗费大量的人力和财力投入,常见的开发方式是在OPC UA 通信栈和SDK的基础上开发面向应用的程序,这将大大提高开发速度。本文采用购买第三方SDK进行开发的方式,商用SDK包含了OPC UA通信栈和功能集功能,对外提供API函数。

目前国内还没有OPC UA SDK相应的产品和服务,常见的OPC UA SDK供应商包括加拿大的MatrikonOPC、德国的Softing、Prosys、Unified Automation等公司。购买SDK要综合考虑多方面的因素,主要包括如下几个关键方面,如表1所示。

2.3 SDK的移植

本文根据嵌入式OPC UA服务器功能需求从上述供应商中最终确定了一款SDK(为避嫌不声明具体哪一家供应商),该SDK以源码的形式提供,需要移植到本方案使用的ARM和Linux嵌入式系统上,SDK的目录结构大致如下:

表1 购买OPC UA SDK考虑因素

移植大致流程如下:

1)配置GCC交叉编译工具;

2)下载OpenSSL源码和配置OpenSSL环境(为安全功能提供安全相关库);

3)修改配置和安装路径(/config no-asm shared–prefx=安装路径Shared必须要加);

4)修改SDK自带的Makefle,编译工具为配置的交叉编译工具;

5)进行编译生成SDK库。

2.4 地址空间的创建

不同的SDK可能API接口不一致,但是具体的功能和创建方法是一致的,采用该SDK提供的API创建地址空间一般分为三个步骤:

1)初始化一个变量/对象;2)创建一个变量/对象;3)增加到某一个对象下。

关键API如下:

(1)创建对象增加到某对象下

①UAServer_Init_confg_structure_Folder

②UAServer_Create_Folder

③UAServer_Add_to_objects_folder 增加到Objects目录下

④UAServer_Add_to_folder 增加到指导的folder节点下

UAServer_Add_to_objects_folder函数是把创建的对象增加到objects目录下,objects目录是OPC UA标准地址空间中的标准节点,在创建自己地址空间时,第一步就需要在节点下增加对象。

(2)创建一个模拟量数据点增加到某对象下

①UAServer_Init_confg_structure_AnalogItem

②UAServer_Create_AnalogItem

③UAServer_Add_to_folder

(3)创建一个离散量数据点增加到对象下

①UAServer_Init_confg_structure_TwoStateDiscrete

②UAServer_Create_TwoStateDiscrete

③UAServer_Add_to_folder

其他API函数的使用与此类似。建立一个Modbus目录,其下存在一个从站slave1,slave1包含多个数据点的目标地址空间,如图3和图4所示。

图3 目标地址空间

图4 利用API创建地址空间

3 测试验证

本文采用标准OPC UA供应商提供的标准OPC UA客户端对嵌入式OPC UA服务器功能进行测试验证,验证系统包括多个Modbus设备和Profibus设备连接到嵌入式服务器上,通过客户端的操作对基于用户名和密码的安全认证、地址空间浏览、创建视图、数据读写操作、数据订阅等功能进行测试验证,验证表明该嵌入式OPC UA服务器满足功能和设计需求,该设备将在实际企业现场进行示范应用。

4 结束语

OPC UA技术在国内正在形成一个热潮,在工业4.0、智能制造等领域被广泛认可,因此支持OPC UA规范的数据采集设备在解决设备/系统集成方面将会得到广泛应用,本文的案例不仅可以针对Modbus和Profibus接口的设备,根据需要,该设备可以支持更多的协议类型,遗憾的是,国内的SDK开发尚未起步,因此未来国产SDK的开发工业软件强基的一个重要方向。

[1] 胡永利,孙艳丰,尹宝才.物联网信息感知与交互技术[J].计算机学报,2012,06:1147-1163.

[2] 孙立.工业大数据对智慧云制造的推动与创新[J].科技管理研究,2016,13:156-158,163.

[3] OPC UA——互联工厂方案[J].国内外机电一体化技术,2016,04: 26-28.

[4] 王侃侃,张华良.嵌入式OPCUA与DPWS的比较与分析[J].自动化与表,2014,12:5-8,17.

[5] 赵宴辉,聂亚杰,王永丽,李海平.OPC UA技术综述[J].舰船防化,2010,02:33-37.

[6] 华镕.使用OPC UA的十个原因[J].中国仪器仪表,2013,03:55-57.

[7] 原红丽,吕静,刘枫.基于OPC UA客户端/服务器的现场设备集成[J].西南师范大学学报(自然科学版),2012,03:141-145.

[8] IEC/TR 62541-1.OPC Unifed Architecture –Part 1: Overview and Concepts.

Design and development about the embedded OPC UA server based on SDK

ZHAO Yan-ling, YAN Xiao-feng, LIU Dan

TP319

:A

1009-0134(2017)01-0049-04

2016-11-12

冶金工业系统能效监测评估及优化控制技术与系统(2014AA041803)

赵艳领(1984 -),男,工程师,硕士研究生,研究方向为工业自动化系统开发、工控系统信息安全和嵌入式软件开发等。

猜你喜欢

嵌入式客户端服务器
你的手机安装了多少个客户端
你的手机安装了多少个客户端
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
服务器组功能的使用
通信控制服务器(CCS)维护终端的设计与实现
如何看待传统媒体新闻客户端的“断舍离”?
PowerTCP Server Tool
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式PLC的设计与研究
嵌入式单片机在电机控制系统中的应用探讨