本文主要探讨在生产计划的“编制 -> 执行”过程中,遇到的计划与实际生产活动,相邻两个计划之间的衔接问题,及常见的方案建议。
生产计划是通过对生产环境的整体评估,并基于评估结果对生产活动的推导和仿真,从而获得的工作安排,用于指导生产活动。计划人员对生产条件掌握越准确,编制出来的计划越贴近实际情况、越具有可操作性。但无论对计划的内部因素(例如产能、工艺)还是外部因素(例如交期、插单)的把握,均建立在对未来的预期的基础上,必定具有不确定性和可变性。因此,计划的“编制->执行”过程,排产人员除了需要尽可能掌握订单、工艺、设备和资源的现状、变更外,还需要在对生产活动、计划变更等方面有一定的经验和应变能力。
因为生产活动并不一定能完全按照计划的既定预想的(当然编制计划时也会为此预留一定程度的缓冲),当生产活动与计划的差异少于预留的缓冲区时,不会对计划产生根本性改变;一但差异超过缓冲余量,实际情况与计划不再匹配 - 即计划失控。通过APS生成的计划,往往已对各种情况进行过优化,特别是进度和资源方面的优化,相对人工计划更精益。当余量无法容纳变更时时,计划就会被从根本上推翻。但真实的生产活动,这种变更是时刻发生的。当环境因素发生变化时, 人工对计划进行修改就必不可少。因为不可能任何变更都需要或容许即时重新生成计划;这种修改只能成为下一轮计划的额外输入。
上述计划的不确定性需要尽可以掌控外,从计划到执行,再将执行结果反馈到下一轮计划的整个循环过程,还存在大量时效性问题。尽管理想情况下,不考虑现实情况的变化,计划与实际生产之间仍然存在时间上的间隙。即生成的计划在生产单位开始执行,有可能已经过一定时间,时效性有所缺失。因此,计划与实际生产活动之间的衔接,是每个企业的计划体系必须考虑的因素之一。部署了基于APS的自动计划系统后,编制计划所需的时间和计划的周全程度在一定程度上得到缩减和完善;但这种提效和优化,并无法完全消除计划与实际生产的差异,只能起来缓解作用。对于这种时间差异导致的计划与实际生产活动脱节的问题,我们通常采用锁定一定时间范围内生产任务作为过渡区,或通过实时规划方式提高时效性来应对。
一、 在计划与实际生产活动之间设置缓冲区
进行每轮计划时,将与当前时间相近的未来一定时间范围内的计划任务设置为锁定状态,这些任务不纳入新一轮计划,在新一轮计划发布到生产单位前,这些锁定状态的任务用于保证生产活动持续进行。
传统的计划编制方式是以指定的频率,对指定范围内的生产任务,进行定时计划编制。例如每天生成一次计划,每次对未来三天的生产活动进行计划编制。常见的制造业场景中,“计划->执行”过程具有连贯性需求。每次产生新的计划时,因为计算系统运算、人工对计划的查核确认等工作,需要消耗一定的时间。若计划以当前实时编制,而不考虑计划与生产的时间空隙问题、计划部门与生产部门对接问题、生产单位执行延时问题,计划下发到生产单位那一刻有可能已超时,存在“先天性脱离计划要求”的现象。因此,计划必须确保在下发给生产单位时,其时效性是合理的。
此外,实际生产中有可能部分企业因为工艺、资源、设备等特殊原因,在执行计划任务前所需时间无法包含任务的预处理时间,例如特殊工件备料、专业操作人员班组分配等准备工作等。而这些额外的工作往往在实践操作中,是客观存在的,需要预留相应的时间。因此,为确保生产单位可完全按照计划编定的时间、进度来执行,在确定计划的起止时间和起始任务时必须划出一定的缓冲区。这个缓冲区在新旧计划的过渡过程中,起到避免生产活动停滞的作用。因此,在生成新一轮计划时,除了需要把上一轮计划周期内未执行完成的任务在新一轮计划考虑进来外,还需要根据上一周期任务的执行情况(包括但不限于备料情况、机台设备就绪情况等)将计划中部分已排定但未开始执行的一部分任务锁定,供生产单位继续按既定计划执行,并将这些任务排除在新一轮计划范围内。存在这些被锁定的任务,不需参与新一轮计划的规划运算,留给生产单位继续执行,有助于确保这部分任务在时间(开始、结束时间)和空间(使用哪个机台哪些资源)上的稳定性。避免新一轮计划的变化导致这些任务的前期预备工作的浪费。具体的锁定时间长度、任务范围需要根据实际情况而定。
二、通过实时连续计划,保证计划的连贯性
该方法使用了OptaPlanner的实时规划功能(Real Time Planning),通过规划服务程序的全程在线、实时处理特性。当计划各种因素发生变更时(例如任务完成、任务作废、资源可用性变更等),APS系统能即时作出响应,将变更因素纳入考虑范围,并基于已有的计划方案找出新的方案,最大程度上保证计划的连贯性。
该方法虽然可以实现计划工作的持续性,可实时更新计划;但这种连贯性也只是基于变更前后两个方案承接关系,来实现最大程度连贯性。当变更内容过于巨大时,前后的变化还是足以让生产活动出现断层,从而引发上述提到的部分任务的前期预准备工作作废。因此,同样需要使用类似于设定缓冲区的方法,防止生产活动因为计划变更过大,而导致部分任务的预处理工作浪费。只不过因为实时规划的变更通常是连接、小规模逐步进行的。因此,每个变更产生的差异,相对传统的定时分批计划必然小得多;从而产生更小的前后计划间跳跃。在OptaPlanner用户手册中,有专门的章节介绍这处情况,其描述就是我们项目管理中,项目计划常用的滚动计划模型。将任务分为“未计划”,“草拟”“已发布”和“历史”四种状态。忆出现,但在当前计划时间内未予以考虑的任务可列为“未计划”,下一轮将要纳入规划运算的任务列为“草拟”,经过规划运算已排定任务执行时空、且需要发布给生产单位执行的任务列表“已发布”,已开始执行或已执行完成的任务列为“历史”;随着时间推移任务遵循上述四种状态进行转换。可以看出,对于已发布的任务,其时间跨度通常会大于计划的周期(也即计划频率)。因此,每一轮发布的计划,可能在下一轮计划会被重新纳入,也有部分任务将会锁定,这些任务虽然未开始执行,但不再纳入下一轮计划;从而确保生产活动的连贯性。如下图。
滚动计划
综上,部署了APS系统后,计划编制和发布工作,同样遵循平缓过渡、预留缓冲的原则,以实现计划与生产的无缝接洽;APS系统对计划起到优化和增效的作用。
本系列文章在公众号不定时连载,请关注公众号(搜“让APS成为可能”或扫以下QR Code)及时接收,二维码:
如需了解更多关于OptaPlanner的应用,请发电邮致:kentbill@gmail.com
或到讨论组发表你的意见:https://groups.google.com/forum/#!forum/optaplanner-cn
若有需要可添加本人微信(13631823503)或QQ(12977379)实时沟通,但因本人日常工作繁忙,通过微信,QQ等工具可能无法深入沟通,较复杂的问题,建议以邮件或讨论组方式提出。(讨论组属于google邮件列表,国内网络可能较难访问,需自行解决)