Instant Engineering

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

Plant Simulation:パーツの組立と分解の基本流れ-Dismantle station Demo-

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

www.plm.automation.siemens.com

 

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

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

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

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

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

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

 

◆サンプルモデル

 マテリアルフロー ⇒ Dismantle station ⇒ Demo

 

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

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

本サンプルモデルの主役は『Dismantle Station』である。Dismantleとは、直訳で解体とか取り外すことを意味する。

シミュレーションを実行すると、Assembly Stationへと向かって左側のSourceと左下のSource0からそれぞれ別のパーツが供給される。2つのパーツを組立して、その後はまっすぐ右側のDrainへ向かっていくものと、Checking Stationで何らかの選別処理の結果、Dismantle Stationへと流され、直前で組立てたものを解体するようだ。解体したものはすべて「Scrap」というDrainへは接続されず、Bufferオブジェクトにも接続されているので、解体したものの一部は再度組立で使用する(つまりリサイクル)こともあるようだ。

シミュレーションの動きからわかるざっくりしたモデルの概要は以上だ。

 

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

では、各オブジェクトの設定項目を順に確認していく。まずは今回のメインである「Dismantle Station」から。

f:id:yuinomi:20210808091658p:plain

Dismantle Stationについては、Plant Simulationヘルプで下記のように説明されている。

DismantleStation は、マウントパーツをメインMU から取除くか、新しいMU を作成します。これを使用して、プラントの廃棄プロセスをモデル作成することができます。アセンブリ操作をモデル作成するには、アセンブリステーションが使用できます。

まずは属性タブを確認する。

f:id:yuinomi:20210808091922p:plain

まず、シーケンスには以下3つの選択肢がある。

《下流のすべてにMUを送出》

《他のMUと無関係にMUを送出》・・・各パーツをできるだけ早くユーザが定義した下流に移動しようとする

《すべてのMUを送出後、本体MUを送出》・・・マウンティングパーツをまず下流に移動し、次にMU本体を移動する

上記の内、サンプルモデルでは3つ目が設定されている。

 

また、廃棄モードには以下2つの選択肢がある。

《MUの分離》・・・MUからマウンティングパーツを分離して、それらを廃棄テーブで定義した下流に移動する

《MUの生成》・・・マウンティングパーツを作成する

 

さらに、出口MUには以下2つの選択肢がある。

《MU本体》・・・MU本体を接続された次のオブジェクトに移動する

《新規MU》・・・MU本体を削除して、新規MUを作成し、それを下流に移動する

 

「廃棄テーブル」ボタンを選択すると、定義した表が確認できる。 

f:id:yuinomi:20210808091926p:plain

1列目はMUのクラスへのパスである。例えば.Models. DismantleStation. Containerをクラスライブラリから辿っていけば「Container」というMUを確認できる。

2列目のNumberは廃棄されるMUの数、3列目のSuccessorは各MUの移動先となる下流番号を意味する。(下流が複数ある時の確認方法は、表示オプション「下流の表示」でチェックできる)

 

時間設定タブは以下の通りで、プロセス時間(分解するための必要時間)として20秒が設定されている。

f:id:yuinomi:20210808091931p:plain

 

 主役であるDismantle Stationについて確認できたので、ここからは少し戻って改めて本サンプルモデルの全体について順番に見ていく。まずは左側のSourceとPreAssemblyから。

f:id:yuinomi:20210808112939p:plain

Sourceオブジェクトの属性タブから、作成の時間は「間隔時間による調整」で間隔「2:00」なので、このソースはContainerというMUパーツを2分おきに作成するオブジェクトのようだ。個数は-1なのでシミュレーション実行中は際限なく作成を続ける。

f:id:yuinomi:20210808113154p:plain

その先に接続されるPreAssembly Stationの時間設定タブを確認する。

f:id:yuinomi:20210808113239p:plain

プロセス時間は1:00固定で、その他はすべてデフォルトのままだ。1分ディレイさせるためだけの機能のようだ。

ここまでをまとめると、「Source」オブジェクトで作成された「Container」がAssembly Stationに供給され、Assembly Stationにとっての上流番号1である。

f:id:yuinomi:20210808113722p:plain

 

次にモデル左下に配置されたSource1オブジェクトを確認する。

 

f:id:yuinomi:20210808113957p:plain

属性タブを以下に示す。シミュレーション開始から0:50経過後からパーツの作成をするソースで、次のパーツ作成までの間隔は25:06という微妙な数値設定がされている。何か意図があってこのようなすっきりしない設定にしたのかは現段階で不明だ。

f:id:yuinomi:20210808114031p:plain

作成するパーツは「Entity」というMUだ。(その他のタブはデフォルトのままである)

 

次はBufferオブジェクトを確認する。Plant SimulationヘルプではBufferについて以下のように説明される。

