opc ua与opc da区别_OPC,OPCDA,OPCUA傻傻搞不清楚,走过路过不妨看一看

转自:https://blog.csdn.net/weixin_39624774/article/details/111283867

此前我写过一遍文章,通俗讲解OPCUA。虽说是通俗的讲,但是还是略有点深入。因为是要基于大家对OPC有所了解的基础上,再去了解OPCUA的。

这篇文章这次不走技术层面讲解,而是让大家怎么样更好地理解和区分OPC,DA,UA这些概念,别傻傻搞不清楚了。

话不多说,先来看看什么是OPC。

OPC是OLE for ProcessControl的缩写,即应用于过程控制的OLE。

OPC规范包括OPC服务器和OPC客户端两个部分。其实质是在硬件供应商和软件开发商之间建立一套完整的“规则”。

不好意思,以上两句话,我摘抄了百度百科。相信很多人查阅OPC资料,也看过这个资料啥的。

但是,看了之后,是不是感觉跟没看一样。连OPC是啥,就大谈价值,SaaS,框架,应用,最多也只是空谈罢了。

好在我们不是解释概念,而是聊。聊就不一样了,抛开那些乏味的专业术语。

我们先聊聊这个背景。

OPC的诞生

OPC是在1996年前后,由几大自动化供应商组成一个工作组,负责开发基于COM和DCOM的数据访问标准,称之为OPC。

什么是COM和DCOM技术及数据访问,我们暂时不讨论。

但可以肯定的是,这个事,和微软有关系。因为在90年代,微软的操作系统开始占据市场,并且自动化供应商也没有更好地选择。

在微软推出COM和DCOM技术之后,自动化供应商在产品中开始使用这个技术。怎么说呢,因为可能在当时,没有比这更好的选择了。

但是呢,每家自动化用法不一样,对于做SaaS的呢,有时候在一个项目或者软件里,不可能只使用一家供应商或一种设备的。为了解决这个问题,几大自动化公司就站出来说,我们来搞一套标准的吧,为了工业,为了未来,搞。

于是他们把这一套标准就称之为OPC了。

注意这个时间,96年左右。也就是Windons 95 刚出来。也就是在视窗系统出来之前,用的都是DOS系统呀。现在还知道DOS系统的,是真的老工控了。

那时候互联网还没有发展起来,更别说物联网了。

在自动化行业,还是有数据采集需求,那采集的数据去哪里呢,就要去到上位机系统,上位机也就是Windows了,要知道那时候Windows的市场占有率多可怕。

也就是在同一台电脑,又要进行数据采集,又要进行数据显示,又要应用在现场,这种电脑,很多时候往往就是工控机的角色了。

而电脑采集数据,无非就是通过串口,以太网,或者就是板卡集成到PC主机数据采集。

这就为难了那个做纯软件开发,他们做的是UI的软件,也就是类似组态王之类的界面显示系统,但是每家的数据采集都不一样,没有个标准和统一,也可以理解为硬件商提供的数据采集都不一样。

也就是硬件厂商A把数据采集做好了,同时软件客户B把UI软件设计出来了,但是中间缺乏一个桥梁。UI调用数据,查阅和管理数据,按理说是可以用数据库的。

在当时,可能COM和DCOM技术比使用数据库更为方便,以及更为开发者接受。所以自动化更倾向于使用COM和DCOM技术。

也就是自动化供应商采集数据,封装成COM组件或服务。做UI系统的,比如组态王之类的,只需要调用COM组件或服务,就完美解决之前的数据对接桥梁问题。

再加上有了OPC标准之后,软件的开发复用性更强一些,也促进了SaaS的发展。虽然,目前很多都是伪SaaS模式,这个在后续的文章和大家交流为什么会有伪Saas存在。

至此,OPC的来龙去脉就差不多清楚了。

DA (OPC DA)

那什么又是OPC DA呢。 这个D,也就是Data,数据访问了。

OPC 只是一个标准。那用OPC来干嘛,用OPC来进行数据访问。

所以,只要前面了解了OPC标准,再了解OPCDA 就很清楚了。

也就是OPCDA的数据访问,都是同一台电脑里发生的。

OPC数据采集端,通过串口,以太网,板卡,采集到的数据,作为OPC服务端,以便OPC客户端来进行访问。

也就是应用程序,比如组态王,就是客户端程序。

这里的客户端和服务端,并不是我们所说的TCP/IP里的客户端和服务器。

在同一台电脑里,应用程序访问数据,是通过DOM技术来访问的。

再通俗一点,比如A程序把采集到的数据写到一个指定文件里。

然后B程序到指定的文件读取数据并显示出来的。

所以OPCDA的数据采集,客户端和服务端的角色就是类似于A程序和B程序的角色一样。

所以,我们目前见到的OPCDA数据采集,都是在同一台电脑里发生的。

