4. 联动工程核心模型

设备异常与维修工单的联动,本质上不是“把报警推给维修”,而是让四类模型在同一套语义下协同工作:异常事件模型负责把设备侧发生的异常描述清楚,工单模型负责把维修任务描述清楚,关联关系模型负责把两者绑定并记录因果与追溯路径,联动规则引擎负责在什么条件下、以什么方式、把哪个事件变成哪张工单。四者缺一,联动就会退化为“消息转发”。

一、异常事件模型:把“发生了什么”结构化

异常事件模型的核心是让一条事件具备可判定、可去重、可升级、可追溯的能力。建议至少包含以下字段:事件标识(event_id)、设备标识(asset_id)、测点或部件(point_code)、事件类型(event_type,如超温、振动越限、通信中断、工艺参数漂移)、严重等级(severity:提示/警告/严重/紧急)、发生时间(occur_time)、恢复时间(recover_time)、持续时长(duration)、触发值(trigger_value)、阈值(threshold)、数据质量码(quality)、事件状态(state:活动/已恢复/已确认/已关闭)、来源系统(source,如SCADA、振动监测、点检APP)。

其中两个字段最容易被忽略却最关键:数据质量码和事件状态。质量码为“可疑/无效”时,事件不应直接触发紧急工单,而应先进入待确认队列;事件状态则决定联动引擎是否允许重复触发。例如同一测点5分钟内重复上报超温,应通过“设备+测点+事件类型”做去重窗口,避免一次真实故障生成十几张工单。

二、工单模型:把“要做什么”结构化

工单模型需要承载任务、资源、时间与结果四类信息。典型字段包括:工单号(wo_id)、工单类型(抢修/计划检修/点检复核/隐患整改)、关联事件(event_id,可空)、设备标识、故障现象描述、优先级(P1~P4)、要求响应时间、要求完工时间、指派班组/责任人、所需备件、安全措施、实际开始/结束时间、处理措施、更换备件、停机时长、验收结论、关闭状态。

工单类型与优先级的映射必须与事件严重等级解耦又关联:事件等级决定“建议优先级”,工单类型决定“流程路径”。例如“严重”事件默认生成P2抢修工单,但若该设备属于单点关键设备(无冗余),规则可将其提升为P1;若同类事件在24小时内已存在未关闭工单,则不再新建,而是追加到已有工单的关联事件列表。

三、关联关系模型:让事件与工单可追溯

关联关系模型解决“谁由谁触发、谁合并了谁、谁验证了谁”。建议采用显式关联表,而不是只在工单里存一个event_id。关联表字段可设计为:relation_id、source_type(event/workorder)、source_id、target_type、target_id、relation_type(触发/合并/根因/复检/衍生)、创建时间、创建方式(规则自动/人工)、置信度(可选)。

这样设计后,可以支持三类典型查询:正向追溯——某条超温事件最终产生了哪些工单、是否关闭;反向追溯——某张抢修工单是由哪些事件聚合而来;根因分析——同一设备一段时间内多个事件是否指向同一部件。关联关系模型是后续做故障树、重复故障统计和知识沉淀的数据基础。

四、联动规则引擎:把四类模型串起来

规则引擎的职责是“条件判断+动作执行”。条件侧读取异常事件模型字段与设备静态属性(关键等级、冗余情况、维保状态),动作侧操作工单模型与关联关系模型。规则建议采用“规则集+优先级+互斥”的结构,避免多条规则同时命中导致重复建单。

下面给出一组可直接参考的规则示例(参数为教学示例,实际需按现场标定):

规则 R-01 超温抢修
WHEN event_type = "TEMP_HIGH"
 AND severity IN ("严重","紧急")
 AND quality = "有效"
 AND duration >= 60s
THEN 创建工单(type="抢修", priority=P2)
     建立关联(relation_type="触发")
     若 asset.critical = true 则 priority 提升为 P1

规则 R-02 重复事件合并
WHEN 已存在未关闭工单 且 同 asset_id + point_code
 AND 新事件 severity <= 已有工单关联事件最高等级
THEN 不新建工单
     追加关联(relation_type="合并")

规则 R-03 通信中断降级
WHEN event_type = "COMM_LOSS"
 AND duration >= 300s
THEN 创建工单(type="点检复核", priority=P3)
     备注"先确认现场仪表与链路,再判定设备本体"

规则执行顺序建议为:去重与合并 → 质量校验 → 等级提升 → 建单或追加 → 写关联 → 通知。通知动作应作为规则动作的一部分,而不是独立系统,否则容易出现“工单建了但没人收到”的断点。

异常事件—工单联动核心模型与规则引擎 异常事件模型 event_id / asset_id point_code / event_type severity / quality occur_time / duration trigger_value / threshold state:活动/恢复/关闭 工单模型 wo_id / wo_type priority P1~P4 assignee / team response / due_time spare_parts / safety result / close_state 联动规则引擎 ① 去重 / 合并窗口 ② 数据质量校验 ③ 关键设备等级提升 ④ 建单 / 追加关联 ⑤ 写关联关系表 ⑥ 通知责任人 / 班组 关联关系模型 relation_id / source_id target_id / relation_type 触发 / 合并 / 根因 / 复检 创建方式:规则自动 / 人工 支持正向与反向追溯 事件流 建单 写关联 追溯事件 追溯工单 示例:TEMP_HIGH + 严重 + 有效 + 持续≥60s → 建抢修工单P2;关键设备提升P1;同测点已有未关闭工单则合并追加。

五、落地时的三个关键判断

第一,事件与工单不是一对一。 一次设备故障可能产生多条事件(温度、振动、电流同时越限),规则引擎应支持“事件聚合建单”,把同一设备、同一时间窗内的事件合并到一张工单,并在关联表中保留每条事件的触发关系。否则维修人员会收到多张内容重复的工单。

第二,规则必须可解释。 每条自动建单都应在工单上记录“由哪条规则、基于哪条事件、在什么时间触发”。当现场质疑“为什么这张单是P1”时,能直接回溯到规则编号和事件字段,而不是靠人工回忆。

第三,模型要允许人工干预。 规则引擎自动建单后,允许调度人员调整优先级、合并工单、补充关联事件,但所有人工修改应写入关联关系表或审计字段。这样既保留自动化效率,又不丢失责任链。

设计检查点:异常事件模型是否包含质量码与状态?工单模型是否区分类型与优先级?关联关系是否独立成表并支持正反向追溯?规则引擎是否有去重、合并、等级提升和通知动作?四项都具备,联动才算闭环。

把四类模型分开设计、通过规则引擎连接,最大的好处是变更可控:设备侧新增测点只改事件模型,维修流程调整只改工单模型,联动策略变化只改规则,而关联关系始终作为追溯底座保留。这样,异常与工单的联动才能从“能推消息”走向“可运营、可分析、可优化”。