Instant Engineering

エンジニアの仕事効率を上げる知識をシェアするブログ/QC統計手法/公差設計・解析/TPS(トヨタ生産方式)

Plant Simulation:Sourceでユーザが定義する間隔でパーツを生成 -Interval Adjustable-

DX時代:【第5回】シーメンス製の生産シミュレータ「プラントシミュレーション」の使い方を習得

www.plm.automation.siemens.com

 

Plant Simulation 15に収録されているサンプルモデルを使って基本操作を習得する。

第5回はカテゴリ「マテリアルフロー」、トピック「Source」、サンプル「Interval Adjustable」を使っていく。サンプルモデルからの学び方は、以下の手順で行う。

STEP1:サンプルモデルを開き、どのような仕事内容をシミュレーションするものかを把握する。

STEP2:それぞれのオブジェクトの設定項目を参照し、定義の仕方を確認する。

STEP3:概要を理解したところで、設定の一部を変更して、意図した通りにシミュレーションの結果に反映されるかを確認する。

サンプルモデルの難易度によって、多少の変更はあるかもしれないが、流れとしては概ね上記のような進め方で習得していく。

 

◆サンプルモデル

 マテリアルフロー ⇒ Source ⇒ Interval Adjustable

 

STEP1:どのようなサンプルモデルか?

どのようなサンプルか把握するためにまずはイベントコントローラを実行してみる。シミュレーション動画を以下に示す(Vimeo)

シミュレーションを実行するとSourceで生成された赤/緑/青のMUがLineを通ってDrainへ流れていくのがわかる。縦方向にSourcrとLineが3箇所配置されていて、生成されるMUの個数が異なるようだ。いちばん下に配置された「Source_Stop」オブジェクトだけ長く(より多く)MUを生成している。動きから理解できる概要は以上だ。

Sourceオブジェクトの設定については過去のコチラの記事でも確認している。

instant.engineer

 

STEP2:オブジェクトの設定項目を確認

それでは各オブジェクトについて設定方法を確認していく。まずは左下に配置され最もMU生成数の多かった「Source_Stop」オブジェクトから確認する。

f:id:yuinomi:20210718071212p:plain

属性タブは以下のようになっている。

f:id:yuinomi:20210718071221p:plain

作成の時間は「間隔時間による調整」で個数が5と入力されている。

間隔/開始/停止はいずれも一定なので、この場合は、シミュレーション実行後0秒(即時)で最初のMUを生成し、次のMU生成までの10分間隔、2時間(120分)後にMU生成を停止することになる。MU選択は「順番に繰返して選択」で参照するData TableとしてMUSelectionが指定されている。

この設定方法にした場合は、「個数:5」というのが無視されるのがポイントだ。ユーザが定義した間隔時間でシミュレーション実行直後から停止時間とした2時間後までMUSelectionの表に従って順番にMUを生成し続ける。2時間後という停止時間が優先されるので、個数は何個にしていてもシミュレーションには反映されない。

 

ちなみに、Sourceの属性タブで特に重要な「作成の時間」は以下の4種類から定義する。

間隔時間による調整・・・MUの作成を開始する時間、次のM作成までの間隔、終了時間を指定する。【今回はコレ】

個数による調整・・・量として入力した数のMUを作成する。

配布テーブルによる調整・・・配布テーブルで定義した配布時間、クラス、個数、名前、属性に従ってMUを作成する。

トリガ・・・一連のトリガオブジェクトが制御する値に従ってMUを作成する。

 

次は、参照先として指定されているDaya Table「MUSelection」を確認する。

f:id:yuinomi:20210718073014p:plain

指定パス .Models. SourceTrigger. AとBのMUが指示されている。個数はAが1個、Bが3個である。(クラスライブラリからMU「A」と「B」についても確認したが、グラフィックを赤と緑に変えた以外はデフォルトのままだったので割愛)

 

続いては残り2つの、上段の「Source」オブジェクトと中段の「Source_Batches」オブジェクトを確認する。

f:id:yuinomi:20210718073408p:plain

「Source_Batches」の属性タブ設定は以下だ。

f:id:yuinomi:20210718073020p:plain

作成の時間は「間隔時間による調整」で、個数は5が入力されている。

間隔/開始/停止は「一定」なのでこの場合は、シミュレーション実行後0秒(即時)で最初のMUが生成され、次のMUまでの間隔は10分間である。また、停止を「0」と設定したので、個数欄に入力した「5」が反映される。

「バッチとして生成」にチェックを付けているので、参照先のMUSelectionを1行ごとに生成し、生成したMU累計数が5個以上になるまで10分間間隔でMUを生成し続けることを意味する。

上段の「Source」と非常によく設定が似ているが、違いは「バッチとして生成」にチェックが付いていない点だけである。ここにチェックを付けない場合は、個数欄の「5個」というのがMU単体の個数になり、MUSelectionに従って順にMUを1個ずつ生成し、個数が5個になったら生成を終了するという設定になる。

 

ここまでを整理すると、上段の「Source」オブジェクトはMUを必ず5個生成し、中段の「Source_Batches」はバッチ単位で5個なので、1バッチあたりの個数設定によっては合計数が5個以上生成する時がある。

下段の「Source_Stop」は停止時間を定義しているので、その時間になるまでMUSelectionに従って生成を繰り返すので他の2つより最終的なMU生成数が多くなったということだ。

 

ここまでで今回のサンプルモデルの主要部の確認は完了したので、後半のオブジェクトは簡単に見るだけにする。

f:id:yuinomi:20210718075842p:plain

まずはLineオブジェクトから。3つ並んでいるが設定はいずれも同じで、属性タブを以下に示す。

f:id:yuinomi:20210718075912p:plain

コンベア長さ20m、送り速度0.5mなので、入ってから出ていくまでの時間は40秒である。(Lineオブジェクトはユーザ定義した「長さ」に応じて自動でモデルのサイズにも反映される。)

Drainオブジェクトはデフォルトのままで特に確認する設定はないので割愛。

次は、モデルの右側に並んだ3つのTabel File。これは、Sourceオブジェクトが生成したすべてのMUを時系列でリスト化するもので、シミュレーション実行後に開くことで確認できる。

書き出しを指示しているのは「endSim」メソッドで「creationTable」文を用いている。

このあたりの設定詳細については過去の記事で書いたので参照いただきたい。

instant.engineer

以上で、今回のサンプルモデルの設定項目の確認は以上だ。

 

STEP3:一部を変更してシミュレーション結果の確認

Data Table「MUSelection」を以下のように変更した。

f:id:yuinomi:20210718081436p:plain

MU「A」の個数を1→4個、「B」の個数を3→6個に変更。

このようにすると動きとしては以下が予測される。

「Source」は1個単位で5個なので、1個ずつの生成でAを4個、Bを1個生成したところで終了。

「Source_Batches」はバッチ単位なので、Aを4個複数生成し、次にBを6個複数生成したところで合計が10となり5を超えるので終了。

「Source_Stop」はユーザ定義した停止時間までA4個/B6個の複数生成を交互に繰り返す。

 

シミュレーション実行結果は、上記の予測通りとなった。

「Source」生成テーブル⇒「GeneratedParts_noBatch」ではMU合計数が5個

f:id:yuinomi:20210718082310p:plain

 

「Source_Batches」生成テーブル⇒「GeneratedParts_Batches」ではMU合計数が10個

f:id:yuinomi:20210718082317p:plain


「Source_Stop」生成テーブル⇒「GeneratedParts_Stop」ではMU合計数が60個
(表が大きいので画像は割愛)

以上で、今回のサンプルモデルについての確認は完了とする。