聊聊APS

马国均 2019-02-27 14:02 aps,计划排程


       其实,早就想说说APS,也有些顾虑,因为最近两三年APS刚刚热起来了,说多了也不好。最近我在给几个上APS失败的企业咨询,我觉得有必要让企业知道原委。再则,有几篇关于APS的帖子是我十年前写的,当时没有多少人看,最近两年反而被人多次转载。现在看了当时说的都不对,我也不愿误导读者。所以就以“聊聊”的形式和关心APS的人讨论。


       先说说APS这个名字。APS(Advanced Planning Scheduling)被翻译成“高级计划排程”,也有“先进计划排程”。我觉得似乎advance用在这里应该是“进阶”的意思,就是在原来手工作业或者MRP、MRPII基础进了一步。高级,总觉得是高大上,而APS就是一个辅助决策的工具。我们讨论APS,看看它的原理是什么,它能做什么,不能做什么,以及为什么?


       现在有不少关于APS的书和很多APS方面的学术论文。假如制造业企业的生产主管能够看懂,会觉得他们对真实的生产现场实际了解还不够,还没有从学术殿堂走进车间。这句话也是对我们自己说的。十多年前,我们研发了一款APS系统并在企业艰难地推广。通过对几百个工厂车间样本深入研究后,六年前,我们才觉得过去对工业制造的理解还不深,也找到了APS存在的几个缺陷。于是才有了“Q管理”系统的诞生。

决策层次和运行机制的问题


       制造业企业的生产计划和车间调度是不同层级的决策问题。计划和调度的决策目标不同,决策对象不同,需要配置的资源不同,环境和约束条件也不同。通常,生产计划针对的是订单,主要考虑是能不能按时交付,能不能挣钱,即使亏钱是不是符合企业长期利益,需要动用多少库存,哪些外协,哪些自制,刀具模具的准备,车间产能够不够,劳动力情况,供应商能不能及时供货等等。而车间调度就是把所有的工单按照预定时间,保质保量完成,同时考虑生产效率问题,产能最大发挥,关键设备使用率提升,以及工人的劳动强度,安全和身体健康,以及劳动报酬等。


       生产计划和车间调度是不同任务,不同目标,不同约束的两个层面的事情。局部利益(目标)有时候是相互矛盾的。比如,产能最大化和最短订单生产周期本身相互矛盾就不可能同时兼顾。同一个架构同一个运行机制不可能鱼和熊掌兼得。依靠APS同时做好生产计划和车间调度是强人所难。


       假如,一个订单产品的BOM主部件A有两个子部件B和C,C有两个子部件D和E。这些分别在五个车间加工。APS排程一定是从底层子部件往上主部件排程。假如D车间出现异常,D零件无法正常加工,APS就需要重排。由于各个车间相互关联,这时候各个车间都需要根据新的约束条件重排。这就出现了APS的“牵一发动全身”的整体联动效应。按说,这样做没有错。但是工厂的运作真不是这样的,所以这种安排工厂无法执行。工厂并不会因为一个车间出点事情,所有的车间重新布置作业计划。当然,APS有一个“冻结”功能,以避免这个尴尬。问题是车间异常变动司空见惯,冻来冻去就失去APS按约束条件排程的初衷了。


       APS会按照有限能力资源和各种约束排程。如果有足够订单,APS可以把一个月甚至半年的订单都排进去。然后,把得到的结果切割成日计划、周计划、月计划甚至季度计划。这是用调度的手法做计划。在实际的工厂,即使你把后几个月的订单都排进去,未来资源和订单也肯定会发生变化。长期排程结果对调度没有意义,但是这种类似仿真的技术手段用于指导生产计划的制定应该是挺好的。可惜,如果调度不好用,企业可能也不会用APS这个做计划的方法

APS模型的讨论


       我们研究的对象是真实的工厂。针对这个真实的工厂原型去研究它的运营规律、管理机制、制造过程的管理控制。在研究中我们对工厂直接实施改造控制,其风险和代价很大。这样我们需要根据原型建立一个模型进行研究。原型和模型的关系就是“digital twin”。模型的有效性非常重要。如果建立的模型不能反映系统原型的基本特征,研究的结果就无效,更不可能付诸实施。


       用表格建数学模型是科学研究非常通用的方法。大多数APS是依靠Excel建立工厂生产计划调度系统的数学模型。现在的问题是,制造业企业的生产运营管理和制造过程的管控是一个非常复杂的系统,即使我们能够设计出反映企业基本运行规律的表格,那么这个表格必然会非常复杂,制造企业不可能正确填写表格,那么这个模型也就失去实际作用。


       在实际的APS,为了能够在企业实施项目,为了让制造企业能够填表,APS的表格不会太复杂。然而,这就带来了模型太粗燥的弊端。为了弥补模型的缺陷,APS在软件界面就设计了很多的配置项。俗话说,麻袋绣花底子不行。基础模型没有建好,不能反映原型的特征,制造企业就难以接受,难以应用。遗憾的是,恰恰是由于APS模型缺陷引出来的很多的用户配置界面,反而成为APS的一个功能强大的销售卖点。


       在这里对制造企业建模主要目的是研究企业运营的效率、质量、成本。建模是极具挑战性的创造。对一个工厂来说,期望所建模型既有效,又可操作,又简单,就需要对工业制造的本质有深刻的理解。如果不能在车间生产现场沉下去,如果不研究大量的工厂样本,如果不经过理论和实践多次迭代和一次又一次的失败,很难达到预期。


       我们必须说APS模型有缺陷,但是它绝不是不可用。当我们把系统的范围缩小,研究一些局部运营管理问题;当我们消除一些局部系统外部的不确定性;当我们把排程的“颗粒度”与研究对象实际更贴近一点;当我们可以把系统的某些非线性近似为线性的时候;APS还是一个有效的工具。这也是很多中小企业能够实施APS的原因。

