课程 B1 ·构建

事件、报警与历史

值告诉你此刻正在发生什么;事件和历史告诉你发生过什么以及为什么。本课程涵盖 Part 9 的报警层次、只返回所需内容的事件过滤器、作为机器可读原因代码的条件类,以及服务器端聚合。

课时10
时间约 72 分钟
先修要求A4
成本免费:文字课程开放,视频和实验需要免费账号

学完你将能够做到

  • 你能够用自己编写的 select 和 where 子句订阅事件。
  • 你能够把 ConditionClassId 用作可移植的停机原因代码。
  • 你能读取历史而不会拉取超出需要的数据。
  • 你能够向服务器请求时间加权平均值,而不是在下游自己计算。

课程大纲

  1. 1
    订阅事件,而不是值

    事件通知器、事件类型层次,以及为什么停机原因应当以带时间戳的事件形式到达,而不是从一个采样得到的布尔量推断出来。

    资料 一个从 Milo 演示服务器打印真实事件的事件订阅

    8 分钟
  2. 2
    编写一个 select 子句

    选择你需要的字段:Time、SourceNode、Severity、Message、ConditionClassId。默认选择很少是你真正需要的。

    Asset 同样的事件分别使用默认和手写的 select 子句,两种输出都展示

    8 分钟
  3. 3
    编写 where 子句

    在服务器端过滤,让噪声根本不会到达你这里。操作符、操作数,以及格式错误的过滤器会产生哪些错误。

    交付物 三个 where 子句,其中一个失败,并附它返回的状态码

    8 分钟
  4. 4
    在 Part 9 的层次结构中导航

    从 BaseEventType 往下到 ConditionType、AcknowledgeableConditionType 和 AlarmConditionType。condition 是什么而 event 不是什么。

    Asset 从一台在线服务器浏览到的事件类型树,以及每一层继承的字段

    7 分钟
  5. 5
    处理确认与证实

    两阶段报警处理、谁被允许执行,以及状态机在这中间的行为。

    资料 一条报警在 OPC UA 上被 Acknowledge 和 Confirm,并记录其状态迁移

    6 分钟
  6. 6
    重连之后刷新 condition

    ConditionRefresh,以及为什么不执行它就重连的客户端会以为工厂一切正常。

    资料 带 ConditionRefresh 与不带 ConditionRefresh 的重连对比,展示被漏掉的活动报警

    6 分钟
  7. 7
    用 ConditionClassId 作为原因代码

    使停机原因能够在机器和厂商之间通用的机制,以及 MachineTool 的条件类如何接入其中。

    交付物 一张把 MachineTool 状态类映射到停机原因分类体系的表格

    7 分钟
  8. 8
    读取原始历史数据

    HistoryReadRawModified、边界值、continuation point,以及历史数据中的缺口意味着什么。

    资料 一次跨越数据缺口的原始历史读取,附返回的边界值

    7 分钟
  9. 9
    改为请求聚合结果

    在服务器端计算的 TimeAverage、DurationGood、PercentGood 和 Count。比把原始数据流出去再在下游聚合便宜得多。

    Asset 同一个班次分别用服务器端聚合和客户端计算做汇总,并附带两者的开销

    8 分钟
  10. 10
    确认服务器能否做到这些

    HistoricalRawData2022 和 AggregateHistorical2022 facet,以及如何在围绕它们做设计之前先查清楚。

    Asset 来自三台服务器的 ServerProfileArray,展示各自声称支持哪些历史 facet

    7 分钟

实验

需要免费账户

在 opc.tcp://milo.digitalpetri.com:62541/milo 上订阅事件,用 where 子句只返回 severity 大于 500 的事件,然后读取某个节点一小时的历史,并请服务器给出其时间加权平均值。

解锁实验 →

最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。

免费下载
OPC UA 服务器验收测试包
一份 40 项检查的验收测试,在投运签收前对厂商的服务器执行。带加权评分、三个硬性门槛,以及供供应商会议使用的一页结论。
获取免费测试包 →
免费,无需课程,无需登录