• 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 中,最基本的告警信息是事件。它是一个对象节点,包含了子类型和属性:

    一些重要的属性

    Time(事件发生的时间)

    Severity(严重程度)

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

    Message(通知消息)

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

    条件(Condition)

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

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

    EnableState

    Disable方法

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

    Enable 方法

    允许该条件。

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

    一些重要的属性

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

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

    响应式条件(Acknowledgeable)

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

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

    AckedState 响应状态

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

    ConfirmedState 确认状态(可选项)

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

    告警(Alarm)

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

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

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

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

    告警条件(Alarm Condition)

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

    常用的条件类

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

    事件,条件和Alarm 的触发

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

    结束语

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

  • 相关阅读:
    CProgressCtrl进度条
    Spring AOP 动态代理
    react框架与vue框架的区别
    支持向量机(理解、推导、matlab例子)
    Android 开源一个USB读写demo,从多个USB设备中选择一个实现外设控制的通信
    【LeetCode】接雨水 II [H](堆)
    物联网智能家居系统概述和相关技术
    uniapp条件编辑语法
    CentOS7通过yum安装RabbitMQ3.9.10
    后端工程化 | SpringBoot 知识点
  • 原文地址:https://blog.csdn.net/yaojiawan/article/details/132896264