本文简单介绍OPC AE规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。OPC AE规范描述了OPC事件服务器应该实现的对象和接口,实现在多个OPC客户端间共享事件和警报条件。
1、OPC AE服务器/客户端
OPC AE有几种类型的OPC报警和事件服务器。至少支持:
•组件能够检测到警报/事件,并将其报告给一个或多个客户端。
•组件可以从多个来源收集警报和事件信息,并将其报告给一个或多个客户端。
OPC报警和事件服务器的客户端通常是订阅和显示的组件,处理、收集记录报警和事件信息。OPC报警和事件服务器的客户端可能包括(但不限于):
•操作员站
•事件/报警记录组件
•事件/警报管理子系统
下图为OPC AE服务器/客户端的典型结构图。Alarm/Event management Server既是OPC AE Server,也是OPC AE Client。它从Alarm/Event数据源Device Alarm Info和SPC Module采集事件/报警,并将其报告给OPC AE客户端Opeator Station1、Event Logger。
实现IOPCEventServer接口的任何COM对象都是OPC事件服务器。IOPCEventServer接口提供了一些方法,使OPC客户端能够:
•确定OPC事件服务器支持的事件类型。
•输入指定事件的订阅,以便OPC客户端可以接收其事件。
•指定在OPC事件服务器关闭时要调用的客户端回调接口。
2、区域
服务器中可用的事件和条件被组织在一个或多个内工艺区域。区域是工厂设备的分组,通常根据操作员责任来划分。如果区域可用,客户端可以创建一个OPCEventAreaBrowser对象来浏览过程区域组织。客户端可以通过指定进程区域来筛选事件订阅,限制服务器发送的事件通知。
3、报警/条件
警报是一种异常条件。条件是OPC事件服务器的一些过程状态集合。例如,标签FIC101可能具有“LevelAlarm”或与之相关的“偏差警报”条件。条件可以被定义(可选地)为包括多个子条件。例如LevelAlarm条件可能包括“HighAlarm”、“HighHighAlarm”和“LowAlarm”,以及“LowLowAlarm”子条件1。
在OPC事件服务器中,条件由OPCCondition2类型的对象表示。每个OPCCondition与一个OPCSource相关联,如下图所示。OPCSource可以是过程标签(例如FIC101)或可能的设备或子系统。如果OPC事件服务器是OPC DA服务器,OPCSource也可能是OPCItem。
条件可以是单一状态,也可以是多状态。多状态条件是指其状态包含多个感兴趣的“范围”或子状态。例如,“LevelAlarm”条件可能具有多个子状态,包括“HighAlarm”和“HighHighAlarm”。
表示每个子状态,由OPCSubCondition类型的对象(该对象也不是COM对象)执行。每个OPCSubCondition与一个OPC条件相关联,如下图所示。多状态条件的子状态必须互斥,例如标签不能同时处于HighAlarm和同时发出HighHighAlarm。
子条件允许客户更容易地处理密切相关的事件通知,使得客户端更容易检测并正确显示报警。例如:FIC101 从“HighAlarm” 切换到 “HighHighAlarm” ,这些子状态被建模为相同条件(“LevelAlarm”)。如果建模为独立的条件,则很难确定这些条件如何排斥。
单个状态条件只有一个子状态感,因此只有一个子条件。比如“硬件故障”,其中硬件设备要么处于故障状态,要么不处于故障状态。
4、事件
事件是可检测的发生的事情。事件可能与条件相关,也可能不相关。例如,转换到LevelAlarm状态和恢复正常是与条件相关联的事件。而操作员操作、系统配置更改和系统错误则是与条件无关的事件。
事件在OPC模型中没有直接表示。通过Event Notification告知事件发生,由OPCEventNotification3类实现。
存在以下三种事件类型:
1)条件事件:与OPCConditions相关的事件,表示进入或退出由OPCConditions和OPCSubConditions表示的状态转换。例如:FIC101转换为LevelAlarm状态和HighAlarm子状态。
2)跟踪事件:不与条件相关联的事件,表示发生的事件涉及OPC客户端与OPC事件服务器内的“目标”对象的交互。例如:控制更改,操作员(OPC客户端)更改标签FIC101的设定点(“目标”)。
3)简单事件:是除上述事件之外的所有事件。例如:由OPC事件服务器表示的系统/设备内的组件故障。
更多通信资源请登录网信智汇(wangxinzhihui.com)。