首页 > 其他分享 >opc ua与opc da区别

opc ua与opc da区别

时间:2023-01-09 17:13:48浏览次数:46  
标签:数据 COM opc OPCDA da 访问 OPC ua OPCUA

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

标签:数据,COM,opc,OPCDA,da,访问,OPC,ua,OPCUA
From: https://www.cnblogs.com/miaojx/p/17037591.html

相关文章

  • 记录--微信调用jssdk--Invalid Signature, updateAppMessageShareData: denied等问题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助最近在做安卓内嵌入H5活动页拉新活动,遇到的棘手问题记录下,一是为了日后遇到同样问题好回顾,二是希望能帮......
  • SpringBoot笔记--Failed to configure a DataSource: 'url' attribute is not specifi
    问题描述写了SpringBoot代码之后,运行不出来结果,报出这样的一个错误:FailedtoconfigureaDataSource:'url'attributeisnotspecifiedandnoembeddeddatasourceco......
  • el与data的两种写法
    el与data的两种写法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>el与data的两种写法</title><scriptsrc="../js/vue.js"></sc......
  • 刷刷刷Day8| 151. 反转字符串中的单词
    151.反转字符串中的单词LeetCode题目要求给你一个字符串s,请你反转字符串中单词的顺序。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词......
  • day5
    卸载java删除java的安装目录删除java_HOME删除path下关于java的目录java-version安装jdk百度搜索jdk8找到下载地址同意协议下载电脑对应的版本......
  • Day-3
    eclipse安装小知识1、EclipseIDEforJavaEEDevelopers该版本集成了Javaee开发常用插件,方便动态web网站开发。适合Javaweb开发者使用。集成了XML编辑器、数据库查看......
  • CMU 15-445 | Lecture 04 Database Storage II 学习
    行存储用OLTP(On-lineTransactionProcessing),列存储用OLAP(On-lineAnalyticalProcessing)。大多数数据库是行存储。行存储的读写较方便,因此工业上可以采取混合形式......
  • day01
    Markdown学习(Typedown)标题类代码(空格)+内容分别从标题1-6对应1-6个#号快捷方式:ctrl+1-6字体类代码两个单星号之内输入为斜体4星号为加粗6星号为斜体加粗4波浪号中......
  • 3568开发板ubuntu环境下安装Visual Studio Code
    首先进入官网下载,进入如下页面,选择适合自身版本的 ​​Linux​​ 的.deb版本下载,也可以直接使用我们提供好的安装包。下载完成之后,拷贝到ubuntu上,如下图所示:然后使用以......
  • DML-(Data Manipulation Language)
    DML(DataManipulationLanguage):数据操作语言,用来对数据库中表的数据记录进行增、删、改操作。添加数据(insert)修改数据(update)删除数据(delete)添加数据给指定字段添加......