而且,是因为基于COM,DCOM技术,限定了这个只能是在Windows实现。如果有客户说他们在安卓系统或者别的系统实现了OPCDA,那可得悠着点。毕竟这么古老的技术,要么就是忽悠的,要么就是行业里的技术牛人,硬是跨平台跨系统实现。

难道就是说,OPCDA就不能远程访问了吗?

这里很多人就容易搞不清楚了。

首先OPCDA不是协议。虽说OPC是一个标准,但是这个标准并不是指某个通信协议标准,而是指某种技术的使用标准和规范。

那,既然OPCDA不是协议,更不是某种TCP协议,那是不是就意味着OPCDA不能在两台电脑之间访问呢。

其实呢,也不是的。

在Windows里,就存在一种两台电脑之间通信的机制或协议。叫RPC,也就是远程过程调用。这里不作详细解析。

简单地说,OPC DA呢,好比如电脑上的某个资源或文件之类的,而Windows的RPC,就是为了让两台电脑可以互相访问资源的。OPCDA的技术是COM技术,所以有些远程访问OPC,也看到描述为OPC COM之类的。

但是像这种还是基于PC到PC的。

也就是纯OPCDA,如果想要支持远程访问,那就必须配置支持RPC服务等。实际上还是借助了RPC通道或服务来间接使用OPCDA的访问。而且这种应用呢,也局限于在Windows的使用。虽然也会一些人觉得,RPC可以不仅是在Windows使用呀。

如果RPC可以完全解决OPCDA的远程访问问题,那就没有OPCUA了。

OPCUA登场

UA 也就是统一框架。

为什么要出OPCUA,最直接的原因是啥呢。

2000年以后,很多嵌入式设备开始出现,linux系统,wince系统等逐渐应用在自动化设备中。

而这些设备基本不能使用COM ,DCOM技术,甚至开发者也不愿意在这些嵌入式设备上使用这些技术和应用。

为了能支持跨平台,跨系统,OPCUA应运而生了。

因为此前OPCDA如果要在两台电脑间访问,除了复杂的配置,操作的繁琐,还存在安全性问题。使得OPCDA再难以满足多元化需求。

现在有需要远程访问OPC的,都在使用OPCUA了,远程访问OPCDA也逐渐不被大家接受。慢慢地OPCDA也只存在于单机服务了。

OPCUA除了约定了数据等定义规范,同时还支持了TCP/IP协议。使得远程访问不再局限于使用RPC技术。

也就是OPCUA终于有了属于自己的协议,不再寄人篱下看别人颜色了。

同时数据结构,存储,映射等,不再使用COM/DCOM技术,就意味着不再限制于Windows了。

在各种嵌入式系统也可以实现OPCUA,并且可以在各平台,各系统进行数据通信访问。

同时OPCUA将DA,HAD,AE整合在一起。也就是支持数据(有时候也叫实时数据),历史数据,报警和事件,通通一个协议搞定。

因为是独立的TCP/IP协议,不再受限于别的技术,SCADA项目陆续使用OPCUA技术,也出现了很多成功的SCADA系统。

而且各大互联网平台,也都在逐渐接受和推广OPCUA。相对于MQTT来说,OPCUA是能实现大一统。毕竟MQTT只是一个开放通道,每家的MQTT版本,主题都不一样,格式也不一样。

当然OPCUA和MQTT也不是一个量级的,本身也没有一定的可比性。

这里讲OPCUA的篇幅可能有点少,但更多是主要将OPC,DA, OPCDA,OPCUA区别清楚。

如果想多了解一些OPCUA,可关注订阅号诸子东,查看之前的那篇通俗讲解OPCUA。

最后,我们再复盘总结一下。

首先,什么是OPC。

OPC就是基于COM/DCOM的数据访问的标准。

DA,就是数据访问。

OPCDA,就是基于OPC标准的数据访问。

因为是基于COM技术的,意味着OPCDA只能在Windows上使用。

OPCDA可以在两台电脑之间访问,但不是OPCDA协议,是通过Windows的RPC,具体看不同的windows设置。

OPCDA在两台电脑之间访问,会使得PC存在一定的安全问题。

如果想在嵌入式设备实现OPCDA的数据采集,我劝你还是放弃。

OPCUA,也就是OPC统一框架。

OPCUA包含DA,HAD,AE。并不等价于OPCUA包含OPCDA。

DA和OPCDA是两回事。

OPCUA就是解决OPCDA几大问题:

1 OPCDA只能使用COM技术,限制在Windows使用。

2 安全问题。

3 数据模式结构定义等的优化。

4 跨平台跨系统访问。

5 有专属的TCP/IP协议,其协议标注为IEC62541。

想了解更多物联网文章,敬请关注诸子东,您身边的物联网协议顾问。
————————————————
版权声明:本文为CSDN博主「weixin_39624774」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39624774/article/details/111283867

