リスケジュールのロジックの中で、リスト生成フェーズにてオーダテーブルからオーダリストを生成するのがオーダ収集コマンドであり、作業テーブルから作業リストを生成するのが作業収集コマンドであり、いずれも親の計画パラメタに保存されます。
コマンド実行フェーズで、オーダ展開コマンドが作業入力指図と作業出力指図を生成することで所要量展開を行い、オーダ割付/紐付けコマンドが作業使用指図を生成することで資源に対する割付を行います。
-
インドネシアの生産スケジューラーまとめ
インドネシアの製造業界においてMESやIoT導入により生産情報が自動的に取得できるようになれば、それを生かすための未来の生産シミュレーションというニーズが発生するのが自然であり、日本発生産スケジューラーAsprovaの活躍の場は多いと考えます。
続きを見る
計画作成の流れ
オーダリストまたは作業リスト生成フェーズ
オーダテーブルからオーダリストを生成するのがオーダ収集で、作業テーブルから作業リストを生成するのが作業収集であり、いずれも親の計画パラメタに保存されます。
- オーダ収集(Prepare for assignment):オーダテーブルからオーダリストに収集
- オーダ絞込み(Filter orders):オーダリストから絞込み
- 割付け解除(Unassign all):作業リストの作業を未割付
作業絞込みは親の計画パラメタの作業絞込み条件式に設定します。
- 作業収集(Upload operations):作業テーブルから作業リストに収集
- 作業絞込み(Filter operations):作業リストから絞込み
- 割付け解除(Unassign all):作業リストの作業を未割付
デフォルト計画パラメタでオーダ割付/紐付けコマンドの前に「作業収集」コマンドが必要ないのは、オーダ展開コマンドで生成された作業が、親のコマンドオブジェクトであるデフォルト計画パラメタの中の作業リストに既に格納されており、再度作業テーブルから取得し直す必要はないからです。
コマンド実行フェーズ
オーダ展開(Explode orders)では、自動補充機能によってオーダリストを満たすように製造BOMを参照しながら、受注オーダの作業入力指図の不足分の製造オーダ(MPS)を補充オーダ(子)として生成し、MPSの作業入力指図の不足分の製造オーダを補充オーダ(孫)として生成します。
そしてオーダリストに格納されている登録オーダと補充オーダに対して作業入力指図と作業出力指図が生成します。
オーダ間の紐付けは、自オーダの初工程作業(作業入力指図)と前工程のオーダの最終工程作業(作業出力指図)であり、自動補充で生成された補充オーダ、または自動補充はないが製造BOMで繋がりのある製造オーダ同士が紐付けられます。
- BOMを参照し自動補充で補充オーダを生成
- オーダリストから作業リストを生成(作業入力指図と作業出力指図)
- オーダ間の紐付け
オーダ割付/紐付けにて、ディスパッチングルールと資源評価のプロパティを見ながら作業使用指図を生成し、作業リストから作業割付けしますが、仮割付で一旦すべての候補資源に割り付けた後、実割付で資源評価から最も評価の高い資源に割付け直します。
- オーダ割付/紐付け(Assign/peg orders)で作業リストから作業使用指図を生成し割付け
オーダ間の紐付がオーダ展開時とオーダ割付/紐付け時の2回行うのは、割付結果を元に再度紐付け直す必要が出るケース(在庫MINがある場合は在庫MIN分紐付けを左にずらす)があるからです。
割付解除の意味
オーダー展開で作業を生成して、オーダー割付・紐付けで作業を割付けることで作業を生成した後に、計画の手修正(数量を修正など)や実績入力など作業の更新(パラメータに値を追加)があった場合、作業ステータスが「割付済み」のまま再度リスケジュールしても、オーダ展開コマンドはステータスが「割付済み」の作業には何もしないので前回と同じ結果になるだけです。
よって一旦割付解除により作業のステータスを「未割付」に戻してから、オーダ展開やオーダ割付/紐付けにより更新を反映させたスケジュールを作成します。
つまり割付解除は作業に入力された実績(実績数量・実績取得日など)を削除するのではなく、入力された実績に基づいて割付直すために必要なものです。
- オーダ展開でオーダリスト中のオーダの作業の割付フラグが「割付済み」であれば作業は生成しないので、オーダ展開の前に必ず割付け解除が必要。
- オーダ割付・紐付けで作業使用指図が生成され、ステータスが「割付済み」の作業が出来上がる。
- 作業に対して実績数量や実績取得日を入力するが、入力しただけではスケジュールは動かない。
- 作業収集と作業絞込で作業リストを生成し、割付解除により作業のステータスを「未割付」に戻す。
- オーダ割付・紐付けにより、3で入力した実績を反映させたスケジュールになる。
オーダ・作業・タスク・指図の関係
MTO(Make to Order)生産では確定受注がそのまま所要となりますが、MTS(Make to Stock)での確定受注はあくまでも出荷のためであり、MRPの所要として内示情報を別途インポートする必要があります。
全体バックワードの後、フォワードで割付直し
バックワードで割り付けた作業の開始日時を元にフォワードで朝一から割付け直しますが、複合計画パラメタでは「オーダリストからオーダ展開して作業作成」「作業リストを絞込み作業割付を行う」という子計画パラメタの階層構造をあわせる必要があります。
StartOfNextDay(ME.製造開始日時,0)の意味は「製造開始日時の0日後(NextDay)の開始(Start)」つまり割り付いている作業の製造開始日時の始業時刻を返す、つまり「バックワードで割り付けた作業全体をフォワードで割付直すが、始業時刻より前に割りついてはダメ=その日の朝一番から割り付ける」ということになります。
ちなみにStartOfNextMonthなら「製造開始日時の0ヶ月後の開始」となり月初日になります。
また朝一で開始するが体操時間15分間バッファを置きたい場合は、AdvanceAlongResourceWorkingTime(ME.主資源,StartOfNextDay(ME.製造開始日時,0),15M)のようにずらします。
そしてフォワードで割り付け直すときは、バックワードで割り付けた作業のうち開始日時の早いものから順番に割り付けていきます。
全体フォワードの後、前工程のみバックワード
生産工程にボトルネックが存在する場合、フォワード割付を行うと前工程に待ち時間が発生するので、前工程のみバックワードで割付直します。
作業絞込みで前工程のみに絞ってから割付解除を行うことで、後工程の作業まで割付解除されることを防いでいます。
製造指図と投入予定
生産管理システムのMRPで所要量展開を行なうことにより製造オーダと購買オーダが生成され、材料や仕掛品の在庫を引当てた上で不足分の補充オーダを生成し、オーダから指図を発行しますが、計画外で直接実績を上げる場合もシステム内で製造指図が生成されます。
そして製造指図に対して製造実績が1対N(分割実績の場合)で指図NOで紐付きユニークな製造実績NOが付番され、1つの製造実績NOに対して良品と不良品の出来高が生成され、作業実績は製造出来高に対して1対Nで製造実績NOで紐付きます。
スケジューラーのオーダ間の紐付き
MRPの所要量展開で製造オーダと購買オーダが生成されるのはスケジューラーでも同じですが、オーダは入力指図・使用指図・出力指図から構成される作業を生成し、同一オーダ内であれば自工程作業の出力指図と後工程作業の入力指図を紐付け、オーダ間の紐付きであれば自オーダの最終工程の出力指図と後オーダの初工程の入力指図を紐付けます。
これはスケジューラー特有の「オーダに順番を付けて並べる=オーダ同士を紐付けて資源に割り付ける」という機能を実現するためのもので、オーダ(MPS)からオーダリストを生成し、オーダリストから作業リストを生成し、オーダ納期のFIFOで紐付けを行ないますが、材料在庫のあるオーダから先に紐付けて割り付けるなど、紐付けを行なう際のソート式を記述することによって順番を操作することも可能です。
オーダ間の紐付けが行なわれるタイミング
スケジューリングロジックの大まかな流れは以下の2通りありますが、この中でオーダ間の紐付けは「オーダ展開」と「オーダ割付/紐付け」で2回行なわれます。
- オーダ収集⇒オーダ絞込⇒割付解除⇒オーダ展開⇒オーダ割付/紐付け
- オーダテーブルからオーダを収集し親の計画パラメタにオーダリスト生成
- 作業を生成し親の計画パラメタに作業リストを生成
- 作業収集⇒作業絞込⇒割付解除⇒オーダ割付/紐付け
- 作業テーブルから作業を収集し親の計画パラメタに作業リストを生成
これは製造BOMにある在庫MINを考慮したスケジュールを作成する場合に、在庫MINを参照するのがオーダ割付/紐付け時であることから
- オーダ展開時にオーダの紐付け(原料の過不足はこの時点判明する)
- オーダ割付/紐付け時に製造BOMの在庫MINを参照して紐付け直し
という2段階の処理ロジックだからです。
紐付けオブジェクトテーブルと作業テーブル
このようにリスケジュールの結果として生成されるオーダは、紐付けオブジェクトクラスによって作業同士の紐付きに、さらに出力指図と入力指図の紐付きとして、紐付けオブジェクトテーブル(Peg table)という形に実体化されています。
オーダ展開の中では
- オーダから作業(入力指図と出力指図)を生成
- 紐付オブジェクトで紐付け
という順番で処理が実行されますが、これは品目ごとに作業入力指図と作業出力指図のリストを用意し、そのリストをソートして、前から紐付けていきます。
品目クラスの「紐付け時作業入力指図ソート式」「紐付け時作業出力指図ソート式」は、このリストのソート方法を指定するものであり、オーダの納期のFIFOで行なわれる紐付け順番を変更できます。
紐付けオブジェクトテーブルは作業出力指図と作業入力指図のマッピングの集合体であり、オーダごとに1対Nに紐付く材料や仕掛品を参照するのに適していますが、作業テーブルは作業使用指図により割付られた資源ごとに作業を集計するのに適しています。
計画は川上から実績は川下から
オーダーが1対1に紐付く場合にロットまとめが無効になるのは、工程ごとにロットサイズが異なると、オーダーの紐付きが1対Nにならざるを得ないという単純な理由です。受注に基づく計画に対して製造し実績を上げないと、現場が独自の裁量で生産を行い、営業と製造が分断されてしまう、ということをバリ島での家具製作の実体験に基づいて力説したことがありますが(計画と実績をリンクさせる製造指図の必要性)、この場合に予定に満たない実績との差異が発生します。
バリ島での家具製作のような受注生産では、差異分をシッピング前になんとしてでも製作して受注数量を満たす必要がありますが、受注に基づいて作成した繰り返し生産の計画(オーダーのカタマリ)に対する遅れは、必ずしもオーダー(指図)単位で挽回する必要はなく、遅れのまま完了させて後ろのオーダーで救援させることもあります。
MRPとスケジューラーの違いといえば、無限能力山積みと有限能力山崩しの違いが有名ですが、計画に対する実績の差異の扱いという点で見た場合、MRPは基準生産計画の数量ありきで、製造オーダーの数量は基準生産計画の数量を満たすように決まるのに対して、スケジューラーは実績に合わせて後工程のオーダー数量を自動調整する機能があります。
MRPは「プッシュ式」と言われるように、大元になる製品の完成日ベースの基準生産計画が前提条件であり、実績に応じた計画数量の事後調整は効きませんが、スケジューラーは事後の実績に合わせて計画数量を自動調整することが可能です。これは川上(受注)から生成された製造オーダー数量を、川下(初工程)から実績入力することで上書きしていくと言えます。
これが可能な理由は2つあります。
スケジューラーには所要(MPS)に対するオーダーの生成(自動補充)の仕方を、MRPのようなロットまとめで生成する方法以外に、受注からの紐付きを維持したままオーダーを生成する製番管理のMRP機能があり、オーダーが1対1に紐付くことにより、実績数量により後工程の計画数量を調整し、これは仕掛品に1対1の自動補充設定した場合に機能します。
もう一つの理由はスケジューラーの実績は作業単位に入れられますが、すべての作業は数量固定レベルを持っており(実績の入力・修正が作業とオーダのステータスに与える影響)、実績の入った数量固定レベルの高い作業が、同一オーダー内の前後作業の数量を決めます。これはマスタの構成を1製品複数工程(1オーダー複数作業)にした場合に機能します。
1対1紐付けとロットまとめの矛盾
スケジューラーのマスタの作り方は大きく以下の2種類に分かれます。
- 1品目1工程(1オーダー1作業)
- 1品目複数工程(1オーダー複数作業)
生産管理システムでは実績を入れるのはオーダー(製造指図)単位であり、スケジューラーでもオーダー単位に実績を入れられますが、通常は工程展開した作業単位です。ただしマスタを1品目1工程に設定すると1オーダー1作業が生成されますので、結果的に両者の実績入力単位は同じになります。
仕掛品の在庫を加味するか否かは、仕掛品の自動補充設定の有無(在庫引当の有無)によるのであって、マスタの作り方とは無関係です。
ただ前工程の作業に対する実績を後工程の計画数量に反映させるには、マスタが1品目複数工程で同一オーダの中で作業が紐付いている場合か、もしくはマスタが1品目1工程で自動補充が1対1の場合です。
自動補充が1対Nの場合は前工程の計画数量を満たすように、後工程の別のオーダと紐付くため、実績で計画数量を上書きすることはできません。
前工程の実績数量を後工程の計画数量に反映させるわけですから、フォワードの計画作成時にのみ有効です。
1対1に紐付けるということは前後どちらかの工程のロットサイズに合わせるということであり、この場合ロットサイズの設定が無効化されます。仕掛品に異なるロットサイズを設定すると必ず1対Nに紐付かざるを得ず、この場合実績数量で前後工程を修正するという考え方が成立しません。
予実差異を後工程の計画数量に反映させるには、オーダーが他の受注に紐付くオーダーと紐付かないことが前提になります。