托盘和成品率
介绍在汽车部件的部件加工等工序中,投入数量固定的托盘对整个进行工序的推进,中途生成不良品的情况下,利用自动补充生产,最初工程的投入数量就是托盘装载数量的设置方法。
01 使用自动补充生产功能的问题
使用了销售附加功能的话,按照非正式提示或者确定信息,可以自动生成制造订单。使用自动补充时需要指定批量大小,但是如果有不良品的情况下,会将批量大小反应成托盘的投入数量的问题。比如说,托盘的可投入数为100,成品率为0.8。这种情况下,制造批量MAX设置为100的话,最初的投入数会计算为125。这就超过了托盘的装载数。
▲图1 托盘和各工序的数量概念。制造批量MAX设置为最大投入数的话,最初工序的投入数量会超过可投入数量。
因此,制造批量MAX 应该考虑成品率,设置为100×0.8=80。
▲图2 托盘和各工序的数量概念。制造批量MAX设置为最大投入数的话,最初工序的投入数量会超过可投入数量。
只是这些的话,在制造BOM 设定时设定相应的批量大小就可以了,最初花一点时间,之后的运用并不是很困难。但是,成品率是天天都在变化的,制造批量大小也要随之进行经常的修改。
02 标准功能如何对应
简单来说,就是要让批量大小随着成品率来变化就好了,如果在排程软件以外有专门处理的系统,或者为此制作一个插件,就可以解决,这次我们介绍通过标准功能如何实现这一对应。
成品率本身在制造BOM表中的输出指令进行设置 (图3)。
▲图3 制造BOM 表的成品率设置。
在这里输入成品率后,品目X的「制造批量MAX」的值会随之变动就可以了。方法有几个,在这里,我们介绍,在品目表中设置托盘的最大投入数量,排程时执行的计划参数中,使用属性编辑命令设置「制造批量MAX」的方法。
03 具体的设置方法
首先,在品目类中,追加一个实数型的属性。命名为「托盘可投入数」,然后设置可投入的数量。
▲图4 在品目表中,追加托盘可投入数的属性。
然后,再在品目表中追加一个属性,设置虚拟属性,使其输出制造BOM 的成品率(图5)。这个虚拟属性表达式如下。
ME.Child[1].Bom_OutputInstruction['Out'].Yield
▲图5 在品目表中,追加自定义成品率属性。
然后,在计划参数中,分派用的计划参数(常规计划参数)前面、插入一个更新批量大小的参数(更新批量大小)。
▲图6 命令的构成。(计划参数表)
在属性编辑命令中,如图7 制造批MAX和制造批量MIN设置为,从托盘的投入数乘以成品率 (虚拟属性),考虑了成品率以后的批量大小。
▲图7 属性编辑命令中,设置品目的制造数量MIN和制造数量MAX中可以反映数值。
虽然使用了虚拟属性,本质上来说不用也可以。在品目属性编辑表达式中,设置一下的内容也可以。这里为了更好的让大家理解,特意用了虚拟属性。
ME.ManufacturingOrderQtyMax=ME.Child[1].Bom_OutputIn
struction['Out'].Yield*ME.PalletSize
04 试着用用看
接下来,实际上来试试看这个设置。数据knowledge006(CN).ar4 中,从销售预测表自动生产销售订单。
▲图8 销售预测表。从这里自动生成销售订单。
在没有成品率的状态下排程的话,结果如图9。图棒字符串的第2行表示工作的制造数量。
▲图9 没有设置成品率的状态下的排程结果
把成品率设置为0.8,用常规计划参数进行排程后的结果如图10。制造批量MAX 为100,然后再考虑成品率,第一工序的制造数量就为125,超过了托盘的可投入数量。
▲图10 设置成品率后,用常规计划参数排程后的资源甘特图。第一工序的制造数量超过了托盘的承载量。
用「更新批量大小后排程」的计划参数(图5)进行排程,结果如图11,第一工序的制造数量正好是托盘的承载量。
▲图11 设置了成品率后用更新批量大小后排程的结果
排程后看品目表,会发现,制造批量大小为考虑了成品率以后的数值。
▲图12 排程后的品目表。制造批量从100变成了80。
附录 笔者尝试的另一个方法:
成品率的显示逆转换表达式的使用方法
这个问题的处理方法还有其他办法。笔者实际上在这个方法之前,在制造BOM 表的数据表输出指令的「成品率」属性定义 (图3)中设置了「显示逆转换表达式」,输入「成品率」时,最终品目的制造批量MAX 中考虑成品率直接反映出来的想法。这个可以实现的话,排程时,计划参数中不用属性编辑命令不设置制造批量也可以。
「显示逆转换表达式」中如下设置。
HOLDER.FinalItem.ManufacturingOrderQtyMax=HOLDER.FinalItem.PalletSize*FindNumberL(INPUT,1)--------- (式1)
▲图13 打开制造BOM 表中数据表输出指令的属性定义定义。在数据表输出指令上点右键。
本以为这样应该可以实现,「成品率」设置为0.8 后,自动变成了80 (图14)。这个应该是制造批量MAX 中应该输入的数值。
▲图 14 成品率中输入0.8,实际上的数值变为了制造批量值80。
实际上,式1中使用=输入了代入式,这个代入运算符=本身会返回代入的数值。这个与C语言等同样规格。因此,不是实际输入的数值「0.8」,而是制造批量MAX 中代入得数值80 返回来,通过「显示逆转换表达式反映到了「成品率」属性中。
这样的话,成品率变得不正确,于是就介绍了本篇说明的方法