OPC UA
OPC UA将来自不同厂商不同设备的数据进行统一格式、统一显示。
OPC: originally knowns as “OLE for Process Control”, now “Open Platform Communications”. It is a collection of multiple specifications, most common of which is OPC Data Access (OPC DA).
OPC UA: OPC Unified Architecture, OPC统一框架,不向前谦容OPC classic。已经避开COM/DCOM经典OPC通讯模型,切换到TCP/IP通讯栈(基于层:Raw connections, Secure Channels, Sessions)。
以下转自:智能制造还有多远?--谈谈为什么要采用OPC UA?
9月5日,OPC UA正式成为国家推荐性标准。而对于OPC UA是什么,为什么选择OPC UA很多人却并不了解。以下推荐的这篇文章,将有助于大家全面立理解这一数据互联的基础标准与规范。
转自微信公众号:说东道西
---------------以下是正文---------------
前段时间与PLCopen主席严义老师探讨在PLCopen教育合作项目,据严老师前期的调研发现,与运动控制相关的教材非常少,甚至很多大学老师也是不了解PLCopen Motion的,这让人难以接受,因为,就我们讲“智能”而言,运动控制的精度与速度关乎产品的质量与生产效率,而且,通过灵活的参数设置,运动控制可以让生产变得更为灵活。我们不管上层架构是如何进行智能分析与优化的,但是,到了制造执行层面,如果缺乏运动控制系统的精准、柔性的执行,那么无法达到所谓的“智能”-执行是智能的重要组成,就相当于企业战略很美好,却无法执行。
图1-我们的产业有太多的理想有待实现
同样道理,我们总是探讨高大上的云平台、大数据分析、人工智能、物联网,但是,数据互联却是第一个障碍,而同样道理,OPC UA作为数据互联的基础标准与规范,却似乎很多人并不了解,甚至很多做所谓工厂集成的人也不是很清楚,在数据采集、传输与生产运营中,我们会需要对现场的机器状态、生产能耗、质量相关、生产相关参数进行采集,但是,如果缺乏统一的标准与信息模型,我们会遇到非常大的困境。
智能制造的美好前景需要底层的技术支撑,标准与规范先行,否则,我们就会离智能制造很远—远到超出我们的想像。
一
数据采集的困境
尽管大家都认为大数据分析将给我们带来巨大制造优化潜力,并改善我们的生产运营效率、资产管理水平,但是,在现实的智慧工厂互联的时候,却困难重重,无论是IIoT还是大数据分析各种概念都给我们以未来无限光明的愿景,但现实却那么骨感。
1大量的连接工作耗费精力
凡是在做智慧工厂的公司、系统集成商都清楚,包括MES厂商,就光将现场数据采集实现,这个工作量有多大,为了一个不大的项目,要去连接各种通信总线、要配置各种机器的参数,很多参数还因为技术保密的原因不开放,因此,采集了很多价值量并不高的数据,很多从IT业过来掘金工业物联网的公司都很郁闷,因为这个钱赚的实在是太辛苦,以至于他们对这件事情产生了悲观情绪。做自动化的还好,原来就是遇到这些问题,但对IT就很惨了,因为,这太过消耗工程师资源。
图2-数据是否让我们无所适从?
2采集什么数据不是很清楚
这是一个困难,对于如何运营生产系统,往往很多做IT的缺乏对机器的了解,对生产工艺、流程的了解,不能定义清楚需要采集什么样的数据?如何使用这些数据?
很多时候,大家只是说“先把数据采起来再说”,至于这个数据能干什么,那是以后的事情,先让数据不要流失、浪费,但是,如果不知道数据的用途,那么你怎么知道你采集的数据是对的?如果采集了一大堆数据在用的时候发现少了一个数据不能用于分析工艺对能耗的影响,那岂非你所有采集的数据就没有用了?
3数据要做什么用不清楚
这又是一个尴尬,就是要这些数据干什么用?如何使用这些数据,而这个问题又不再是一个技术问题,而牵扯到公司的运营管理水平的问题,如果能够达到较高的数据精准化管理、并且有先进的管理模型,那么这件事情反倒易于理解,因为首先它知道哪些数据需要采集,而如果运营管理水平一般的情况下就会出现委托第三方系统集成商采集的数据不知道该怎么用,这牵扯到企业的数字化经营的策略问题。
图3-我们要这些数据干什么?
二
为什么要采用OPC UA?
包括主流的自动化厂商,以及IT世界的华为、Microsoft、CISCO等都成为了OPC UA的支持者,以及协会组织如OMAC、Euromap、Automation ML、ISA、FDT/DTM、MTConnect、BacNet,以及全球主要的现场总线基金会如PI、EPSG、ETG、SERCOSIII均支持与OPC UA的融合与开发工作,为什么这些国际自动化、IT、基金会组织、行业协会都聚焦在了OPC UA上?
图4为结合OPC UA的标准文档,自行设计的图用于阐述采用OPC UA的八个原因。
图4-为什么选择OPC UA?
工业通信分为互联(硬件接口的连接)、互通(软件层面的数据格式与规范)、语义互操作(语义的定义与规范)几个层面,而各种总线解决的是连接问题,而互通解决了应用层的匹配,而OPC UA则解决不同系统之间的语义的互操作-包括应用行为与动态功能。
独立性、安全、国际标准、建模与信息模型、即插即用这些都是从技术角度来分析OPC UA何以成为大家关注的焦点。
三
信息模型的建立
如何理解信息模型?
信息模型是什么?
如果用OPC UA的技术来介绍可能不大易于理解,但是,如果我们想实现机器人与注塑机进行协同的工作的时候,我们必须清楚,他们之间需要哪些数据来保证他们之间的工作一致性呢?这就是数据的应用问题,而同样道理,我们希望实现OEE的统计,那么OEE的计算就是一个信息模型,我们需要与之相关的数据,而垂直行业的信息模型则在于具体的包装、塑料、印刷行业所采集的对象定义不同。
图5-让数据变得规范与标准
简单理解信息模型就是为了实现特定任务,而对数据所进行的标准封装,OPC UA提供了一个如何封装信息模型的标准,除了已经纳入到OPC UA架构下的PackML、MTConnect、Euromap、Automation ML等之外,OPC UA还支持行业自定义的信息模型,OPCUA采用面向对象的思想,使得这些开发变得简单。
图6-OPC UA架构
图6是OPC UA的架构,它包含了基础信息模型、行业信息模型,也包括制造商自定义的信息模型,提供传输服务、发现功能是基础的,而信息模型是跨平台、跨行业的应用需求。
四
OPC UA的应用好处有哪些?
4.1对于系统集成而言,OPC UA有哪些好处?
我们必须确保针对质量、效率、能源、维护等参数具有统一的模型,这样可以让我们做到以下几点:
(1).软件复用:通过数据建模形成的应用模块,如PackML可以让我们针对包装机与MES相互关联的数据统一封装,可以通过一个模块的调用即可实现相关数据的调用。这就像贝加莱的mapp中的PackML、Euromap软件模块一样。
(2).关注点分离与软件模块化:通过共享的信息模型,OPC UA让面向服务(SoA)的应用得以实现,由于采用了关注点分离的设计思想,HMI与应用程序可以分离,而数据与应用实现分离,可以由不同的应用程序读取共享信息模型进而实现分析、显示应用的各行其道。
像早期的Andriod一样,很多现场的应用存在着一些类似的问题,你必须为每种不同的屏幕开发相应的画面,因为无法自适应这些尺寸,尤其是那些非标的规格,而另一方面大量的程序员也面临着HMI与应用程序之间的复杂耦合关系带来的麻烦。
在程序开发中也存在这样的问题,当HMI与应用程序之间出现一方修改时,另一方也得修改,另外一方面,针对不同的屏幕尺寸需要采用不同的画面设计。对OEM厂商而言,这便意味着为了个性化的机器,必须反复的修改画面和程序、并对不同尺寸规格的HMI进行重新设计。
图7-mappVIEW借助于OPC UA实现关注点分离
图7所示的mappVIEW技术即通过OPC UA实现了HMI与程序的关注点分离,使得修改HMI画面的组态界面、流程与应用程序无关,而应用程序的修改也不会影响HMI的画面。并且,任意尺寸规格的HMI、智能终端均可自适应的访问机器数据。
当然,关注点分离也是模块化软件实现的主要方式,这与软件模块化可以列入同一优点描述。
(3).大量的节约工程时间:由于采用了标准的数据模型,使得数据仅需配置,而无需大量的编程操作,另外,标准的数据包一次性让与任务相关的数据被读取,而无需很多次的调用不同的参数,这也节省了工程时间。
(4).最大化数据应用:设计与生产、维护等能够在同一架构下进行数据交换,实现企业的数据共享与数据价值的最大化发挥。就像Automation ML一样,从工程设计平台到工艺辅助平台、MES、控制层数据可以实现统一的标准下的连接和分享。
OPC UA在整体上使得在工厂的各个环节的横向与纵向数据实现了透明交互,并且,配置效率更高,程序与应用模块化更强,使得工厂组织更为便利,即使面对复杂的变化,也可以实现快速的切换。
4.2行业信息模型带来快速数据配置与采集
(1).无关PLC是谁家的:如果我不用在乎谁家的控制器开发的注塑机、机械手的系统,而是直接通过数据的标准配置即可访问到机器,那是否很方便的呢?
显然,这是今天做工厂集成项目的人的最美好想法,可现实中却并非如此,也是可以连接的,他们需要针对不同的控制器配置不同的软件程序、而且还需要不同的接口模块来支撑,但是如果无论你采用何种品牌控制器、采用何种现场总线,只要你采用OPC UA,我们就可以相互访问和配置机器的参数,那么这是否会让工厂的集成人员变得工作简单很多呢?
Euromap 77是基于OPC UA的标准设计的注塑机通信模型,包括了注塑机信息、配置、状态、模具、驱动的数据对象,也包括Job、数据集管理的数据模型,如图8所示。
图8-Euromap 77基于OPC UA的注塑机信息模型开发
对于PackML而言,其旨在提供相应的能力去连接MES与质量数据,其实,对于PackML而言,图9的机器状态使得机器的时间统计变得简单,而PackML正是遵循了OPC UA的标准与规范。
图9-PackML的设备状态
通过图9所示的状态与显示画面,每个按键按下都会记录时间,最终与设备OEE统计相关的时间将被用于实现生产运营效率的统计分析。
(3).实现OICT融合的数据融合
OICT的融合,必然使得跨平台的IT与OT系统在语义方面需要融合,每个人必须懂得另一个人所说的每局话的含义,采用统一的标准数据格式、单位标准(公斤、瓦特、米、秒、小时)、能源采集的标准与数据集的统一。
边缘计算正在连接现场设备,实现数据应用,而OPC UA则是一个标准与规范,用于实现IT与OT的互联,如图10,注塑机的参数通过Euromap标准被管理、分析系统读取并通过OPCUA将生产任务下达至机器。
图10-基于OPC UA实现注塑机新工厂与老工厂的集成
事实上,各个行业都在大张旗鼓的推进着智能制造,但是,就基础的而言,OPC UA、PLCopen等标准化工作是必须先行的,当然也包括基于IEC 61508的功能安全技术标准、机器人的ISO 10218等。
这就是想说的“智能制造离我们还有多远?”—我们应该基础工作做好。不仅产业里,包括大学里的课程,关于互联互通这些问题还停留在久远的现场总线,而无视产业已经大量的采用实时以太网技术,而新的TSN也将在不久与OPC UA融合成为可以预见的未来互联集成方案。
OPC UA的更多相关文章
- 关于OPC UA Helper 命名空间中的OpcUaClient 类中的订阅函数的更改
原函数是opcUaClient.MonitorValue("ns=4;s=MAIN.d", new Action<double, Action>(MonitorTest ...
- 基于open62541的opc ua 服务器开发实现(1)
关于opcua的介绍这里就不多说了,相信大家大都有了一些了解,open62541是一个开源C(C99)的opc-ua实现,开源代码可在官网或github上下载. 话不多说,首先搭建一个opcua服务器 ...
- OPC协议解析-OPC UA OPC统一架构
1 什么是OPC UA 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 ...
- 从 OPC 到 OPC UA
[前言]OPC是一个工业标准,所属国际组织是OPC基金会,现有会员已超过220家,包括世界上所有主要的自动化控制系统.仪器仪表及过程控制系统的公司. [经典 OPC]经典OPC规范基于微软Window ...
- SharpNodeSettings项目,可配置的数据采集,统一的工业数据网关,OPC UA服务器开发,PLC数据发布到自身内存,redis,opc ua,以及数据可视化开发
本项目隶属于 HslCommunication 项目的SDK套件,如果不清楚HslCommunication组件的话,可以先了解那个项目,源代码地址:https://github.com/dathli ...
- C# OPC UA服务器 OPC UA网关 三菱 西门子 欧姆龙 Modbus转OPC UA 服务器 可配置的OPC UA服务器网关 HslSharp软件文档
前言 本文将使用一个基于开源项目HslCommunication创建的OPC UA网关,方便通过配置创建一个OPC UA的网关中心.具体的操作及支持的设备信息项目参照下面: 开源项目HslCommun ...
- C# 读写opc ua服务器,浏览所有节点,读写节点,读历史数据,调用方法,订阅,批量订阅操作
OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术难以满足日益复杂的环境,在可扩展性,安全性,跨平台性方面的不足日益明显,所以OPC基金会在几年前提出了面 ...
- OPC UA (统一架构)的优势
OPC UA OPC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术,更加安全.可靠.中性(与供应商无关),为制造现场到生产计划或 ...
- OPC UA的监控项、订阅、和通知
MonitoredItem 每个监控项均指明了要监控的项目(item)和用来发送通知的订阅. item可以是一个节点的属性(node attribute). MonitorItem可以监控一个属性,一 ...
随机推荐
- 最强 Android Studio 使用小技巧和快捷键总结
最强 Android Studio 使用小技巧和快捷键总结 写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android ...
- get the code of function in matlab
>> edit <function>>> edit perform
- Chris Richardson微服务实战系列
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
- jsp页面中的EL表达式不被解析的问题
原因:问题在web.xml配置文件上,web.xml声明部分一般分为如下版本的xsd, web-app_2_2.xsd web-app_2_3.xsd web-app_2_4.xsd web-app_ ...
- 什么是内联函数(inline function)
In C, we have used Macro function an optimized technique used by compiler to reduce the execution ti ...
- mac安装GnuGP
1.首先查看gnugp最新的稳定版: localhost:~ jack$ brew search gnupg ==> Formulae gnupg gnupg-pkcs11-scd gnupg@ ...
- python之celery使用详解一
前段时间需要使用rabbitmq做写缓存,一直使用pika+rabbitmq的组合,pika这个模块虽然可以很直观地操作rabbitmq,但是官方给的例子太简单,对其底层原理了解又不是很深,遇到很多坑 ...
- android studio - Indexing paused due to batch updated
傻逼的 Android Studio 又开抽疯了.... 日 打开项目就出现 Indexing paused due to batch updated ,并且半天没反应........ 解决办 ...
- FFmpeg(9)-解码器解码代码演示(FFmpeg调用MediaCodec实现硬解码、多线程解码、及音视频解码性能测试)
一.AVFrame 用来存放解码后的数据. [相关函数] AVFrame *frame = av_frame_alloc(); // 空间分配,分配一个空间 ...
- DIOCP开源项目-DIOCP3直接发送对象,帮你处理粘包问题
该DEMO演示,如何在客户端与服务端之间直接传递TStream对象,让你专注于处理数据逻辑,可以忽略处理网络传输间粘包的问题. 上面由服务端向所有的客户端推送一个消息TMemoryStream对象(该 ...