当前位置: 首页 > news >正文

OPC发展历程

目录

1 opc 发展历程

1.1 OPC产生的背景

1.2 经典OPC

1.3 OPC UA

2 OPC DA简介

2.1 OPC Server/Client

2.2 OPC Server

2.3 OPC数据更新

2.4 读取数据方式

3 OPC XML简介

3.1 诞生由来

3.2 功能服务


1 opc 发展历程

OPC是英文“OLE for Process Control”的缩写,是工业自动化领域中的一种工业通信标准。它通过定义一些在不同平台上具有通用性的规范,实现了各种设备、不同制造厂商及不同代表的设备可互联互通。

我们将通过多篇文档来介绍OPC通讯标准。

今天我们来聊一聊OPC通讯标准的前世今生。

OPC官方说明文档

http://api1.wangxinzhihui.com:88/upload/ea8d68ce-17ae-11ee/2bc0d6c6b3a4da97fa3a.png

1.1 OPC产生的背景

OPC通讯标准产生之前,自动化设备对外数据服务没有统一的接口标准。不同的软硬件厂商都有自己的一套标准。如早期的PhoneWell DCS、横河DCSFoxboro DCS都有各自的数据服务接口,为此,要从这些设备或系统中采集数据,必须编写不同的通讯接口。这好比如早期的手机充电接口,不同厂家的手机必须配备厂家自带的充电器,或者通过各种转换接口,否则无法充电。这就给工业互联效率和成本带来很大的阻碍。

http://api1.wangxinzhihui.com:88/upload/ea8d68ce-17ae-11ee/f98de7d5be4ddf015153.png

   为了解决这种接口不统一造成工业互联效率低下、成本高的现状,1995年,由Microsoft3个工业自动化系统供应商共同创立OPCOLE for Process ControlFoundation组织。OPC Foundation致力于定义一组开放、中立、标准的数据接口规范,建立一种工业自动化领域内通用的数据通信机制。在1996年,OPC第一个版本定义了核心规范(COM/DCOM)和数据访问规范(DA),此后不断推出新的规范,包括历史数据规范(HDA)、报警和事件规范(A&E)等等。目前,OPC已经广泛应用于各种设备连接与数据采集场合。这个过程如同手机充电接口的统一,当然,除了坑人的苹果手机,这无疑给用户带来了极大的方便。

OPC通讯标准的发展经历了经典OPCOPC UA两个阶段。

http://api1.wangxinzhihui.com:88/upload/ea8d68ce-17ae-11ee/d3cfe813fb6779a7b66b.png

1.2 经典OPC

经典OPC是第一代OPC技术, 英文全称为:OLE for Process ControlOLE技术是基于微软公司的COM/DCOM技术,因此经典OPC本质上是基于COM/DCOM的过程控制技术。经典OPC提供了一整套过程控制中数据交换的软件标准和接口,包括:

1)OPC DA(OPC Data Access)OPC数据访问接口,这是最常用到的接口,接口定义了数据交换的规范,包括:过程值、更新时间、数据品质等信息。目前OPC DA经历1.0版本(1997年)、2.0版本(2002年)、3.0版本(2003年)。

2) OPC AE (OPC Alarms & Events)OPC报警与事件接口,接口定义了报警、事件消息、变量的状态及如何管理。

3) OPC HDA(OPC Historical Data Access) OPC历史数据访问接口,接口定义了访问及分析历史数据的方法。

4) OPC XML-DAXML数据访问,脱离Windows COM/DCOM技术,提供基于XMLSOAPHTTP的数据交换。

5) OPC DXData eXchange):提供在OPC服务器之间交换数据的功能,该标准的主要目的是为来自不同制造商的设备和程序之间的数据交换创建网关。

