2. 瓶颈设备排程的数据建模

瓶颈设备排程的准确性,几乎完全取决于底层数据模型是否真实。APS 排程引擎本身只是计算器,它不会凭空知道某台瓶颈机在周三下午要停机保养,也不会知道换型从白色料切换到黑色料需要 90 分钟。因此本章要解决的核心问题是:把车间里分散在 ERP、MES、Excel、设备台账和班组长脑子里的信息,翻译成排程引擎能直接消费的结构化数据。我们围绕六类数据展开:设备日历与班次、工单与工艺路线、换型与准备时间、物料可用性、人员技能,以及数据采集与清洗。

设备日历与班次模型:把“可用时间”切成可排的槽

设备日历不是一张简单的“上班/下班”表,而是由班次模板、日历例外、设备状态三层叠加而成。班次模板定义常规节奏,例如三班制:早班 08:00–16:00、中班 16:00–24:00、夜班 00:00–08:00,每班含 30 分钟用餐停机。日历例外覆盖模板,包括法定假日、计划保养、临时停机。设备状态则区分“可运行”“降速运行”“不可用”。

建模时建议把时间统一为“相对排程起点的分钟数”,避免跨天、跨时区带来的歧义。一个可用的班次记录至少包含:设备编号、班次日期、班次开始分钟、班次结束分钟、可用产能系数、停机原因码。例如某注塑机在 3 月 12 日夜班因模具保养,可用产能系数记为 0,原因码 PM-MOLD。排程引擎读取后,该时段自动不参与分配。

可用产能系数是 0~1 的乘数,用于表达“设备在转但速度打折”的情况,例如老化设备按 0.85 计。它比直接删掉时段更贴近现实。

工单与工艺路线数据结构

工单是排程的需求侧,工艺路线是约束侧。工单主数据通常来自 ERP,关键字段包括:工单号、物料编码、需求数量、交期、优先级、状态。工艺路线则描述“这道工序在哪台设备、用多长时间、需要什么资源”。

对瓶颈排程而言,最关键的字段是瓶颈工序标识和单位加工时间。单位加工时间应区分“每件时间”和“每批固定时间”,因为瓶颈设备的排程精度往往取决于这两者是否分开。例如某热处理工序:每炉固定装炉时间 20 分钟,每件保温时间 0.5 分钟,一炉装 200 件,则单炉占用 = 20 + 0.5×200 = 120 分钟。若把固定时间摊进单件,换批量时就会算错。

工单: WO-20240312-007
物料: HS-8842  数量: 1200  交期: 2024-03-15 18:00
路线:
  10 下料  设备: CUT-01   单件 0.8 min
  20 热处理 设备: HT-02(瓶颈) 固定 20 min + 单件 0.5 min, 批量 200
  30 精磨  设备: GRD-03   单件 1.2 min

换型时间与准备时间建模

换型时间是瓶颈排程中最容易被低估、却最影响结果的因素。它不能用一个固定值表示,而应建模为与前后物料相关的矩阵。常见做法是建立“从物料族 A 切换到物料族 B”的换型时间表,再叠加“同族内切换”的较小值。

准备时间则分为两类:与工单无关的“开机准备”(如预热、首件确认),以及与工单相关的“清线准备”(如清洗料筒、更换夹具)。建模时建议把换型时间挂在“设备—前序物料族—后序物料族”三元组上,准备时间挂在“设备—工单”上。这样排程引擎在排序时才能自动选择换型最小的顺序。

前序族后序族换型时间(min)说明
白色料黑色料90需彻底清机
黑色料白色料120清机更严格
白色料白色料15同族微调

物料可用性约束

瓶颈设备即使有空,物料没到也不能开工。物料可用性建模要回答两个问题:什么时候可用、可用多少。前者来自采购到货计划、前道工序完工时间;后者来自库存与在途量。排程时通常把物料可用时间表达为“某物料在某时刻之后的可用数量”,形成一条阶梯函数。

例如物料 RM-552 当前库存 300 件,3 月 13 日 10:00 到货 800 件,则可用曲线为:起点至 13 日 10:00 可用 300,之后可用 1100。瓶颈工序若在 13 日 09:00 开工且需 500 件,就必须等到 10:00 之后。这个约束必须与设备日历联合判断,否则会排出“设备空转等料”或“有料无设备”的假计划。

人员技能约束

瓶颈设备往往需要特定技能的操作员,例如热处理需持证上岗、精密磨削需高级技工。人员约束建模包含:人员编号、可操作设备清单、技能等级、班次可用性。排程时把“设备—班次—人员”三者做匹配,若某班次无合格人员,则该设备时段实际不可用。

一个实用做法是把人员技能折算为“设备可用产能系数”的修正项:有合格人员时系数为 1,仅有学徒时系数为 0.6,无人时为 0。这样无需改动排程算法,就能把人员约束并入设备日历。

数据采集与清洗方法

数据质量决定排程可信度。采集来源通常包括:ERP 工单与物料、MES 报工与设备状态、设备 PLC 的停机信号、以及手工台账。清洗的重点是时间对齐、单位统一、异常剔除。

常见问题与处理:换型时间记录为 0(实际未采集),应标记为缺失而非真实值;同一工单在 ERP 与 MES 数量不一致,应以 MES 实际报工为准并记录差异;设备状态信号抖动(如 1 分钟内多次切换),应做去抖处理,取持续超过 5 分钟的状态为有效状态。清洗后的数据应保留原始值与修正值两列,便于追溯。

瓶颈设备排程数据模型:六类输入汇聚到排程引擎 设备日历与班次 班次模板·例外·产能系数 工单与工艺路线 瓶颈工序·固定/单件时间 换型与准备时间 物料族矩阵·清线准备 物料可用性 到货时间·可用数量阶梯 人员技能 持证·等级·班次匹配 数据采集与清洗 时间对齐 单位统一 异常剔除 缺失标记 去抖处理 原始/修正双列 保留追溯链 瓶颈排程引擎 有限产能约束求解 设备·物料·人员 换型顺序优化 排程结果 设备工序序列 开工/完工时间 换型点标记 交期达成判断 示例:HT-02 热处理炉 · 3月12日夜班 班次 00:00–08:00(480 min)|保养停机 120 min|可用 360 min|换型 白→黑 90 min|实际可排 270 min 物料 RM-552 于 10:00 到货 → 该夜班仅能排前 300 件,剩余顺延至中班

把上述六类数据整合后,排程引擎才能输出可信的工序序列。图中示例展示了数据如何汇聚:设备日历给出可用时间窗,工单与路线给出需求,换型矩阵决定顺序成本,物料可用性限制开工时点,人员技能修正实际产能,清洗层保证输入一致。缺少任何一类,排程结果都会在车间执行时被打回。

常见误区:把换型时间设为全局固定值。这会导致排程引擎无法优化顺序,实际换型次数可能比计划多出 30% 以上。务必按物料族建立矩阵。

最后强调一个工程习惯:所有时间字段都保留“来源系统 + 采集时间戳 + 修正标记”。当排程结果与车间实际不符时,能快速定位是数据错误还是算法假设错误。数据建模不是一次性工作,而是随设备、物料、人员变化持续维护的基础设施。