f:id:yuinomi:20210809070838p:plain

プラントの2つのコンポーネントの間に置かれたBuffer は、次の2つの役割を果たします。

・シーケンスの後続のコンポーネントのどれかが故障したときに、パーツを一時的に保持します。
・先行するコンポーネントが動作を停止したときに、パーツを動かし続けて、製造プロセスの停止を防ぎます。

バッファを使う際は以下2つのタイプがある。

◆Queue・・・パーツは入った順序でバッファを出る(先入れ先出し)

◆Stack・・・最後に入ったバーツが最初にバッファを出る(後入れ先出し)

では、今回サンプルモデルのBufferオブジェクトの属性タブを確認する。

f:id:yuinomi:20210809071337p:plain

容量は1000個、バッファタイプとしてQueue(キュー)が選択されている。(その他のタブはデフォルトままだったので割愛。)

 

続いてはAssemblyオブジェクトを確認していく。

f:id:yuinomi:20210809071700p:plain

Assemblyオブジェクトの左側(IN側)には2つの接続線があるので、上流番号を最初に確認しておく。表示オプション→上流の表示を有効化した状態でのキャプチャが上記である。Sourceから供給されるContainerが上流1、Source1から供給されるEntityが上流2だ。属性タブを確認する。

f:id:yuinomi:20210809071941p:plain

アセンブリテーブルは「なし」でプロセッサからのメインMUとして上流1が設定されている。アセンブリモードはMUを添付、出口MUはMU本体なので、このAssemblyオブジェクトは上流1から受け取ったContainerに上流2から受け取ったマウントパーツであるEntityを組み立てて(コンテナなので上に載せて)後工程へContainerとして排出するという設定だ。

組立時間としては25:00一定として定義されている。

f:id:yuinomi:20210809071946p:plain

続いてはAssemblyの隣にあるCheckingというStationオブジェクトを確認していく。これは排出先として2本の接続線があるので、下流番号を見ておく。下流1はそのまま右のPainting Stationへ、下流2は迂回してDismantleオブジェクトへと流れるのがわかる。

f:id:yuinomi:20210809072923p:plain

Checkingの「出口タブ」を確認すると、「割合で選択」が定義されている。

f:id:yuinomi:20210809073056p:plain

「リストを開く」ボタンで以下の表が確認できる。

f:id:yuinomi:20210809073059p:plain

これは排出先を割合(パーセンテージ)で指定しており、90%は下流1へ、10%を下流2へ流すことを意味している。言い換えれば、90%が良品としてそのまま最終工程へと移行するが、10%については不良としてスクラップかリサイクルに回す、というモデルのようだ。

ここまでで本サンプルモデルの主だったところは一通り確認できたので、後はPainting以降をさっと確認しておく。

f:id:yuinomi:20210809074053p:plain

Painting、PackingというStationオブジェクトはそれぞれプロセス時間が10:00と5:00で定義されており、それ以外の項目はデフォルトのままだ。Drainについてはすべての項目がデフォルトままだったので割愛する。設定項目の確認は以上だ。

 

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

今回のサンプルモデルで以下2点を変更する。

①「Checking」StationオブジェクトでDismantle側へ流す割合を10→80%に多くする

サンプルモデルをそのまま実行しただけだと、90%の割合でPainting側へ流れてしまってDismantle側の動きを見る機会が少ないのでこれを逆転させる。この設定は非常に簡単で、Checkingの「出口」タブで割合の表を変更するだけだ。以下のように直した。

f:id:yuinomi:20210809075302p:plain

これでPainting側へ流すのが激減し、大部分(80%)はDismantle側へと行くので動きが見やすくなる。

 

②「Dismantleオブジェクト」から「Buffer」へのリサイクル経路を活用して、Containerはスクラップするが、Entityは再度Assemblyに回すようにする

f:id:yuinomi:20210809075440p:plain

サンプルモデルではDismantle Stationから排出先として2箇所があるが、シミュレーションを実行して眺めていてもすべてScrap側へと行かない。接続の仕方的には、Dismantleで分解したパーツの一部をBufferへ戻してリサイクルする動きにしたいので、そうなっていない原因と改修を行う。

原因はDismantleの「廃棄テーブル」だった。今回はContainerがメインMUで、Entityがマウントパーツである。廃棄テーブル2行目でEntityの移動先として下流2が設定されているので、先に送出されるマウントパーツはScrapへと排出される。次にContainerは廃棄テーブルでは下流1とされているが、属性タブの「メインMUから下流」では「2」が指定されていて干渉している。

f:id:yuinomi:20210809080333p:plain

なので、廃棄テーブルの下流番号の指定を入れ替えてやれば、EntityはリサイクルのためにBufferへ、Containerはscrapへと振り分けることができた。

 

これにて今回のサンプルモデル『Dismantle station Demo』の確認は以上だ。