上一回我们没说重叠那个Job类型是咋回事,这次我们弹一弹。
整个生产可能要经过多道工序,比如要经过两道工序10,20,我要生产1000个产品,在一般情况下,如果没有设定转移批次(插一句,AX的中文翻译成转移批处理,在下不敢苟同,虽然俺是生产模块的白痴...)的话,这1000个产品要在完全完成10工序后才转到20工序,这样是顺序执行生产的,这样显然不符合某些生产场景,一般情况下会在10工序完成一部分比如100个就转移到20工序,并行提高生产效率,让20工序干等着多浪费事?
OK,我们看一下在AX里如何实现重叠。
在工艺路线或者生产订单的工艺路线我们都可以对工序进行更改,工艺路线对工序的一些定义只是基础数据,真实要执行的工序数据是以在生产订单的工艺路线为准的,这里的讨论以生产订单->工艺路线为准。
假设我们要生产1000个产品,生产订单有两道工序10和20,首先不使用重叠,其在生产工艺路线时间选项卡的设定如下:
10:
一个小时可以生产60个产品,运输时间为1小时,之后的排队时间为1小时。
20:
一小时可以生产40个,之前的排队时间为1小时,设置时间为1小时。
这时候我们做作业级排产,看一下产生的作业情况。
我们可以看到20工序是在10工序完成之后才开始的,并没有重叠。
假设我们要在10工序生产完1个后就马上转入到20工序,应该怎么设置那?
其实这个很简单,我们需要首先介绍一下 工艺路线 时间 选项卡里的 转移批处理和重叠数量.
转移批处理:在连续的工作中心之间转移的数量。
重叠数量:在可以开始下一道工序前要生产的数量。
这两个子字段很好理解,转移批处理就是我一次可以从10转移到20多少个产品用来加工,重叠数量就是我要在10工序生产多少个以后才能从10工序转移产品到20工序,乍一听重叠数量好像有些不可思议,我生产完一个就开始移动呗,这有啥好说的,嗯,是的,在正常情况下确实可以这么做,我们先把上面的例子做完,然后再详细所以下为啥要加这么个重叠数量,并且不设置转移批处理还不让编辑。。。
OK,我们设置10工序的转移批处理设置为1,这时重叠数量自动设为1,如下图所示:
这时我们再做作业级排产,并查看产生的Job,如下图所示:
我们可以看到20工序并没有等到10工序全部完成才开工,而是在重叠生产完1个后就运输,然后进入20工序。
OK,到目前为止一切顺利,万事大吉,可那个重叠数量貌似还没有用武之地。重叠数量可以自己设一个数值,在完成多少个后才开始第二道工序的生产。如果20工序比10工序加工的快,也就是 处理数量字段设置的比10工序大,就会有一个问题,如果重叠数量过小,也就是10工序完成的数量很少第二道工序就开工了,就会出现一种情况,那就是20工序已经完成了,10工序还没完成,这显然是有些不合常理的。所以如果20工序比10工序快,10工序的重叠数量必须设置得足够大,也就是10工序生产的时间要足够长才开始转移,让20工序多等会,否则就出现20工序先于10工序完成的情况了。
我们修改20工序的处理数量为100,大于10工序的60,其余保持不变,重叠数量依然为1,再运行作业级排产看看效果,我们收到了如下的提示:
在 估计 的时候,它已经帮忙把重叠数量从1改成160.60了,作业情况如下:
AX帮你算了一把,如果按照重叠数量为1去计算,也就是10做完1个后,20就开工,这样算下来,20就会先于10完工了,它意识到我们设置的有问题帮我们改正了。
它是怎么算出160.6这么个稀奇古怪的数字那,我们以描述它的计算逻辑结束本文吧。
1. 10工序处理一件产品的时间 0.016667 小时
1. 10工序处理全部产品的时间 16.666667小时
2. 20工序处理全部产品的时间 1000/100 = 10小时
3.20工序完成全部产品需要的时间 = 10工序的运输时间(1小时)+10工序的之后排队时间(1小时)+20工序的之前排队时间(1小时)+20工序的设置时间(1小时)+20工序的处理时间(10小时)=14小时
4. 20 工序处理 转移批处理 数量需要的时间 1/100 = 0.01小时
5.如果 20工序完成全部产品需要的时间 小于 10工序处理全部产品的时间 的时间,也就是说20工序会先于10工序完成,则重叠数量按如下逻辑计算:
重叠数量 = (10工序处理完全部产品的时间+20 工序处理 转移批处理 数量需要的时间-20工序完成全部产品需要的时间)/10工序处理一件产品的时间
= (16.666667+0.01-14)/0.016667
= 160.596808.
OK,今天就弹到这里了,有空接着弹。。。