初识 OPC

news/2025/2/22 7:08:27/

为什么需要OPC?

随着自动化的发展,工厂的自动化程度越来越高,面临着问题:

设备之间,设备与应用程序之间交互数据

  • 不同产商设备/应用程序具有不同接口/通信协议,如何简单快速连接?
  • 采集的数据及数据用途是否有明确定义?
  • 合作伙伴发生变化是否需要重新定义/开发?
  • 机密数据传输的时候是否安全?

基于上述所面临的问题,是否有一种通信方式,能够帮我们解决所有的问题呢?

OPC的出现为我们解决了大问题。

什么是OPC?

OPC(Object Linking and Embedding(OLE) for Process Control)用于过程控制的OLE
或者:Open Platform Communications 开放平台通信

是一个工业标准,该标准由OPC基金会管理

是一个标准化、与供应商无关的软件接口

为不同硬件制造商与软件开发商的数据交互建立了桥梁

随着不断的发展,OPC包含OPC Classic(早期的OPC) 和OPC UA

OPC Classic

  • 以Microsoft公司的OLE/COM技术为基础
  • 为访问过程数据,报警和历史数据提供单独的定义
OPC规范作用规范具体定义
OPC DAOPC数据访问规范定义的数据,包括值,时间和质量的信息交换
OPC AEOPC报警和事件规范定义报警和事件类型的消息信息,以及变量的状态和状态管理的交换
OPC HDAOPC历史数据访问规范定义可以被应用到历史,时间标记的数据查询方法和分析

典型用例

优点:不需要定义一个网络协议或进程间通信机制。

缺点:1.依赖windows平台;2.DCOM配置非常麻烦

以一个工业自动化接口为例

 

有了OPC之后,对于不同的设备接口,我们都可以统一使用OPC Server和各种设备通讯。上层只需要开发OPC客户端就可以实现和不同厂商的不同接口设备进行方便快捷的通讯。

 OPC UA(OPC Unified Architecture/OPC统一架构)

  • 基于可靠的TCP/IP通讯协议,替代OPC Classic的COM/DCOM
  • 将OPC Classic中各个规范的所有功能集成到一个可扩展的框架中
  • 较OPC Classic有更强更多的优点
  • 简化客户端的编程

 OPC服务器和客户端的区别

1.执行的功能不同。OPC服务器给OPC客户端提供接口;OPC客户端通过这些接口来获取硬件设备的信息。

2.运行机制不同。

为什么OPC UA大势所趋?

OPC UA特点

平台独立性
硬件平台:传统PC硬件、云服务器、PLC、微控制器(ARM等)
操作系统:Microsoft WindowsApple OSX Android或任何Linux发行版本等

安全性:
会话加密:信息以不同的加密级别安全地传输
信息签名:信息签名可以保证准确和完整的接收信息
身份认证:每个UA的客户端和服务器都要通过X509证书认证,从而决定哪些应用程序和系统可以互相连接。
用户控制:可对用户进行身份验证,并且可以进一步限制或增强用户访问权限等

信息模型完整,可扩展

下图中,左下角的部分设备SIMATIC SS, S7-300, ET 200, S7-1200, S7-1500等均为RS485通讯接口,走的通讯协议也各不相同,profibus DP, S7 communication, Open communication;右下角的部分设备SIMATIC SS, S7-400, S7-1200, S7-1500均为profinet接口,走的通讯协议也各不相同,S7 communication, Open communication, profinet,SNMP等。

如果这些设备均要与上位软件进行OPC通讯,如何实现呢?需要额外通过SIMATIC NET软件,SIMATIC NET软件中集成了不同的接口,DP OPC server, S7 OPC server, S/R OPC server, PN IO OPC server,SNMP OPC server,可以与不同的设备介质进行通讯,然后由SIMATIC NET软件再与上位的OPC DA客户端进行OPC的通讯。

以S7-1200为例,如果与支持OPC DA的客户端软件进行通讯的时候,由于OPC DA是基于微软间的COM/DCOM技术开发的,所以S7-1200的CPU是无法直接继承OPC DA的OPC服务器,这时候需要加入SIMATIC NET的OPC软件作为桥梁中转,S7-1200与SIMATIC NET进行通讯,SIMATIC NET再与上位的监控软件进行OPC DA通讯,这样就间接地实现了西门子设备与监控软件数据的通讯交互,但是前提,中间需要加OPC软件进行中转。

OPC UA的出现,由于它与平台无关,那么更多的设备能够集成OPC UA客户端或服务器的功能,那S7-1200集成了OPC UA服务器的功能,这样就可以直接与监控软件进行OPC UA的通讯,中间不需要增加任何其它的硬件或软件,所以这样带来的通信便利性比较明显,直接就可以通信。

 OPC UA通信和PROFINET通信完美协作

 


http://www.ppmy.cn/news/57930.html

相关文章

mockjs学习笔记

文章目录 一、什么是mockjs二、安装mockj项目安装mock 三、mock语法生成字符串生成文本生成标题和句子生成段落生成数字生成自增id生成姓名-地址-身份证随机生成图片生成时间 mock拦截请求定义get请求定义post请求 四、实现新闻管理案例获取数据添加新闻删除新闻 一、什么是moc…

Request和Response应用

ServletRequest应用 ServletRequest应用非常广泛,下面是一些例子: 获取请求参数:可以使用HttpServletRequest的getParameter()方法获取请求参数。 获取请求头信息:可以使用HttpServletRequest的getHeader()方法获取请求头信息。…

Portapack应用开发教程(十八)NavTex接收 D

上回说到,我现在已经做到用自己的gnuradio流图从音频信号做fsk解调,得到方波。然后用c程序把方波转为二进制数。又用python把二进制数转为最终的字母。 但是遗留问题是python解码,起始位如果错误,解的信息是错的。另外&#xff0…

Blob File

文章目录 学习链接Blob创建演示 分片演示 Fileinput手动拖拽fetch 从后端获取流前端代码后端代码 window.showOpenFilePicker Filereader示例1示例2 ArrayBuffer创建bufferTypedArray读写bufferDataView读写buffer与Blob对比 Blob Url & DataUrl示例1示例2 学习链接 Blog …

Linux安装Mysql操作步骤详解

目录 1. 检测当前系统中是否安装了MySql数据库 2. 使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux 3. 解压并解包到/usr/local/mysql(便于区分) 第一步:将包先移动到该目录下 第二步:解压解包 第三步&#xff1a…

瑞吉外卖管理端具体代码

目录 以下是后台的部分代码: EmployeeController CategoryController DishController SetmealController OrderController 具体的代码可到:reggie_take_out: 瑞吉外卖——功能实现 - Gitee.com 全部页面展示: 以下是后台的部分代码&#xf…

ChatGPT数据分析助手

ChatGPT数据分析助手 简介: ChatGPT数据分析助手是一款专业的数据库及表格数据分析及应用工具,采用先进的对话式交互方式,让您轻松应对各种业务场景。它能帮助您轻松解决数据分析问题,减轻数据分析学习压力,让您专注于…

HashMap基本知识详解

HashMap 是什么? HashMap 是一种用于存储键值对的集合,可以用来快速访问、插入和删除数据。在 HashMap 中,键和值都可以是任意对象。 HashMap 内部数据结构是什么? HashMap 是基于数组和链表(或红黑树)实现…