APS算法的讨论


       模型和算法肯定是绑在一起的。模型的有效性是算法寻优的基础。


       大多数APS都是基于规则的算法。现在尚不存在一种全局最优的规则。所以,如果APS是基于规则算法,它仅存在局部优化的可能。制造车间排程寻求最优是极其困难的。APS排程优化运算结果应该是在千千万万可行解中的一个。


       鉴别APS是否有优化算法的一个方法就是,以最短生产周期为目标,给APS输入足够多订单并且不设定优先级,然后让Solver分别运算一秒钟、一分钟、一个小时,再观察结果的变化。


       实际上,对于管理水平很差的企业,APS的优化能力不重要。重要的是排出来一个企业能够执行的结果。真正的排程优化只有管理水平很高且数字化/自动化环境很好的场景才能体现。


       理论上的可行解与实际上的可执行指令是不同的。计算机模型算法可以忽略很多约束和干扰,而实际上这些问题不可忽略。因此,APS常常出现输出的指令可执行率不高的现象。


       规则算法就是按照人为制定的排序规则,由计算机依据既定的约束条件把任务的顺序排出来,大部分都是简单地“码”出来而已。即使这样,对于复杂的生产现场管理来说,能够按照规则把生产任务排序做好也远远超过人手操作的能力。所以,规则算法在很多情况下是非常有效的,尤其是对中小企业。


       APS的输出指令都是交给人来执行的,因此它有缓冲和协调的条件。事实上,对于管理水平还不是很好的中小企业,不适应精准调度,也没有必要。中小企业如果上线实施APS,不要对APS太苛求,能够比手工作业更好就达到目的了。而APS的实施,客观地提升了企业的数据质量,为下一步的改善提供了数据环境。

APS能做什么,不能做什么


       由于APS可以实施局部优化,所以,在很多车间层面可以应用。比如流水线连续生产、生产周期很短的装配生产、电子产品生产、服装生产等。在局部车间生产管理,APS甚至可以做到精准管控。比如,如果确保供应链线边库存充足,APS可以指挥冰箱装配无人自动化生产。


       但是,就现在APS的架构很难实施多车间的协同生产,它处理不好局部优化和整体优化的关系。APS排各个车间的工单严丝合缝,可能只要一连起来就无法执行。


       大型装备的生产管理也不能用APS,因为大型装备涉及到的系统环境非常复杂,长的生产周期存在很大不确定性,供应链和多车间的协同是主要矛盾。


       在一些特殊工艺和设备加工过程,如果物料流动产生很大的非线性,并且排程机制不能近似线性处理,APS也不能用。比如,零部件生产工序是粗加工…热处理…精加工。如果在热处理排程导致一两天时间都误差,排程没有指导意义。


       制造业生产现场管理是管理科学中最困难的问题之一。制造工厂的生产计划调度问题已经进入了大系统和复杂系统研究领域。APS应该是探索这一科学技术勇敢的实践者。也许,由于过去几十年能够提供我们的管理科学、运筹学和计算机科学的技术和知识还不能支撑有效研究解决这些问题。现在云计算技术、非线性规划等数学工具的发展已经让这种科学进入实际应用成为可能。更为重要的是需求的牵引。生产现场管理的改善潜藏着巨大的价值,这是制造业企业未来必须收获的红利。


       APS应该创新发展了。最近几年,我们的团队一直在美国的制造企业实施“Q管理”系统。我们看到美国的业界早已认识到它存在的问题,放弃了APS,而我们国内却开始热起来。为了引起大家都思考和讨论,少走弯路,也是促使我写本文的原因。


       根据经验,研究对复杂制造企业生产过程管理的建模和大规模优化技术,建立“digital twin”(虚拟工厂/虚拟车间),并且按照多级CPS架构实施管控,可能是一条捷径。


申明
文章转载自微信公众号:Q管理,原作者为马国均,版权归原作者所有,本平台转载仅供分享学习使用。