タスクシーケンスを作成

概要と主要な概念

[タスクシーケンスを作成]アクティビティは空のタスクシーケンスを作成し、それをタスク実行者に送付します。タスクシーケンスとは、タスク実行者(オペレーターやトランスポーターなど)に割り当てることができる一連のアクション(タスク)です。

すべてのタスクシーケンスの開始時に[タスクシーケンスを作成]アクティビティを使用する必要はありません。処理フロー内のタスクシーケンスアクティビティのいずれかを使用すると、シミュレーションが実行されるたびにタスクシーケンスが自動で作成されます。つまり、[タスクシーケンスを作成]は技術的には必要ありません。

それでも、次のとおり[タスクシーケンスを作成]アクティビティを使う理由がいくつかあります。

  • 一部のタスクシーケンスを他よりも優先するため。 デフォルトでは、タスク実行者はタスクシーケンスとアクティビティを受信した順に完了します(先入れ先出し)。ただし、タスク実行者がより重要なタスクを最初に完了させることもできます。[タスクシーケンスを作成]アクティビティの[優先度]プロパティを使用すると、優先度の低いタスクシーケンスの前に優先度の高いタスクシーケンスからタスク実行者に処理させることができます。[プリエンプト]メニューを使用して、優先度の高いタスクのリクエストでタスク実行者に現在のタスクシーケンスを停止させ、プリエンプトするタスクシーケンスを実行させる必要があるかを判断することもできます。
  • タスク実行者が現在のタスクシーケンスを停止して別のタスクを処理しないようにするため。 独自のタスクシーケンスアクティビティを使用すると、新しいタスクシーケンスが作成されて各タスクに個別に送付されます。そのため、別のタスクシーケンスがアクティビティのタスク間にあるタスクシーケンスに割り込む余地が残ります。[タスクシーケンスを作成]アクティビティを使用すると、タスク実行者は別のタスクシーケンスを処理する前にタスクシーケンス全体を終了する必要があります。
  • タスクシーケンスを作成し、後にシミュレーションの実行で送付するため。 タスクシーケンス全体を作成できますが、直ちに送付する代わりにグローバルリストにプッシュして、タスク実行者にリストからプルさせることができます。割り当てられたタスク実行者/ディスパッチャーが指定されていない[タスクシーケンスを作成]アクティビティを使用すると、タスクシーケンスを送付せずに構築できます。

[タスクシーケンスを作成]アクティビティを使用すると、基本的に一連のタスクを1つの単位にまとめているため、タスク実行者はそのタスクのグループ全体が終了するまで何もしません。タスク実行者がタスクシーケンス内のすべてのタスクを完了すると、タスクシーケンスは削除されます。

コネクター

[タスクシーケンスを作成]アクティビティでは、コネクターを1つのみ使用できます。詳細については、「アクティビティを追加および接続する」を参照してください。

プロパティ

次の画像は、[タスクシーケンスを作成]アクティビティのプロパティを示しています。

これらの各プロパティについては、次のセクションで説明します。

名前

アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。

フォント

フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。

統計

統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。

タスク実行者/ディスパッチャー

タスク実行者/ディスパッチャー]ボックスを使用して、タスクシーケンスを割り当てるタスク実行者またはディスパッチャーを選択します。タスクシーケンスを作成しても送付しない場合は、 ボタンをクリックして、このボックスに[なし]と表示されるようにします。後にタスクシーケンスを送付する場合は、削除ボタンをクリックし、[タスクシーケンスを送付]アクティビティを使用して処理フロー後のタスク実行者にタスクシーケンスを割り当てます。このアクティビティの詳細については、「タスクシーケンスを送付」を参照してください。

優先度

優先度]ボックスは、タスクシーケンスの優先度を設定します。デフォルトでは、タスク実行者はタスクシーケンスとアクティビティを受信した順に完了します(先入れ先出し)。ただし、タスク実行者がより重要なタスクを最初に完了させることもできます。[優先度]ボックスを使用すると、優先度の低いタスクシーケンスの前に優先度の高いタスクシーケンスからタスク実行者に処理させることができます。

デフォルトでは、すべてのタスクシーケンスには優先度0が割り当てられますが、[優先度]ボックスで任意の数値を入力できます。デフォルトでは、タスク実行者は優先度の高いタスクシーケンスをまず実行するために[キュー方法]プロパティでタスクシーケンスの優先順位を設定します。たとえば、優先度1と優先度2のタスクシーケンスを作成するとします。両方のタスクシーケンスがタスク実行者のキュー内で次に実行されるのを待っている場合、タスク実行者は優先度2のタスクシーケンスを最初に処理します。

プリエンプト

プリエンプト]メニューは、タスクシーケンスのプリエンプト値を設定します。[プリエンプト]は、タスク実行者が現在のタスクシーケンスを停止して、プリエンプトするタスクシーケンスを処理する場合を指します。[プリエンプト]メニューを使用して、プリエンプトの有無とその方法を判断できます。

たとえば、オペレーターAの最も重要な責務は機械を修理することです。しかし、修理するマシンがない場合は、モデル全体で材料を輸送する必要もあります。オペレーターAがフローアイテムをどこかに輸送している間にマシンが故障した場合、オペレーターは行っている作業を止め、輸送オペレーションを終了する代わりにマシンを修理します。モデル内でこの動作をシミュレーションするには、オペレーターのマシンを修理するタスクシーケンスが、必ずフローアイテムを輸送するタスクシーケンスをプリエンプトするように設定する必要があります。

プリエンプト]メニューには次のオプションがあります。

  • プリエンプトしない - 現在のタスクシーケンスは他のタスクシーケンスをプリエンプトしません。
  • プリエンプト - 現在のタスクシーケンスは、アクティブなタスクシーケンスをプリエンプトします。アクティブなタスクシーケンス(プリエンプトされているもの)はタスク実行者のキューに戻り、後に終了します。
  • プリエンプト、アクティブを中断 - 現在のタスクシーケンスはアクティブなタスクシーケンスをプリエンプトします。アクティブなタスクシーケンス(プリエンプトされているもの)は削除され、後で終了しません。
  • プリエンプト、すべてを中断 - 現在のタスクシーケンスは、アクティブなタスクシーケンスをプリエンプトします。タスク実行者のキュー内のアクティブなタスクシーケンスと他のすべてのタスクシーケンスは削除され、後で終了しません。

割り当て先

指定したラベルやノードの参照を、作成したタスクシーケンスに割り当てます。詳細については、「共通プロパティ」の「割り当て先」セクションを参照してください。