做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支持。
排产这件事,最终的目标是一个:让车间不再靠喊。