APP下载

工业物联网数据采集系统的开发

2018-02-26何圣华

电子技术与软件工程 2018年14期
关键词:实时性客户端联网

何圣华

摘要 针对工业物联网在智能制造中的重要地位和目前工业物联网数据采集遇到的问题,本文提出一种基于OPC UA的工业物联网数据采集框架,概述了OPC UA的体系结构和应用优势,分析了优化OPC UA数据传输实时性的方法,最后分别介绍了基于Open62541开发包的服务器开发方法和基于.net的OPC UA SDK的客户端开发方法。

【关键词】工业物联网 数据采集 OPC UAOpen62541 0PC UA SDK

1 引言

1.1 工业物联网数据采集的意义

德国的工业4.0计划拉开了全球第四次工业革命的序幕,工业4.0的主要特征是基于物理和信息系统深度融合的高度网络化和智能化的新一代制造系统。这个新一代的智能制造系统由很多重要的子系统组成,其中,工业物联网就是智能制造系统的基石,工业物联网可以帮助传统工业提升到智能化的新阶段。智能制造系统的建造从工业物联网开始,而工业物联网的性能和质量则决定了智能制造系统建造的高度。工业物联网的数据以及数据流,就像智能制造系统大厦的能源和照明系统,有了工业物联网的数据采集和数据传输,智能制造系统才有了动力的保障。所以说,工业物联网是工业4.0的基础,工业物联网的数据采集、数据传输和数据利用是构建物理信息系统和实现智能制造的必要条件。

1.2 工业物联网数据采集面临的困难

工业物联网的数据采集对于智能制造的实现尤为重要,但是,目前工业物联网的数据采集和传输却存在不少的困难,严重影响着智能工厂建设的信心和进程。这些工业物联网数据采集的困难主要表现在三个方面:第一个困难是由于历史上不同厂商的竞争和利益保护的原因,工业物联网的数据采集无论是网络层的还是传输层的协议都非常多,导致数据采集系统的集成难度大、管理成本高;第二个困难是在智能制造系统的不同层之间,采集和传输过程中的数据语义无法统一,难以实现数据的集成和模型的集成,造成数据难于被智能工厂的其他层所利用;第三个困难是智能制造系统建设过程中,针对不同设备和不同协议的数据采集程序的开发难度大、开发门槛高,阻碍智能制造系统的建设。

针对上述问题,本文第二部分重点介绍一个基于OPC UA协议的工业物联网数据采集的框架方案,然后讨论基于这个框架的OPC UA的数据采集优化方法,最后,本文第三部分还将介绍这个数据采集方案中相关的服务器与客户端开发技术,希望能够为工业物联网数据采集和智能制造系统的建设提供一点参考。

2 工业物联网数据采集框架研究

2.1 基于OPC UA的工业物联网数据采集框架

为了应对上一节提到的工业物联网数据采集中面临的问题,本文提出如图1所示的基于OPC UA的工业物联网数据采集框架:

如图1所示,这个数据采集框架被划分为四层。底层是有由泛在化的生产加工设备、生产辅助设备和传感器组成的设备传感层,在这层里,设备的基础数据和状态数据先是被封装到OPC UA服务器里,然后通过OPC UA的订阅/发布或者是查询的模式自动地向更高层的应用传输。

数据采集框架中的第二层网络联接层负责把工厂底层的设备与工厂的信息化系统、把企业外部的互联网和各种云应用联接起来。网络联接层促使企业内部的组织和管理结构扁平化,同时,网络联接层的设备控制网和企业信息网也向着合二为一的方向发展。

第三层是企业信息化层,这一层的特点是在业务过程数字化的基础上,把设备传感层的数据通过OPC UA的客户端进行采集,然后保存到本地数据库、云端数据库或者是传输到企业内部的其他应用系统之中,从而实现ERP、MES等业务系统的集成化以及生产上下游的管控一体化。

最上面的一层是智能制造与云制造层,这一层主要的特征是产品的个性化、设计的社会化和制造的智能化。在图1的数据采集框架中我们可以看出,OPC UA不仅仅是工业领域通用的数据传输标准,而且,它还通过信息模型的封装实现了智能制造各个层之间的数据语义统一性,因此,OPC UA被称为工业4.0的基础,基于OPC UA的工业物联网数据采集方案具有重要的意义和良好的可行性。