opc ua与opc da区别的更多相关文章

  1. C# OPC UA服务器 OPC UA网关 三菱 西门子 欧姆龙 Modbus转OPC UA 服务器 可配置的OPC UA服务器网关 HslSharp软件文档

    前言 本文将使用一个基于开源项目HslCommunication创建的OPC UA网关,方便通过配置创建一个OPC UA的网关中心.具体的操作及支持的设备信息项目参照下面: 开源项目HslCommun ...

  2. OPC协议解析-OPC UA OPC统一架构

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

  3. 转:OPC协议解析-OPC UA OPC统一架构

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

  4. OPC UA 统一架构) (一)

    OPC UA 一 .OPC UA简介 OPC UA(OPC Unified Architecture)是下一代OPC统一体系架构,是一种基于服务的.跨越平台的解决方案. OPC UA具有如下特点: 1 ...

  5. PLC转OPC UA的协议转换网关需要多少钱呢?

    嵌入式OPC UA网关BL102简化了OPC UA程序的开发与IIOT工业物联网应用 在制造业数字化升级过程中,我们碰到最多的工作便是针对每一款PLC去开发一套OPC UA程序,然后通过这套程序去读取 ...

  6. 关于OPC UA Helper 命名空间中的OpcUaClient 类中的订阅函数的更改

    原函数是opcUaClient.MonitorValue("ns=4;s=MAIN.d", new Action<double, Action>(MonitorTest ...

  7. C# 读写opc ua服务器,浏览所有节点,读写节点,读历史数据,调用方法,订阅,批量订阅操作

    OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术难以满足日益复杂的环境,在可扩展性,安全性,跨平台性方面的不足日益明显,所以OPC基金会在几年前提出了面 ...

  8. C# 实现opc ua服务器的远程连接(转)

    原文转自:https://www.cnblogs.com/dathlin/p/7724834.html OPC UA简介 OPC是应用于工业通信的,在windows环境的下一种通讯技术,原有的通信技术 ...

  9. iNeuOS工业互联平台,增加OPC UA驱动,同步和订阅方式读取数据

    目       录 1.      概述... 1 2.      平台演示... 2 3.      OPC UA应用效果... 2 1.   概述 最近的项目,用户需要使用OPC UA读取数据,通 ...

  10. 分享一款免费OPC UA服务器

    OPC UA基于OPC基金会提供的新一代技术,提供安全,可靠和独立于厂商的,实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输.通过OPC UA,所有需要的信息在任何时间,任何地点对每个 ...

随机推荐

  1. java中的复合赋值运算符

    本文主要阐明复合赋值运算符 即 i = i+ 1.2 ==> i += 1.2: int i = 1; i += 1.2; System.out.println(i); // i == 2 注意 ...

  2. python 之异常捕获及处理(try--except)

    在python中,至少有两类错误,一种是程序语法错误,一种是程序异常. 所谓的语法错误是指你未按规定格式书写导致的错误,如:定义函数时,括号后面要紧跟英文冒号,若缺失则不能识别与运行,并抛出 Synt ...

  3. Qt大型工程开发技术选型Part3:Qt调用C#编写的COM组件实例

    Qt大型工程开发技术选型Part3:Qt调用C#编写的COM组件实例以及错误总结 ok,前面铺垫了那么多,现在来写一个开发实例,我会把其中隐藏的坑和陷阱简单谈谈,并在文章最后总结. 不愿意看长篇大论的 ...

  4. ubunut安装qtcreater

    安装gcc 1 kxb@kxb:~$ gcc -v 2 3 Command 'gcc' not found, but can be installed with: 4 5 sudo apt insta ...

  5. Ubuntu 中科大源的使用

    官方网址: https://mirrors.ustc.edu.cn/help/ubuntu.html

  6. YMOI 2019.6.15

    题解 YMOI 2019.6.15 前记 NOIP信心个蛋赛,被各路大佬吊打,信心-- 耻辱墙: \(2019.6.15\) \(rank\) \(\color{red}{3}\) T1 简单队列 题 ...

  7. 刷题笔记——3003.鸡兔同笼问题 & 2767.计算多项式的值

    题目1 3003.鸡兔同笼问题 代码 while True: try: x,y=map(int,input().strip().split()) a = int((4*x-y) / 2) b = x ...

  8. C#中检查null的语法糖,非常实用

    c#处理null的几个语法糖,非常实用.(尤其是文末Dictionary那个案例,记得收藏) ??如果左边是的null,那么返回右边的操作数,否则就返回左边的操作数,这个在给变量赋予默认值非常好用. ...

  9. render到底是什么,该如何使用它

    一.前言 1.vue程序的运行过程:模板 -> 进行编译 -> 生成ast树 -> 数据绑定 -> 生成render函数 -> 成虚拟dom树 -> 真实dom树 ...

  10. 记OPNsense防火墙的安装过程 - 安全

    前些天在网上看到防火墙软件OPNsense,对其有了兴趣,以前写过一个其前面的一个软件M0n0wall( 关于m0n0wall的安装及配置 ),当时也是非常有名的防火墙,现在有了OPNsense,这个 ...