これまでのチュートリアルでは基本的に、タスク実行者がモデルで3Dオブジェクトをロード/アンロードするために使用する標準的な輸送ロジックを再作成しました。3Dオブジェクトだけで利用可能なロジックを使用すれば済むため、このロジックを作成するための処理フローを作成する必要はありませんでした。
処理フローの真の威力は、タスク実行者用のカスタムタスクシーケンスを作成する場合に発揮されます。処理フローを使用すると、シミュレーションモデル用のカスタムタスクシーケンスが簡単に作成できます。このチュートリアルタスクでは、前のチュートリアルタスクで作成したベーシックなタスクシーケンスをカスタマイズして、カスタムロジックを追加します。すべてのアイテムが処理され、輸送された後に、オペレーターがサプライクローゼットからクリーニングサプライを取り出し、プロセッサをクリーニングするカスタムタスクシーケンスを作成します。
作業が完了すると、シミュレーションモデルは次のような画像になり、機能します。
このステップでは、タスクシーケンスを編集して少し複雑にします。フローアイテムを次の目的地に輸送し終わった後、オペレーターがプロセッサをクリーニングするタスクアクティビティを追加します。
ライブラリで利用可能な処理フローアクティビティを確認すると、ロジック関数の選択肢が数多くあることがわかりますが、これらのアクティビティは、FlexSimで利用可能な最も一般的なロジック関数のタイプに過ぎません。[カスタムコード]アクティビティを使用して、FlexSimですでに利用可能な、他の事前プログラム済みロジックを実装できます。また、必要に応じてカスタムFlexScriptコードも作成できます。このステップでは、[カスタムコード]アクティビティを使用して、クリーニングの前後にプロセッサの電源をオン/オフします。
ここでは、新しいタスクアクティビティの追加と名前の変更だけを行います。後のステップでプロパティを編集します。作業が完了すると、処理フローは次の画像のようになります。
アクティビティを追加するには:
アクティビティ | 新しい名前 |
---|---|
最初のカスタムコード | カスタムコード:ポートを閉じる |
最初の移動 | サプライクローゼットに移動 |
取得 | クリーニングサプライを取得 |
2回目の移動 | プロセッサに移動 |
遅延 | 遅延:プロセッサを消去 |
2つ目のカスタムコード | カスタムコード:オープンポート |
3回目の移動 | サプライクローゼットに移動 |
リリース | リリース:サプライを戻す |
リソース | リソース:クリーニングサプライ |
終了後、処理フローがこのステップの冒頭に表示した画像のようになることを確認してください。
このステップでは、タスクシーケンスに追加したすべての新しいアクティビティのプロパティを編集します。この処理フローのアクティビティが機能する方法の概要を、次のテーブルに示します。
アクティビティ | 説明 |
---|---|
サブフローを開始 | プロセッサで生成されるすべての新しいタスクはトークンを作成し、処理フローのここから開始されます。 |
カスタムコード:ポートを閉じる | このアクティビティでは、プロセッサのポートを閉じて、クリーニングが完了するまでフローアイテムの受取を停止します。 |
アイテムをロード | プロセッサのセンターポートに接続されたオペレーターは、フローアイテムをロードします。 |
アイテムをアンロード | オペレーターは、フローアイテムをプロセッサの出力ポートに接続された下流の固定リソースに移動します。 |
サプライクローゼットに移動 | オペレーターはサプライクローゼットに移動します。 |
クリーニングサプライを取得 | オペレーターは、サプライクローゼットからクリーニング用品を取り出します。 |
プロセッサに移動 | オペレーターはプロセッサに戻ります。 |
遅延:プロセッサを消去 | このアクティビティは、プロセッサのクリーニングに要する時間を表します。 |
サプライクローゼットに移動 | オペレーターはサプライクローゼットに戻ります。 |
リリース:サプライを戻す | オペレーターは、サプライクローゼットにサプライを戻します。 |
終了 | サブフローが完了すると、トークンはこのアクティビティに入って破棄され、タスクが完了したことを示します。 |
リソース:クリーニングサプライ | このリソースは、プロセッサのクリーニングに使用されるクリーニングサプライを表します。このリソースをグローバルにアクセスできるように設定します。つまり、両方のオペレーター(両方のインスタンス)が同じリソースを使用します。一度に利用できるサプライは1セットのみです。 |
このステップは、タスクシーケンスに表示される順序ではなく、アクティビティタイプによって論理的に整理されます。
token.fromObject
」と入力して、トークンのfromObjectラベルにリストされているオブジェクトへの動的参照を作成します(このラベルでは、目的地として現在のプロセッサを割り当てます。参考として、「チュートリアル1.1のステップ4」を参照してください)。モデルを保存することをおすすめします。
次に、シミュレーションモデルを実行して、カスタムタスクシーケンスを実際に確認します。シミュレーションモデルをリセットして実行します。
モデルを実行すると、フローアイテムのロードとアンロードに加えて、サプライクローゼットに移動してプロセッサをクリーニングする2名のオペレーターが表示されます。処理フローのトークンでは、各オペレーターが現在どの作業を行っているかを示します。
この時点で、システムの全体的なスループットを向上させるかどうかを確認するために、2組のクリーニングサプライを用意して試してみることもできます。あるいは、アイテムが5つ処理されるごとにオペレーターがプロセッサをクリーニングするだけのロジックを設計することもできます。
これで、タスクシーケンスの処理フローチュートリアルは完了です。他のチュートリアルを完了して、処理フローインスタンス、サブフロー、その他の重要なトピックについてさらに理解を深めてください。