SCM、APS和ERP

约束理论(TOC)的生产计划概要
确实,可能很多人都看过《目标》一书,小说中的鼓、绳子、缓冲给我们很深的印象。但是,在实际计划工作中却不知道如何实现。本文就是浅谈TOC理论的生产计划,从DBR系统的基本原理谈起:( 在国外,有些APS软件是基于模拟仿真或基因算法理论的,但有些APS软件却是基于TOC约束理论的,约束理论的计划是APS的一种)。
首先,我介绍一下DBR的解释:
DBR系统的目的是:
(1)识别企业的真正约束(瓶颈).
(2)基于瓶颈约束来建立生产计划(Drum鼓的节拍).
(3)对Buffer“缓冲”的管理 
(4)非瓶颈的物料的投入受到瓶颈的产出率的控制,即Rope“绳子”所控制. 
鼓: 是约束资源的产出速度决定整个系统的运营速度,即瓶颈控制着企业同步生产的节拍,所以称为“鼓Drum”.在安排生产计划时,首先把优先级计划安排在约束资源上,“鼓”反映了系统对约束资源的利用.“鼓”的目标是有效产出最大.
缓冲: 分为时间缓冲、库存缓冲. 是保证瓶颈不会出现因缺料而停工,在约束资源的后续装配工序前设置非约束资源缓冲,保证瓶颈能力100%利用时间.
缓冲分为鼓缓冲,装配缓冲,发运缓冲. 
鼓缓冲: 鼓缓冲可以在任何工作中心之前动态的布置,它被定义为鼓,并且使用协调计划处理.鼓缓冲是保护复杂制造环境的约束或瓶颈.约束理论TOC的概念是(Identified)定义加工过程中尽可能的需要的(Exploited)利用的约束,我们不能处理不可能运行的订单和理想的计划,在鼓上运行的时间之前布置时间缓冲.如果有了这个缓冲 ,我们就能具有一些缓冲渗透(buffer penetration)的数量来承受有限计划鼓的影响的风险.
装配缓冲:
装配缓冲:用于保证非-鼓链的装配,在足够时间到达,形成和关键鼓链的零件配套.装配缓冲是不提供对所有子项装配到达的偏置,只有是和通过鼓计划的子项配套时才会出现装配缓冲.如不同子项被要求为一个特别的订单装配.但是,如果这些子项没有一个是通过鼓计划的,装配缓冲是不会产生的.
发运缓冲:发运缓冲是用来保护独立需求物料的交货.大部分情况下,发运缓冲将总是被分配的. 所有的产品结构链都具有发运缓冲,它是在订单完成日期之前到达的时间缓冲.但是, 由于加工过程中的变化,会导致有可能在理想的缓冲日期之后到达.在这个可以接受的日期之后到达和达到我们要求的时间点到达,我们就能继续考虑计划满足订单的完成日期(销售或预测).
绳子: 
绳子的目标是在制品库存最小,绳子根据约束资源的生产节拍,决定上游原材料的发放速度,其原理类似于看板管理思想.
 
DBR系统生产计划的实现过程:
(1)计划: 主生产计划,鼓计划和物料下达计划.
(2)执行: 缓冲管理和采购/发放计划.
(3)控制: 评估和过程指示
一、TOC生产计划是如何计划计算加工时间?     
加工时间是来加工一个完整的批量的时间.加工时间的开始点就是开始节点和结束点是结束节点.当计算加工时间时,在制品的每一批和现有库存是分别计算的.如果一个订单(销售或预测)的需要数量可以能用在制品数量和库存来满足,在制品数量和库存数量大于了订单需求的数量,将没有加工时间.WIP是已经完成它的工序的库存.在变化的工作中心没有考虑准备时间.加工时间分别对批量进行计算.这个批量是在车间里加工的数量.
加工时间的计算公式: 
整批的工序最大运行时间+ 在所有其它工序的每件,每批运行时间 + 所有工作中心的排队时间的合计+ 所有工序的闲散时间的合计
最大运行时间= 取整((任务量 / 批量) / 工作中心的单元数)*每批的运行时间
强制排队时间和闲散时间是固定的时间增加,它可以计算在加工时间的长度里.强制排队时间是对工作中心的特别时间,而闲散时间是对零件或工艺工序的特别时间.实际上,,它们被用于特别的处理过程如:在热处理工序以后,需要时间冷却. 对油漆的”晾干”时间.在其它应用里,它们能被用已知的延迟或无正式文件处理过程如:预计有意义的等待或在特别的工作中心的排队时间.物料处理时间,移动物料从一个地方到另外一个地方. 这些时间要素是固定的.我们应该有区别的使用. TOC计划在应用中,计算时间用动态的方法,依赖可用时间的计算,把强制排队时间以及闲散时间增加到加工周期时间里来处理可能例外的机会或由加快”渗透”时间的过程中.
  
