OPC同步和异步读写的实现

发布时间:2024年01月22日
本文主要讲述了在 C# 语言环境下,编程实现通过 SimaticNet 提供的 OPC Server
访问 PLC 中数据的步骤。此方法同样适用于 WinCC 作为 OPC Server 时的数据访问。
OPC 介绍
        OPC 是 Object Linking and Embedding OLE for Process Control 的缩写,它是微软
公司的对象链接和嵌入技术在过程控制方面的应用。 OPC OLE/COM/DCOM 技术为基
础,采用客户 / 服务器模式,为工业自动化软件面向对象的开发提供了统一的标准,这个标
准定义了应用 Microsoft 操作系统在基于 PC 的客户机之间交换自动化实时数据的方法,采
用这项标准后,硬件开发商将取代软件开发商为自己的硬件产品开发统一的 OPC 接口程
序,而软件开发者可免除开发驱动程序的工作,充分发挥自己的特长,把更多的精力投入
到其核心产品的开发上。
SimaticNet 是西门子全集成自动化系统中的一个重要组成部分,它为完善的工业自动化
控制系统的通讯提供部件和网络,同时提供多个 OPCServer ,为数据的外部访问提供接
口,本文主要以 OPC.SimaticNET 为例说明。
采用不同的通信方式,通过 OPC.SimaticNET ,现场数据可以方便地提供给用户:
OPC 的读写方式
在实际使用中,主要包括对现场数据的读写操作。
OPC 读数有三种方式:同步、异步、订阅。
        同步通讯时,OPC 客户程序向 OPC 服务器进行请求时, OPC 客户程序必须等到 OPC
服务器对应的响应全部完成以后才能返回,在此期间 OPC 客户程序一直处于等待状态,若
进行读操作,那么必须等待 OPC 服务器响应后才返回。因此在同步通讯时,如果有大量数
据进行操作或者有很多 OPC 客户程序对 OPC 服务器进行读操作,必然造成 OPC 客户程序
的阻塞现象。因此同步通讯适用于 OPC 客户程序较少,数据量较小时的场合。
        异步通讯时,OPC 客户程序对服务器进行请求时, OPC 客户程序请求后立刻返回,不
用等待 OPC 服务器的响应,可以进行其它操作。 OPC 服务器完成响应后再通知 OPC 客户
程序,如进行读操作, OPC 客户程序通知 OPC 服务器后离开返回,不等待 OPC 服务器的
读完成,而 OPC 服务器完成读后,会自动的通知 OPC 客户程序,把读结果传送给 OPC
户程序。因此相对于同步通讯,异步通讯的效率更高
        订阅方式时,OPC 客户程序对服务器进行请求时, OPC 客户程序操作后立刻返回,不
用等待 OPC 服务器的操作,可以进行其它操作, OPC 服务器的 Group 组在组内有数据发
生改变时,自动根据更新周期刷新相应的客户端数据,如下图,客户端只向 OPC 服务发送
一次请求,之后不再对服务器请求。
        OPC 写数有两种方式:同步、异步。区别与上面讲的机制一样,在生产应用中,如果写
数据参与控制,一般采用同步方式。
OPC 访问接口方式
        OPC 主要包含两种接口: CUSTOM 标准接口和 OLE 自动化标准接口,自定义接口是
服务商必须提供的,而自动化接口则是可选的。
自定义接口是一组 COM 接口,主要用于采用 C++ 语言的应用程序开发;
自动化接口是一组 OLE 接口,主要用于采用 VB DELPHI Excel 等基于脚本编程语
言的应用程序开发。
        许多 OPC 服务器,包括 OPC.SimaticNet ,是在 COM 平台开发的,从而对于基
.NET 框架下的 C# 语言,作为客户端程序语言访问 OPCServer ,需要解决两个平台间无缝
迁移的问题。 OPC 基金会对会员提供了 OpcRcw 动态链接库, OPC NET COM 包装器和
OPC NET API ,将 OPC 复杂的规范封状成简单易用的 C# 类 ,可以比较容易地实现数据访
问。
        本文中通过实验,逐步讲解了通过 C# 编写客户端程序,访问 OPC.SimaticNet ,对
PLC 数据进行读写的实现过程。自定义接口及自动化接口都进行了测试,但基于 C# 的语言
特性,建议采用自定义接口访问,同时有很多 OPCServer 服务商,对外是不提供自动化接
口的,西门子的 SimaticNet WinCC OPCServer 都提供自动化接口。
硬件要求
采用 400 系列 PLC ,通过以太网连接到安装有 simaticNet 的计算机上。
computer windows 2003 server--------192.168.0.102
CPU CPU414-3PN ------416-3FR05-0AB0--------192.168.0.1
软件要求
computer
ü Simatic.net 2007
ü Visual studio 2005
ü Step7 V5.4 SP4
OPC Server 端组态配置
如上图建立连接 S7_connection_1 ,然后在 OPC Scout 测试连接的正确性。也可通过博图软件连接进行测试。
采用自定义接口过程
同步读写
建立同步读写项目: Sync_RW
测试中,对 db10.dbw0 db10.dbw2 读写操作,在 Form 窗口做如下设计:
Control name Text
Button: Btn_Conn Conn
Button: Btn_Read Read
Button: Btn_Write Write
Button: Btn_DisConn disConn
T
文章来源:https://blog.csdn.net/A_nanda/article/details/135721040
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。