OPC报警与事件服务器开发包
前言
OPC(OLE for Processing Control)是工控行业的软件接口标准,主要用来解决控制系之间或控制系统与设备之间数据交换的标准化问题。OPC规范包括数据访问服务器(DA)、
历史数据访问服务器(HDA)、事件与报警服务器(A/E)、XML数据访问服务器(XML DA)、等一系列标准规范。OPC规范由OPC基金会负责制定并对OPC产品进行认证。
OPC规范具有如下的优点:
(1) 统一的接口标准简化了软件的开发和减低了系统维护的费用
(2) 充分的开放性和标准化特性,保证高度柔韧性系统的实现
(3) 持续的版本升级,保证了规范的先进性
(4) 支持DCOM、.Net架构
(5) 采用了Windows底层的COM技术,充分保证了数据传输的效率
本文档介绍OPC报警与事件服务器开发包(以下简称软件包)的特点和如何利用开发
软件包进行OPC报警与事件服务器(以下简称AE)的开发。
本文共分为四个部分:
介绍了OPC的基本概念;
AE服务器的开发流程;
详细描述了开发包的接口描述;
附录部分介绍了一些与AE开发相关的OPC规范和其他内容。
RayFile提供下载:
http://www.rayfile.com/zh-cn/files/6b235fe3-b2de-11e0-93f2-0015c55db73d/
1、软件包简介
1.1. OPC软件包简介
OPC开发包产品以标准动态连接库(DLL)形式提供二次开发接口,与Win98、WinNT、
WIN2000、WIN2003系统完全兼容。OPC开发软件包由服务器软件包、客户端开发软件包组成,完全封装了OPC技术和COM技术实现细节,使二次开发的程序员无需OPC规范和COM技术底层细节,降低服务器和客户端程序开发的复杂程度和减少了熟悉OPC技术的时间,只需专注于自己熟悉的数据采集和过程控制,其他的一切都交给软件开发包来完成。由于软件开发包以标准的WINDOWS API方式提供,故可以在目前主流的所有开发语言和开发工具中得到支持。
1.2.软件包的特点
数据访问开发套件于2004年6月开始研发,吸取了各大OPC开发包的优点,经过多次升级,实现了对OPC数据访问服务器规范(以下简称DA规范)的全面支持(支持规范版本1.0、2.0、3.0),提供对OPC ALARM and EVENT Specification 1.1(以下简称OPC AE规范)的全面支持。软件包具有以下特点:
完全符合OPC DA、AE标准,通过OPC基金会兼容性产品测试
完全的封装使二次开发人员不需要了解COM技术和OPC规范接口细节
开发包支持多种开发语言,如VC、BC、VB、Delphi、C#等
逻辑清晰、功能明确的二次开发函数保证用户进行二次开发简单容易
支持同步、异步数据通讯方式
支持自定义属性读写
支持树型地址空间
支持分布式体系结构
良好的兼容性(支持所有组态软件、DCS系统、Scada系统)
完备的产品升级和完善的技术支持,提供现场技术服务和远程技术指导
1.3.软件包的授权
OPC软件开发包按照机器码和点数进行授权,如果没有授权文件,Demo版本支持2小时的运行,2小时后请重新启动软件即可。
2、AE服务器开发流程
2.1. OPC AE的基本结构
OPC AE服务器应用程序由两个主要部分构成:开发包和报警信息接口。开发包可以采用静态或者动态DLL引入,报警信息接口根据实际情况进行开发,报警信息一般是上位软件的报警输出接口,也可以是其他的报警数据源。报警信息接口根据实际的软件报警数据交换接口标准或其他数据库访问标准进行开发。
OPC AE服务器应用程序中还需要一个重要的环节:OPC开发包与报警信息接口之间的数据交换,这个功能由二次开发人员完成。二次开发人员需要实现OPC报警信息与报警信息接口对应关系的建立,实现OPC开发包的报警确认或其他信息输出或查询方法的实现。
2.2.基本开发流程
2.2.1. OPC开发包授权
根据机器码和点数向开发商索取授权文件或者无授权文件时可以连续运行2小时。
2.2.2. BMAES_RegServer, BMAES_UnregServer
注册服务器信息
2.2.3. BMAES_CreateServer
分配服务器资源
2.2.4. BMAES_SetFilter,BMAES_SetVersion
设置支持的事件过滤条件和服务器版本信息
2.2.5. BMAES_SetItemIDCallback…
注册回调通知函数
2.2.6. BMAES_AddArea, BMAES_AddEvent…
构造服务器地址空间(支持树型空间)
2.2.7. BMAES_SetEventAttr, BMAES_FireEvent
设置事件属性和触发事件
2.2.8. BMAES_FreeServer
释放服务器资源
[注]由于OPC服务器采用COM技术,从COM的角度看,服务器是一个标准的COM组件,必须支持标准的COM注册技术。同时,为了发挥服务器浏览、激活、访问管理等特性,也要求在使用前注册服务器。
[注] BmOpcAeSvr_API被定义为:#define BmOpcAeSvr_API extern "C" __declspec(dllimport)
表2(低八位的高两位定义)
中间四位的定义:
1、状态为0:
SSSS 位值 定义 描述
0 000000LL 未定的的错误 数据是无效的,无效的原因没有定义
1 000001LL 服务器配置错误 由于服务器的配置错误造成数据的无效
2 000010LL 没有连接 由于没有连接数据源,数据不能被正确的提供
3 000011LL 设备错误 发现一个设备错误,造成数据无效
4 000100LL 传感器错误 发现一个传感器错误,限定状态的位域有
时能提供进一步的诊断信息
5 000101LL 最后一次有效值 由于通信失败,提供的数据是最后一次保
存的有效值
6 000110LL 通信失败 通信失败并且没有最后保存的有效值可
以提供
7 000111LL 不在服务范围之内 标签定义为不活动的
8-15 OPC未定义 未定义
表3
2.主状态为1:
SSSS 位值 定义 描述
0 010000LL 未定义的错误 不能确定数据的有效性,其原因未定义
1 010001LL 最后可用的值 该值返回的是最后可用的值
2-3 OPC未定义 未定义
4 010100LL 传感器精度不够 该值被固定在传感的上下限上
5 010101LL 超出上下限 返回的值超出上下限
6 010110LL 数据来自多个数据源 数据需要来自多个可用的设备
7-15 OPC未定义 未定义
表4
3.主状态为3:
SSSS 位值 定义 描述
0 110000LL 未定义的错误 数据有效,原因未定义
1-5 OPC未定义 未定义
6 110110LL 本地设定值 设备不能连接,该值是本地设定值
7-15 OPC未定义 未定义
表5
低两位的定义:
LL 位值 定义 描述
0 QQSSSS00 没有边界 这个值没有上下限
1 QQSSSS01 下限 该值被固定在下限值
2 QQSSSS10 上限 该值被固定在上限值
3 QQSSSS11 常量 该值被固定在某个常数上
表6
4.3.如何发布服务器
以下程序应随服务器一同发布,可运行Install.bat批处理文件进行一下dll的注册和拷贝
1.Opcproxy.dll,安装路径%windir%\system32
2.Opccomn_ps.dll,安装路径%windir%\system32
3.OPCEnum.exe,安装路径%windir%
4.服务器软件和二次开发工具包
5.开放包授权文件
4.4.关于我们
白马软件工作室,成立于2000年,至今走过了十二个春秋。专注成就专业,精心打造精品,十年来,我们先后推出了数十款深受用户欢迎的软件。《程序员杂志》《软件报》《电脑报》等国内数十家媒体先后发文推介,软件以精彩、精致、精心、精品赢得了用户的信任和赞誉。
十年来,白马软件工作室作品,得到的广大用户的认可和好评,白马软件工作室在此诚意感谢广大用户十年来的支持、关心和厚爱!
免费体验、技术支持