二、TOC的生产计划是如何计算缓冲时间?
如果没有鼓的订单,那么就只有靠发运缓冲来保护变化了. 
一个积极的缓冲是排队缓冲+ 整个Murphy墨菲(经验值)缓冲.。排队缓冲是可以动态渗透, 积极缓冲常用于是订单(销售,预测)的完成日期合理化.缺省的积极缓冲是 ? 排队 + Murphy墨菲.    
鼓缓冲等于1/3 的正常应用缓冲,大部分上游鼓将接受正常的缓冲和下游鼓将接受1/3的缓冲.首工作中心 (可以直接下达原材料的工作中心) 被定义为鼓将没有鼓缓冲. 装配缓冲不用于 “积极缓冲” 的计算.
使用缓冲,需要考虑的是:是否有一个鼓和在每一个链里有加工时间存在.  对发运缓冲规定的值被应用到所有独立需求的偏置加工时间.由排队+墨菲值的积极缓冲来满足发运.  当工作中心被选择作为一 “鼓”(瓶颈)时, 在有限计划里. TOC计划应用鼓缓冲值来偏置满足不同的鼓的加工时间.在这一点的”积极缓冲”是可以计算的.如计算鼓缓冲和计算装配缓冲.
三、TOC的生产计划是如何计算计划时间点?
现在,我们理解了加工时间和时间缓冲,现在就可以理解时间点的计算了. TOC的生产计划对工序节点的鼓产生精确的开始和结束时间. 
 独立的客户和预测订单也有精确的时间,这些时间可以被考虑是确认的计划日期。对其它节点或非鼓链的工作中心,它只能计算开始日期和缓冲渗透(不计算完成日期).
当缓冲渗透是0或减少,开始日期本质是DBD(不要在日期之前作).在任务时间应该开始时,应该分析任务的剩余缓冲.如果剩余缓冲>计划缓冲,那么任务不应该开始.  
 在鼓上的任务开始可以依赖于上游任务被完成.这是基本的加工时间+缓冲.在TOC计划时如果被标出红色警告, 说明排定的订单(销售或预测)已经延迟.
 EST:最早开始时间(Earliest Start Time), 是任务可以最早开始的时间.考虑到完成所有紧接前的任务所花的时间. 使用积极缓冲计算, 装配缓冲被忽视-假设加快要完成. EST从一确认计划节点被向前传播,上游鼓任务的结束时间已经确认了计划.最小化物料约束.(采购订单的到货日期,水平开始 + MRP 提前期).
特别节点的EST的计算公式是:
案例 :   如果确认计划是上游鼓(瓶颈)任务或物料约束. 当前节点是鼓.
EST = 确认计划节点的计划结束时间+ 加工时间+ 1/3积极鼓缓冲
 LDB: 最迟完成时间(Latest Due By).这是最迟的任务,应该是在它开始算尽缓冲之前完成. LDB 总是由向后传播计算的,是从确认计划节点如:订单的完成日期 ,以前计划鼓任务的确认计划.因为向后传播和决定考虑”理想”日期是什么,使用整个计划缓冲. 在TOC计划的躁音处理它的LDB的任务. 不管订单是否是旧或新的,LDB都包括缓冲,除非加工时间为0. 
案例1:  确认计划是鼓任务,当前节点是非-鼓节点. 
 LDB = 在鼓上的计划开始 – 常规鼓缓冲 –加工时间-常规装配缓冲 
   
LST: 最迟开始时间(Latest Start Time)在协调计划进程中使用来显示最迟的任务,它能提前于渗透到下游缓冲开始,此任务最终将要满足. 这个计算直接跟踪LDB, 除了在LDB计算里,它计算鼓任务的开始时间而不是结束时间, LST 总是基于向后传播计算,从确认计划节点.如:订单的完成日期 ,先前的计划鼓任务的确认计划.因为LST 计算是向后传播和决定什么是”理想”时间,整个计划缓冲被使用.
这个计算是精确时间到秒. 还可以用在在任务将开始布置在鼓上决定顺序.LST 计算不对非-鼓节点计算. 
DDB: 在之前不要作(Don’t Do Before),在服从过程里使用.对所有非-约束工序不要在日期之前作. 这个计算是和LST一样. 
ET: ET加快(开始)时间(Expedite (start) Time).紧紧追踪DDB. ET还可以从一确认计划向后传播计算.加快时间计算象DDB,除了被消除的装配缓冲和在DDB里的常规缓冲计算的使用,可以用积极缓冲所取代.  如果对订单的任务是被计划在大于ET (开始时间 > ET), 订单就会迟.在协调时,任务布置在鼓计划上,开始时间 > ET的任务将被显示为红色.在推出去(Pushed Out)任务将保持红色,直到推到这个时间,直到可接受的预计完成日期和排定的订单(销售或预测) . 加快时间是一个点,超越这个,订单需要合理化.超越ET的时间将是订单将被推出去(Pushed Out)的时间. 
 在TOC计划里,推掉订单Pushing Orders Out这个概念是让我们的订单有可以接受预计完成日期.由于实际的物料或制造零件装配不能及时完成,当我们推掉订单时(push an Order out), 我们不能推掉鼓上的任务或改变将要到达的采购订单PO的日期,但我们可以推掉pushing out 排定的客户订单或预测,它是由于延迟的任务或延迟的采购PO影响.TOC计划的概念是执行订单的合理性.基于今天制造环境的现实.TOC的计划可以提供给我们能分析这些情况和选择的工具. 但是,也可以阻止对客户订单的退掉(push an order).
 
