DX時代:【第13回】シーメンス製の生産シミュレータ「プラントシミュレーション」の使い方を習得
www.plm.automation.siemens.com
Plant Simulation 15に収録されているサンプルモデルを使って基本操作を習得する。
第13回はカテゴリ「リソース」、トピック「Worker」、サンプル「Carry multiple parts」を使っていく。サンプルモデルからの学び方は、以下の手順で行う。
STEP1:サンプルモデルを開き、どのような仕事内容をシミュレーションするものかを把握する。
STEP2:それぞれのオブジェクトの設定項目を参照し、定義の仕方を確認する。
STEP3:概要を理解したところで、設定の一部を変更して、意図した通りにシミュレーションの結果に反映されるかを確認する。
サンプルモデルの難易度によって、多少の変更はあるかもしれないが、流れとしては概ね上記のような進め方で習得していく。
◆サンプルモデル
リソース ⇒ Worker ⇒ Carry multiple parts
STEP1:どのようなサンプルモデルか?
どのようなサンプルか把握するためにまずはイベントコントローラを実行してみる。シミュレーション動画を以下に示す(Vimeo)
Sourceから赤/緑/青の3種類のパーツが供給される。1人の作業者は、SingleProc工程でパーツを流れてきた順に3個受け取り、後工程へと搬送する。後工程はパーツの種類ごとに計3つのStationがあり、それぞれ応じたパーツを供給するようだ。
作業者がパーツを受け取る時はコンベアを流れてきた順に受け取るが、後工程へと供給する時は先入れ先出しにはなっておらず、近いところから供給をしていく順番のようだ。StationA/B/Cは自動機になっており、作業者が介在しなくてもパーツさえ供給すればプロセスを実行できる。
シミュレーションの動きから推測できるざっくりしたモデルの概要は以上だ。
STEP2:オブジェクトの設定項目を確認
では、モデルの左側から各オブジェクトの設定項目を順に確認していく。
まずはSourceオブジェクトの属性タブから確認する。
作成の時間は「間隔時間による調整」で間隔/開始/停止はいずれも0なので、後工程が受け取り可になれば即座にパーツを供給するSource設定である。MU選択は「順番に繰返して選択」が選択されており、外部参照先として「sequence Table」Data Tableが定義されている。
次にsequence Tableを確認する。
1列目はMU(パーツ)のクラスへのパスが指定されている。今回は「Part」という名称のMUだ。2列目は個数で、A1個、B2個、C1個をループして作成する。
また、4列目Attributesの「tab」をクリックすると以下の表が確認できる。
1行目「currIcon」(アイコン)として"A"、2行目「Destination」(目的地)として"A"が定義されている。後述のパーツの種類に応じた搬送先の選択は、ここで定義しているようだ。
次に「Line1」オブジェクトの属性タブを確認する。
長さ3m、搬送速度1m/sなのでLineに入ってきてから出ていくまで3秒ということになる。また、今回のMU(パーツ)「Part」はサイズが長さ/幅/高さが1mなのでLineがフルワーク状態で3個配置できる。
続いては、SingleProc、WorkPlaceオブジェクト、WorkerPoolを見ていく。
まずはWorkerPoolから確認する。移動モードは「footpathに沿って歩く」が指定されている。
「生成テーブル」をクリックすると、上記のような表が確認できる。1列目にはWorkerのクラスへのパスが定義されていて、このサンプルモデルでは、WorkerCap3という名称のWorkerが割り付けられている。人数は1人だ。
クラスライブラリから該当のパスを辿ってWorkerCap3の属性タブを確認する。
移動速度は1m/s、容量はX3,Y1で計3個だ。提供サービスはデフォルト通りだ。
そして、WorkerCap3には「故障」が設定されていた。Workerへの故障設定は今回のサンプルモデルが初めてだ。
アベイラビリティ(可用性)は70%で、MTTR(平均修復時間)は2:00の設定になっている。Workerの何かしらのトラブルで1回あたり2:00程度動きが停止することになる。
続いては「SingleProc」Stationオブジェクトを確認する。
時間設定タブからプロセス時間は1:00固定であり、インポータタブの「処理」は有効化されていないので、この工程は作業者の介在がなく、自動で機械がプロセスを実行できる。
インポータタブの「トランスポート」は有効化され、最大ドゥエル時間は「4:00」一定として定義されている。
次はWorkPlaceについてだが、こちらはデフォルト通りで特に見どころがなかった。ステーションは「SingleProc」と対応付けられ、「サポートするサービス」は空欄のままである。
さて、続いてはモデル中央の3つの工程とWorkPlaceについて確認していく。(その間のfootpathは割愛)
まずは最上段のWorkPlace「A」から属性タブを確認する。
対応するステーションとして、隣に配置された「StationA」が指定されている。「サポートするサービス」は空欄だ。
「StationA」という名称のStationオブジェクトは、プロセス時間が1:00一定で、インポータタブは有効化されていない。その他のタブもデフォルト通りの設定である。よって
、このオブジェクトはWorkerがパーツを搬送してきて供給すれば自動でプロセス(加工等)を開始する。作業者はパーツ供給が完了すれば次に向けて移動できる。
Aの下側にあるB、Cについては同様の設定のため割愛する。
モデル右側のLineとDrainについてはデフォルト通りで特に見るべきポイントがないのでキャプチャを貼るのは省略する。
1点だけ紹介しておくと、オブジェクトが重なっていて見えづらいが、Lineが交差しているところはコネクタで以下のように接続されている。(見えやすくするためにLineの位置をずらした)
今回のサンプルモデルについて設定項目の確認は以上だ。
STEP3:一部を変更してシミュレーション結果の確認
さて、ここまでで設定項目の確認は完了したので、少し遊んでみる。具体的には以下の点について修正、追加をしてみる。
①SourceオブジェクトがA,B,C3種類のパーツをランダムで作成するようにする
②Workerはパーツを5個受け取ってから移動開始
③パーツCの表示アイコンを青色から黄色に変更
まずは、『①SourceオブジェクトがA,B,C3種類のパーツをランダムで作成するようにする』から。「Source」オブジェクトの属性タブを開き、「MU選択」を「ランダム」に変更する。
外部参照先のテーブルは新規作成せず、「sequence Table」をそのまま使用する。DataTable「sequence Table」は以下のように再設定した。2列目のFrequencyは完全ランダムにしたいのですべて1、3列目Numberも1とした。
5列目Attributesに「tab」と入力し、ダブルクリックするとさらに詳細な表にジャンプできるようになる。1,2行目にcurrIconとDestinationを追加して、それぞれA/B/Cを設定した。これで①の変更作業は完了だ。
次は『②Workerはパーツを5個受け取ってから移動開始する』ようにモデルを修正していく。これは単純で、対象のWorker(今回のサンプルモデルでは"WorkerCap3")の容量を変更すれば良い。Xサイズを3から5にUPさせた。
基本的にはこれだけでOKだが、今回の例で注意点として最大ドゥエル時間も確認する必要がある。「SingleProc」Stationオブジェクト→インポータタブ→トランスポートの「最大ドゥエル時間が、今回のサンプルモデルでは「4:00」に設定されていた。Workerは4:00経過すればパーツがすべて集まっていなくても移動を開始してしまうので、これでは実質的に4個以上の搬送を実現できないことになる。
なので、上記のように最大ドゥエル時間を「5:00」と延長させた。これで②も完了だ。
最後に『③パーツCの表示アイコンを青色から黄色に変更』をやっていく。変更前はパーツCは図のような青色で表現されている。
変更するためには、クラスライブラリのツリーから該当のMUを選択し、右クリックで「アイコンの編集」を選択する。
アイコンの編集画面が立ち上がるので < > ボタンで変更したいアイコンを選択し、カラーバレットでドットを塗る。今回はアイコンの形状を変えるのではなく、色を変えるだけなので、青になってる部分を黄色で塗るだけで良い。
塗り終わった後がこちら。変更して保存で完了。
再度シミュレーションを実行してみる。狙い通り、パーツCは黄色のオブジェクトに変更できた。
今回のサンプルモデル『Carry multiple parts』の確認は以上だ。