2. 排产对象建模
排产系统能否给出可执行的计划,首先取决于它是否“认识”车间里的真实对象。排产对象建模的任务,就是把车间中的人、机、料、法、环抽象成计算机可以计算、可以约束、可以追踪的数据实体,并建立它们之间的引用关系。建模不准确,后续的约束求解、优先级排序、瓶颈识别都会建立在错误前提上。
一、六类核心实体的抽象方式
在多设备多工序场景中,最基础的实体可以归纳为六类:工件、工序、设备、模具、人员、班次。它们不是孤立的表,而是通过外键和约束相互引用。
- 工件(Item):排产的最小交付单元。关键属性包括工件编码、所属产品型号、当前工序号、数量、交期、优先级、状态(待加工/在制/完工)。工件通常按批次管理,同一批次内数量相同、工艺路线一致。
- 工序(Operation):工件在某一工位上的加工步骤。关键属性包括工序号、工序名称、所属工艺路线、标准工时、准备工时、可选设备组、所需模具类型、所需技能等级。工序是排产调度的基本粒度。
- 设备(Machine):执行工序的物理资源。关键属性包括设备编号、设备类型、所属车间、可用日历、额定产能、当前状态(运行/待机/维修)。设备与工序通过“设备组—工序”的多对多关系关联。
- 模具(Mold/Tool):与设备配合使用的工装。关键属性包括模具编号、适配设备类型、适配产品型号、当前所在设备、可用状态、寿命剩余次数。模具是典型的“共享资源”,同一模具可能被多台设备争用。
- 人员(Operator):操作设备或执行工序的工人。关键属性包括工号、技能等级、可操作设备组、所属班组、可用班次。人员约束在劳动密集型工序中往往是瓶颈。
- 班次(Shift):定义可用工作时间窗口。关键属性包括班次编号、开始时间、结束时间、所属工作日、适用设备组或班组。班次决定了设备与人员的可用时间边界。
这六类实体之间的关系可以用一张结构图清晰表达。下图展示了工件、工序、设备、模具、人员、班次之间的引用与约束关系,其中“工序”是连接工件与资源的枢纽节点。
二、工艺路线与BOM的映射方法
工艺路线描述“怎么做”,BOM描述“用什么做”,两者必须映射到同一套工件与工序实体上,排产才有完整的输入。映射的核心思路是:BOM决定工件的父子关系与数量,工艺路线决定每个工件的工序序列与资源需求,两者通过“工件编码+工序号”作为联合主键进行关联。
具体映射过程分三步。第一步,从BOM展开得到所有需要排产的工件清单。例如产品P-100由子件A(用量2)和子件B(用量1)组成,则一个P-100批次会生成2个A工件和1个B工件,以及1个P-100总装工件。第二步,为每个工件绑定其工艺路线。总装工件走总装路线,子件A走机加工路线,子件B走注塑路线。第三步,将工艺路线中的每道工序展开为工序实例,并挂接设备组、模具类型、技能要求等资源约束。
映射时最容易出错的地方是工序号与BOM层级的对应关系。如果BOM中子件需要先加工再装配,那么子件工序的完成时间必须早于父件对应装配工序的开始时间。这个前后置约束必须在建模阶段显式记录,通常用“工序依赖表”表达:字段包括前序工件编码、前序工序号、后序工件编码、后序工序号、最小间隔时间。排产求解器读取这张表后,才能正确安排子件与父件的加工顺序。
三、实体建模的粒度选择
建模粒度直接影响排产的计算规模与计划精度。粒度过粗,计划不可执行;粒度过细,求解时间爆炸。实践中常用的折中方案是:工件按批次建模,工序按工步合并,设备按机台建模,模具按类型+编号建模,人员按技能组建模,班次按工作日+班次号建模。
以一个注塑车间为例。某工件批次数量为500件,注塑工序标准工时为0.8分钟/件,准备工时为30分钟,则单批占用设备时间为500×0.8+30=430分钟。如果该设备一个班次可用时间为480分钟,那么这批工件在一个班次内可以完成。但如果模具需要切换,且切换时间为45分钟,则实际占用变为475分钟,接近班次上限,排产时就必须考虑是否跨班或调整顺序。这个例子说明,准备工时、切换时间、班次可用时间这三个参数必须准确建模,否则排产结果会过于乐观。
人员建模同样需要粒度控制。如果每道工序都绑定具体工号,排产会变成人员排班问题,复杂度大幅上升。更实用的做法是按“技能组”建模:将可操作同一设备组的工人归为一个技能组,排产时只约束技能组的人数上限,具体派工由车间班组长在计划执行时完成。这样既保证了人员约束不被忽略,又避免了排产求解器陷入人员组合爆炸。
四、班次与日历的建模细节
班次不是简单的时间段,它需要与设备日历、人员日历、工厂日历三层叠加。设备日历定义设备可运行的时间窗口,人员日历定义技能组可出勤的时间窗口,工厂日历定义全厂停线时间(如检修、节假日)。排产时,某道工序的可用时间窗口是三者交集。
例如,设备M-01的可用日历为周一至周六两班制(08:00-16:00,16:00-24:00),技能组G-03的可用日历为周一至周五两班制,工厂日历定义周日全厂停线。那么M-01在周六的16:00-24:00班次虽然设备可用,但人员技能组不可用,该时段不能安排需要G-03的工序。如果建模时只考虑设备日历,排产结果就会出现“有设备无人”的不可执行计划。
五、建模成果的交付形式
完成上述抽象后,排产对象模型通常以一组关联表的形式交付。核心表包括:工件表、工序表、设备表、模具表、人员技能组表、班次表、工艺路线表、BOM表、工序依赖表。每张表的主键与外键关系必须清晰,且所有时间参数统一使用分钟或秒作为单位,避免单位混用导致的计算错误。
在验证模型是否可用时,可以选取一个真实工件批次,手工推演其从投料到完工的完整路径:BOM展开得到哪些子件、每个子件走哪条工艺路线、每道工序占用哪台设备、是否需要模具、需要什么技能组、落在哪个班次窗口内。如果手工推演能走通,且每一步都能在模型表中找到对应记录,说明建模已经具备排产求解的基础条件。