文本原创为微信订阅号:诸子东。
这是一篇通俗讲解OPC UA的入门篇
为什么要通俗的讲呢,主要是怕自己讲的自己看不懂,会尴尬。
比这更尴尬的是,自己写的没看懂,你们却看懂了。
OPC UA内容过于深奥,笔者最近研究,说不上研究,只能说是学习,最近学习了OPC UA一段时间,是时候写一篇通俗入门篇给大家讲解一下OPC UA。
如果后续没有看到其他关于OPC UA的文章,说明笔者已经从入门到放弃了。
在讲这个OPC UA之前,需要先介绍几个单词缩写术语。
IOT:物联网
IIOT:工业IOT,工业物联网
IT:Information Technology
OT: Operational Technology
(图片来源于网上)
那么,最直接的问题是:什么是OPC UA。
如果我直接从网上摘抄OPC UA的解释,那就对不起这个标题啦。
在这篇通俗篇里,有可能很多用语会不够严谨,但请不要介意,毕竟这篇文章面向更多非研发人员。
首先,OPC UA是一种协议。
这不是废话嘛。
说到协议,在工业领域里,我想大家最熟悉的,就是Modbus 协议了。
那Modbus这个协议呢,可以串口通信,也有以太网通信。
Modbus可以读和写位数据,也可以读和写字数据。
位数据呢,就是所谓的开关点。字数据呢,就是什么温度,湿度,产量等数据,也就是非开关类型数据。
那OPC UA呢,是一种基于以太网的协议。
其实现在但凡一种协议,基本都离不开读和写位数据,字数据。OPC UA也一样的。
但是OPC UA和Modbus 或者,和别的协议有什么不太一样呢。随后会演示一下。
(该图片源于某介绍视频里所使用的PPT的截图)
该视频源:
https://www.aparat.com/v/r4FgE/OPC_UA_Security_by_Darek_Kominek_v2016_1
从图中介绍,可以看出,OPC UA可谓是上天入地,无所不能,秒天秒地呀。
毋庸置疑,OPC UA已经在IIOT里可以说很牛逼了。
OPC标准在1996年的时候开始发布的,目标就是要把PLC的特定协议,像modbus之类的,抽象出来,做成统一的接口或应用。有点类似于现在的网关,可以接各PLC协议,然后由网关与服务器特定的协议,把各plc的数据,上报给服务器。各平台也有接口可以调用,这样对平台来说,就不需要管plc是什么plc,具体是什么协议。
OPC UA就是在OPC的基础上,创立了新的框架。此处不再过多讨论OPC。
通俗地讲,就是OPC UA约定了一套协议标准,对于所有使用OPC UA协议的设备和电脑等,都可以相互访问,控制等。
那么问题来了,对于使用modbus 协议的设备来说,那确实也是可以互相访问了。那如果全世界的设备,都使用modbus 协议,该多好呀,设备都能互相兼容。但事实并没有我们想得那么美好。
我觉得原因无非就是modbus协议已经满足不了需求了,因为modbus协议太简单了,简单不代表淘汰,还是有很多设备也还在使用modbus协议的。
此处拿modbus协议作类比,主要是让大家更好地了解和接受OPC UA的入门。
好,下面我们就开始来认识一下OPC UA。
一 OPC UA的连接
像modbus tcp属于tcp协议,常用端口是502.
OPC UA也是一种tcp协议,常用端口是4840。
如图是OPC UA的连接,OPC UA是需要登录过程的,可以使用用户名和密码,还可以使用证书。
(图中所使用的工具是 uaexpert ,是一个非常好用的调试和开发OPC UA的神器,吐血推荐)
OPC UA可以说安全性是非常好的,具备信息加密,身份验证和审核。
登录之后呢,干什么呢。
二 OPC UA的变量发现
Modbus的变量类型,或者说地址访问,主要是有位数据:0X,1X。还有字数据:3X,4X。
类型单一,数据表示不明确。基本每个项目都要有相应的地址映射表。也就是什么地址表示温度,什么地址表示产量,这样不利于项目的实施和维护。
如图所示,是某个OPC UA设备的地址空间。
可以看出,OPC UA在变量,或者地址上,具备的特性:
1 允许OPC UA客户端发现服务端的变量。
这个怎么说呢,这对使用者来说,就不需要去看设备的程序或配置,也不需要再去找什么点表等等,OPC UA客户端就可以获取当前连接设备的变量。也就是这个设备有什么变量,客户端都能搜索出来了,这个可以说是非常有用的。
2 变量数据是分层表示的。
分层表示可能有点专业术语的感觉。
这个就和windows的目录结构可以说一样一样的。这样的好处就是不同的变量数据的分组关系会比较明确,利于复杂的数据结构。
3 变量直接以名字显示。
这个就是我们所谓的标签变量了。看这个变量名,就知道这个数据是啥意思了。标签变量的优势,不用多说,反正就是有优势。
这种就区别于像modbus的3X,4X这样的变量类型。这在使用和维护上,就可以减少对点表的依赖,甚至不再需要数据点表。也有点类似于数据库的概念。
拿到变量之后,干什么呢。
三 变量的读写。
拿到变量之后,无非就是读数据或者写数据。
1变量具备读写属性。
OPC UA客户端可以获取每个变量的属性,属性里就包括该变量是可读的,还是可写的。
对于不可写的变量,客户端发起写请求,服务端也会有相应的出错提示。
2 变量具备数据类型。
当我们要知道某个数据的值,比如产量的值是10000个,这个10000,我们并不关系是浮点数的10000还是32位有符号或无符号的10000。
因为每个变量都具备各自的数据类型,并能按相应的数据类型。
像modbus这个的字类型,当我们确定一个变量,比如确定一个温度变量,需要知道是4X多少,以及是浮点数还是有符号数。而这个确定,就需要参考PLC或设备里对这个变量的定义,或者需要特定的数据点表对照,使用起来十分不方便。
如图,当我们扫描到变量后,当需要对一些变量进行读取时,选择我们要读取的变量后,就可以向服务端读取数据。
每个变量有自己的变量类型,而对使用者或者用户来说,更多关心的是数据,也就是展现出来的值。
而对开发者来说,或者就协议来说,变量类型是非常有用的。这在数据传输,转换,存储等,数据的类型是要匹配的。
3 数据的订阅。
像modbus 这样的协议,要获取数据,每次都需要向服务端发起读命令,然后服务端再把数据回复。这种就是问答式的数据获取,问答式的数据获取,一个是效率问题,要想数据更新快,就要问的频繁,这也种造成网络请求压力。
而OPC UA,存在一种订阅方式。对数据进行订阅之后,就不用每次去问这个变量是多少了,就可以由服务端这边主动把数据发过来的。
以上就是OPC UA的通俗入门介绍了。
简单地讲,这个协议大概是什么样呢。
OPC UA安全性如何?
放心,这个协议很安全。什么会话加密,用户验证等应用尽有,安全地很。
OPC UA有什么数据?
OPC UA就类似于访问电脑文件夹一样,你能看到什么目录,目录里有什么文件(变量),文件(变量)是什么类型,数据是多少,一目了然。方便管理和维护,让你效率提高再提高。
当然里面的数据有普通数据啦,报警数据里,历史数据啦等等。
OPC UA的通用性如何?
这个就有意思了。这个就要拿MQTT来说一下了。
MQTT虽然是一个标准协议,但也只是提供了标准的传输通道,也就提供了主题和payload的传输模式,但是每一家开发的MQTT,定义的主题,以及payload格式都不一样,这就造成了现在火的一塌糊涂的MQTT,其实兼容性是非常差的。每一家都希望别人以他们为标准,按他们家来使用。不过,MQTT更多也是在云平台和设备之间的应用,那每家开发自己的产品,那就都不一样了。
而OPC UA,也是一个标准协议,但凡使用了OPC UA的设备,就必要符合OPC UA规范。这种情况就不会像MQTT那样,每家定义的不一样。
而OPC UA,每家不一样的地方,无非就是数据,或者变量不一样。
比如有些设备的有温度,湿度。有些设备没有温度,但有产量的。但在OPC UA的使用,应用,方案,框架等,都具备很多的兼容性,移植性等。当然,这点更多是对开发者而言的。
但开发既是成本呀。企业可不希望换一种设备或换一个平台,就要重新开发,重新花时间设计框架,制定需求等等。因此OPC UA在工厂上,MES系统等应用也非常广泛,特别是现在的智能工厂,基本会看不到modbus的影子。基本都是OPC UA或者Ethernet/IP等协议,如果你还看到大量使用modbus之类的,那就说明这个工厂还不够智能,规模还不够大。当然这也就存在商机和机会啦,刚好就有借口或理由推一下OPC UA,让工厂升级换代啦。。
OPC UA可以运行在哪里呢。
可以这么说,基本能有程序运行的地方,就能运行OPC UA。小至单片机,大到服务器。可谓是上天入地,无所不能运行。
OPC UA的应用如何?
这个问题可不好回答。就随便说说几句吧。
OPC UA毕竟主打的是数据交换。
information exchange for industrial communication
数据交换是直译啦。主要在于数据统一性的传输,交互,维护等,OPC UA发挥着非常大的作用。
OPC UA就可以在IIOT中,为各设备,企业,用户等互操作,数据应用等提供了必要的M2M,M2E应用架构了。
对于一些以OT为主线的公司或运营来说,OPC UA的模式让OT更易于管理和维护。
OPC UA会让IT和OT之间的界限变是模糊。
因为在IIOT领域里,往往是IT和OT缺乏协调性,导致应用成本,运维成本的增加,维护的困难性。
而OPC UA确实也能让IT和OT更好地融合,甚至还能提升IT和OT团队融合效率。
(此图摘抄于网上,)
(此图截图于一个视频讲解OPC)
视频源:
https://www.aparat.com/v/oaj5I/What_is_OPC%3F_UA_in_a_Minute
该视频是一分钟介绍OPC UA。是一个老外手绘介绍OPC UA的大概,可谓是图文并茂,感兴趣的可以看一下。
好了,以上就是该篇内容了。
更多类似文章,敬请关注,但不要期待。
微信订阅号: 诸子东。
物联网协议顾问。