OPC接口涉及对接双方,对接方可以分为OPC ServerOPC ClientOPC Server一般由厂商提供,负责与系统、设备通讯,将系统、设备的数据封装成对外服务的OPC接口。OPC Client则是符合OPC标准的客户端软件,可以由第三方自行开发,通过OPC标准接口与OPC Server进行通讯,可以获取到系统、设备的实时数据,也可将指令下载到系统或设备。经典OPC网络拓扑图如下图所示。

http://api1.wangxinzhihui.com:88/upload/ea8d68ce-17ae-11ee/2da4b4c6536278fde221.png

   由于采用了标准的OPC接口,不同厂家的系统、设备对外数据服务采用相同的规范,1OPC客户端可以对接不同厂家的系统、设备,大大提高了工业互联的效率,从而降低互联成本。

1.3 OPC UA

OPC自发布以来广泛应用在工业互联中,但由于对COM/DCOM技术的依赖性,该技术在安全性、跨平台性以及连通性方面都存在很多问题。如:很难通过Internet/Intranet,尤其是企业防火墙;难以运行在非Windows系统中,也难以在嵌入式系统中实现;很多上层应用没有COM接口,难以进行远程调用等。

OPC UA的推出,正是基于这一背景。该技术不再依靠DCOM,而是基于面向服务的架构 (SOA),提供了如平台独立性,扩展性,高可靠性和连接互联网的能力。因此,OPC UA的使用更简便。

OPC UAOPC Unified Architecture),基于OPC统一架构的时间敏感网络技术 ,是一个新的工业软件接口规范,其目的在于提出一个企业制造模型的统一对象和架构定义,具有跨平台、增强命名空间、支持复杂数据内置、大量通用服务等新特点。

OPC UA 规范包含核心规范部分与存取类型规范部分,其中核心规范部分包括

OPC UA Data Access

OPC UA Alarms and Conditions

OPC UA Programs

OPC UA Historical Access

存取规范部分包括:

OPC UA Security Model

OPC UA Address Space Model

OPC UA Services

OPC UA Information Model

OPC UA Service Mappings

OPC UA Profiles

    和现行OPC一样,OPC UA 系统结构包括 OPC UA 服务器和客户端两个部分, 每个系统允许多个服务器和客户端相互作用。

http://api1.wangxinzhihui.com:88/upload/ea8d68ce-17ae-11ee/db89b1edf10ce0551a04.png

由于OPC UA技术具备优秀的信息建模、通信传输、跨平台等能力,使得数据采集、信息模型化、系统通信更加安全、可靠。这决定了OPC UA将在多广泛的技术领域获得应用,如IEC发布的智能电网标准化RoadmapOPC UA技术作为重要的支撑标准,德国工业4.0也将OPC UA作为支撑技术之一。所以,OPC UA技术将作为重要的信息集成标准,在信息领域获得广泛应用。

2 OPC DA简介

OPC 提出了一套统一的标准,采用典型的CLIENT/SERVER 模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口标准的SERVER 程序,用户只需按照OPC 标准编写CLIENT程序访问OPC SERVER,即可实现与硬件设备的通信。

OPC DA(OPC Data Access),即OPC数据访问接口,定义了数据交换的规范,包括:过程值、更新时间、数据品质等信息。目前OPC DA经历1.0版本(1997年)、2.0版本(2002年)、3.0版本(2003年)。

本文对于OPC DA规范的主要内容做简单介绍。

2.1 OPC Server/Client

一个OPC 客户可以连接一个或多个OPC 服务器,而多个OPC 客户也可以同时连接同一个OPC 服务器,如图所示。

http://api1.wangxinzhihui.com:88/upload/d63a077e-17af-11ee/c8db7549061bfff91759.png

2.2 OPC Server

一个OPC 服务器由三个对象组成:服务器(Server),组(Group),项(Item)。三者之间的关系如下:

http://api1.wangxinzhihui.com:88/upload/d63a077e-17af-11ee/5103007aeaf155eb4b58.png

对应设备的模型图如下:

