OPC同步和异步读写的实现

本文主要?p>

彩隽嗽?
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