イベントベースのスケジューリングの仕組み
スケジューラでは、提供された全ての条件とデータを前提として予想される動作のシミュレーションを作成します。このシミュレーションを実行する際、スケジューラは任意の時間に発生する全てのイベントを表示します。その後、別のイベントが発生する次の時点へと進みます。このようにして、スケジュールを実行するたびに、全ての需要(ジョブ、見積、生産計画、MPS オーダ、および APS 計画オーダ)が再スケジュールされます。
スケジューリング実行が完了すると、スケジューラでは、シミュレートしたスケジュールの評価を要約した出力データが生成されます。たとえば、処理が 1 時間アイドル状態であった場合、サマリ情報 によってその理由(たとえば、要求資源がビジーであった場合など)を判断することができます。その後、前のジョブの開始日を調整することにより、資源を早く解放するなど、データを調整してスケジュールをさらに効率の良いものにすることができます。スケジューラの結果が納得できるものであれば、資源差立一覧を印刷し、スケジュールを実行する工程担当者にそれを渡すことができます。
スケジューラのトレースログについて
トレースログには、スケジューラーで処理する全てのイベントが記録されます(工程管理パラメタフォームでトレースログが「拡張」 [詳細レベル] で記録するように設定されている場合)。日常のスケジューラ処理では、トレースログはトラブルシューティングにのみ役立ちます。しかし、スケジュール内の各イベントがスケジューラでどのように処理されるかを段階的に示すために効果的です。そのため、このヘルプトピックの例で使用するイベントは、トレースログでの表示と似た形式で示されています(この例では、わかりやすいように単純化しています)。
イベント処理の例
この単純な例では、スケジューラでのイベントのビューを吟味します。以下のことを仮定します。
- 品目 BK-110 には 1 つの作業 Oper110 から成る作業手順があります。
- 作業 Oper110 には、資源グループ ST1 の資源が必要です。
- ST1 には 1 つの資源 Crew1 が含まれます。資源のシフト内時間は、例で示した時間です。
- 作業 Oper110 の作業時間は 15 分です。作業時間とは、作業上の負荷を完了するための時間です。作業で定義されているスケジューラルールにより、これが特定の固定時間を表す場合も、時間/個数を表す場合もあります。この例では、作業時間は時間/個数を表します。
- BK-110 の Job110-0000 は、2004 年 2 月 27 日の午前 8:00 に数量 3 に対して発行されます。
- スケジュールは 2/27/2004 の 8:00 a.m に開始されます。
イベント | 説明 |
---|---|
SCHEDULE TIME ADVANCE TO 02/27/2004 8:00:00 | スケジューラは、最初のイベントが発生する時間に移動します(スケジュール自体はそれよりも前に開始されるように設定されている場合もあります)。 |
02/27/2004 8:00:00
Job110-0000 ジョブのジョブ到着イベントの開始 Job110-0000 ジョブのロード発行 ロード 1、サイズ 3 の作成 Oper110 作業、最初に選択 |
ジョブが発行されると、スケジューラはジョブ数量を負荷というユニットに入れます。ほとんどの場合、負荷には全ジョブ数量が含まれます(場合によっては、ジョブ数量を複数の負荷に分割することもあります)。作業手順の最初のジョブ作業が識別されます。 |
02/27/2004 8:00:00
作業イベントの開始 Oper110 作業の処理、Job110-0000 ジョブのロード 1 作業の移動終了のスケジュール 02/27/2004 8:00:00 |
この作業に移動時間が定義されていた場合は、スケジューラはここでその時間を計算します。この例では、作業には移動時間が定義されていません。 |
02/27/2004 8:00:00
作業イベントの開始 Oper110 作業の処理、Job110-0000 ジョブのロード 1 ST1 資源グループの要求 ST1 グループから資源 Crew1 の要求 割当未完了 |
スケジューラは、資源が要求キューで保留要求があるかどうかをチェックできるまで、最初の作業イベントでの資源の割当の遅延を強制します。要求は、資源の要求キューに入れられます。
要求キューの詳細については、「スケジューラルールの使用」 を参照してください。 この遅延は、低優先度の作業と同時に高優先度の作業が到着する可能性に対処するもので、より重要な作業が資源を割り当てることができるようにします。 |
02/27/2004 8:00:00
Crew1 資源の資源フリーチェックイベントの開始 Oper110 作業の処理、Job110-0000 ジョブのロード 1 ST1 資源から 1 ユニット割当 ST1 資源グループの要求の取消 ST1 資源グループからの Crew1 資源の要求の取消 ST1 グループから Crew1 資源の割当 割当完了 設定必要なし、またはゼロ期間 作業のサービス終了のスケジュール 02/27/2004 8:45:00 |
Crew1 資源は、その要求キューで保留要求がないかをチェックし、OperBK001 の負荷からの要求を検出します。
スケジューラは ST1 資源グループの Crew1 資源を割り当て、作業が完了する時間を計算します。 |
SCHEDULE TIME ADVANCE TO 02/27/2004 8:45:00 | スケジューラは、次のイベントが発生する時間へと移動します。 |
02/27/2004 8:45:00
作業イベントの開始 Oper110 作業の処理、Job110-0000 ジョブのロード 1 ST1 資源グループから 1 ユニットの解除 ST1 グループから Crew1 資源の解除 Crew1 資源はアイドル 作業のクール終了のスケジュール 02/27/2004 8:45:00 |
作業が完了し、Crew1 資源を解放します。
Crew1 資源は、アイドルになり、その他の作業で割り当てることができるようになります。 この作業に終了時間(冷却時間)が定義されていた場合は、スケジューラはここでその時間を計算します。この例では、作業後の追加処理はありません。 |
02/27/2004 8:45:00 START OF RESOURCE FREE CHECK EVENT FOR RESOURCE Crew1 REQUEST QUEUE EMPTY | 解放された資源は、それがビジーであったときにほかの作業による要求があったかどうかをチェックします。この例では、資源に対する保留要求はありません。 |
02/27/2004 8:45:00
作業イベントの開始 Oper110 作業の処理、Job110-0000 ジョブのロード 1 次の作業の選択で、処理の終了がみつかりました END OF PROCESS FOR LOAD 1 OF JOB Job110-0000 ジョブの ロード 1 の処理終了 残ロード 0 Job110-0000 ジョブ完了 |
各作業は、作業手順内の次の作業を指定します。この例では、スケジューラで次の作業は検出されないため、ジョブが完了されます。 |
処理対象のジョブがないため、スケジュール停止
スケジュール終了 02/27/2004 8:45:00 |
これでスケジューラが完了しました。 |