• 生产模块之乱弹(二)


    上一回我们没说重叠那个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,今天就弹到这里了,有空接着弹。。。

  • 相关阅读:
    怎样解决Script error报错问题
    怎样监听页面加载完成事件
    怎样推迟某个函数的执行
    怎样获取网页加载到现在的时间
    怎样获取用户当前选中的文本
    怎样调出打印界面
    怎样取余或取整
    怎样让元素节点滚动到特定位置
    怎样将页面滚动至特定位置
    怎样移动浏览器窗口位置
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/1246992.html
Copyright © 2020-2023  润新知