opc ua与opc da区别
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