四、TOC的生产计划(Planning)的步骤:
1、计划的展开
它也是通过BOM展开并且把独立需求转换为非独立需求。在每一次展开的工作中心的负荷时间是基于订单(销售订单和预测)的当前完成日期和WIP(时间和地点),库存和分配给订单的采购订单。当协调计划下一个鼓的运行时,如果用顺序来定义此任务。就决定需要在鼓上执行计划的任务,定义的鼓的计划先执行展开计算。
在执行服从其间非-约束上的链就决定DDB(Do Not Do Before)和缓冲渗透(缓冲剩余),在展开几次之前,系统确认考虑最近的计划决定。库存物料也可以在每次运行展开时,动态的分配。展开计算包括以下几个过程: (1),路径的选择和净计算。(2),在鼓节点产生供应 。
实际上,TOC的计划的展开过程是反复的。独立需求的最终产品(销售订单和预测)被标识为0层。展开是从独立需求的0层开始,按订单的完成日期(当前完成日期)升序排列,一次一个。如果要处理同样日期的订单,在升序的订单的里进行标识设置。每一个零件节点和路径的选择逻辑是决定那一个路径最快的可以得到供应。 如果一原材料节点的原材料可以达到或WIP/库存足够满足需求的一只链。展开就停止在这个节点上。那么,展开就重新开始,沿着独立需求的另外的一只链。一旦第一个鼓节点遇到特别的链,它就会标志为第一层。展开就会重新沿着另外的链从0层(独立需求)展开,第一个鼓节点遇到的也可以是做为第一层 。第一层的所有任务被选择为独立需求,沿着它们的LDB日期展开 。一旦所有的1层的任务被选择,这些任务在它们的LDB日期顺序里进一步向下展开,下一个鼓节点遇到的是第二层,这个过程重复直到所有的鼓节点已经由足够的原材料库存或完成的在制品来满足需求。因此,层的数量是由在特别网络链里的鼓的数量来决定的。
路径的选择和净计算
当一特别任务需要生产,你有一选择: 现有量,主要路径(PR),计划的MO,生产订单(MO),在途的采购订单PO(外购或外加工的零件)。现有数量总是首先消耗的。在每一个零件节点上,TOC计划首先计算ET(加快时间)。 对生产订单MO和采购订单 PO 供应来说, 当它们将要在节点上可用时,TOC计划也要进行计算。 对未完成的生产订单MO,当它将要可以得到时,计算是从在制品WIP位于的节点处开始对下游的时间计算,TOC计划将增加加工时间。对于采购单 PO来说, 在到货日期可以到达时,就可以计算制造计划。TOC计划必须在三个明显选项之间选择。如一个采购订单PO路径不能得到或在ET加快时间之前不能得到时,那么就可以动态选择三个最早的时间的路径。如可以得到MO 路径;可以得到PO路径;如果工作中心在主要PR路径里需要已经计划的鼓,就选主要PR 路径,对每一个需求,都通过这个逻辑循环计算。
2、物料需求的计算
物料的可用性的功能是只有在鼓的能力计划之前得到。因此在TOC计划系统里,当检查没有鼓时。计划缓冲只有是发运缓冲。需求日期是基于订单(销售和预测)的完成日期和一般的发运缓冲(LDB)计算的。必须设置:物料优先级。物料延迟的容限。
 物料约束被分成3种不同的方法,每一个方法用来分析当前物料和采购订单的状态:
(1)清除过期的采购订单PO。
(2)原材料计划。
(3)有零件短缺的订单
最小和典型提前期的基本概念是:新订单是基于典型提前期处理,但是只有是最小提前期在计划过程中可以约束订单的执行。也就是说定单(销售和预测)的完成日期只被最小提前期所约束。  
物料约束的概念是可以找到的较少的采购物料才是真正约束生产过程的。这些约束力是不可以加快满足生产需求日期的物料。最小提前期是在加快的模式下,一物料总是能有时间。任何少于这个时间是不可能的。于是,如果提前需要这个最小提前期,应该开始约束生产。 最小提前期也可以被原料计划所修改。 也可以把物料可以评估为例外。
 (1)清除过期的采购订单 PO。 就是用于到货期提前于今天的采购订单PO。或规定一个结束日期。 在考虑交货期或交货数量时,改变每一个采购订单成为更合理。 可以只显示单一规定零件号的采购订单PO和到货日期或规定日期之前的日期的采购订单PO。其逻辑是:如果完成日期 < 今天, 那么完成日期将等于今天, 可以对清除过期PO里改变: 修改,增加,删除,拆分。
 (2)原材料计划
