OPC UA 学习笔记 Event,Condition和Alarm

        告警和事件在自动控制领域十分重要,它是保障系统安全运营的主要措施。OPC UA 设立了专门的一部分来规范告警和条件模型

《OPC 10000-9: UA Part 9: Alarms and Conditions》。

    事件,条件和告警是OPCUA 信息模型中相对比较复杂的内容。应该根据应用的具体需求精心选取和实现。

基本概念

事件,条件和告警都是表示了系统或者某一个组件的状态变化,例如:

  • 温度超出了范围
  • 设备需要维护
  • 在过程控制的某一步需要用户确认。
  • 事件,条件和Alarm 的相互关系 

  • ventType是ConditionType的父类
  • ConditionType是AlarmType的父类
  • Event最为泛化,主要是定义了事件的基本属性
  • Condition则拥有状态
  • Alarm则拥有更多可被设置的状态

基本事件类型

在OPCUA 中,最基本的告警信息是事件。它是一个对象节点,包含了子类型和属性:

OPC UA 学习笔记 Event,Condition和Alarm_第1张图片

一些重要的属性

Time(事件发生的时间)

Severity(严重程度)

  表示事件的严重程度,范围从1 到1 000 ,1 表示最低,1000 最高。在具体的应用中需要具体地定义每个事件的Severity值。

OPC UA 学习笔记 Event,Condition和Alarm_第2张图片

Message(通知消息)

SourceName(谁发出的消息,即事件源的名字) 

条件(Condition)

    条件是一个对象类型。是基本事件类型派生出来的,包含了BaseEventType属性,并且扩展了一些属性:

OPC UA 学习笔记 Event,Condition和Alarm_第3张图片

条件的特点是增加了名称·,状态以及方法:

EnableState

Disable方法

允许关闭该条件,不会向客户端发送。

Enable 方法

允许该条件。

OPC UA 学习笔记 Event,Condition和Alarm_第4张图片

      Enable和disable 的状态切换可以通过Disable 和Enable 方法实现切换,也可以通过Server 端的应用程序来切换。

一些重要的属性

Quality  -是产生该条件的过程值和资源的状态,例如,如果过程值为“不确定”,则相关的“液位报警”条件也值得怀疑。质量值可以是 OPC 10000-8 中定义的任何 OPC状态代码,也可以是 OPC 10000-4 中定义的良好,不确定和不良好。这些代码状态各种现场总线规范中的数据质量描述相似,但略微通用。

条件类型进一步派生出告警类型,它们的分层关系如下:

OPC UA 学习笔记 Event,Condition和Alarm_第5张图片

响应式条件(Acknowledgeable)

    这是一种可实例化的条件类型。能够实例化。而Condition Type是abstract type 它为派生类提供一些有用的功能。但是不能实例化。

响应式条件增加了两个状态:

AckedState 响应状态

响应状态是客户端通过某种逻辑发送给服务器端,也可以当条件成立的现象消逝时,自动的产生(有服务器端处理)。

OPC UA 学习笔记 Event,Condition和Alarm_第6张图片

ConfirmedState 确认状态(可选项)

     确认状态与响应状态有些区别,确认状态是操作员做了一些处理之后,进入确认状态。例如,马达温度高条件出现,操作员可以直接响应。如果采取某些措施之后,例如降低电机的负载,已降低温度,然后发送确认状态。

OPC UA 学习笔记 Event,Condition和Alarm_第7张图片

告警(Alarm)

告警是在响应式条件类型基础上派生出来的。

相比之下,告警条件多了一些属性,状态和方法:

  • 搁置状态 shelving state 
  • 寂寞状态Silence state
  • 停止服务状态 outOfService
  • 抑制状态 suppressed 

OPC UA 学习笔记 Event,Condition和Alarm_第8张图片

上面这些状态,属性和方法有些是可选项。

告警条件(Alarm Condition)

  • 有限告警条件(LimitAlarm)
  • 离散告警条件
    • OffNormalAlarm  不正常条件
  • 差异告警条件(DiscrepancyAlarm Condition)

常用的条件类

  • 响应式条件
  • 有限告警条件
  • 不正常告警条件

事件,条件和Alarm 的触发

        修改Severity的值将会触发事件,条件和告警。但是具体实现是还需要修改一些属性。下面是一个简单的触发程序:

结束语

        在SCADA 和历史数据库中,都具有告警的管理(Alarm/Event Management)。专门有Alarm Viewer,告警的分类,历史存储等组件。OPCUA 的告警的信息模型要根据具体的应用来裁剪,选取和构建。不一定千篇一律。可以灵活应用。

你可能感兴趣的:(学习,笔记)