VC环境下的OPC客户端程序开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC环境下的OPC客户端程序开发
来源:中国论文下载中心 [ 08-07-30 15:41:00 ] 作者:赵健师奕兵编辑:
studa0714
Ads by Google
曙光刀片服务器TC2600支持Intel® Xeon® 5000系列处理器高密度高能效易管理低成本
OPC Grape Seed Extract Save 70% on our Premium Blend: Worldwide Shipping Quoted Upfront
SapphireTrend Premier OPC Trending solution for realtime process control & analysis
摘要本文通过分析OPC 数据访问规范,介绍了有关OPC技术的基本概念、数据访问方式以及编写OPC客户端接口程序的一般方法。同时给出了一个具体实例,用Visual C++编写了一个OPC客户端接口程序,并利用OPC服务器KEPServer对其进行测试,实现了OPC客户端与OPC服务器之间的数据交换。
关键词OPC服务器;OPC客户端;COM技术
1 引言
随着通信技术、计算机技术和自动化技术的快速发展,大范围信息共享的需求在自动化系统中显得越来越来越重要,现代工业控制系统已逐渐发展成为以现场设备层、过程控制层和中央管理层三个层次组成的系统,因而对其开放性也提出了更高的要求。在传统的控制系统中,现场设备之间以及现场设备与控制软件之间的信息共享主要是通过驱动程序来实现的,不同厂家的设备使用不同的驱动程序,使得软件开发商不得不开发大量驱动程序来连接这些设备,即使设备厂家在硬件上做小小的改动,应用程序就可能重写,这也势必造成工业控制软硬件的升级与维护不便,给用户和软件开发商带来巨大的工作负担。同时,由于不同设备的驱动程序也有所不同,使得不同的应用程序也不能同时访问同一设备的数据,因此,需要制定一种统一开放的接口标准,使应用程序能够方便的存取一台或多台现场设备的数据,为不同厂商的软硬件提供一种系统集成和数据交换的途径。正是在自动化系统开放性要求的驱使下,促使了OPC技术的产生。
2 OPC技术简介
OPC(OLE for Process Control)是基于微软公司的DNA(Distributed InterNet Application)构架和COM (Component Object Model)/DCOM(Distributed COM)技术,根据易扩展性而设计的,OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。OLE最初意思为对象链接与嵌入,是微软的复合文档技术。随着后续版本OLE2中导入了COM技术之后,现在的OLE在原版的基础上增加了更多新的功能,包括结构化存储、统一数据传输和自动化等,它已经成为独立于计算机语言、操作系统甚至硬件平台的
一种规范,进一步推广了面向对象程序设计的概念。OPC正是建立在OLE2规范之上,为工业控制领域提供了一种标准的数据访问机制。
2.1 OPC数据访问规范
OPC规范是由世界主要的自动化设备制造商、OPC基金会和微软公司共同协商制定而成的,为不同厂商的设备和应用程序之间实现了接口标准化。它把硬件供应商和软件开发商分离开来,在设备、数据库等数据源和客户之间架起了一座桥梁,为解决统一接口标准问题提供了解决方案。这其中包括OPC数据访问规范(OPC DA)、OPC报警和事件规范(OPC AE)和OPC历史数据访问规范(OPC HDA)等,而OPC数据访问规范是最常用的规范之一。
通过对OPC数据访问规范的分析可知,在OPC数据访问规范中主要包括3
类对象,分别是OPC Server、OPC Group和OPC Item。OPC服务器对象维护有关服务器的信息并作为OPC组对象的包容器,能够动态地创建和释放组对象;OPC组对象除了维护有关自身的信息之外,还提供了包容OPC项的机制,从逻辑上管理OPC项。它提供了客户组织数据的一种方法,客户可以对其进行读写,还可以设置客户端的数据更新速率。当服务器缓冲区内的数据发生改变时,OPC 将向客户发出通知,客户得到通知后再进行必要处理,而无需浪费大量的时间进行查询;OPC项则表示了与OPC服务器的连接,它并不提供对外接口,客户端不能直接对其进行操作,而是通过组对象对其进行操作的。图1表示了这3类对象的相互关系以及它们与OPC客户端程序之间的关系。
图1 OPC DA服务器对象与OPC DA客户端的对应关系
2.2 OPC数据访问方式
OPC客户端在对OPC服务器进行数据访问时,可以选择两种不同的访问方式,即同步访问方式和异步访问方式。其中同步访问方式的实现相对简单,OPC服务器将OPC应用程序所要求得到的数据访问结果作为方法引数返回给OPC应用程序,此时OPC应用程序一直处于等待状态,直到结果被返回为止。当客户数目较少并且与服务器交互的数据量也较少的时候可以采用同步访问方式。与此相对,异步访问方式的实现较为复杂,OPC服务器接到OPC应用程序的要求后,立即将方法引数返回,OPC应用程序随后可以进行其它处理。当OPC服务器完成数据访问时,触发OPC应用程序的异步访问完成事件,将数据访问结果传送
给OPC应用程序,OPC应用程序在VC的事件处理程序中接收从OPC服务器传来的数据。当有大量客户和大量数据交互时,异步访问方式的效率更高,能够避免客户数据请求的阻塞,从而最大限度的节省CPU和网络资源。图2和图3分别表示了两种数据访问方式的处理过程。
图2 同步数据访问处理
图3 异步数据访问处理
3 VC环境下OPC客户端程序设计
OPC客户端程序在设计时需要遵守OPC数据访问规范,实现规范所规定的全部必需接口。同时,客户端模块需要有独立的设备连接界面和监控运行界面,并能够支持多服务器的连接。下面详细介绍VC环境下的OPC客户端程序开发步骤,并给出关键源代码:
(1)包含OPC头文件。首先创建新的工程,编辑StdAfx.h文件,加载opcda.h、opccomn.h、opcerrors.h、opcprops.h、opcquality.h以及opcda_i.c、opccomn_i.c
文件。