原材料计划是物料的集中显示。它显示所有有的需求,且在最小提前期之前的,或在需求到货日期之前的,并落入短期的采购物料。初始图显示一个红的条,长度等于这些需求需要提前到的采购订单PO完成日期或最小提前期的天数。这是最短的。这就是延迟。 逻辑是用LDB 时间点,向后计划每一个独立需求来计算原材料需求。
原材料需求日期= 订单完成日期 – 发运缓冲- 加工时间
(3)有零件短缺的订单
零件短缺的订单是显示所有有短缺物料的订单,而不考虑订单的需求有多长远。提供所有有关独立需求的订单的信息。包括目标日期,且显示计算的延迟的天数。它是为对订单基于所有的物料需求的评估。结果是基于物料需求日期,它大于在最小提前期之前的天数或采购订单PO完成日期。如果小于最小提前期,就分别为订单和它们的相应的延迟天数提供所有采购零件短缺清单。延迟=0的订单,是由今天+最小提前期来决定是否有更糟的物料短缺需求情况。  
(4)能力负荷计划的算法
 能力负荷对所有的订单具有预计完成(当前完成)的时间,在以下之内显示净负荷:今天+ 展望期 –1 + 常规发运缓冲
能力计算是对 (今天+ 展望期 –1 。基于工作中心的单位数量和工作日历。负荷的时间是在任务工序的LDB日期。独立的订单每次展开一次, 完成日期按升序排列的订单,使用尽早逻辑。 用路径选择逻辑执行在制品和库存分配, 数量需求被转换为负荷,在节点上,计算每一批运行时间的数量。设置到到每一个独立的,节点上的任务。       
在计划展开之后,通过每一节点的需求来维护单一的独立需求源。在正常或初始化的情况下,显示能力负荷图,并不显示鼓,显示需求和所有工作中心的时间。例外的是,在鼓排序计划时(发现延迟),重新显示能力负荷图, 重新基于反映被分配负荷的已经计划的鼓。 如果没有鼓计划,路径选择逻辑将决不会在用尽未完成的生产订单MO。而是开发利用一个计划的生产订单MO。
五、TOC的生产排程(Scheduling)的步骤
 在选择鼓以后,就可以运行计划“产生鼓任务”的算法。它和展开逻辑能力负荷一样。但是,也有一个主要不同: 没有鼓的链是完全停下来的。 因此,在没有鼓的链上的物料约束的影响可以被完全忽略。因此,在鼓上没有产生任务的独立需求可以被忽略。 这个算法的结果是,在它们的LDB的所有鼓上产生任务。 选择的鼓可以产生”噪音”。
1、计划协调(开发)
在”噪音”里显示要铲平的任务。并运行向后和向前的计划排程。
 (1)向后排程: 
在LST(latest start time)递减排列的订单里选择任务和有没有完成时间违反LDB(latest due by)的任务, 排程尽可能迟。 任务尽可能的近于LDB日期而不违反能力约束,能力将被检查。任务将不会被分拆和处理,允许它尽可能近于它的LDB 。 这样,也可能计划排程的一些任务排到了过去的时间,这就是有违反的现象, 结果是过期的积压的订单或在鼓上争夺能力。 在LST时间里,任务的顺序是不能违反的。 注意任务的长度包括运行时间和主要准备时间。 如果在一样的产品系列里任务碰巧互相相邻,就可以节约准备时间。 在向后排程之后,可以在计划协调上, 会出现一个差距数量和过期的任务。
 
     
第二步:向前计划
用计划开始时间从小到大索引所有任务。选择第一个任务,动态计算它的最早开始时间EST。Max (EST, 在向后计划后开始计划) 
 注意EST总是要>= 今天日期,选择第二个任务在清单里和重复此过程。或许会有差距, 进行协调。 在任务的EST之前出现差距。在差距之后,仅有绿色任务。在任务的EST之后出现差距
 
2、在协调计划之中,合理化订单的完成日期。(Push Orders Out) 
TOC计划在排程处理中用三个不同方法推出订单:
(1)在定义”物料约束”为选择的物料。
(2)在鼓的排程中。
(3)在非鼓链的协调计划之前。
在当前情况下的完成日期的改变。 这个日期驱动排程的平衡。 在协调计划的最后,这个日期要符合预计完成日期。 一旦鼓完全被利用,订单(销售/预测) 需要的完成日期将被合理化。在协调过程中,对订单的非-鼓的链不包含鼓任务。因此被推掉P ush Out是肯定的,因为在这一点处理的是鼓链,也就是说是瓶颈的生产线。
 鼓推掉:TOC在鼓上为每一个任务计算LDB和ET。 如果任务在LDB或之前被完成,就没有缓冲渗透。如果任务在ET之后开始,订单就会被预计延迟。 两者LDB和ET都是向后传播。LDB用常规缓冲计算,那里的ET用积极缓冲计算。 
TOC计划试图在鼓上LDB之前计划任务。然而,由于能力或EST( Earliest Start Time 约束,鼓任务也许被计划在它的LDB之后完成 。如果这个任务在ET之前被计划开始,订单就不会被推掉。只有在ET之后,任务才被计划(任务计划开始时间>ET)此订单由延迟数被推掉(任务计划开始时间-ET)。注意一个单一的订单能在鼓上分为多层次的任务,甚至如果其中一任务在ET之后计划,定单将也会推掉(红色) 。由于ET计算,订单的推掉是基于鼓的计划。  
  
3,协调下一个鼓(同步和顺序)
 一旦鼓被计划,它的计划就被固定,不能改变。在计划第一个鼓之后,第二个鼓也必须计划。定义第二个鼓有两个方法: 1,同步:所有的鼓都必须在开始时定义。 2,顺序:在前一个鼓已经计划后,从能力负荷图选择下一个鼓。 
两者不同的是:在顺序选择里,能力负荷图必须再次产生,且完成库存的计算和展开分配。而同步只是作一次修正展开,不需要库存的再分配。 注意,当下游的鼓在上游鼓之前计划时,顺序定义不能运行,这是因为事实是上游鼓被锁在已经确认计划鼓的日期和今天之间。于是就没有空间来平衡负荷或产生合理的计划。  
(1)同步  
当“产生鼓任务” 的算法运行时,所有任务和它们的LDB日期被初始化。 于是库存在处理过程中被分配。 当选择下一个鼓时, “重新计算LDB 日期” 算法运行。这个算法是在当前完成和基于以前的鼓到下一个鼓的任务的LDB日期传递变化,注意的是初始化库存在第一次展开就被分配了。为所有的同步鼓进行维护。 一旦LDB日期再次被计算,在鼓上就进行向前计划,向后计划等算法。 同步计划的优势是所有鼓的能力都被考虑,在每一个单一的鼓/协调计划阶段。多重交互的鼓可以被计划。否则(用顺序)就作不到了。 它的缺点是鼓供给另外的鼓(交互鼓)时, 它们能被由”还没有计划”的鼓被没有必要的约束住。这是因为还没有计划的鼓被加载,没有任何已经作出的利用(决定),于是预计的EST或LDB也许比必须的还要更迫切。
(2)顺序
在计划一个鼓以后,回到能力负荷图,另外被选择的,被协调(计划)的工作中心。可以被合适的重复许多次。当另外的鼓被顺序的定义,整个展开再次运行。 “产生鼓任务” 算法对这个鼓进行重复计算。 库存被动态的重分配。 一旦产生了任务,对协调的算法是一样的。 当对一新的被选择的鼓执行协调展开计划时,如果产生一个“交互冲突”, 显示一个警告信息通知你,说明这个工作中心由于这个交互鼓冲突可能不被计划。
 顺序选择的优点是基于决策:当计划一个或多个先前的鼓时,在工作中心上的一些原来预计的明显的负荷,也许不再存在了。这也许是因为公共的需求可能已经推掉,释放了一些负荷。于是,它也许不需用象同步方法一样计划许多预计的鼓。 另外的优点是在每一次新鼓被选择时,库存就被重新分配。例如,如果一原材料是许多制造件的共用件,但是,处于短缺,重新分配物料可能会产生更好或更早EST。 缺点是以上提到的“交互冲突”。
4、拉入早期订单(Pull in Early Orders)
当所有定义的鼓被计划,订单可以选择”拉入”, 订单可以在早于它们的当前完成日期完成,这是因为在LDB,鼓没有能力并且协调计划已经把任务铲掉一个更早时间可以节约使用了一个准备时间的决定,这一步提供可以选择一个或所有拉-入候选的选项直到没有执行拉入早一点的订单。在鼓执行的任何一组任务时(例如准备时间节约),它将被生产订单下达反映给上游,生产订单也从一个鼓下达给下游时是由订单(销售和预测)的当前完成日期所驱动。现在,所有链上供给的订单都被考虑。已经被早期忽视的非-鼓链在这一点也被考虑。对所有其它非-鼓链,TOC计划反映DDB日期。在这个阶段,一个被”拉入”,在非-鼓推掉时将不会被推掉,因为在非-鼓链拉入反映DDB日期。 鼓计划可以选择在LDB之前,一订单被及早考虑。  
5、服从
在鼓已经计划和利用时, 其余计划必需服从鼓的排程。 鼓排程已经被固定。在服从过程其间,以下活动会出现: 对非-鼓链的完成日期也被合理化。非-鼓DDB日期和产生计划订单下达。 为每一个非-鼓节点剩余缓冲也可以计算。 在鼓上整个计算展开包括(1),重新排定;(2),为采购计划展开;(3),重复整个展开。
6,对非-鼓链合理日期
大部分订单(销售和预测)在鼓上有它们的合理完成日期(例如,由于鼓的能力缺乏,完成日期被推掉。然而,有两个例外的规则: 非-鼓链是比鼓链有意义的长(大部分的事实是,万一加工时间是有意义的,由于外加工或超过强制排队时间或闲散时间。并不是所有的订单可以有一个任务在鼓上处理的。这可能是由于来源于鼓下游WIP或产品没有通过一个鼓的路径。在这个过程中,只有非-鼓的链被考虑。在这个链上的物料约束现在被考虑合理的日期。(注意在鼓链上的任何物料约束在排程的(协调)进程中都被考虑。 缺省的行为是物料约束为一个采购订单PO在到货日期内可以得到。  到货的提前期不被考虑推掉。 通过所有非-鼓链的订单的EST被计算。如果计算最大化的EST大于当前完成日期,就有不同的订单被推掉。注意:对推掉使用积极的缓冲。并且装配缓冲没有被包括在积极的计算。也要注意要防止对新的或旧的订单的EST计算的差异。
7,最终计算供应
这是和整个展开相似,除了重新排定的逻辑以外,用于鼓的排程。 非-鼓链又一次被忽略。 在整个展开过程中,库存被重新分配。 重新排定鼓的排程,用当前完成日期,在鼓上展开产生任务。在鼓上的排程被视为供应和上层产生的任务作为需求。 在为供应和为需求的LDB日期的计划顺序中,供应按需求被排定,。 注意: 因为这个初始化在协调的排程中对成品排定。在这一步,还是可以改变。重新排定也能引起为单一订单的鼓任务分拆。 
 TOC计划对订单建议了一个保守日期。 物料在完成日期顺序中被分配和最早的订单得到WIP。但是这个订单也可以在排程进程中被推掉。且WIP现在成为可用对一个较早的但是不同的需求,而此需求也可以被推掉,因为首先已经没有WIP。 如果软件对此可以拉-入日期,这是因为它现在已经被排定给WIP,它产生”蝴碟”的影响整个订单。他们大部分任务会被重新计算和在反复循环里结束。而不是进入一复杂的优化问题(任何方法将将不能满足所有参数)和对于最小化的蝴蝶影响 ,TOC计划排程确定不可以拉入哪些订单和哪些有剩余完成日期就好象他们被提前重新排定的那样。
 对整个非-鼓节点会出现一个完整的展开。 一个鼓的上游的任务被鼓的排程(计划)所驱动。 否则,任务被当前完成日期所驱动。 对于非-鼓,产生DDB日期 对每一个非-鼓节点在服从的过程中,两个值被计算它们是:对于非-鼓活动(DDB日期)的开始日期和对于基于范围的开始日期和最终物料完成日期的剩余缓冲。在采购零件层用父项零件的DDB日期产生毛需求(采购信息),如对任务的剩余缓冲的计算里使用确认计划日期,开始日期,约束物料可用日期。    
         
TOC约束理论是歌德瓦特博士创立的,它是同步制造的哲学,按照市场需求,用一种系统的方法,达到快速的,平稳的生产物流,用三个简单的全局评价方法,产销量,库存,经营费用,在市场需求和生产约束下的生产达到企业的目标。它的核心思想是存在瓶颈工序或工作中心,最佳计划是基于瓶颈工序的计划。 基于TOC的计划均可以考虑资源,物料,订单和管理策略的约束。TOC的建模可以有限,也可无限能力。可以通过有限能力建模基于所有约束,同步化物流。任何资源均可以定义为瓶颈资源或关键资源及次瓶颈资源。对瓶颈资源采取双向计划,对非关键资源采用倒排计划。缓冲时间可以设置任何在复杂资源之间。DBR(Drum-Buffer-rope)逻辑是对关键工序同步化所有资源和物料。它较适用较复杂的,多层的BOM的离散制造环境。


top777 发表于 >2005-1-30 1:26:35 保存该日志到本地 [全文] [评论] [引用] [推荐] [档案] [推给好友]

2005-1-30
供应链高级计划系统(APS)

供应链高级计划系统(APS)
  APS与传统的企业资源计划(ERP)不同,它试图在直接考虑潜在瓶颈的同时,找到跨越整个供应链的可行最优(或近似最优)计划

  一、前言

  近年来,许多企业开始把注意力放在自己的核心竞争能力上,对一些非强项业务则尽可能外包给别的公司。结果,销售给顾客的产品或服务,其特征和质量在很大程度上取决于供应链上的所有相关企业。这便带来了新的挑战:如何实现供应链的集成?如何更有效地协调和控制企业间的物流、信息流和资金流?对于这些问题,需要有一个全新的管理理念和方法-供应链管理。SCM方法的研究和实施为企业带来了很大的经济效益,今天,许多企业都选择了供应链和物流管理作为获取新的竞争优势所必须采取的战略步骤。
  
  在过去十年中,信息技术(如强大的数据库管理系统),通信手段(如通过INTERNET的电子数据交换),以及复杂数学模型的各种求解方法(如数学规划)的发展为计划和控制供应链流程开阔了新的视野。顾客订单、需求预测或市场趋势可以被分解成必要的活动,立刻送到供应链各组织当中,并通过高级计划系统(APS)生成准确的生产计划和程序来保证按时完成订单。APS与传统的企业资源计划(ERP)不同,它试图在直接考虑潜在瓶颈的同时,找到跨越整个供应链的可行最优(或近似最优)计划。
  
  本文通过对层次计划(HIERARCHICAL PLANNING)和供应链计划任务的阐述,介绍了高级计划系统(APS)。
  
  二、什么是计划?
  
  为什么要计划?整个供应链中每分钟都有成百上千个决策需要制定和协调,这些决策的重要性不尽相同,既有相当简单的问题如“下一步各机床计划完成哪项工作?”,也有非常重要的决策如是否新开或关闭一家工厂。一个决策越重要,就越需要更好地准备,这种准备工作就是计划。计划通过识别将来的各种可行活动,选择其中好的甚至最好的来支持决策。计划过程可分为几个阶段:认识和分析决策问题;定义目标;预测未来状况;识别和评估可行活动;最后是选择最优方案。
  
  供应链非常复杂,现实中要处理的每个细节并非都能(或应当)在计划中考虑,因此,有必要根据现实建立一个模型,以此作为制定计划的基础。建模的艺术就是要尽可能简单、尽需要详细地表现真实,也即简单而又不忽略现实中的重要约束。预测和仿真模型用于预测未来的状况,解释复杂系统输入和输出之间的关系,但它不支持从大量可行活动中根据标准来选择最优方案,这一工作通常由优化模型来完成,它与前者的差别在于增加了一个可用来求最大或最小的目标函数。 
 计划不是一成不变的,计划的有效期受到预定计划范围的限制。当达到计划范围时,需要重新制定一个新的计划来反映当前供应链的状况。根据计划范围的跨度和所做计划的重要性,计划任务通常可分为三个不同的计划层次:

  长期计划:这一层次的决策也称为战略决策,它制定了未来企业/供应链开发所必要的框架,通常涉及供应链的设计和结构,对今后几年有长期影响。

  中期计划:在战略决策的范围内,中期计划决定常规运作的框架,特别是决定了供应链中流程和资源的总的数量和时间,其计划范围从6个月到24个月,考虑了需求的季节性变化。

  短期计划:最低计划层应当把所有活动明确为可供立刻执行和控制的详细指令,因此,短期计划模型要求高度的详细和准确。短期计划范围在几天到3个月之间,受到来自上层有关结构和数量范围决策的限制。对供应链的实际性能(如提前期,顾客服务,和其它策略问题)而言,短期计划是一个很重要的因素。

  最简单的计划方法是查看所有可选活动,按给定的标准进行比较,然后选择最好的方案。不幸的是这一简单计划程序至少会遇到三个主要困难:
  
  首先,计划活动中常常同时有几个标准,目标之间存在冲突,各方案之间的优先选择也不明确。例如,顾客服务水平应尽可能高,而与此同时又要保持库存最少,这种情况就没有最优解(也即不能同时使两个目标最优)。处理这种多目标决策问题的常用方法是设定一个目标在最小或最大的满意水平,然后优化另一个目标。在上面的例子中,人们可以在保证一个最低顾客服务水平的同时使库存最少。另一种处理多目标问题的有用方法是对所有目标按财务收入或成本定价,然后使结果的边际利润最大,但不是每个目标都能以财务价值的形式来表达(如顾客服务)。还有一个更常用的方法是给每个目标定义一个系数值,然后加权求和,这种方法的缺陷是有可能产生伪最优解,因为它在很大程度上取决于任意的权值。供应链高级计划系统(APS)从原理上支持上面各种多目标寻优方法。
  
  其次,供应链计划的可行方案数量巨大。例如,对连续决策变量(如订单大小或工作的开始时间),可选方案的数量实际上是无限的。对离散变量也是如此,如几个工作在机床上的加工顺序,可选的数量是一个组合大数。在这些例子中想通过简单枚举来找到最优方案是不可能的,甚至要找到一个可行的方案都很困难。在这种情况下,可应用运筹学(OPERATIONS RESEARCH)的数学方法来支持计划流程。线性规划或网络流算法能找到精确的最优解,然而,大多数组合问题只能通过启发式算法(HEURISTICS)来计算近似最优解(局部最优),这些方法的成功也取决于问题的建模方法。
  
  第三,最难的恐怕还是处理不确定性。计划通过分析与未来状况相关的数据来安排将来的活动,这些数据通过预测模型估计得到,或多或少存在预测误差。这种误差降低了产品的可用性(AVAILABILITY),因而也降低了企业提供的顾客服务水平。为了改进服务,安全库存被用来缓冲实际需求与预测之间的误差。当然,安全库存并非处理需求不确定性的唯一方法。 
需求的不确定性使计划与现实之间存在偏差,因此必须进行控制,如果偏差过大,计划就要重新修改。“滑动范围窗”(ROLLING HORIZON BASIS)的计划方法就是这种计划-控制-修改的交互实施。计划范围(如1年)被分成若干时间段(如12个月),计划在1月份开始时制定,涵盖12个月,但只在第一个时段(1月份,称为冻结时段)计划才真正被付诸实施。新的计划在第二个时段(2月份)开始时重新制定,新计划考虑了第一个时段中的实际变化,并更新未来时段的预测。新计划的范围与原先的计划重叠,但延伸了一个时段(从2月份到第二年的1月份),如此类推。在传统计划系统和APS中,这种方法是处理运作计划中不确定性的常用方法。图1给出了这种不断滑动计划范围的计划方法。
  
   
  另一种更有效地更新计划的方法是面向事件的计划(EVENT-ORIENTED PLANNING)。新计划不是在正常间隔,而是在出现重要事件时制定,例如意外销售,顾客订单变化,机器故障等等。这种方法要求计划需要的所有数据(如存货,工作进程等)被连续更新,以便在事件发生的任何时刻都有数据可用。这种方法的一个例子就是APS,它利用来自ERP系统的数据,根据事件来更新计划。APS有下面三个主要特点:

  它是整个供应链的综合计划,从企业(甚或更广泛的企业网络)的供应商到企业的顾客;它是真正优化的计划,定义了各种计划问题的选择、目标和约束,使用精确的或启发式的优化算法;它是一个层次计划系统,结合了上面两个特点:供应链最优计划既不能靠同时执行所有计划任务的单一系统形式获得(根本不切实际),也不可能靠依次执行各种计划任务取得(达不到最优)。层次计划折衷考虑了实用性和计划任务之间的独立性。 
值得注意的是,ERP系统中的传统物料需求计划(MRP)在概念上没有上面这些特点:MRP只限于生产和采购领域,不做优化,在大多数情况下甚至不考虑目标函数,它是一个运作层面的连续计划系统。
  
  层次计划的主要思想是把总的计划任务分解成许多计划模块(即局部计划),然后分配给不同的计划层,每一层都涵盖整个供应链,但层与层之间的任务不同。在最顶层只有一个模块,是企业范围的、长期的、但却是粗略综合的发展规划。层次越低,计划涵盖的供应链局部受到的限制越多,计划时间范围越短,计划也越详细。在层次计划系统的同一计划层中,供应链各局部计划之间通过上一层的综合计划来协调。图2给出了计划任务的层次结构框图。
     
  
  在层次计划中向下(向上)分解(综合)数据和结果,可以取得计划详细程度的增加(减少)。综合主要涉及:产品(组合成批),资源(组合成产能组),和时间(把分段时间组合成更长的时间段)。各计划模块被水平和垂直信息流连接在一起,上层计划模块的结果为下属计划设定了约束,而下层计划也将有关性能的信息(如成本,提前期,使用率)反馈给更高的层次。层次计划系统(HPS)的设计需要仔细定义模块结构,模块计划任务的分配,和模块间信息流的详细说明。HPS通常采用滑动范围的计划方法,在不同层次上计划间隔和范围的复杂协调方法可参阅文献[2]。面向事件的计划简化了HPS的使用,使它更加灵活,但前提条件是有一个通信系统能对有关的计划层和任务模块发出“事件”报告,此外,一个计划任务的结果也应能对其它计划任务发出事件报告。
  
  APS有三个主要优点:信息可视化,减少计划时间,和允许方便地应用优化方法。正因为如此,许多计划人员或许会担心自己的工作会被计算机所代替。然而,模型只是现实的近似,人们的知识,经验和技能仍然需要来弥合模型和现实之间的差距。计划系统无论多么高级也只是支持人们制定决策的决策支持系统。在面向事件的计划中,通常要由计划人员来决定是否需要修改计划,此外,每一个计划模块也需要由人来负责它的功能、数据和结果。 
三、供应链计划任务

  整个供应链网络由网络中每个伙伴的内部供应链组成,内部供应链包括四个主要的供应链流程,其计划任务不尽相同。采购流程包括所有为生产提供必要资源(如物料和人力等)的子流程,资源的有限能力是生产流程的输入,生产流程也由许多子流程组成。分销流程弥合了生产地点和顾客(零售商或其它进一步处理产品的企业)之间的距离,销售流程确定顾客需求和订单数量,驱动其它三个流程。
  
  供应链计划矩阵(SCP-MATRIX)根据计划范围长短和供应链流程对计划任务进行分类(如图3所示),图3给出了大多数供应链类型中常见的计划任务,任务的内容随各行业不同而不同。图中长期任务只用一个长方框,体现了战略计划内容广泛综合的特点,其他方框是矩阵输入,表示不同的流程计划任务。SCP-MATRIX可供APS开发商用来定位他们的软件模块,以便涵盖矩阵中所有的供应链计划任务。
     
  
  在图3的层次计划系统中,各计划模块之间通过信息流协调和集成,可分为水平信息流和垂直信息流:

  水平信息流:从供应链下游向上传递,包括顾客订单,销售预测,仓库补货订单,各部门之间的内部生产订单,和给供应商的采购订单,整个供应链受顾客需求驱动。计划模块之间(不仅限于相邻模块)更多信息的双向交换能够大大改进供应链性能(如“长鞭效应”),这些信息主要包括实际库存,可用能力,提前期和销售点数据。

  垂直信息流:从上层向下流动,通过高层计划的结果协调下层的从属计划,主要信息包括分配给生产车间、部门或流程的综合数据,而协调则通过能力分配和设定交付日期来取得。从下层向上流动,提供上层有关供应链性能更详细的数据,如实际成本,生产率和设备使用率,提前期等等,这些信息在上层计划中用来预测下层更详细的流程结果。 

posted on 2006-03-11 22:56  Kouwell  阅读(654)  评论(0编辑  收藏  举报

导航