美文网首页
【转载】通俗讲解OPC UA 之通俗入门篇

【转载】通俗讲解OPC UA 之通俗入门篇

作者: 一路向东_lxd | 来源:发表于2020-07-13 15:13 被阅读0次

    文本原创为微信订阅号:诸子东。

    这是一篇通俗讲解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的大概,可谓是图文并茂,感兴趣的可以看一下。

    好了,以上就是该篇内容了。

    更多类似文章,敬请关注,但不要期待。

    微信订阅号: 诸子东。

    物联网协议顾问。

    相关文章

      网友评论

          本文标题:【转载】通俗讲解OPC UA 之通俗入门篇

          本文链接:https://www.haomeiwen.com/subject/duwacktx.html