2.2 0PC UA的体系结构

本文介绍的工业物联网数据采集方案以OPC UA协议为基础。OPC UA (OPC UnifiedArchitecture)发展自传统的OPC协议,是目前工业通信的主要通信协议。IEC 62541对OPC UA协议进行了标准化。通过IEC 62541系列标准,我们可以更好地理解OPC UA的规范和体系结构。IEC 62541系列分为13部分,这13个部分可以分为三大类:

2.21 核心类规范

核心类规范给出了地址空间、信息模型,订阅、通知、服务集等重要概念的解释,描述了OPC UA典型的目标应用、系统架构、服务架构和客户端架构。核心規范的第四部分服务和第七部分子集协议规定了服务器和客户端可以调用的服务集,这些服务集包括发现服务集、安全通道服务集、节点服务集、属性服务集、查询服务集等10个服务集。这些服务集中的服务可供OPC UA的服务器、客户端和其他终端节点调用。

2.2.2 访问类型规范

访问类型规范规定了如何通过OPC UA进行不同类型的数据访问(DA、A&E、HAD等),OPC UA这种一致、完整的地址空间和服务模型,解决了过去同一系统的信息不能以统一方式被访问的问题,使得OPC UA的配置时间和整个工程的时间也因此可以大大缩短。

2.2.3 应用类规范

应用类规范包括Discovery和Aggregates两部分,它们规定了OPC UA在实际应用中如何解决一些具体技术问题。

2.3 0PC UA体系的几个优势

OPC UA之所以能成为工业通信和数据交互的标准,除了它有完整的体系架构外,还因为它有几个突出的优势,使它成为一个更安全、更易集成、更加标准化、更易扩展的标准和应用框架:

2.3.1 跨平台

OPC UA不再基于分布式组件对象模型(DCOM),而是以面向服务的架构(SOA)为基础,这使得OPC UA具有与其他系统更好的兼容性它不仅可以运行于windows平台,还可以运行于各种Linux和嵌入式平台。这种基于服务的架构使得它与传统的OPC,相比,可以突破局域网的限制,拓展为基于英特网的数据访问。

2.3.2 访问统一性

OPC UA有效地将原有的OPC规范(DA、A&E、HDA、命令、复杂数据和对象类型)集成进来,并且提供了一致、完整的地址空间和服务模型,解决了过去同一系统的信息不能以统一方式被访问的问题。为了提高传输性能,OPC UA消息可以被编码成XML文本格式或是二进制格式,可以使用TCP或是HTTP传输协议进行传输,使得OPC UA客户端对于服务器的访问更加灵活方便。

2.3.3 可靠的安全认证

OPC UA访问规范明确提出了标准安全模型,每个OPC UA应用都必须执行OPC UA安全协议,这在提高互通性的同时降低了工程维护和额外配置费用。OPC UA的数据可靠性来源于几个方面:一是基于Session的可靠通信机制,能够保证服务器和客户端的长时间稳定连接;二是数据的安全性通过用户鉴权、签名和加密传输等技术来保障,保证了消息的完整性,也防止信息的泄漏;三是OPC UA对数据通信和数据异常有良好的鲁棒性,如可配置的超时、数据冗余、自动错误检查和自动恢复等机制来预防数据丢失、数据异常,从而实现高可用性。

2.3.4 完善的服务集

OPC UA服务集一共包含10个,如用于发现和注册OPC UA服务器的发现服务集;用于打开和关闭通道的安全通道服务集等等。这10个服务集为构建面向服务的OPC UA数据通信架构奠定了良好的基础。

2.3.5 统一的信息模型

OPC UA的地址空间组织方式使得OPCUA可以对外提供统一的信息模型。OPC UA的某个具体应用的信息模型是开发者为了实现特定任务而对数据所进行的标准封装。OPCUA的地址空间由一系列节点组成,服务器可以在它们的地址空间中自由地组织它们选择的节点。节点间引用的使用,允许服务器可以把地址空间组织成分层结构,网状节点结构,或任何可能的结构混合。地址空间中的节点用来代表真实对象,以及它们的定义和相互之间的引用。客户端可以通过使用OPC UA服务(接口和方法)来访问节点。此外,统一对象模型允许把数据访问,事件报警,和历史数据访问功能集成到一个单一的OPC UA服务器中。

