PMC生产排产的4种算法,一次讲清

做PMC的人对一种场景应该不陌生:

  • 车间主任站在产线边上喊"工单排不过来"
  • 销售追着问"能不能提前交"
  • 仓库抱怨"原料堆了一地"
  • 而PMC主管盯着Excel里一百多行的排程表,每个格子都要手动改...

排产这件事,小批量、少产品的时候靠经验还能对付。

当产线上同时跑的料号超过几十个、每张工单的交期和要求都不一样、设备和产线还共用,靠人脑加Excel堆,出来的排程最大的问题只有一个:不靠谱。

一个插单进来,之前排了三天的计划全部乱掉。

排产的底层逻辑其实就是算法。

不管你是用Excel手工排、用ERP系统排、还是上了APS高级排程系统,背后支撑排产计算的始终是几套标准算法。

今天我们就来把这4种算法讲清楚,每一套算法适合什么场景、算出来的结果意味着什么、PMC做排产时怎么组合使用。

一、4种核心排产算法一次性拆开将

1、正向排程法

正向排程的逻辑很简单:从今天开始,按工序顺序往后排,能早开工就早开工,做完一件接下一件。举个例子。假设今天是7月3号,车间有一条线,今天下午2点开始空闲。现在有3张工单等着排:

  • 工单A,需要加工4小时,8月1号交
  • 工单B,需要加工8小时,7月6号交
  • 工单C,需要加工12小时,7月10号交

正向排程的排法是:A排今天下午2点到6点,B排明天上午8点到下午4点,C排后天上午8点到晚上8点。排完的结果是A在7月3号完工、B在7月4号完工、C在7月5号完工。三张工单都没超交期,操作也直观。

正向排程的适用场景是:

1、产能不紧张的时候。空闲资源多,排出去就行,不需要纠结。

2、希望尽量提高设备利用率的场景。机器不等人,工单往前赶,避免产线闲置。

3、简单流程,单工序或少工序。没有复杂的工序依赖关系,不用担心前道没做完后道排不上。

但正向排程在产能紧张的时候会很被动。因为它是从今天往后推,不关心交期的紧迫程度。一张8月交货的单子和一张明天交货的单子,如果同时到了排程节点,正排法可能先排先到的那张,而不是最急的那张。这时候就轮到倒排法上场了。

2、倒排法

倒排法的逻辑反过来了:从交期那天往回推,算每一道工序必须最晚什么时候开工,才能在交期前完成。

还是刚才那三张工单。倒排法的排法是:工单B交期7月6号,倒推8小时,最晚7月6号早上8点必须开工。工单C交期7月10号,倒推12小时,最晚7月9号下午2点开工。工单A交期8月1号,倒推4小时,最晚8月1号上午10点开工。排完你会发现:三张都不用急,都可以放在后面再排。空闲出来的这段时间,可以接插单、可以做备料、可以做设备保养。

倒排法的适用场景是:

1、按订单生产,交期卡得死。客户给了一个日期,你就从这个日期倒着算,算出来最晚哪天必须投料。

2、产能紧张、资源争抢激烈。倒排可以识别出哪些工单有缓冲、哪些已经到了"不排就要延期"的临界点,把真正紧张的订单优先处理。

3、多工序场景。一张工单经过五道工序,每道都有不同的加工时间和等待时间,倒排法一层一层往回推,能算出每道工序的"最晚开工日"。工序越多越长,倒排法的价值越大。

倒排法有一个天然的弱点:如果交期给得太紧,倒推回去发现"最晚开工日"在过去,这意味着这张单子已经迟了,必须加班或者调整交期。倒排法没算错,问题出在交期本身不现实。算法只是把问题暴露出来而已。

3、优先级规则法

前面两种算法解决的是"排在哪"的问题,但很多时候PMC要面对的是"先排谁"的问题。工单A、B、C同时等着上同一条线,先排谁?这时候优先级规则算法就出场了。

