2023年11月30日发(作者:)

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

赵艳领;闫晓风;刘丹

【摘 要】针对工业现场设备类型多样、接口不同导致的系统集成问题,通过开发一

种支持多种接口类型设备的嵌入式OPC UA服务器进行设备综合管控,并可以方便

的集成到已有的信息系统.该服务器以SDK为基础,并将其移植到ArmLinux

入式系统平台上,根据SDK提供的API函数构建现场设备到OPC UA地址空间的

映射,通过地址空间的管理达到现场设备管控的目的.测试验证表明,该服务器满足现

场设备管控与集成要求.

【期刊名称】《制造业自动化》

【年(),期】2017(039)001

【总页数】4(P49-52)

【关键词】OPCUA;OPCUA服务器;SDK;嵌入式系统

【作 者】赵艳领;闫晓风;刘丹

【作者单位】机械工业仪器仪表综合技术经济研究所网络控制研究中心,北京

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

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

【正文语种】

【中图分类】TP319

随着智能制造的逐步发展,物联网、大数据/云计算等技术在工业中越来越受到重

视和使用,工业数据越来越体现“数据即资产”这一重要的产业趋势[1,2]。然而

用于获取这些工业数据的设备制造商、设备类型、集成接口等各方面存在较大差异,

工业4.0与智能制造时代面临的第一个问题将是互联与互通问题[3],因此采用一

种标准的集成方法显得十分重要。

在传统的工业系统集成中,OPC是事实上的集成标准。传统OPC是在微软

WindowsOLE技术基础上发展起来的一种数据交换方法,其目的就是通过一

个统一的接口实现不同厂商的软件产品之间的数据交换。但是由于传统的OPC

术逐渐显示出其不够灵活、安全机制不足、平台局限、实现和使用过于复杂等诸多

弱点,于是OPC基金会在2006年推出了OPC UA来取代传统的OPC技术[4,5]

OPC UAOPC基金会推出的新一代集成规范,其目的是提出一个企业制造模型

的统一架构。OPC UA支持复杂数据内置,统一的地址空间,跨平台操作,支持

抽象的服务功能。它可以被应用于工业控制系统、MES以及ERP促进企业与控制

系统的连通性[6,7]

本文在分析OPC UA应用开发框架的基础上,通过对OPC UA SDKsoftware

development kit软件开发包)进行选型和移植,以ArmLinux为嵌入式运行

平台,通过构建设备到OPC UA地址空间的映射和管控,实现嵌入式OPC UA

务器的功能。

1.1 概述

OPC UA功能按角色可以分为OPC UA服务器功能和OPC UA客户端功能,服务

器功能是指用来提供数据和统一的访问接口和服务,客户端根据统一的访问接口和

服务可以对OPC UA服务器提供的数据进行操作,这些功能即可以被单独作为一

个应用程序如单纯的OPC UA客户端工具,也可以被集成到用户程序中如MRS

系统支持OPC UA客户端功能,用户程序也可能集中了服务器和客户端两者的功

能。

1.2 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 TCPSOAP/HTTP,对应于第6部分的传输协议。

在这里需要强调的是,该部分隐含的是用户程序运行平台必须要支持一些功能才能

使得OPC UA通信栈正常运行,如运行平台需要支持TCP/IP网络协议栈。

1.2.2 OPC UA功能集

OPC UA功能集包括客户端功能集和服务器功能集如图2所示,服务器功能集主

要是根据构建的地址空间提供数据和服务,客户端功能集是利用服务访问数据,在

语义上两者对应的服务种类是一致的,但是角色不同,如节点属性操作服务,客户

端执行的读请求,而服务器是应答对应的读操作。

OPC UA功能集需要实现OPC UA的概念、信息模型、服务等相关规范,如发现

服务集、安全会话的创建、激活、关闭等操作;节点的创建、删除、增加、关联引

用等管理服务;属性访问服务如读、写、历史数据查询服务集;订阅服务;数据访

DAOPC UA8部分:数据访问)等功能。

1.2.3 业务相关功能开发

对于业务功能的开发是根据用户需求制定的,对于OPC UA服务器而言,业务功

能开发就是创建地址空间以及地址空间的管理;对于OPC UA客户端而言,业务

功能开发主要是确定读取服务器地址空间哪些数据,怎样读取数据等功能。

2.1 OPC UA服务器功能需求

如图2所示,该嵌入式OPC UA服务器的主要功能是对支持Modbus

Profibus协议的现场仪表进行管控,对外提供统一的OPC UA接口,可以方便的

集成到支持OPC UA客户端功能的信息系统如MES系统中。支持的主要功能包括:

1)需要运行在ArmLinux系统上;

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、德国的SoftingProsysUnified Automation

等公司。购买SDK要综合考虑多方面的因素,主要包括如下几个关键方面,如表

1所示。

2.3 SDK的移植

本文根据嵌入式OPC UA服务器功能需求从上述供应商中最终确定了一款SDK

(为避嫌不声明具体哪一家供应商),该SDK以源码的形式提供,需要移植到本

方案使用的ARMLinux嵌入式系统上,SDK的目录结构大致如下:

移植大致流程如下:

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

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

3)修改配置和安装路径(/config no-asm sharedprefx=安装路径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目录,其下存在一个从站

slave1slave1包含多个数据点的目标地址空间,如图3和图4所示。

本文采用标准OPC UA供应商提供的标准OPC UA客户端对嵌入式OPC UA

务器功能进行测试验证,验证系统包括多个Modbus设备和Profibus设备连接到

嵌入式服务器上,通过客户端的操作对基于用户名和密码的安全认证、地址空间浏

览、创建视图、数据读写操作、数据订阅等功能进行测试验证,验证表明该嵌入式

OPC UA服务器满足功能和设计需求,该设备将在实际企业现场进行示范应用。

OPC UA技术在国内正在形成一个热潮,在工业4.0、智能制造等领域被广泛认可,

因此支持OPC UA规范的数据采集设备在解决设备/系统集成方面将会得到广泛应

用,本文的案例不仅可以针对ModbusProfibus接口的设备,根据需要,该设

备可以支持更多的协议类型,遗憾的是,国内的SDK开发尚未起步,因此未来国

SDK的开发工业软件强基的一个重要方向。

【相关文献】

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

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

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

[4] 王侃侃,张华良.嵌入式OPCUADPWS的比较与分析[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 Unifed Architecture Part 1: Overview and Concepts.