这是一篇通俗讲解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 用哪种语言编写_通俗讲解OPC UA 之通俗入门篇相关推荐

  1. opc ua 用哪种语言编写_什么是OPC UA?

    什么是OPC UA? 为了应对标准化和跨平台的趋势,为了更好的推广OPC,OPC基金会近些年在之前OPC成功应用的基础上推出了一个新的OPC标准-OPC UA.OPC UA接口协议包含了之前的 A&a ...

  2. opc ua 用哪种语言编写_OPC UA是个什么东东

    OPC UA(Unified Architecture,统一架构)是下一代的OPC 标准,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间. OPC UA基于OPC基金会提供的 ...

  3. opc ua 用哪种语言编写_OPC UA是什么 OPC UA简介

    最近在电视上看到,消费电子取得了一些突破性的技术进步,这让我感到非常惊奇.例如,手机上配备了内置的Google应用,一款内置Google应用的惠普打印机则支持用户直接从互联网或无线设备上打印图像和文档 ...

  4. (3)verilog与Systemverilog两种语言编写二分频

    3 verilog与Systemverilog两种语言编写二分频 1 本节目录 1)Verilog简介 2)Systemverilog简介 3)二分频verilog编码 4)二分频Systemveri ...

  5. (3)verilog与VHDL两种语言编写二分频

    3 verilog与VHDL两种语言编写二分频 1 本章目录 1)Verilog简介 2)VHDL简介 3)二分频verilog编码 4)二分频VHDL编码 5)本节结语 2 Verilog简介 Ve ...

  6. paho | 支持10种语言编写mqtt客户端,总有一款适合你!

    1. 轻量级物联网协议 - MQTT MQTT全称 Message Queuing Telemetry Transport,即消息队列遥测传输协议,是一种基于发布/订阅(publish/subscri ...

  7. python语言自学教程-3D图示Python标准自学教程入门篇

    内容简介: Python入门篇教程从最基础的计算机发展史.Python的来源与发展历史开始讲起: 依次讲解python变量与表达式.数据类型.运算符.流程控制语句等,末尾通过课堂练习.课后作业以及微型 ...

  8. dll文件用什么语言编写_零基础学习markdown标记语言语法,十分简单便捷编写markdown文件...

    引言:在完成了使用开源的Atom软件搭建好编写markdown的环境后,接下来就进行我们的第一个markdown文件的编写,同时学习markdown标记语言的基础语法,都是十分简单的一些标记,如果学习 ...

  9. 39种语言编写的Hello World程序

    Hello World程序 维基百科,自由的百科全书 Hello, World!程序是一个只在计算机屏幕上打印出"Hello, World!"(英语,意为"你好,世界!& ...

最新文章

  1. 备份 CSDN 博客(上)
  2. 互联网职场就像一场《鱿鱼游戏》
  3. 细说双 11 直播背后的压测保障技术
  4. python3.6.5+cuda9+cudnn7.1+win10+tensorflow-gpu1.9.0下载配置
  5. php 数组 键值 初始化,PHP 自定义键值数组
  6. 特征数据清洗 编码 标准化
  7. oracle rman在线备份,Oracle的RMAN备份与恢复脚本
  8. Sentry安装教程
  9. Visual Studio——使用多字节字符集与使用Unicode字符集
  10. PHP架构师成长路线,PHP架构师要求
  11. 电话号码的字母组合---2022/01/23
  12. Sql Server常用命令整理篇:生成连续日期序列并循环
  13. 如何在 Linux 和 Unix 上安装 git?
  14. 探索 Sa-Token (一) SpringBoot 集成 Sa-Token
  15. 抖音2018大数据分析报告
  16. 传真百科:电子传真邮件客户端
  17. MSTAR数据库结合深度学习(SAR图像目标检测与识别)
  18. EFR32MG22与TI CC2652RSIP对比
  19. GNN手写字体识别java_深度之眼Paper带读笔记GNN.09.GGNN
  20. php 判断来源 微信客户端_使用PHP判断是否为微信、支付宝等移动设备访问代码...

热门文章

  1. 初学Spring遇到Unsupported class file major version 61 错误
  2. String类型相加随笔
  3. 真人照片转动漫效果教程
  4. 百度闲聊对话机器人Plato-1、2、XL
  5. angular 引入本地图片
  6. 记住!在看小电影前一定要检查下域名是不是 HTTPS 的
  7. MySQL实战:数据是如何进行存储和查询的?
  8. pe系统作为共享服务器,如何制作服务器winpe操作系统(制作带raid卡驱动的winpe系统)...
  9. 2021.3.11丨CNVnator结构变异分析使用方法
  10. android 屏幕测试程序 测试R G B三色 和 全黑, 全白5种状态