终于有人把OPC说清楚了
上位机Guide 2025-04-02


一、初识OPC

1996年微软‌与‌Fisher-Rosement‌、‌Intellution‌、‌Opto 22‌等工业自动化厂商成立‌OPC基金会,旨在通过统一接口解决设备互操作性问题‌,同年推出OPC Classic规范OPC Classic规范基于Microsoft Windows技术,使用COM / DCOM(分布式组件对象模型)在软件组件之间交换数据。规范为访问过程数据、报警和历史数据提供了单独的定义。

OPC Classic主要有三个子规范:

1.OPC Data Access即我们常说的OPC DA OPC DA规范定义了数据交换,包括值、时间和质量信息。

2.OPC Alarms & Events,OPC AEOPC AE规范定义了报警和事件类型消息信息的交换,以及变量状态和状态管理。

3.OPC Historical Data Access,即:OPC HDAOPC HDA规范定义了可应用于历史数据、时间数据的查询和分析的方法。


二、OPCUA诞生

随着以服务为导向的架构的引入,跨平台的数据传输需求,以及大数据量传输的数据安全问题。2008年,OPC基金会发布了OPC统一架构(Unified Architecture),即OPC UA,这是一个独立于平台的面向服务的架构,它集成了现有OPC Classic规范的所有功能。

OPC UA是新一代的OPC标准,通过提供一个完整的,安全和可靠的跨平台的架构,以获取实时和历史数据和时间。OPCUA是目前已经使用的OPC工业标准的补充,提供重要的一些特性,包括如平台独立性,扩展性,高可靠性和连接互联网的能力。现在OPC UA已经成为独立于微软、UNIX或其他的操作系统企业层和嵌入式自动组建之间的桥梁。

作为工业4.0的重要协议之一,OPC UA具体以下特点:

1.统一架构:采用一套优化的基于TCP的统一架构二进制协议进行数据交换;同时支持网络服务(WEB SERVICES)和HTTP。在防火墙中只需打开一个端口即可。集成化的安全机制可确保在互联网上的安全通信。

2.平台开放:OPC UA软件的开发不再依靠和局限于任何特定的操作平台。过去只局限于Windows平台的OPC技术拓展到了LinuxUnixMac等各种其它平台。

3.安全通讯:OPC UA支持会话加密、信息签名等安全技术,每个UA的客户端和服务器都要通过OpenSSL证书标识,具有用户身份验证,审计跟踪等安全功能。

4.可扩展性:OPC UA的多层架构提供了一个面向未来的框架。诸如新的传输协议、安全算法、编码标准或应用服务等创新技术和方法可以并入OPC UA,同时保持现有产品的兼容性。

三、读写方式

无论是OPC DA还是OPC UA,在读写方式方面都是类似的。OPC读写方式主要有三种,分别是同步方式、异步方式及订阅方式,订阅方式仅针对读取有效。

1、同步方式: 同步方式是指当客户端发送请求后,必须等到服务器响应全部完成后才能返回,期间将一直处于等待状态,因此当多客户端向服务器操作时,客户端程序产生阻塞,同步通讯适用于客户端较少,数据量较小的场合,同步方式的工作流程如下图所示:

2、异步方式:异步方式是指当客户端发送请求后立即返回,不需要等待服务器的响应,可以进行其他操作,当服务器完成响应后会自动通知客户端,因此相对于同步通讯,异步通讯的效率更高,异步方式的工作流程如下图所示:

3、订阅方式:订阅方式在初始化时,就需要订阅相应的通信组Group,这样当服务器的Group组内有数据发生变化时,就会自动刷新客户端数据,客户端只需要向服务器发送一次请求,因此订阅方式的效率是非常高的,订阅方式的工作流程如下图所示:

四、OPC服务器

OPC通信基于服务器-客户端模型,如果要实现OPC通信,首先需要搭建一个OPC服务器环境,这里我们采用比较主流的KepServer软件,硬件采用西门子S7-1200PLC,通过KepServer对接S7-1200,然后作为服务器,可以通过OPCDA或OPCUA进行访问

1、打开KepServer软件后,通过菜单新建一个项目,然后添加通道,选择驱动,这里我们可以看到支持的各种设备协议,然后按照下图进行操作:

2、添加设备:添加设备按照向导进行添加,这里的型号选择S7-1200,并设置正确的IP地址,其他默认下一步:

3、添加标记组:如果变量较多,可以按照类型创建不同的标记组进行分类:

4、添加标记:标记指的就是OPC变量,直接右击新建标记,然后按照说明填写即可,这里以浮点型为例,就填写DB1.DBD4这种格式,其他的数据类型根据提示编写。

5、保存项目:添加完成之后,直接保存项目,然后通过菜单 >> 运行时 >> 连接实现与PLC之间的连接。

