托盤和成品率
介紹在汽車部件的部件加工等工序中,投入數量固定的托盤對整個進行工序的推進,中途生成不良品的情況下,利用自動補充生產,最初工程的投入數量就是托盤裝載數量的設置方法。
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 返回來,通過「顯示逆轉換表達式反映到了「成品率」屬性中。
這樣的話,成品率變得不正確,于是就介紹了本篇說明的方法