业界最常用的有四种优先级规则:

1、最短加工时间优先(SPT)。加工时间最短的先排。效果是让整个车间的平均完工时间最短,在制品库存最低。代价是长加工时间的工单容易一直被往后推,导致交期延迟。

2、最早交期优先(EDD)。交货期最早的最先排。效果是降低总体延期率,对交期敏感的客户最友好。代价是可能牺牲了设备利用率,因为不关心切换时间。

3、关键比例法(CR)。公式:交期剩余时间除以加工所需时间,比值最小的最先排。比如一个单子7月10号交,今天7月3号,还剩7天,加工要2天,CR=7/2=3.5。另一个单子7月5号交,还剩2天,加工要3天,CR=2/3=0.67。0.67小于3.5,所以第二个单子优先排。这个算法的优势是会动态调整优先级,越接近交期、剩余加工时间越长的订单,CR值越小,天然会往前面排。CR小于1意味着如果不马上排就会延期。

4、先到先服务(FCFS)。谁先下单谁先排。最公平、最容易理解,但对设备利用率和交期没有帮助,只适用于产能富余、不在乎效率的场景。

四种规则各有适用场景。现实里很多PMC会混合使用:默认用EDD保证交期,出现插单时用CR判断能不能插进去,产能富余时用SPT清掉小单子腾产线。这种混合策略比死守一种规则要灵活得多。

4、瓶颈约束法

瓶颈约束法的理论基础是TOC(约束理论),核心思想就一句话:瓶颈决定了整条产线的产出上限,排产的第一优先级永远是围绕瓶颈展开。

一个工厂的产线通常由十几道工序组成,但只有一两个瓶颈工序。瓶颈之前堆积的产能做再多也没用,因为东西卡在瓶颈出不去。瓶颈之外的富余产能闲着也没关系,因为它本来就不缺。

瓶颈约束法的排产逻辑分四步:

第一步:找出瓶颈。统计过去三个月的产量数据,哪台设备一直在满负荷跑、前面堆的待加工量最大,这台设备就是瓶颈。

第二步:根据瓶颈排计划。瓶颈设备每天的排产计划决定了整条产线今天能出多少货。瓶颈设备的排程是整条产线的节拍器,其他环节按这个节拍走。

第三步:瓶颈前的工序严格按瓶颈需求供应。给多了没用,瓶颈加工不过来只会堆货。给少了瓶颈停机等料,直接损失产能。所以瓶颈前需要设置缓冲库存,保证瓶颈永远不缺料。

第四步:瓶颈后的工序跟上节奏。瓶颈出来的东西及时流下去,不要在后道再卡一道。

瓶颈约束法在工序长、设备差异大、瓶颈明显的制造场景里效果很突出。比如SMT+组装混合产线,SMT贴片是瓶颈,整条产线的排产就应该以SMT为中心来编排,印刷和回流焊跟着SMT节奏走。非瓶颈工序产能过剩很正常,不需要追求100%的设备利用率。

二、4种算法怎么选?

看到这里应该清楚了,这4种算法在不同维度上各有用途,互不替代。

正向和倒排解决的是时间维度的问题:工单放哪个时间段。这两种可以搭配使用,产能分析阶段用倒排判断交期可行性,具体排产执行时用正排从当下开始布置。

优先级规则解决的是排序维度的问题:多张工单抢同一条线,先排谁。SPT、EDD、CR、FCFS各有侧重,实际使用中混合策略比单一规则效果好。

瓶颈约束解决的是资源维度的问题:整条产线的产出上限在哪,资源配置怎么围绕瓶颈展开。这个算法的价值不止在排产上,还能帮你做产能规划:知道瓶颈在哪里,扩产投资的方向就明确了。

下面这张对比表可以帮大家快速做选择:

