如何使用Node-RED的IIOT OPCUA节点获取OPC AE报警与事件
Node-RED 下 OPC AE 报警与事件采集实现方案
前置验证确认
你已经完成的基础配置无需调整:IIOT OPCUA 节点与服务端的连接链路正常,且经 OPC Expert 验证 OPC AE 服务端运行正常,可直接按以下步骤操作。
1. 节点版本校验
首先确认你使用的node-red-contrib-iiot-opcua节点版本为v3.10.0 及以上,低版本未完整支持 OPC AE 事件订阅能力,版本不符可先在 Node-RED 节点管理中完成升级。
2. 事件订阅节点配置
- 从节点面板的 IIOT OPCUA 分组中拖出
OPC UA Event节点,与你已配置好的OPC UA Client配置节点绑定,确保端点地址、安全策略、认证信息与此前数据访问的配置完全一致 - 打开节点配置页,在事件筛选器区域勾选需采集的事件类型:
- 基础事件采集勾选
BaseEventType - 报警类采集需额外勾选
AlarmConditionType、AcknowledgeableConditionType,如有细分报警类型采集需求可按需勾选ExclusiveLimitAlarmType、NonExclusiveLimitAlarmType等子类
- 基础事件采集勾选
- 配置事件监听对象的 NodeId:监听全服务器事件填
ns=0;i=2253(服务端根对象 NodeId),仅监听特定节点下的事件则替换为对应对象节点的 NodeId - 可选配置:如需过滤指定严重级别的报警,可在筛选规则中添加
Severity字段阈值,例如仅采集严重等级≥500的报警信息
3. 事件数据解析
- 部署配置后,给
OPC UA Event节点挂载debug节点,设置 debug 输出完整msg对象,触发测试报警后即可在 debug 面板查看完整事件报文 - 常用事件字段提取路径:
- 事件唯一ID:
msg.payload.eventId - 报警触发时间:
msg.payload.time - 报警严重等级:
msg.payload.severity - 报警文本内容:
msg.payload.message.text - 报警来源节点:
msg.payload.sourceName - 报警激活状态:
msg.payload.activeState.id(true为激活中,false为已清除)
- 事件唯一ID:
异常排查方案
- 收不到事件时优先检查安全策略配置,部分老旧 OPC AE 服务器需将安全策略设为
None才能正常订阅事件 - 确认监听的 NodeId 为对象节点 ID,变量节点不支持事件订阅
- 核实服务端对应账号是否开通了事件访问权限,部分 OPC 服务器会对事件查看做单独权限管控
内容的提问来源于stack exchange,提问作者HARISH REDDY
相关产品推荐
相关产品推荐