6、监控变量:连接正常之后,通过点击Quick Client进行监控,点击相应的标记点,即可看到通信数值及通信状态,我们很轻松就读取到了PLC的数据。

五、OPC客户端

KepServer可以同时支持OPCDA和OPCUA,接下来我们用OPC客户端软件进行测试。

我们先测试OPCDA,打开FactorySoft OPC Client,点击OPC=>Connect,我们可以很轻松找到KepServer对应的的ServerName,如果不是同一台电脑,需要做DCOM配置。然后我们点击AddItem就可以找到KepServer中所有的变量,点击AddItem,即可进行监控。然后我们再测试一下OPCUA,OPCUA使用UAExpert软件,打开KepServer的OPCUA配置,我们可以看到相关的URL及安全性设置,如果连接不上,可以把安全策略设置为None。我们通过UAExpert来添加一下OPCUA服务器信息,。连接上服务器之后,可以搜到服务器中的OPCUA变量进行实时监控。通过整个过程,相信大家对OPC已经有了一定的了解:
  • OPC最初制定时并不是作为一种通信协议,而是一种通信标准接口。
  • KepServer并不代表OPC,而是围绕‌OPC标准接口‌构建的一款OPC服务器软件。
  • OPCUA不再局限于接口标准或通信协议,而是接口标准与通信协议的综合体。
文章中涉及软件可以通过公众号后台回复102进行获取。后续可以通过C#编写对应的OPCDA及OPCUA客户端代码来实现OPC通信


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【立即预约】Keysight直播:搞懂介电常数那些事儿


  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • hot51增强型单片机开发板原理图

    功能要求: 一):绿灯25s倒计时,绿灯过度红灯有5s黄灯时间,红灯25s后直接跳绿灯。 二):按键按下模拟闯红灯输入,产生5s蜂鸣器鸣叫。 开发环境: 软件:Keil uVision4 硬件:HOT51增强型单片机开发板 程序代码:...

    11小时前
  • 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系...

    11小时前
  • 什么是Flash盘?Flash盘的结构是什么样的?

    Flash是大家常使用的存储之一,对于Flash,大家或多或少有所了解。上篇文章中,小编对Flash闪存的类型有所介绍。为继续增进大家对Flash的认识,本文将对Flash盘、Flash盘结构以及Flash读写操作予以介绍。如果你对本...

    11小时前
  • 深谈嵌入式系统,嵌入式系统是如何组成的?

    嵌入式系统在生活中有诸多应用,大家对于嵌入式系统或多或少有所耳闻。在前两篇文章中,小编对嵌入式系统进行过详细介绍。为继续增进大家对嵌入式系统的认识,本文将对嵌入式系统的组成加以说明。如果你对嵌入式系...

    06-27
  • 嵌入式系统秘籍共享,最全嵌入式系统解析

    嵌入式系统的应用十分广泛,因此越来越多的人学习嵌入式系统。由此,在学习嵌入式系统之前,我们应当对嵌入式系统具备一些认识。所以在本文余下部分,小编将对嵌入式系统进行全面解析。如果你对嵌入式系统具有兴趣...

    06-27
  • 51单片机超声波测距程序详解

    51单片机超声波测距程序详解 超声波四通道测距:超声波测距实现分为三大块: 其一是12864带字库的液晶驱动程序: 代码如下: /////////////////12864驱动程序/////////////////////////// //1写数据 void WriteDat...

    06-25
  • 51系列单片机的引脚图

    51系列单片机的引脚图 端子介绍 l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8...

    06-25
  • 51单片机串口通信需要加超时中断吗?

    接收数据时,超过一定时间就算出错. 这个超时的时间是单片机自己算出的吗?超时的时间是由编程序的人定的,他定多长就多长从一段程序开始 实现电脑向 单片机发送一些数据,单片机返回Iget +数据 #include #define u...

    06-25
  • 51单片机电机pid控制系统程序

    51单片机电机pid控制系统程序 本程序来源网上,小编进行了简单修改,还未验证。 /************************* 应用背景:直流电机的额定功率12V,额定转速3000rpm,光码盘12孔, 晶振为12MHz,定时/计数器T0检测转...

    06-25
  • 51单片机指令集设计实例

    当你编写完一个程序后,通过软件调试,你可以看到程序的指令集,从指令集你就能知道单片机内部是如何工作的,比如数据存取的寄存器与地址,下面是电工之家找的一篇指令集,讲的蛮好的。 一、数据传送类指令(7种助...

    06-25
  • 51单片机定时器工作原理及用法

    TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。...

    06-25
  • 51单片机指令系统寻址方式

    指令给出参与运算的数据方式称为寻址方式。换句话说,寻址方式就是寻找确定参与操作的数的真正地址。 在MCS-51系列单片机的指令系统中寻址方式共有7种,立即寻址方式,mcs-51单片机的一种寻址方式,操作数就写在指...

    06-25
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告