OPC Client第9讲:OPC UA;KEPServerEX创建OPC服务器;C#创建OPC客户端;OpcUaHelper库;OPC客户端(Softing Opc Client和UaExpert)
【WPF上位机】2025年最新C#WPF上位机通信OPC的上位机工业智能通信统一解决方案 | 进阶必学课程(C#/WPF/.NET) B1146_哔哩哔哩_bilibili
一、OPC和OPC UA
1、OPC
1>为什么要有OPC?
由于软件人员不懂硬件,那么如果想要操作硬件设备就很困难(同时每个硬件还 适用不同的协议)。所以发明了OPC通信协议,统一规定OPC客户端向OPC服务器的请求过程,以及OPC服务器相关的通信接口,让软件人员能方便地操作硬件设备。
如下图,所有设备/所有设备要访问的点位,都是以标签的形式存在OPC服务器中的。

2>什么是OPC?
通信统一化处理方案:OPC(Open Platform Communications)、OPC UA(OPC Unified Architecture)
- 之前OPC只能在Windows下运行,现在变成Open Platform开放平台,可以在多个平台上运行了。

2、OPC UA
3、疑问
1>OPC服务器有数据库吗?
OPC服务器本身并不直接包含数据库,但它们可以与数据库进行交互。
- OPC(OLE for Process Control)是一种工业标准,旨在实现不同供应商的设备和软件之间的数据交换。
- OPC服务器的主要功能是收集来自各种硬件设备的数据,并将其提供给客户端应用程序。虽然这些数据可能会暂时存储在内存中或以某种形式的日志记录下来,但这并不等同于传统意义上的数据库。
- 不过,通过适当的配置,OPC服务器可以被设置为将数据写入外部数据库中,以便长期存储和进一步分析。
2>OPC服务器与设备断开连接,之前的数据放在哪里?

3>OPC UA协议是建立在TCP协议的基础上的吗?与TCP协议有什么不同?
1》OPC UA(OPC Unified Architecture)协议确实可以使用TCP作为其底层传输协议之一,但它不仅仅局限于TCP。
- OPC UA是一个更加全面、安全且平台独立的通信协议,旨在允许系统间跨平台的数据交换。
- 它支持多种传输协议和编码格式,包括但不限于TCP、HTTP等,这使得它比单一的TCP协议更灵活。
- 看三、5、:TCP/UDP通信是通过套接字(Socket)接口来实现的
2》
TCP协议主要负责在网络层面上保证数据的可靠传输。
而OPC UA则构建在其上,提供了更高层次的服务,如安全模型、会话管理、订阅机制等,用于管理和优化工业自动化环境中的数据交换。
- 因此,尽管OPC UA可能利用TCP来完成其部分功能,但两者服务于不同的目的,并不能直接比较。
- OPC UA关注的是应用层的数据交换需求,而TCP专注于提供可靠的网络传输服务。
二、KEPServerEX:OPC服务器
20230531-基于OPC的上位机工业智能通信统一解决方案-03_哔哩哔哩_bilibili
上述链接03、04,是如何操作OPC服务器连接设备。
具体对OPC服务器原理的理解,见Matrikon Flex OPC UA SDK用户手册P18。
1、设置OPC UA:OPC服务器 与 OPC客户端之间的通信



2、配置通信协议:OPC服务器 与 设备之间的通信(例如以太网)

使用Siemens TCP/IP Ethemet通信协议,命名为“AAA”

3、配置设备(例如PLC)
设置设备IP地址等,命名为“200Smart”

4、配置标签(OPC客户端 两种数据获取方式)
配置了标签后,OPC客户端才能根据标签去访问到设备中这个地址的数据。因为OPC服务器与设备的通信过程已经设置完成(1、2、),所以OPC服务器已经把数据从设备处拿过来了。OPC服务器把数据给OPC客户端有两种方式:
- OPC客户端请求(Pull模式):OPC客户端主动发起请求到OPC服务器,要求获取特定标签对应的数据。OPC服务器收到请求后,将从自身的缓存中取出最近一次获取的数据返回给客户端。
- 这种方式适用于不需要实时监控数据变化的应用场景。
- OPC服务器推送(Push模式):当设置了监控订阅机制后,如果被监控的节点数据发生了变化,OPC服务器就会主动向已订阅了这些节点的OPC客户端发送更新数据。
- 这种模式通常用于需要实时或近实时监控设备状态变化的应用场景。
- 如何实现?【见三、8、】
- 在这个过程中,OPC客户端首先告诉OPC服务器它想要监控哪些节点的数据,以及数据变化超过怎样的阈值时才发送通知等条件;
- 之后,一旦这些节点的数据发生变化并且满足了预先设置的条件,OPC服务器就会立即向客户端推送最新的数据。

设置标签名为“sfwefve”,选取地址时会有“提示”如下图:

如果上图“提示”中找不到,可以点击“帮助”,出现下图:

成功配置标签,如下图:

三、C#创建OPC客户端
20230531-基于OPC的上位机工业智能通信统一解决方案-05_哔哩哔哩_bilibili