http://api1.wangxinzhihui.com:88/upload/d63a077e-17af-11ee/a0b80097506333c64e9e.png

1)OPC Server:OPC Server运行在设备端,对应设备模型的设备概念,描述OPC服务器自身的属性,作为OPC组对象的容器。

2)OPC Group:对应设备模型的寄存器区概念,描述OPC组对象的属性(更新速率、数据死区等),作为OPC Item对象的容器。OPC规范定义了2 种组对象:公共组和私有组。公共组由多个客户共享,私有组只隶属于一OPC 客户。全局组对所有连接在服务器的应用程序都有效,而私有组只能对建立它的CLIENT 有效。在一个SERVER 中,可以有若干个组。

3)OPC Item对应设备模型的寄存器概念,是OPC读写数据的最小单位。。一个OPC 项不能被OPC 客户程序直接访问,需要通过包含项的OPC组对象来实现。1个OPC项可以包含在不同的OPC组对象中。每个数据项包括3 个变量:值(Value)、品质(Quality)和时间戳(Time Stamp)。数据值是以VARIANT形式表示的。

2.3 OPC数据更新

客户端从缓冲区或直接从终端设备接收来自 OPC 服务器的数据。从缓冲区读取速度更快,但其中的数据在读取时可能已过期。OPC 服务器通过从终端设备请求信息来定期更新数据。

2.4 读取数据方式

OPC读取数据方式有以下几种方式:

同步模式:客户端向服务器发送请求并等待它的响应。

异步模式:客户端发送请求并立即继续执行其他任务。处理完请求后,服务器向客户端发送通知,客户端获取提供的数据。

订阅模式:服务器只向客户端发送发生变化的标签。为了防止数据的噪声被误认为它们的变化,引入了“死区”的概念,它稍微超过了干扰的最大可能幅度。

数据刷新模式:客户端调用所有活动标签的同时读取。除了那些被指定为“被动”的标签外,所有标签都被称为主动标签。标签的这种划分通过更新从物理设备接收到的数据来减少处理器的负载。

数据以同步或异步模式写入设备,无需中间缓冲。在同步模式下,客户端写入数据并等待,直到收到设备对命令执行的确认。此过程可能需要很长时间,在此期间客户端处于等待。异步模式允许客户端向服务器发送请求后继续执行其他任务。处理结束后,服务器会向客户端发送通知。

3 OPC XML简介

3.1 诞生由来

OPC(OLE for Process Control)是为过程控制专门设计的OLE 技术,基于COM/DCOM的数据访问的标准。OPC DA(OPC Data Access),是基于OPC标准的数据访问接口。COM/DCOM存在如下缺陷:

   1)缺少跨平台通用性:由于COM/DCOM依赖于Windows系统, OPC COM接口很难被应用到其他非Windows的操作平台上,使得工业互联受到很大的限制。

   2)不易通过防火墙,与互联网应用集成难度大:由于防火墙会过滤大多数基于COM传输的数据,所以,基于COM的OPC应用就很难与互联网应用集成。

为了解决以上问题,OPC基金会制定了OPC XML标准,就是对原有OPC Server进行功能扩展。由于XML具有良好的跨平台通用性,广泛应用于Internet应用,且很容易穿透防火墙,使得OPC DA能够跨平台或在互联网上得到应用。

OPC XML DA基于XML的web技术,采用SOAP作为对应用程序共享消息进行包装的通讯协议,实现OPC Server和OPC Client之间通过Http协议传输数据,使得数据很容易在不同平台间传输,并轻易实现在Internet上发布OPC数据。

如下图所示,增加1个OPC XML Server,与OPC DA Server通讯,并将数据以XML发布到Web Server上,这样Web浏览器或者其他非Windows应用就可以通过internet访问web server来获取到OPC DA的数据。

http://api1.wangxinzhihui.com:88/upload/22b6b753-187b-11ee/9992ef58f3a95dd6fd34.png

