2. 工单与设备状态核心概念
在MES系统中,工单与设备状态联动的一切逻辑,都建立在五个基础概念之上:工单生命周期、设备状态模型、状态机、联动触发条件、事件与消息。这五个概念不是并列关系,而是层层递进——工单生命周期定义了"要做什么",设备状态模型定义了"设备现在能做什么",状态机定义了"设备如何合法地改变状态",联动触发条件定义了"什么时候把两者关联起来",事件与消息则定义了"关联之后如何传递和响应"。理解这五者的边界与衔接,是后续所有联动配置的前提。
工单生命周期:从创建到关闭的状态轨迹
工单生命周期描述一张工单从产生到终结所经历的全部状态。在典型的离散制造MES中,工单状态通常包括:已创建(Created)、已下达(Released)、已派工(Dispatched)、生产中(InProcess)、已暂停(Paused)、已完工(Completed)、已关闭(Closed),异常情况下还会进入已取消(Cancelled)。这些状态之间并非任意跳转,而是有明确的合法迁移路径。例如,工单不能从"已创建"直接跳到"生产中",必须先经过"已下达"和"已派工";"已完工"之后才能"已关闭",且关闭前通常需要完成报工数量核对与质量确认。
工单生命周期中有一个容易被忽视的关键点:工单状态与工单在设备上的执行状态是两个不同维度。一张工单可能处于"生产中"状态,但它当前并未在任何设备上实际加工——比如操作工已领料但尚未上机。因此,工单生命周期管理的是"工单本身的业务进度",而不是"工单与设备的物理绑定关系"。这个区分直接决定了后续联动逻辑的设计方式。
设备状态模型:设备"能做什么"的抽象
设备状态模型是对设备当前可用性与运行状况的抽象描述。在MES与设备联动场景中,常用的设备状态包括:空闲(Idle)、运行(Running)、待料(Starved)、阻塞(Blocked)、故障(Fault)、停机(Down)、维护(Maintenance)、离线(Offline)。这些状态中,空闲、运行、待料、阻塞属于"设备在线且可被调度"的范畴;故障、停机、维护、离线则属于"设备不可用或不可调度"的范畴。
设备状态模型的核心价值在于:它告诉MES"这台设备现在能不能接活"。当一张工单需要派工到某台设备时,MES首先检查该设备是否处于可调度状态。如果设备处于故障或维护状态,即使工单已下达,也不能派工到该设备。这就是工单与设备状态联动的第一层逻辑——设备可用性过滤。
状态机:状态迁移的规则引擎
状态机是描述状态之间合法迁移路径的数学模型。在MES中,工单状态机和设备状态机是两套独立但需要协同的状态机。工单状态机管理工单的业务流转,设备状态机管理设备的物理运行状态。两者的协同点在于:工单在设备上的执行过程,会同时驱动工单状态和设备状态的变化。
以"工单开始加工"为例:操作工在MES中点击"开始"按钮,系统需要同时完成两个状态迁移——工单从"已派工"迁移到"生产中",设备从"空闲"迁移到"运行"。这两个迁移必须原子性地完成,否则会出现"工单已开始但设备未运行"或"设备已运行但工单未开始"的数据不一致。状态机的价值就在于:它预先定义了哪些迁移是合法的,哪些是非法的,从而防止系统进入不一致状态。
联动触发条件:什么时候把工单和设备关联起来
联动触发条件是工单与设备状态联动的"开关"。它定义了在什么条件下,系统应该执行工单状态与设备状态的协同变更。常见的联动触发条件包括:
- 设备状态变化触发工单变更:设备从"运行"变为"故障",触发当前在制工单从"生产中"变为"已暂停"。
- 工单状态变化触发设备变更:工单从"已派工"变为"生产中",触发设备从"空闲"变为"运行"。
- 外部事件触发联动:操作工扫码上料,触发工单与设备的绑定关系建立。
- 时间条件触发联动:设备连续待料超过设定阈值(如15分钟),触发工单暂停并通知调度员。
联动触发条件的配置需要明确三个要素:触发源(谁触发的)、触发条件(满足什么条件才触发)、联动动作(触发后执行什么操作)。这三个要素缺一不可,否则联动逻辑无法落地。
事件与消息:联动逻辑的传递载体
事件与消息是联动逻辑的"神经系统"。事件是"发生了什么"的客观记录,消息是"通知谁去做什么"的传递载体。在MES中,设备状态变化会产生一个设备状态事件,工单状态变化会产生一个工单状态事件。这些事件被发布到消息总线后,由联动规则引擎订阅并处理。
事件与消息的关键区别在于:事件是过去时,消息是将来时。事件描述已经发生的事实(如"设备A于10:23:15从运行变为故障"),消息描述需要执行的动作(如"请将工单WO-2024-001从生产中改为已暂停")。联动规则引擎的工作就是:监听事件,匹配触发条件,生成消息,驱动状态迁移。
上图展示了五个核心概念之间的层次关系:工单生命周期和设备状态模型是两个独立的输入维度,联动触发条件负责在两者之间建立关联,事件与消息负责将关联结果传递到执行层。在实际MES配置中,这五个概念分别对应不同的配置对象——工单状态表、设备状态表、状态迁移规则表、联动规则表、事件订阅表。理解它们之间的边界与衔接,才能正确设计联动逻辑,避免出现"状态不一致"或"联动不触发"的典型问题。