2.3.6 良好的可扩展性

OPC UA良好的可扩展性体现在两个方面:一是OPC UA与其他的工业标准具有良好的兼容性。除了已经纳入到OPC UA架构下的等之外,OPC UA还支持行业自定义的信息模型。这些自定义的信息模型包含了基础信息模型、行业信息模型,也包括制造商自定义的信息模型,它们为OPC UA的应用提供了良好的可扩展性;OPC UA可扩展性的第二个方面是OPC UA用面向对象的编程方法支持类的定义、集成和实例化,可以方便地进行扩展。

2.3.7 通过OPC UA相关的SDK降低开发成本

OPC基金会和IEC组织都提供了一些OPC UA服务器端和客户端软件开发的SDK工具,这些SDK可以帮助开发商降低开发成本,供应商也可将更多的精力关注在为客户提供更有价值的产品上。

基于上述原因,OPC UA已经成为工业4 0时代工业大数据采集的重要实现技术。

2.4 提高OPC UA实时性的方法研究

工业现场对于数据采集的实时性有很高的要求,因此,对于智能制造而言,研究如何提高工业物联网数据采集的实时性和效率有重要的意义。我们在2.2节已经大致了解了OPCUA的体系结构,本小节将进一步讨论OPCUA的数据传输过程,并讨论如何提高OPCUA数据传输的实时性。图2表示了OPC UA数据传输过程的模型。

在图2我们可以看出,基于OPC UA的数据采集和传输过程从采集物理设备的模拟量和数字量开始,到OPC UA的客户端接收到相关的变量值的过程一共可以分为三个阶段:

第一阶段是物理量的采集过程。在这个过程之中,服务器中的实时采样线程周期性地采集物理设备的数字信号和模拟信号,因此,物理量的采样周期大小是影响OPC UA数据采集实时性的第一个因素;

第二个阶段是服务器中数据监控项的采样过程。客户端订阅了某个服务器的数据监控项后,服务器中就产生对应这个监控项的一个订阅,这个订阅也周期性地刷新物理量采样周期获得的内存数据映射的值,这个周期称为监控项的采样周期。顯而易见,这个监控项的采样周期也会影响OPC UA的整体数据采集的实时性。在监控项采样过程阶段,我们可以设置监控项的死角,死角设置得小,客户端对于监控项的数据变动就敏感,但是死角的值设置得太小则会造成过于频繁地向客户端发送通知消息,因此,合理设置监控项的死角在实际应用过程中非常重要。

第三个阶段是订阅数据的发布过程,这个过程中,服务器会向客户端定期地发送订阅中的通知信息,而这个发送的周期就是订阅数据的发布周期。同样,这个周期也会影响OPCUA服务器和客户端之间的数据传输的实时性。

从图2的OPC UA数据传输模型我们可以看出,物理量的采样周期、监控项的采样周期、订阅数据的发布周期以及监控项的死角都会影响OPC UA的数据传输实时性,这些周期设置得过大的话不能实时反映数据的变化,周期设置得过小的话,会增加采集过程的设备计算压力和网络带宽压力。同样,监控项的死角参数设置也需要注意这样的问题。因此,我们需要在实际的工程项目中合理配置和动态设置这些参数。

3 0PC UA服务器与客户端开发

前面我们提出了基于OPC UA的工业物联网数据采集的框架,探讨了OPC UA的体系结构和优化方法,下面简单介绍一下基于OPC UA相关开发工具的服务器和客户端开发方法。

3.1 0PC UA服务器开发

IEC组织不仅制定了IEC62541的OPCUA标准,而且为方便开发者开发OPC UA相关的服务器与客户端,还提供了一个名为Open6254的SDK。Open6254是一个基于c语言的开发OPC UA服务器和客户端的开源实现工具。采用C语言开发包开发的程序运行速度快,而且对操作系统和硬件设备的配置要求低,可以运行于嵌入式设备和微型计算机系统中。图3简要表示了基于Open62541进行服务器开发的技术模型。