3.2 功能服务

OPC XML DA 支持Browse、Read、Write、SubScribe等服务,每种服务都包括1对请求(Request)/响应(Respone)。通过对这些服务的定义,提供了访问OPC Server的标准接口。请求和响应按照SOAP协议标准封装成SOAP信封,信封标题说明消息如何被处理,信封正文包含了相关数据。

OPC XML DA定义了以下服务:

       1)数据请求: 请求OPC数据。有同步(请求-回应)与异步(订阅-更新)两种方式。它通过读取请求和订阅请求来实现。

       2)数据响应: 对数据请求的响应。如果是同步请求,那么请求一次,回答一次;如果是异步请求,则是包括初始值与错误代码,此后,服务器发送包含发生值改变的项目的回应。

       3)写请求:是指写数据到一个特定项目的请求。如果超过了设定的过期时间,服务器没有收到请求的话,那就什么也写不了。

       4)写响应: 是对写请求的响应,它给出从写数据到特定项目过程中存在的所有错误。

      5)取消数据请求: 是取消特定数据请求的要求,如果数据请求是订阅请求,所有后续数据更新将被取消,如果不是订阅,则是请求服务器释放分配给这个请求的资源。

      6)取消数据响应: 取消数据响应就是对取消数据请求的响应,它显示出取消动作是否成功。

      7)浏览请求:请求显示有服务器地址空间的标签结构列表,返回信息将显示标签结构列表。

8)浏览响应:对浏览请求的响应,返回值为位于指定位置的“枝叶”。

综上所述,OPC XML DA就是对OPC DA的XML扩展标准,其目的就是在于解决OPC DA不能跨平台的缺陷。

相关文章:

OPC发展历程

目录 1 opc 发展历程 1.1 OPC产生的背景 1.2 经典OPC 1.3 OPC UA 2 OPC DA简介 2.1 OPC Server/Client 2.2 OPC Server 2.3 OPC数据更新 2.4 读取数据方式 3 OPC XML简介 3.1 诞生由来 3.2 功能服务 1 opc 发展历程 OPC是英文“OLE for Process Control”的缩写&am…...

第69步 时间序列建模实战:ARIMA建模(R)

基于WIN10的64位系统演示 一、写在前面 这一期,我们使用R进行SARIMA模型的构建。 同样,这里使用这个数据: 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Re…...

【多线程】CountDownLatch

CountDownLatch 同时等待 N 个任务执行结束. 好像跑步比赛,10个选手进行比赛, 所有选手都通过终点,才能公布成绩。 代码示例: 构造 CountDownLatch 实例, 初始化 10 表示有 10 个任务需要完成.每个任务执行完毕, 都调用 latch.countDown() . 在 Count…...

使用 docker buildx 构建跨平台镜像 (QEMU/buildx/build)

目录 1. 使用 buildx 构建跨平台镜像1.1. 简介1.2. 安装1.3. 构建跨平台镜像1.4. 跨平台镜像构建策略1.4.1. 在内核中使用 QEMU 仿真支持1.4.2. 使用相同的构建器实例在多个本机节点上构建。1.4.3. 使用 Dockerfile 中的多阶段构建, 交叉编译到不同的平台架构中。 1.5. 创建 bu…...

算法|Day49 动态规划17

LeetCode 647- 回文子串 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目描述:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子…...

Linux nohup命令

nohup命令 no hang up 在后台启动命令,终端关闭 程序依然可以执行 1.在后台启动命令 命令 nohup COMMAND2.使用nohup命令在后台启动COMMAND, 并将所有标准输出都重定向到fileA nohup COMMAND > /path/fileA 2>&1 &# COMMAND 需要运行的命令 # &g…...

SQL Server 跨库/服务器查询

