企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题基于OPC的客户端监控程序的开发
技术领域仪器仪表
行业
简介介绍了有关OPC的基本知识,给出了编写OPC客户端程序的一般方法。作者还给出了一个实例,用Visual Basic编写了一个OPC客户程序,对NAP7000 OPC Server进行访问。
内容



1  引言

    OPC是OLE for Process Control的缩写,即把OLE应用于工业控制领域。OLE的原意是对象链接和嵌入,随着OLE2的发行,其范围已远远超出了这个概念。现在的OLE包容了新的特征,如统一数据传输、结构化存储和自动化,已经独立于计算机语言、操作系统甚至硬件平台的一种规范,是面向对象程序设计概念的进一步推广。OPC建立在OLE规范之上,它为工业控制领域提供了一种标准的数据访问机制。

    工业控制领域用到大量的现场设备,在OPC出现之前,软件开发商需要开发大量的驱动程序来连接这些设备。即使硬件供应商在硬件上做了一些小小的改动,应用程序就可能需要重写;同时,由于不同设备甚至同一设备不同单元的驱动程序也可能不同,软件开发商很难同时对这些设备进行访问以优化操作。硬件供应商也在尝试解决这个问题,然而由于不同客户有着不同的需要,同时也存在着不同的数据传输协议,因此也一直没有完整的解决方案。

    自OPC出现之后,这个问题终于得到解决。OPC规范包括OPC服务器和OPC客户两个部分,其实质是在硬件供应商和软件开发商之间建立了一套完整的“规范”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商无须考虑应用程序的多种需求和传输协议,软件开发商也无须了解硬件的实质和操作过程。

2  OPC适用范围和基本概念

2.1  OPC适用范围

   
OPC的设计者们最终的目标是在工业领域建立了一套数据传输规范,并为之制定了一系列的发展计划。现有的OPC规范涉及如下领域:

(1)  在线数据监测。实现了应用程序和工业控制设备之间高效、灵活的数据读写。
(2)  报警和事件处理。提供了OPC服务器发生异常及OPC服务器设定事件到来时,向OPC客户发送通知的一种机制。
(3)  历史数据访问。实现了读取、操作、编辑历史数据库的方法。
(4)  远程数据访问。借助Microsoft的DCOM技术,OPC实现了高性能的远程数据访问能力。
(5)  安全性、批处理、历史报警事件数据访问等。

2.2  OPC基本概念

    本系统使用的OPC服务器为台湾泓格科技有限公司的NAP7000 OPC Server。对数据项设定好代表的具体的通道,可以把数据项看作数据源的地址。

    OPC服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象拥有服务器的所有信息,同时也是组对象的容器。组对象拥有本组的所有信息,同时包容并逻辑组织OPC数据项。在这里数据项就是指12个位输入和2个位输出。

    OPC组对象提供了客户组织数据的一种方法。客户可对之进行读写,还可以设置客户端的数据更新速率。当服务器缓冲区内的数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理。而无须浪费大量的时间进行查询。OPC规范定义了两种组对象:公共组和局部组(私有组)。公共组由多个客户共有,局部组只隶属于一个OPC客户。一般来说,客户和服务器的一对连接只需要定义一个组对象。

    在每个组对象中,客户可以加入多个OPC数据项。OPC数据项是服务器端定义的对象,通常指向设备的一个寄存器单元。OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过OPC数据项,OPC规范尽可能地隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。OPC数据项并不提供对外接口,客户不能直接对之进行操作,所有的操作都是通过组对象进行的。每个OPC数据项的数据结构包括三个成员变量:即数据值、数据质量和时间戳。数据值是以Variant形式表示的。

3  客户端监控程序开发一般步骤

    OPC规范提供了两套接口方案,即COM接口和自动化。COM接口效率高,通过该接口,客户能够发挥OPC服务器的最佳性能,采用C++语言的客户一般用COM接口方案;自动化接口使用解释性和宏语言访问OPC服务器,采用Visaul Basic语言的客户一般采用自动化接口。自动化接口使解释性和宏语言编写客户应用程序变得简单。本文给出的客户端应用程序的应用实例就是用Visual Basic编写的。

3.1  OPC的连接

    先在“引用”将OPC Automation 2.0加入,然后开始定义全局变量。在本程序中,笔者使用了两个OPC组进行OPC访问。首先定义了OPC组与OPC数据项。注意数据项的值一定要以Variant形式表示。在定义所有变量后,就要进行OPC连接了。

主要程序如下:
Set Server = New OPCServer ’生成OPC对象,
sServers = Server.GetOPCServers("")
Server.Connect  sServerName, "" ’连接OPC服务器
Set Group = Server.OPCGroups.Add("I7000")
Set ItemObj = GroupObj.OPCItems.AddItem("XXXITEM", 1)
' XXXITEM为添加的ITEM名称

3.2  OPC的数据项读写

    对OPC的写可以有同步与异步之分,对于大量的数据传输,异步是更佳的选择;但对少量的数据传输,同步表现得更好。要进行数据传输,先要将值数据进行赋值。

读数据项主要程序如下:
Dim anItem As OPCItem
Set anItem = Group.OPCItems.Item(1)
anItem.Read OPCCache

写数据项主要程序如下:
Dim anItem As OPCItem
Group.OPCItems.AddItem lTagSelected.Caption, 1
Set anItem = Group.OPCItems.Item(1)

3.3  OPC连接断开

    OPC客户端连接后要占用服务器资源,所以如果不需要使用OPC时,必须进行OPC连接断开。断开的程序相当简单,释放资源即可。

断开连接的主要程序如下:
Server.OPCGroups.RemoveAll
Server.Disconnect
Set Server = Nothing

4  结论

    通过OPC技术,经过直接访问硬件供应商提供的OPC服务器,从而达到访问硬件的数据。OPC的优越性是显而易见的:

(1)  硬件供应商只须提供一套符合OPC Server规范的程序组,无须考虑工程人员需求。
(2)  软件开发商无须重写大量的设备驱动程序。
(3)  工程人员在设备选型上有了更多的选择。
(4)  OPC扩展了设备的概念。只要符合OPC Server规范,OPC客户都可与之进行数据交互,而无须了解究竟是PLC还是仪表,甚至在数据库系统上建立了OPC规范,OPC客户也可与之方便地实现数据交互。