【对话老宋】深入浅出OPC UA经典十五问
现在谈到智能制造或者工业互联网的时候,总会提到OPC UA。很多人对OPC UA听的几乎耳朵起茧了,但是,对究竟什么是OPC UA?为什么会被工业4.0标准如此重视?各大自动化厂商为什么会纷纷追捧?OPC UA究竟是一种通讯协议标准还是一个技术规范?如何能正确使用OPC UA技术?等等一系列问题并不能很清晰地认识和解答。
今天,我们通过对话OPC UA基金会(中国)技术顾问、贝加莱工业自动化(中国)有限公司技术传播经理宋华振来由浅入深谈谈OPC UA的问题,让你对OPC UA有一个全面的了解。
对话人
老石(石林才)
CE China主编
老宋(宋华振)
贝加莱技术传播经理
对话实录
老石第一问
我们现在经常听到或看到OPC UA,那么什么是OPC UA呢?是一项技术呢还是一项标准?
OPC UA属于标准与规范范畴,具体是IEC62451,标准与规范通常的目的在于进行“统一协调”,并非是一种技术壁垒或者门槛,而是一种为了不同的厂商的网络应用层数据进行交互时有个统一规范,确保协同一致,其核心在“统一”,其实现在“集成”,比如OPC UA就是属于三个集成:
(1).通信集成:把通信的Client/Server、Pub/Sub机制予以集成,即,把现有各种通信机制都予以支持,确保连接性;
(2)对基础信息模型、垂直行业信息模型进行集成,这样可以降低在具体项目中的工程成本,避免编写大量的程序和各种驱动接口;
(3)对信息安全机制进行集成,确保信息被安全的传送。
在OPC UA的这几个集成中,都是对原有的技术进行了统一的规范和接口而已,并没有新的技术,但整体又是一个“创新”,构建了一个实现异构网络设备中的数据互操作的方案。
老石第二问
OPC UA主要是干什么用的?工业上为什么要有这个OPC UA呢?
OPC UA的角色在于让工业设备使用统一的语言并实现语义互操作,通俗的说,就是希望大家在一起讲相同的语言,就像设备来自不同的国家,有说德语的、日语的、法语的、英语的、中文的,大家说的都是“你好!”,但是,相互却听不懂,OPC UA希望是的大家具有统一的语言,这个语言当然是“计算机”、“控制器”都能听懂的语言进行交互。要知道,计算机属于IT世界,控制器属于OT世界,他们两个人平时都是不同的语言表达方式、“术语”都不同,缩写都不一样,而且在OT和IT内部本身还有“方言”,也要统一到“普通话”这个水平,就是大家都实用某个语言的标准化版本。
工业上需要OPC UA的原因在于“连接”,对于流程工业本身就是连续的生产,而对于离散制造业,也正在将不同设备连接起来,不仅是物理的连接,也包括信息、软件接口的连接,这样就需要统一的接口,就像阀门之间的连接需要统一规范一样。
老石第三问
以前听说过OPC,现在OPC UA是OPC的升级吗?它有什么特点呢?
OPC是在1996年即推出的,主要是HMI/SCADA/DCS访问现场设备,OLE for Process Control,由其名字可知,OPC基于Windows的访问,后来OPC UA希望设计独立于平台,并且具有建模能力,从嵌入式系统到SCADA和ERP这些开放系统,以及安全、互操作方面的需求,同时利用原有的能力,在2006年推出OPC UA-即统一架构(Unified Architecture),OPC UA具有跨平台,支持SoA、信息建模等显著特点。在通信支持上,这些二进制、TCP都是跨平台运行能力的,信息模型更是使得用户更易于实现数据集成,而降低工程时间消耗。
老石第四问
说OPC UA是用来解决互联互通之后的互操作性,那它原理上怎么实现互操作性的呢?
实现互操作就是采用了统一的标准与规范,所以,它的实现首先是一种“约定”,就是大家同意采用这样一个格式进行数据的标准书写,就像各种应用软件都会有“打印”这个功能,不管什么软件,打印这个功能就给了用户定义打印顺序、正反面、纸张尺寸、打印机的编号等信息,这些信息构建了一个“框架”,每个应用软件写“打印”功能的时候就直接在系统里添加打印这个软件组件,然后打印机也遵循这个“框架”设定自己的打印机对应的功能,那么这个应用软件和打印机之间的这个“框架”就是类似于OPC UA的角色,它给大家一个统一的框架,大家都按照这个框架,每个应用软件不管下面打印机是什么样的,就直接按打印就可以,而开发应用的工程师调用一个“打印”功能就可以很容易的开发这个功能而无需写很多程序,而这个语义互操作,实际上就是说,Power Point发了把PPT页面4张打印到1张A4纸上,正反面,每个打印机都知道它在说什么,然后选择纸盒、启动电机进行纸张的翻转、把四张PPT的信息微缩到一个A4页面上,这一系列的工作,都是由这些标准规范、语义描述来实现的。
老石第五问
OPC UA是应用层的协议,那是否意味着无论是那种工业以太网都可以支持OPC UA协议来传输数据呢?
是的,其实这里必须说明一下,ISO/OSI的模型中的各个层级之间其实是相互独立的,即,OPC UA通常放在了应用层,而以太网仅指物理层(L1)与数据链路层(L2)的标准定义,因此OPC UA可以运行在各种总线、基于以太网的总线(如POWERLINK、Profinet、Ethernet/IP等),也可以运行在TSN这样的以太网标准之上。这就相当于你写了寄快递,你用一个手机端APP还是一个PC输入了地址、收件人、联系方式通过Wifi联网送入顺丰的服务器,这个服务器的物流调度则是由顺丰自己的中央物流分拣系统根据各个省市的需求、汽车/飞机的成本、时间消耗等综合出来的最佳路径,然后这些数据要分发给各个传输工具的司机,这种数据在用户端、调度系统、分拣中心、司机之间流动,都需要统一的格式和语义描述,包括目标地址、源地址、重量、货物尺寸规格、重量、类型(冷冻、易燃易爆都要有特殊的运输方式),而至于用什么方式运输,比如飞机、火车、公路交通,乃至末端的电动单车,这些都是属于通信的物理层介质问题,各个单元相互独立,却通过数据、协议、模型、语义来连接。
老石第六问
目前在网络互联分OSI 7层模型,也有分5层的,但无论哪种都有应用层,那么和OPC UA一样属于应用层协议的还有哪些呢?他们之间是并列关系吗?
传统的工业以太网应用层都是与OPC UA并列的,如CANopen、Profinet、Modbus都属于应用层协议,包FDT/DTM、DDS、MQTT都是处理“数据分发”的机制,并不包含信息模型的问题,或者像FDT/DTM主要偏向流程工业,而各个总线基金会他们的应用层都是属于私有的规约,由企业或企业联盟自行定义的,不能与其它的进行互操作,因此,还是需要OPC UA这个角色。
老石第七问
能否介绍一个典型的OPC UA的工业应用呢?构成这么一个应用需要哪些硬件或者软件的支持?
再一次强调“独立性”,即,OPC UA本身与硬件软件是独立的关系,OPC UA在实现的时候对于Intel、ARM还是其它处理器硬件都没有关系,或者什么样的操作系统都没有特别大的关系,OPC UA的应用可以以贝加莱的mappVIEW作为场景,以OPC UA作为一个隔离层,让HMI和PLC程序实现隔离,进而相互不影响,程序与画面没有了绑定关系,另外,OPC UA为控制器提供了更为丰富多样的数据呈现方式,包括多点触摸支持、丰富的IT控件等,当然,显著的特点在于SCADA、MES等软件可以通过OPC UA访问各种现场不同厂商的控制器,第三种应用就是像EUROMAP 77这样采用OPC UA规范的行业信息模型,可以让注塑机和MES之间进行连接,EUROMAP 79使得注塑机与机器人之间可以进行信息连接。
老石第八问
OPC UA既然是解决互操作性,那是否是说OPC UA只是用于控制器以上的数据传输,控制器内部及往下的I/O,运动控制、传感器等就不需要用OPC UA?目前的状态是哪样的?
OPC UA的目标要实现水平集成,就是指在各个机器上不同控制器之间的数据交互,垂直集成,从底层传感器到云端的集成,第三是端到端集成,就是制造单元与供应链、设计单元之间的集成,因此,OPC UA不仅仅是在数据上行,而是让数据以一种任意的方式在各个单元间流动,互相调用。当然,OPC UA是欠缺一定实时性的,这也是为什么要推进TSN的原因,即OPC UA over TSN,OPC UA来解决语义互操作,而TSN解决实时性问题,贝加莱目前的X20BC008T模块就是直接将传感器(I/O,模拟量)通过OPC UA over TSN的节点传输到上层系统。
老石第九问
现在经常看到OPC UA TSN,这是OPC UA over TSN的意思吗?那有没有OPC UA over其他工业以太网呢?比如OPC UA over ETHERCAT、OPC UA over ProfiNet、OPC UA over Powerlink、OPC UA over CC-Link等?
OPC UA over TSN是一个标准的书写,当然其它公司也开发了Profinet@TSN, Ethernet/IP over TSN, CC-Link IE TSN等,这些都是为了保持原来的应用层,但是物理层和数据链路层采用TSN标准,但是,每家的控制器实际上都是会有OPC UA Sever的,通过总线是把数据采集到控制器,然后可以写入OPC UA Server,这实际上内部是一个转换,然后就统一可以被第三方上位系统访问了,任何技术实现都要考虑原有的投资安全,这是工业领域设计任何系统必须考虑的,未来可以直接由OPC UA over TSN,当然,这是一个过程。
老石第十问
那为什么说OPC UA over TSN可能会是未来的统一通信标准呢?
我们讨论是否会由OPC UA over TSN统一,首先要问,产业有这个统一的需求吗?显然从IIoT、智能制造的角度来说,一个企业内部的多个系统单元的连接的确存在着语义互操作的需求,异构网络的多个厂商的系统有这个需求,其次,用户的需求是什么?用户的需求就是“统一”,接着的问题是由谁统一?答案是“开放”,谁更开放,更中立,因为任何一个用户都不希望被“私有”、“具体”的企业制定的标准与规范所约束,不仅在企业层面,在国家标准的层面来说,这也是不允许的。还有一个很重要的问题就是“生态系统”,即使是中立的标准规范,也必须有大量厂商支持才行,而这一点上OPC基金会有大量的会员,TSN目前也有大量的自动化和通信厂商的支持。
结论就是统一是一种需求,而由谁统一在于谁更中立,更大的生态来决定的。
老石第十一问
目前OPC UA的全球和中国的标准制定情况如何?都有哪些知名厂商参与和支持?
目前OPC UA的国际标准已经发布到了Part XIIII部分,OPC UA主要在IEC,基本上全球主流的厂商都参与了标准制定,国内的标准由ITEI,即SAC/TC124在组织,OPC UA目前国内的话,包括华为、和利时、优稳自动化、浙大中控等均已在其产品和系统集成了OPC UA。
老石第十二问
要开发一个支持OPC UA的PLC或者其他产品,需要增加哪些软硬件?需要通过什么认证或者一致性测试吗?
OPC UA的话,需要进行测试验证,这个由OPC基金会合作的实验室,如国内在ITEI就有测试验证实验室。
老石第十三问
目前市场上支持OPC UA的产品多吗?主要集中在哪些产品类型?
目前市场上欧美的主流控制器、SCADA、DCS、ERP都有了对OPC UA的支持。
老石第十四问
从目前来看,采用OPC UA会不会增加一个控制系统的成本?OPC UA应用普及过程中有哪些难点吗?
OPC UA本身的优点在于占用较小的内存空间运行,最小需要16kB,这个对于现在的控制器运行RTOS或基于Windows+RTOS的架构来说,并不会增加太多的CPU负荷,因此,如果纯粹从软硬件资源消耗角度看,不够成对OPC UA的普及障碍,但是,OPC UA意味着我们需要额外增加开发的工程师,对一个公司产品的软件开发要求比较高,至于对用户—这倒也不是问题,他们仅需配置参数即可,因此,主要的推广难点我想在于开发OPC UA本身的软件需要一定的工程师资源。
老石第十五问
请谈谈OPC UA会给我们今后的工业自动化或者数字化制造带来哪些变化?
OPC UA带来的首要变化在于降低工程成本,其实,没有OPC UA也可以连接,只是会比较复杂,写大量程序,包括各个系统间写很多接口程序,在推进一个IIoT、数字孪生、智能制造等项目的时候会比较复杂,成本比较高,任何规范和技术的基础功能首先还是得能降低成本,如果不能做到这一点,就很难被推进。
OPC UA赋予了未来更为灵活的控制系统、计算系统架构,使得真正是IT与OT的融合,因为,大家首先能够使得各自的数据代表什么?用什么结构进行了统一,使得数据真正意义实现“透明”,这很关键,因为,所有我们今天所期望的“智能时代”的愿景都必须基于“互联、互通、互操作”才能实现。
它带来的变化就在于“实现你愿望”--这些过去这么多年里用户期待的,实现数据的连通,挖掘数据的价值,必须建立在一个可以互联的基础上。