这里写目录标题 1 SQL Server 跨库/服务器查询1.1 跨库查询1.2 跨服务器查询1.2.1 创建链接服务器1.2.2 跨库查询 1.3 拓展:SQL Server 中所有权和用户与架构的分离 1 SQL Server 跨库/服务器查询 1.1 跨库查询 在同一服务器下的跨库查询较为简单,示例…...

word转PDF文件变小,图片模糊

word论文29M,文件——另存为——只有1.5M左右,图片压缩严重,图片看不清。 word中很多大图,5M一张的图,所以word很大。 找了很多方法,转换后都在2M左右,勉强可以。 直到找到了这个&#xff0c…...

被删除并且被回收站清空的文件如何找回

文件的意外删除和回收站清空是许多用户面临的普遍问题。这种情况下,很多人会感到无助和焦虑,担心自己的重要文件永远丢失。然而,幸运的是,依然存在一些有效的方法能够帮助我们找回被删除并且被回收站清空的文件。 ▌被删除文件在…...

每日两题 131分割回文串 784字母大小写全排列(子集模版)

131 131 题目 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s “aab” 输出:[[“a”,“a”,“b”]…...

Java面试八股文宝典:初识数据结构-数组的应用扩展之HashMap

前言 除了基本的数组,还有其他高级的数据结构,用于更复杂的数据存储和检索需求。其中,HashMap 是 Java 集合框架中的一部分,用于存储键值对(key-value pairs)。HashMap 允许我们通过键来快速查找和检索值&…...

ES6 特性

一、ES6 1.1 ES6 概念 1.1.1 什么是 ES ES 全称 EcmaScript 是脚本语言的规范JavaScript 是 EcmaScript 的一种实现ES 新特性就是指 JavaScript 的新特性 1.1.2 为什么要使用 ES 语法简单,功能丰富框架开发应用前端开发职位要求 1.1.3 为什么要学习 ES6 ES6 …...

重拾html5

新增的position: sticky; 基于用户的滚动位置来定位,粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。ie15以上的低版本不支持,Safari 需要使用 -webkit- prefix; vertical-align: midd…...

递归学习——记忆化搜索

目录 ​编辑 一,概念和效果 二,题目 1.斐波那契数 1.题目 2.题目接口 3.解题思路 2.不同的路径 1.题目 2.题目接口 3.解题思路 3.最长增长子序列 1.题目 2.题目接口 3.解题思路 4.猜数字游戏II 1.题目 2.题目接口 3.解题思路 总结&a…...

ChatGPT帮助一名儿童确诊病因,之前17位医生无法确诊

9月13日,Today消息,一位名叫Alex的4岁儿童得了一种浑身疼痛的怪病,每天需要服用Motrin(美林)才能止痛。3年的时间,看了17名医生无法确诊病因。(新闻地址:https://www.today.com/heal…...

Laf 云开发平台及其实现原理

Laf 产品介绍 自我介绍 大家好,我是来自 Laf 团队的王子俊,很高兴今天能在这里给大家分享我们 Laf 云开发平台及其实现原理。本来想说一点什么天气之类的话作为开头,但主持人都说完啦,我就不多说了,还是直接开始今天…...

浅谈STL|STL函数对象篇

一.函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 特点 函数对象在使用时,可以像普通函数那…...

自建私人图床方案:使用Cpolar+树洞外链轻松部署超轻量级图床,实现高效图片存储

文章目录 1.前言2. 树洞外链网站搭建2.1. 树洞外链下载和安装2.2 树洞外链网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3 Cpolar稳定隧道(本地设置) 4.公网访问测试5.结语…...

从零基础到精通Flutter开发:一步步打造跨平台应用

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 导言 Flutter是一种流行…...

SpringBoot整合WebSocket【代码】

系列文章目录 一、SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】 二、SpringBoot连接Redis与Redisson【代码】 三、SpringBoot整合WebSocket【代码】 四、SpringBoot整合ElasticEearch【代码示例】 文章目录 系列文章目录代码下载地址一、效果演示二、引入依赖…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...