了解ASPROVA系列:托盘和成品率

文章来源:APS研究
2021-10-04
作者:ASPROVA

托盘和成品率

介绍在汽车部件的部件加工等工序中,投入数量固定的托盘对整个进行工序的推进,中途生成不良品的情况下,利用自动补充生产,最初工程的投入数量就是托盘装载数量的设置方法。


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 返回来,通过「显示逆转换表达式反映到了「成品率」属性中。

这样的话,成品率变得不正确,于是就介绍了本篇说明的方法