OPC同步和异步读写的实现

本文主要讲述了在 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同步和异步读写的实现_第1张图片
采用不同的通信方式,通过 OPC.SimaticNET ,现场数据可以方便地提供给用户:
OPC同步和异步读写的实现_第2张图片
OPC 的读写方式
在实际使用中,主要包括对现场数据的读写操作。
OPC 读数有三种方式:同步、异步、订阅。
        同步通讯时,OPC 客户程序向 OPC 服务器进行请求时, OPC 客户程序必须等到 OPC
服务器对应的响应全部完成以后才能返回,在此期间 OPC 客户程序一直处于等待状态,若
进行读操作,那么必须等待 OPC 服务器响应后才返回。因此在同步通讯时,如果有大量数
据进行操作或者有很多 OPC 客户程序对 OPC 服务器进行读操作,必然造成 OPC 客户程序
的阻塞现象。因此同步通讯适用于 OPC 客户程序较少,数据量较小时的场合。
OPC同步和异步读写的实现_第3张图片
        异步通讯时,OPC 客户程序对服务器进行请求时, OPC 客户程序请求后立刻返回,不
用等待 OPC 服务器的响应,可以进行其它操作。 OPC 服务器完成响应后再通知 OPC 客户
程序,如进行读操作, OPC 客户程序通知 OPC 服务器后离开返回,不等待 OPC 服务器的
读完成,而 OPC 服务器完成读后,会自动的通知 OPC 客户程序,把读结果传送给 OPC
户程序。因此相对于同步通讯,异步通讯的效率更高
OPC同步和异步读写的实现_第4张图片
        订阅方式时,OPC 客户程序对服务器进行请求时, OPC 客户程序操作后立刻返回,不
用等待 OPC 服务器的操作,可以进行其它操作, OPC 服务器的 Group 组在组内有数据发
生改变时,自动根据更新周期刷新相应的客户端数据,如下图,客户端只向 OPC 服务发送
一次请求,之后不再对服务器请求。
OPC同步和异步读写的实现_第5张图片
        OPC 写数有两种方式:同步、异步。区别与上面讲的机制一样,在生产应用中,如果写
数据参与控制,一般采用同步方式。
OPC 访问接口方式
        OPC 主要包含两种接口: CUSTOM 标准接口和 OLE 自动化标准接口,自定义接口是
服务商必须提供的,而自动化接口则是可选的。
自定义接口是一组 COM 接口,主要用于采用 C++ 语言的应用程序开发;
自动化接口是一组 OLE 接口,主要用于采用 VB DELPHI Excel 等基于脚本编程语
言的应用程序开发。
OPC同步和异步读写的实现_第6张图片
        许多 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 端组态配置
OPC同步和异步读写的实现_第7张图片
OPC同步和异步读写的实现_第8张图片
OPC同步和异步读写的实现_第9张图片
如上图建立连接 S7_connection_1 ,然后在 OPC Scout 测试连接的正确性。也可通过博图软件连接进行测试。
OPC同步和异步读写的实现_第10张图片
采用自定义接口过程
同步读写
建立同步读写项目: Sync_RW
OPC同步和异步读写的实现_第11张图片
测试中,对 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

你可能感兴趣的:(opc,西门子,SimaticNet,WinCC,c#)