3. 车间现场对象建模
MES 工单与设备状态联动的第一步,不是写接口,而是把车间现场"翻译"成一套可被系统识别、可被工单引用的对象模型。如果对象模型建得含糊,后面所有联动逻辑都会变成"猜":工单到底占用哪台设备、设备停机时哪些工单受影响、人员换班后责任归属谁,都说不清楚。本节围绕对象层级、对象关系、工单与设备的关联结构三件事展开,并给出一份可直接参考的建模样例。
一、对象层级:从物理位置到可执行单元
车间对象建模通常分两层理解:物理位置层和执行单元层。物理位置层描述"东西在哪里",执行单元层描述"活在哪里干"。
物理位置层一般是:车间 → 产线 → 工位。产线是物流与节拍的载体,工位是人员、设备、物料的汇聚点。执行单元层则是:工序 → 设备 → 工装/模具。工序是工艺路线上的一道加工步骤,设备是完成该工序的物理资源,工装/模具是设备上可更换的适配件。
两层之间通过"工位—设备"绑定关系连接:一个工位可以安装一台或多台设备,一台设备也可以在不同时段服务于不同工位(例如移动式检测仪)。因此,工位与设备之间是多对多关系,且带时间有效性。这一点在建模时最容易被忽略,却直接决定工单派工时能否正确解析出"当前可用设备"。
物料与人员则作为"资源"挂接到执行单元上:物料按批次(Lot)或序列号(SN)绑定到工单,人员按班组(Shift)和技能资质(Skill)绑定到工位。人员不是简单挂在产线上,而是挂在"工位—班次"这个组合上,因为同一工位不同班次可能是不同的人。
二、对象关系:谁引用谁,谁约束谁
对象之间不是简单的树,而是"树 + 交叉引用"的混合结构。核心关系可以归纳为四类:
- 归属关系:产线归属车间,工位归属产线,设备归属产线(或设备组),这是层级树。
- 绑定关系:工位绑定设备、工位绑定人员、工位绑定物料暂存区,这是带时间窗的多对多关系。
- 工艺关系:工序定义在工艺路线上,工序指定设备类型或具体设备,工单按工艺路线展开为工序任务。
- 执行关系:工单任务引用工序、工位、设备、物料批次、人员,形成一条可追溯的执行记录。
其中最关键的是工艺关系与执行关系的衔接。工艺路线上的工序通常只指定"设备类型"(如"注塑机 80T~120T"),而工单派工时必须落到"具体设备"(如"注塑机 #3")。这个从类型到实例的解析过程,就是工单与设备关联的核心动作。
三、工单与设备关联的数据结构设计
工单与设备的关系不能只用一个 equipment_id 字段草草了事,因为实际生产中会出现:一台设备同时被多个工单争用、工单执行中途换设备、设备维修期间工单挂起、同一工单多道工序使用不同设备。建议采用"工单—工序任务—设备占用"三层结构:
WorkOrder(工单)
wo_id, product_code, qty, route_id, status, plan_start, plan_end
WoOperation(工单工序任务)
wo_op_id, wo_id, seq_no, operation_id, required_equip_type,
assigned_equip_id, assigned_station_id, status, actual_start, actual_end
EquipOccupation(设备占用记录)
occ_id, wo_op_id, equip_id, occupy_start, occupy_end,
occupy_type(计划/实际), release_reason
这样设计的好处是:工单不直接持有设备,而是通过工序任务间接引用设备。当设备状态变化时,系统只需扫描 EquipOccupation 中 occupy_end IS NULL 的记录,就能立刻定位到受影响的工单工序任务,进而决定是挂起、改派还是报警。这正是"工单与设备状态联动"的数据基础。
下面这张图展示了对象层级、对象关系以及工单—设备关联结构的整体视图。图中左侧是物理位置层与执行单元层,右侧是工单侧的数据结构,中间通过"工序任务—设备占用"这条链路连接。
四、建模落地时的三个关键判断
第一,设备类型与设备实例要分开建。工艺路线引用的是设备类型(如"CNC-3轴"),工单派工解析的是设备实例(如"CNC-07")。如果只建实例不建类型,工艺路线就无法复用;如果只建类型不建实例,工单就无法精确占用。两者都要有,且通过 equip_type_id 关联。
第二,占用记录必须区分计划占用与实际占用。计划占用来自排产,实际占用来自开工/完工报工。设备状态联动时,通常以实际占用为准判断"当前是否真的在用",以计划占用为准判断"未来是否会冲突"。字段 occupy_type 就是为此设计的。
第三,释放原因要可追溯。设备占用结束不一定是正常完工,可能是换设备、工单取消、设备故障强制释放。release_reason 记录这些原因后,后续做设备利用率分析、工单延误归因时才有数据支撑。