3. 资源冲突的识别与分类
资源冲突的本质,是同一时间窗内多个生产需求对同一稀缺资源提出了互斥占用。要治理冲突,第一步不是急着排优先级,而是先把冲突"认出来、分对类"。分类错了,后续的优先级判定和消解策略都会跑偏——把工装冲突误判为设备冲突,可能去调设备产能,而真正卡住的是夹具数量不足。
本节给出一套可落地的识别规则:以"资源占用时间窗是否重叠"为客观判据,以"资源类型"为分类维度,再以"影响面、可替代性、时间紧迫度、成本代价"四个参数做优先级判定。
一、识别的基本判据:时间窗重叠 + 独占性
任何资源冲突都可以抽象为:资源 R 在时间窗 [t1, t2] 内被任务 A 占用,任务 B 也要求在 [t1', t2'] 内占用 R,且 [t1, t2] ∩ [t1', t2'] ≠ ∅,同时 R 在该时段内不可被 A、B 同时使用(独占性)。两个条件同时成立,才构成真实冲突;只有时间重叠但资源可共享(如某些公用压缩空气、照明电力),则不构成冲突,只构成负荷叠加。
因此识别规则可写成三步:锁定资源对象 → 提取各任务的占用时间窗 → 判断重叠与独占性。在 MES 中,这三步分别对应资源主数据、工序排程记录、资源占用台账三张数据表。
二、五类资源冲突的识别规则
设备冲突:同一设备编号在同一时间窗被两道及以上工序占用。识别要点是设备编码唯一、工序与设备绑定关系明确。典型信号是排程结果中同一设备出现负的间隔时间。示例:CNC-07 在 08:00–10:30 排了订单 A 的粗加工,又在 09:20–11:00 排了订单 B 的精加工,重叠 70 分钟,即设备冲突。
工装冲突:同一工装/夹具/模具编号被多个任务同时占用。工装常被忽略,因为它不直接产出,但数量往往极少。识别要点是工装与工序的适配关系、工装可用数量、以及换装/预热时间。示例:某注塑模具 M-203 只有 1 套,订单 A 与订单 B 都要求 14:00 前上机,重叠即冲突。
人员冲突:同一技能等级或同一持证人员在同一时间窗被多个工位需求占用。识别要点是人员技能矩阵、持证有效期、以及"一人多机"的看机上限。示例:只有 2 名持证焊工,却有 3 个焊接工位同时开工,第 3 个工位即人员冲突。
物料冲突:同一物料批次/料号在同一时间窗被多个工单争用,且可用量小于需求总量。识别要点是物料可用量、已分配量、在途量与齐套性。示例:料号 P-118 库存 500 件,订单 A 需 300 件、订单 B 需 350 件,合计 650 件超出库存,构成物料冲突。
能源冲突:同一能源介质(电力容量、蒸汽、压缩空气、氮气)在同一时间窗的总需求超过供给上限。识别要点是各设备能耗曲线叠加与能源上限。示例:车间电力容量 800 kW,三台设备同时启动峰值合计 920 kW,超出 120 kW,即能源冲突。
三、优先级判定的四参数与评分方法
识别出冲突后,需要判定"先保谁"。建议用四个参数加权评分,每个参数按 1–5 分打分,加权求和后排序:
- 影响面(权重 0.35):受影响的下游工单数、客户数、是否涉及关键订单。影响面越大分越高。
- 可替代性(权重 0.25):是否存在替代设备、替代工装、替代人员或替代物料。完全不可替代得 5 分,有多个替代得 1 分。
- 时间紧迫度(权重 0.25):交期余量越小分越高。余量小于 4 小时得 5 分,大于 48 小时得 1 分。
- 成本代价(权重 0.15):消解冲突所需额外成本越低,越应优先消解。成本低于 500 元得 5 分,高于 5000 元得 1 分。
综合得分 = 影响面×0.35 + 可替代性×0.25 + 时间紧迫度×0.25 + 成本代价×0.15。得分 ≥ 4.0 判为 P1,2.5–4.0 判为 P2,< 2.5 判为 P3。
示例计算:某设备冲突中,订单 A 影响 3 个下游工单(影响面 4 分),无替代设备(可替代性 5 分),交期余量 6 小时(紧迫度 4 分),加班消解成本约 800 元(成本 4 分)。综合得分 = 4×0.35 + 5×0.25 + 4×0.25 + 4×0.15 = 1.4 + 1.25 + 1.0 + 0.6 = 4.25,判为 P1,应优先保交期。
四、识别规则落地为 MES 检查逻辑
把上述规则写成 MES 可执行的检查逻辑,核心是三条 SQL 式判断:
-- 设备冲突检查(伪代码)
SELECT device_id, COUNT(*) AS overlap_cnt
FROM resource_occupation
WHERE resource_type = 'EQUIPMENT'
GROUP BY device_id, time_window
HAVING overlap_cnt > 1;
-- 物料冲突检查
SELECT material_id,
SUM(required_qty) AS total_req,
available_qty
FROM material_demand
GROUP BY material_id
HAVING total_req > available_qty;
-- 能源冲突检查
SELECT energy_type, SUM(peak_load) AS total_load, capacity
FROM energy_demand
GROUP BY energy_type, time_window
HAVING total_load > capacity;
这三类检查分别对应设备、物料、能源冲突;工装冲突与人员冲突只需把 resource_type 换成 TOOL 或 LABOR,并引入可用数量字段即可。实际部署时,建议把检查频率设为排程触发时 + 每 15 分钟定时扫描,避免冲突在排程后才暴露。
识别要点:先判断"是否独占",再判断"是否重叠"。共享型资源(如车间照明、公用压缩空气)即使时间重叠也不构成冲突,只做负荷叠加统计,避免误报。
常见误判:把"物料未到齐"直接判为物料冲突。若物料在需求时间窗内可到货,则属于齐套性问题,不是冲突;只有可用量在时间窗内确实小于需求总量,才判为物料冲突。