DX時代:【第10回】シーメンス製の生産シミュレータ「プラントシミュレーション」の使い方を習得
www.plm.automation.siemens.com
Plant Simulation 15に収録されているサンプルモデルを使って基本操作を習得する。
第10回はカテゴリ「リソース」、トピック「Worker」、サンプル「Worker introduction」を使っていく。サンプルモデルからの学び方は、以下の手順で行う。
STEP1:サンプルモデルを開き、どのような仕事内容をシミュレーションするものかを把握する。
STEP2:それぞれのオブジェクトの設定項目を参照し、定義の仕方を確認する。
STEP3:概要を理解したところで、設定の一部を変更して、意図した通りにシミュレーションの結果に反映されるかを確認する。
サンプルモデルの難易度によって、多少の変更はあるかもしれないが、流れとしては概ね上記のような進め方で習得していく。
◆サンプルモデル
リソース ⇒ Worker ⇒ Worker introduction
STEP1:どのようなサンプルモデルか?
どのようなサンプルか把握するためにまずはイベントコントローラを実行してみる。シミュレーション動画を以下に示す(Vimeo)
サンプルモデル名称にイントロダクションと付くだけあって、モデル自体はシンプルだ。WorkerPoolに作業者が2人居て、「Machine」というStationオブジェクトに向かってそれぞれ上下のFootPathに沿って移動する。
「Machine」の上側の作業者は加工をして、下側の作業者は機械の修理をしているようだ。機械の故障は断続的に発生するようで、一度復旧すればWorkerはPool(待機所)に戻る設定になっているようで、シミュレーション実行中は行ったり来たりしているように見える。
シミュレーションから推測できるサンプルモデルのざっくりした動きは以上だ。
STEP2:オブジェクトの設定項目を確認
それでは、モデルの各設定項目を確認していく。まずは「Broker」と「WorkerPool」オブジェクトから見ていく。
Brokerはデフォルト設定のようで「コントロール」タブを確認したが、インポータリクエストとエクスポータリクエストは空欄のままだった。
次はWorkerPoolオブジェクトの属性タブを確認する。
移動モードは「footpathに沿って歩く」が指定され、ブローカには先ほどの「Broker」が指定されている。作業者の詳細はワーカーの「生成テーブル」ボタンを押すと以下の表が確認できる。
Workerクラスとして、Models. worker. SpecialObjects. myWorkerパスが指示されている。クラスライブラリのツリーから該当箇所を辿ると「myworker」を確認できる。属性タブを以下に示す。
効率は100%、移動速度は1m/sが定義されている。提供の「サービス」を確認する。
実施する仕事内容としては「StandardService」だけが登録された状態になっている。(デフォルト)
WorkerPoolから上下に出ているFootPathは長さがどちらも10mである。Workerの移動速度は1m/sのため、このモデルではWorkerはMachine工程から要求を受けて、移動時間10秒で駆け付けることができるようだ。
続いてはFootPathで移動した先のWorkPlaceの設定を確認していく。「Machine」Stationの上下にそれぞれ配置されている。
最初にMachine上部の「Place4Work」オブジェクトの属性タブから見ていく。
ステーションには「Machine」が対応付けられている。「サポートするサービス」を選択すると以下の表が確認できる。仕事内容はStandard Serviceだけのようだ。
また、「ジョブ終了後にワーカがこの場所にとどまる」にチェックが付いていないのでMachine工程で加工を終えて手待ちになったら都度WorkerPoolに戻るようだ。シミュレーション実行時の動きからは、上側の作業者はずっとMachineに居るように見えたが偶然仕事が連続していただけのようだ。
Machine下部の「Place4Repair」も主だった設定は上記と同じであるが、一か所、「提供するサービス」がこちらは「repair」になっているところだけが違った。
では、次はSourceからDrainオブジェクトを確認していく。
Sourceは「Entity」というパーツを作成するオブジェクトである。
作成の時間が「個数による調整」で個数が「1」のため、このSourceはシミュレーション実行直後にEntityというパーツを1個だけ作成するオブジェクトのようだ。
続いては「Machine」という名称のStationオブジェクトの時間設定タブを確認する。
プロセス時間として1時間が定義されている。
そして、サンプルモデルとしては珍しく(?)故障タブにも設定があった。有効化にチェックが付けられているので、対象の行を選択して「編集」ボタンをクリック。
故障設定が確認できる。開始と停止は「0」。間隔9分、継続期間1分なのでこれはシミュレーション実行後9分後に1分間故障で設備が停止することになる。下にある「故障時間換算対象の範囲」が「シミュレーション時間」になっているので、このpオブジェクトは機械が加工をしていない時も含めてシミュレーション時間中は9分おきに故障が起きることを意味する。(通常、作業者による対応が必要な設備異常や故障は、機械が動作している間にしか起きないイメージなのでどのような故障か想定しづらい)
故障の設定を任意時間で指定しているのでアベイラビリティは無効になっている。
次にMachineオブジェクトのインポータタブを確認する。
まず「処理」について、有効化がチェックされ、ブローカとしては「Broker」が指定されている。優先度は0なので、最も低い状態だ。「サービス」ボタンをクリックで以下の表が確認できる。
Standard Serviceに作業者1人を割り当てる。
「インポータ」タブの「故障」についても設定がされている。上述の「処理」と同じだが、「サービス」内訳だけが異なる。
「故障」では提供サービスが「repair」になっている。
最後のDrainオブジェクトについてはデフォルトのままで特に見るべきポイントはなかった。よって、本サンプルモデルの設定項目確認は以上だ。
STEP3:一部を変更してシミュレーション結果の確認
今回のサンプルモデルでは「Machine」オブジェクトの故障設定に違和感があった。シミュレーション実行中は、加工をしていなくても故障が発生するのが妙なので以下のように変更してみる。
アベイラビリティ(可用性、可動率)を95%とし、MTTR(平均修理時間)を2分とした。さらに「故障時間換算対象の範囲」を「プロセス時間」とすることでMachineオブジェクトは機械が動作している間にのみ故障が発生するようにした。
この設定でシミュレーションを再度実行し、意図した通りの動きになることを確認した。Machineオブジェクトは、機械の動作中にのみ故障が発生し、故障が起きたらWorkerPoolから作業者が修理に向かう。Sourceからの供給が終わり、その日の仕事が完了すればStandardServiceを実行する作業者はWorkerPoolに戻り、シミュレーション終了となる。(最初の設定では、Machineは故障が起き続けるので修理をする作業者はエンドレスで行ったり来たりしていた。)
サンプルモデル『Worker introduction』の確認は以上だ。