![]() |
|
| | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 视频教程 | ieee | |
| 热门搜索关键字: 单片机教程 | 三极管 | 微电子 | C语言 | 汇编语言 | SCADA | 元器件 | IEEE | |
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1. 服务器、组、数据项
OPC服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器。组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。
客户操作数据项的一般步骤为:
u 通过服务器对象接口枚举服务器端定义的所有数据项,如果客户对服务器所定义的数据项非常熟悉,此步可以忽略。
u 将要操作的数据项加入客户定义的组对象中。
u 通过组对象对数据项进行读写等操作。
每个数据项的数据结构包括三个成员变量:即数据值、数据质量和时间戳。数据值是以VARIANT形式表示的。应当注意,数据项表示同数据源的连接而不等同于数据源,无论客户是否定义数据项,数据源都是客观存在的。可以把数据项看作数据源的地址,即数据源的引用,而不应看作数据源本身。
报警和事件处理机制增强了OPC客户处理异常的能力。服务器在工作过程中可能出现异常,此时,OPC客户可通过报警和事件处理接口得到通知,并能通过该接口获得服务器的当前状态。
在很多场合,报警(Alarm)和事件(Event)的含义并不加以区分,两者也经常互换使用。从严格意义上讲,两者含义略有差别。
依据OPC规范,报警是一种异常状态,是OPC服务器或服务器的一个对象可能出现的所有状态中的一种特殊情况。例如,服务器上标记为FC101的一个单元可能有如下状态:高出警戒,严重高出警戒,正常,低于警戒,严重低于警戒。除了正常状态外,其他状态都视为报警状态。
事件则是一种可以检测到的出现的情况,这种情况或来自OPC客户,或来自OPC服务器,也可能来自OPC服务器所代表的设备,通常都有一定的物理意义。事件可能与服务器或服务器的一个对象的状态有关,也可能毫无关系。如高出警戒和正常状态的转换事件和服务器的某个对象的状态有关,而操作设备,改变系统配置以及出现系统错误等事件和对象状态就无任何关系。
OPC规范提供了两套接口方案,即COM接口和自动化。COM接口效率高,通过该接口,客户能够发挥OPC服务器的最佳性能,采用C++语言的客户一般采用COM接口方案;自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB语言的客户一般采用自动化接口。自动化接口使解释性语言和宏语言编写客户应用程序变得简单,然而自动化客户运行时需进行类型检查,这一点则大大牺牲了程序的运行速度。
OPC服务器必须实现COM接口,是否实现自动化接口则取决于供应商的主观意愿。典型的OPC体系如图:
OPC服务器本身就是一个可执行程序,该程序以设定的速率不断地同物理设备进行数据交互。服务器内有一个数据缓冲区,其中存有最新的数据值,数据质量戳和时间戳。时间戳表明服务器最近一次从设备读取数据的时间。服务器对设备寄存器的读取是不断进行的,时间戳也在不断更新。即使数据值和质量戳都没有发生变化,时间戳也会进行更新。
OPC客户和OPC服务器进行数据交互可以有两种不同方式,即同步方式和异步方式。同步方式实现较为简单,当客户数目较少而且同服务器交互的数据量也比较少的时候可以采用这种方式;异步方式实现较为复杂,需要在客户程序中实现服务器回调函数。然而当有大量客户和大量数据交互时,异步方式能提供高效的性能,尽量避免阻塞客户数据请求,并最大可能地节省CPU和网络资源。
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站地图 | 名站导航 | 管理登录 | |
| 本站资源部分来自互联网,如侵犯您的权利,我们将予以删除 鲁ICP备08006092号 |
| 中国IEEE 中国电气电子工程师网 版权所有 |