新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 利用OPC实现VC应用程序与PLC的数据交换

利用OPC实现VC应用程序与PLC的数据交换

作者:时间:2011-09-11来源:网络收藏

  (Visual C++)是功能强大的一种Windows可视化软件开发工具。支持面向对象的设计方法,并可以使用功能强大的微软基础类库MFC(Micro - soft foundation class)。并且由于Microsoft公司在操作市场上的垄断地位,用VC开发出来的软件稳定性好、可移植性强,而且软件与硬件相互独立[1],可以用来开发控制系统的上层管理系统。RSView32是作为一种专门用于工业控制的组态软件,不仅包含了大量图形开发工具和现成图形库,使用户能够方便的进行系统开发,而且还可以对报警、活动记录、事件、历史趋势等进行组态,是一个功能强大的工业自动化产品[2],因此可以很方便地对下层设备进行组态。在实际系统开发时,技术把两种工具有效的结合起来,使上层的VC程序通过RSView32间接地与下层进行通信,以获取令人满意的结果。

本文引用地址:http://www.eepw.com.cn/article/155781.htm

  2 介绍

  OPC(OLE for Process Control)是根据Microsoft的OLE(现在Active)、COM(部件对象模型)和DCOM(分布式部件对象模型)技术所要求的功能制定的一个开放和互用式的用户界面标准,它保证了自动化/控制和区域系统/设备之间的互用。它以OLE/COM机制作为应用程序级的通讯标准,采用 CLIENT/SERVER模式,典型的OPC体系结构如图1所示:


  图1 典型的OPC体系结构

  OPC规范中提供了两套接口方案,即定制接口和自动化接口。定制接口效率高,通过该接口能够发挥OPC服务器的最佳性能,采用C++语言的客户一般采用定制接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB等语言的客户一般采用自动化接口。

  OPC 存取服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象用于指出特定的OPC服务器应用程序名,并作为组对象的容器;组对象存储由若干Item组成的Group信息并逻辑组织数据项;数据项对象()存储具体的Item的定义、数据值、状态值等信息,一个 Item就代表一个具体的过程变量。OPC客户应用程序要获取OPC服务器的数据,必须事先指定服务器应用程序所在的计算机名(服务器应用程序和客户应用程序不在同一台PC上)、OPC数据访问服务器名和该服务器提供的OPC项的定义。

  建立OPC连接后,客户应用程序一般可以通过三种方式从OPC 服务器读取数据:使用同步接口IOPC- SyncIO,简单有效,适合于只读取少量数据的客户程序;使用接口IOPCCallback的“订阅”的功能OnChange,每当数据有变化时,服务器自动通知客户;使用异步接口IOPCASyncIO2,可以直接与物理设备通讯,速度慢但数据精确度高。

  3 RSView32作为OPC服务器

  西门子专门用于工业控制的通用组态软件之一RSView32支持OPC技术,它可以用作一个OPC客户和外部OPC服务器软件通信,也可以作为一个OPC服务器和其它第三方支持OPC技术的软件进行连接。本文中RSView32作为服务器,VC应用程序作为客户端,采用C/S模式两者之间的数据

  3.1 使RSView32作为OPC服务器[4]

  用下列方法之一使RSView32作为OPC服务器:

  (1) 选择“启动”编辑器里“启动”页上的“OPC/DDE服务器”复选框;

  (2) 发出RTDataServerOn命令(从命令行或另一个 RSView32组件里,使用RTDataServerOff命令可以取消此功能),这将允许其它应用程序读取数值但不能改变它;

  (3) 发出RTDataWriteEnable命令(从命令行或另一个RSView32组件里,使用RTDataWriteDisable命令可以取消此功能),这允许从外部OPC应用程序写入,以改变RSView32的标记值。

  3.2 建立 OPC 客户项目[4]

  VC应用程序要从RSView32取得数据,必须使用下列信息:

  服务器:RSI.RSView32OPCTagServer;

  类型:本机/远程;

  服务器计算机名或地址:如果客户和服务器在同一计算机上,这项可以是空白。

  访问路径:项目名;

  更新速率:一个以秒为单位的速率;

  条目:标记名。可以通过查看RSView32的标签数据库获得。

  4 VC应用程序作为OPC客户端的程序

  在VC环境中使用定制接口开发OPC客户应用程序,下面是程序实现的关键步骤。

  4.1 包含OPC头文件

  开发OPC客户应用程序,除了需要OPC接口外,还需要在程序中包含OPC标准库文件,可以从OPC基金会网站(网址:www.opcfoundation.org)下载这些文件:

  #include opcda_i.c OPC数据存取接口

  #include opcda.h OPC数据存取2.0头文件

  #include opccomn_i.c OPC公共接口定义

  #include opccomn.h OPC公共头文件

  4.2 初始化COM支持库

  由于OPC是基于COM技术制定,所以在使用接口类之前必须首先使用CoInitialize(NULL)函数初始化COM库,如果成功,函数返回值等于S_ OK。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