Open62541以函数调用的方式提供服务器配置、服务器生命周期管理、节点管理、引用管理、节点读写、方法管理等功能,例如我们可以调用上图服务器生命周期管理模块中的UA_Server_run_startup,UA Server_run, UA Server run iterate, UA Server runshutdown、UA Server_ delete等函数来实现服务器的启动、运行和关闭、删除等功能。我们可以用Attribute Service Set,NodeManagementService Set,Monitoredltem等服务集之中的函数来实现属性管理、节点管理、监控项管理等功能。在Server Configuration中,UAUsemamePasswordLogin结构体包含了连接该服务器的账号和密码以保证通信的安全。此外,在变量与物理过程映射模块,在运行的过程中有三种更新设备变量的方法:

(1)手动更新变量;

(2)通过回调函数更新变量;

(3)通过数据源来更新变量。OPC UA客户端通过接收服务器发布的通知来获得最新的数据。

3.2 0PC UA客户端开发

在上述的数据采集与监控方案中,OPCUA客户端起到向下采集底层设备的状态、向上与企业层生产计划和管理软件相联系的作用。我们可以在PC端工作站中利用.net的OPC UA SDK来开发和部署客户端。

OPC UA SDK(OPC UA软件开发包)是一套可以让人在NET开发环境中快速开发UA应用的开发接口库和可执行程序。OPCUA SDK包含客户端开发和配置工具。OPCUA SDK实现了IEC 62541中定義的所有服务、协议栈、消息终端、安全协议和传输协议。

如图4所示,我们可以用OPC UA SDK来开发Client、Server和Webservice。OPCUA SDK的结构如下图虚线框中部分所示,它由四部分组成:Comlnterop提供了传统的OPC和OPC UA之间的无缝的互操作性。ConfigurationTool用作UA应用的安全和COM互操作性的配置工具。Stack是.NET环境的OPC UA协议栈库。SDK包含了六个部分:其中,Controls是一组控件,我们在开发客户端程序的时候可以直接使用这些控件,例如在Common控件组中,我们可以使用DiscoveredServerListCtrl控件来列出某个地址主机的上的server,用ConnectServerCtrl控件来连接server等。Client lib则是我们在开发客户端程序时可以使用的一些类和函数,例如创建监控项的Monitoredltem类和创建订阅的Subscription类。由此可见,有了这个OPCUA SDK,我们无需自己去实现OPC UA的底层通信协议,而只要使用控件和调用相应的client development toolkits就可以实现数据的采集与监控方面的应用。

使用上述工具和方法来开发OPC UA客户端,客户端与服务器的平台性质无关,ConfigurationTool组件保证了客户端访问的安全性,Stack中的UA Core lib实现了IEC62541标准中的底层栈和协议,具有很好的通用性。client development toolkits中用面向对象方法设计的类既可以被继承,也可以根据需要来被重构。通过Net平台的OPC UASDK,我们还可以面向企业级应用来开发相应的Webservice,从而满足智能制造系统在数据采集与监控方面的更多的需求。

4 小结

智能制造是世界各国工业发展计划的目标,然而工业物联网底层数据的采集、传输过程中遇到的协议不统一、实时性有待提高、相关程序开发难度大等也是业界普遍遇到的问题。本文从这些解决这些实际问题出发,提出基于OPC UA的工业物联网数据采集框架,介绍了框架中包含的各个层的内容和框架中采用的数据协议与数据接口。本文还以OPC UA的体系结构分析为基础,探讨了OPC UA数据采集和传输实时性的优化方法,最后分别介绍了基于Open62541开发包的服务器开发方法和基于net的OPC UA SDK的客户端开发方法。

参考文献

[1]郑树泉,工业物联网大数据平台架构与应用[J].软件产业与工程,2016 (06):15-18.

[2]康世龙,杜中一,雷咏梅等,工业物联网研究概述[J].物联网技术,2013 (06): 80-82.

[3]谢青松.面向工业大数据的数据采集系统[D].华中科技大学,2016.

[4]贝加莱.OPC UA-智能制造的数据基础[J].国内外机电一体化技术,2017 (06): 40-41.

猜你喜欢

实时性客户端联网
“身联网”等五则
基于规则实时性的端云动态分配方法研究
抢占物联网
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
基于虚拟局域网的智能变电站通信网络实时性仿真
航空电子AFDX与AVB传输实时性抗干扰对比
可再生能源与物联网
得MCU者得物联网天下