实际的应用场景里,这三类算法通常已经做到了ERP或者APS系统的底层引擎里,PMC操作时主要管两件事:输入正确的工单和交期数据、读懂排程结果并做出调整。不会有人坐在那对着四种算法表人工选,那是系统的事。

三、算法好归好,数据不准确全白搭

上面讲了这么多算法,但有一点必须说清楚:算法再好,喂进去的数据不准,出来的排程结果一样是废的。PMC排产依赖至少四个维度的基础数据。

1、工艺路线和工时。

每个产品每一道工序的标准工时是多少、排队等待时间是多少、工序之间的转移时间是多少。这些数据不准,倒排法算出来的"最晚开工日"就是错的。很多企业的问题出在这里:工时数据是五年前定的,产线设备换了三轮,标准工时表从来没更新过。

2、设备日历和产能。

哪些设备周六上班、哪些晚上不排、什么时候安排保养停机、模具切换要花多少时间。这些数据不设进去,排出来的计划在车间根本执行不下去。

3、物料齐套状态。

工单排进去了,物料到没到。排产前必须先跑一遍物料可用性检查,否则排出来的计划就是空的。很多ERP系统在做排程前会强制要求物料齐套校验,逻辑很正确。

4、实时报工数据。

车间实际做了多少,跟排程计划差了多少,偏差积累到一定程度要触发重新排产。没有实时报工数据,排产系统就一直在按过时的信息算,迟一天两天就完全对不上了。

这四个维度的数据基础打牢了,算法才能发挥真正的价值。很多工厂花几十万上了APS系统结果用不起来,问题不在算法上,在基础数据根本没准备好。

结束语:

很多时候,排产这件事之所以让PMC头疼,根源在于把排产当成一个凭经验"调"的事情,而不是一个有标准算法支撑的"算"的过程。

通过上面4种算法的拆解,我们不难发现:正向排程解决"啥时候干",倒排法解决"最晚哪天必须动手",优先级规则解决"先干哪个",瓶颈约束解决"围绕什么来干"。四种算法从不同维度回答了排产的核心问题,组合起来就是一套相对完整的方法论。

如果说你的工厂正准备从手动Excel排产往系统化排产方向走,建议先不要急着上高端的APS。把上面四个维度的基础数据整理清楚,再找一个数据建模能力和工作流引擎足够扎实的平台,把排产规则和算法逻辑搭进去。织信的低代码平台提供了自定义数据建模、自动化蓝图规则引擎和多数据源集成能力,适合做排产系统的落地底座。如果你想用低代码搭建PMC排产管理模块,可以通过 https://www.informat.cn/?from=tth1070304 了解具体实现方式和POC支持。

排产这件事,最终的目标是一个:让车间不再靠喊。

相关推荐
智恒百亿1 小时前
算力基建深度分析:国内服务器产业高强度迭代下的技术壁垒与全球化优势
服务器·人工智能·算力基建
小虎牙0071 小时前
Android kotlin图片库Coil源码详解
android·前端
随风一样自由1 小时前
【前端领域】前端开发核心应用场景与落地实践
前端·前端框架
lilihuigz1 小时前
Meta Box完整指南:WordPress自定义字段与内容框架高效构建结构化内容 - 易服客工作室
java·开发语言
楷哥爱开发2 小时前
降低网络爬虫成本:基础设施优化指南
服务器·开发语言·php
an317422 小时前
弹窗数据流设计的两种高阶架构实践
前端·vue.js·架构
鱼很腾apoc2 小时前
【Linux】第7期 进程间通信 (IPC) 详解:管道 (匿名 / 命名) + System V
linux·服务器·c语言·学习·进程间通信·ipc
尚早立志2 小时前
Spring Boot 源码研读之ConfigurableEnvironment 环境准备
java·spring boot·后端
YuK.W2 小时前
Leetcode100: 94.二叉树中序遍历、104.二叉树最大深度、226.翻转二叉树
java·算法·leetcode·二叉树