ソーラーパネル生産:マテリアルハンドリングライブラリの使用方法(パート3)

施設内輸送車モデリング

マテリアルハンドリングライブラリはAnyLogicの主要な部分であり、この「ハウツー」はライブラリの使用方法を説明します。 これはシリーズの3番目です。最初の2シリーズは、ライブラリの基本的な機能説明、およびコンベア輸送車(AGV)のモデリング方法でした。

マテリアルハンドリングライブラリには、コンベアネットワークにあるステーションでのアイテム(製品)の処理をシミュレートする機能が含まれます。 これには、生産プロセスを再現する為に必要な機械や手作業の処理時間、作業時間等、ステーションのスケジュールを考慮することができます。

作業工程を作成するために、AnyLogicはStationマークアップ要素を使用します。 遅延またはエージェントの新しい状態への遷移を作業時間とみなすことで、生産プロセスのモデリングを簡素化できます。

ソーラーパネル生産ラインモデルを使用して、Station 要素の使用方法を学習します。 このモデルは、ソーラーパネル用の太陽電池を製造するプロセスと、ソーラーモジュールの製造方法を示しています。 モデル統計を使用すると、コンベアネットワークと設備の総使用率、および生産サイクルの期間と生産率を推定できます。 このモデルは、AnyLogicホームページのManufacturingセクションの例のリストにあります。 また、AnyLogic Cloudで直接起動することもできます。

注意:この投稿は、コンベアネットワークのモデリングの複雑さを理解したい人を対象としています。 新しいライブラリに慣れていない場合は、以前の投稿した、コンベアAGVと輸送車をご一読いただくことをお勧めします。 ライブラリの使用経験がある方は、引き続き、下記の作業を実行してください。

太陽光発電セル製造準備

太陽光発電セルの組み立てとテストプロセスは次のとおりです:

  • ソーラーシミュレーターでの試験(高圧キセノンランプを光源とし、地上で受ける太陽光に近似したスペクトル分布で光を測定サンプルに照射します。)
  • 太陽光発電セルのはんだ付

太陽光発電セル製造準備コンベア(小型コンベア)

太陽光発電セル製造準備コンベア(小型コンベア)

Tステーション間で太陽光発電セルを輸送するコンベア(左上の小型コンベア)をシミュレートするには、solarCellConveyor要素(Conveyor)を使用します。 モデルはベルトタイプのコンベアを使用します(プロパティでBeltを選択)。 コンベアの幅は0.5メートル、太陽光発電セル間の距離(ギャップ)は0.04メートル、速度は0.2 m / sです。

solarCellConveyor要素のプロパティ

solarCellConveyor要素のプロパティ

コンベアには、2つのステーションがあります。- ソーラーシミュレーションテストには1秒の作業時間としてDelayに、一秒をセットし、はんだ付けの作業時間は、solderingTimeパラメータに一秒をセットします。ステーションの長さは、太陽光発電セル(長さ0.2メートル)とセルの数の合計です。 両方のステーションは、一度に1つの太陽光発電セルのみを処理し(プロパティQuantity = 1)、同時にコンベアによってエージェントをロードおよびアンロードします(Loadingプロパティ値はSimultaneous with unloadingに設定します)。

ステーションsunSimulationのプロパティ

ステーションsunSimulationのプロパティ

実際には、はんだ付け(String soldering)ステーションで、新しい太陽光発電セルが、ステーションから出てくる太陽光発電セルのブロック(基台)にはんだ付けされます。 モデルでは、はんだ付けされたオブジェクトの場合、新しいタイプのエージェントを作成するのが論理的であるように見えるかもしれませんが、ただしコンベアラインに存在できるエージェントのタイプは1つだけなので、これは不可能ですので今回はSolarCell を使用します。

ベルト式コンベアとはんだ付けステーションの作業時間を遅延(Delay)として設定することにより、このはんだ付けプロセスをできるだけ正確に表現します。 ステーションでオブジェクトが処理されている間、コンベアは停止し、完了後、ステーションが次のオブジェクトを受け入れるようにオンになります。 このように操作すると、ステーションを離れるとき、太陽光発電セルは互いにはんだ付けされた要素のグループのように、互いに近くに配置されます。

10個の太陽光発電セルのブロックがコンベアの端に到達すると、反転してバッファーに配置されます。 このプロセスは、小型コンベアの端にあるflippingStation要素(Station)を使用してモデル化されます。

flippingStationプロパティ

flippingStationプロパティ

太陽光発電セル製造フローチャート

オブジェクトを小型コンベアに配置した後、フローチャートで実行するアクションを指定する必要があります。 太陽光発電セルは、sourceCellsブロック(Source)を出て、bufferブロック(Queue)を使用して、コンベアの最初のバッファーに配置されます。 要素を小型コンベアに合わせるために、sourceCellsブロックで要素の寸法が再定義されます(Resizeオプション、Length とWidthプロパティ— 0.16 m)。

太陽光発電セル製造プロセス図

太陽光発電セル製造プロセス図

sourceCellsブロックのプロパティ

sourceCellsブロックのプロパティ

コンベアにスペースができるとすぐに、toLayupブロック(Convey)が次のエージェントを引き込み、コンベアライン全体を通して太陽光電発セルを宛先であるflippingStationに送ります(Convey to プロパティ- StationおよびTarget station - flippingStation Value)。

toLayupブロックのプロパティ

toLayupブロックのプロパティ

flippingStationステーションでの処理後、エージェントはコンベアから取り外され、assembleStringブロック(Batch)を使用して、接続された太陽光発電セルのグループ(SolarCellRowエージェントタイプ)に変換されます。 このグループは、フローチャートに沿ってさらに移動します。 太陽光発電セルのセクションは、seizeCellBufferブロック(Seize)のコンベアの端にあるバッファー(layupCellBufferリソースプール)を占有するため、seizeLayupRobot ブロック(Seize)を使用してロボット(layupRobotリソース)をキャプチャします。

seizeCellBufferブロックのプロパティ

seizeCellBufferブロックのプロパティ

ロボットが太陽光発電セルのグループを集荷した後、バッファーが解放され、新たに製造された太陽光発電セルがそれらの場所を占めることができます。 toScannerブロック(MoveTo)では、ロボットが太陽光発電セルをスキャナーに移動し、そこで結合されたセルの品質がチェックされます。

glassAtStationブロック(SelectOutput)で、条件layup.isProcessing()Layupステーション(はんだ付けされた太陽光発電セルがガラス基板に転送される場所)でレイアッププロセスがすでに開始されているかどうかを確認します。プロセスが開始されていない場合、セクションはwaitForGlassDeliveryブロック(Delayタイプ)に移動し、ガラス基板の配送がType – Until stopDelay()が選択されるまで呼び出され、待機します。ガラスがすでにステーションにある場合、セクションはtoGlassPanelブロック(MoveTo)を使用して、ロボットによって基板上に移動します。次に、ロボットはreleaseLayupRobotブロック(Release)を使用して解放され、toInitialPosブロック(MoveToタイプ)でスキャナーの近くの待機ポイントに戻ります。 releaseLayupRobotブロックのコード(スクリーンショットを参照)は、組み立てられているソーラーパネルにあるセクションの数を更新します。セクションの数がnCellsInColumnパラメータで指定された値に達すると(太陽光発電セルパネルのセクションの数はこのように設定されます)、パネルに太陽電池ブロックを配置するためのステーションでのプロセスが中断され、パネルはコンベアに沿って移動します。

releaseLayupRobotブロックのプロパティ

releaseLayupRobotブロックのプロパティ

ソーラーパネル製造

コンベア上で既製の太陽光発電セルからソーラーパネルを製造するプロセスは、いくつかの段階で構成されます。 括弧内には、太陽電池パネルが移動する必要があるモデル内のステーションの名前を示します。

  • ガラス基板の洗浄 (Glass cleaning);
  • エチレンビニルアセテート(EVA)フィルムによるガラスコーティング(Feeding EVA Front sheet);
  • はんだ付けされた太陽光発電セルのガラスへの転写(Layup);
  • バッシング(Manual bussing);
  • 予備試験(Electroluminescence test I);
  • EVAフィルムの第2層と保護コーティングによるガラスコーティング(Feeding EVA second layer and backsheet);
  • ラミネート加工(Lamination);
  • エッジのトリミング(Trimming);
  • エッジのシーリング(Edge Sealing);
  • アルミニウムフレームアセンブリ(Automatic framing);
  • ジャンクションボックスの取り付け(Junction box applying);
  • ソーラーシミュレーターでのテスト(Solar simulation);
  • 最終試験((Electroluminescence test II);
  • ラベル付け(Labeling)。

ソーラーパネル生産コンベア(small conveyor)の様子

ソーラーパネル生産コンベア(small conveyor)の様子

コンベアネットワーク上に空きスペースがある場合、パネルはステーション間で自由に移動できるため、この段階ではコンベアのタイプとしてローラータイプを指定しました。 次に、要素のプロパティで、コンベアの速度とパネル間の距離を指定します。 各ステーションでの処理時間は、対応するパラメータによって設定されます。 たとえば、Glass cleaningステーションでは、glassCleaningTimeパラメーター(Delayプロパティ)によって決定されます。Stationでの最も単純なプロセスは遅延に反映されますが、ステーションレイアウト要素の機能ははるかに広範です。 これを確認するには、LayupBussingLaminatorの各ステーションの操作を考慮してください。

Layupステーションでの処理

Layupステーションでは、メインコンベアに沿って移動しているガラス基板上に太陽電池のブロックが配置されます。 このステーションでガラスが加工される時間は、取り付ける太陽電池が時間通りに準備されているかどうか、およびロボットの速度に依存するため、ステーションでの処理時間を事前に指定することはできません。 したがって、Layupステーションの場合、Delay Typeプロパティをuntil stopProcess()に設定します。 これにより、プロセスがreleaseLayupRobotブロック(Releaseタイプ)で中断されるまでステーションでエージェントが遅延し、太陽光発電セルの最後の部分がガラスに配置されます。

次に、太陽光発電セルがすべて準備され、waitForGlassDeliveryブロック(タイプDelay)で待機しているときに、ガラスがステーションに到着します。Layup ステーションでエージェントが完全に停止して処理を開始すると、待機が中断されます。 同時に呼び出されるagent.receive code (“atLayup”)は、さまざまな状態がアセンブリの主要な段階を反映する状態チャートを介して、エージェント(組み立てられたパネル)を移動する役割を果たします。

レイアップステーションプロパティ

レイアップステーションプロパティ

ステーションでの手作業処理(Manual bussing)

このモデルでは、コンタクトの取り付け、エッジのトリミング、ジャンクションボックスの取り付け等の一部の操作は、オペレーターが手動で実行します。Manual bussingステーションは、ステーションにリソース(人員)を割り当てる機能を示します。

このために、リソースの数を2に設定してbussingOperator ブロック(ResourcePool)が作成されます。Bussingステーションの周りに長方形の領域が描かれ、アトラクタがコンベアの両側に配置されます。 モデルを起動すると、そこにオペレーターが表示されます。 ステーションをブロックに関連付けるには、ResourcesセクションのステーションプロパティでUse resourcesオプションを選択します。使用されるリソースとその数が、表示されるフィールドに示されます。 このセクションは、Seizeブロックの基本的なプロパティとよく似ています。シフトでの作業、休憩、さまざまなタスクの切り替え:これらのリソースは、生産停止を現実的にシミュレートするのに役立ちます。

手作業ステーション(Bussing station)のプロパティ

手作業ステーション(Bussing station)のプロパティ

ラミネーションステーションの処理

ラミネート設備を備えた3つのコンベアが生産ラインに組み込まれています。 ラミネーションは他の操作よりも長く続くため、並列化によりスループットを向上させることができます。

U他のプロセスとは異なり、いくつかのエージェントはラミネーションステーションで処理されます。 ラミネートできるパネルの数は、laminatorCapacityパラメータの値によって決まります。 私たちのモデルでは4なので、ステーションはそれだけ蓄積すると動作を開始します。 ラミネーターのパネル数は少なくなりますが、ステーションはスタンバイモードのままです。 注意:ステーションの長さは、指定された数のエージェント(ここではパネル)に対応する必要があります。 同時に積層されたパネルの数の異なる値でモデルを実行すると、このパラメータが生産ラインの負荷にどのように影響するかを確認できます。

さらに、ステーションでの処理時間は、使用するフィルムのタイプによって異なり、モデルの操作中に、DelayプロパティのgetLaminatorCycleTime()関数によって返される値に従って動的に変化する場合があります。

ステーションでの処理の開始時と終了時に実行されるコードは、パネルとラミネーター自体を、これらのエージェントの状態チャートに従って特定の状態に移行する役割を果たします。

パネル組立フローチャート

パネル組立フローチャート

パネル組立フローチャート

多数の処理ステーションにもかかわらず、ソーラーパネル組立プロセスの図は非常に単純です(モデル中の2つの図の下の図)。 このシンプルさは、Conveyブロックを使用することで実現されます。 1つのユニットでコンベアネットワーク全体に生産ユニットを誘導できます。そのプロパティでは、最初と最後のコンベアを設定したり、エージェントのルートにコンベアを含めたり除外したりできます。 このモデルでは、エージェントはすべてのステーションを通過します。

モデル化された生産プロセスの最初に、ソーラーパネルの基礎となるガラス基板がsourcePanelsブロックで作成されます。 基板がクリーニングステーションを離れると(イベントはGlass cleaningステーションの後端出口で)、inject()関数が呼び出され、新しい基板がコンベアに入ります。 この方法は、ブランク(この場合はガラス基板)が常に時間どおりにラインに供給されることが確実な場合に、コンベアラインの最初の連続生産プロセスをモデル化するのに適しています。 パネルは、preLaminationLineブロックのコンベアに入ると、コンベアの先頭から、コンベアpanelEntryConveyor)の最後にあるラミネーションゾーンのエントリーポイント(laminationPhotoEye)に移動します。 コンベアに沿って移動するオブジェクトのロジックを構成する方法については、第1章を参照してください。

preLaminationLineブロックのプロパティ

preLaminationLineブロックのプロパティ

toEndOfLineブロックによってコンベアの端に送られた各パネルは、ラミネーションステーションの1つを通過します。 エンティティがコンベアの特定のポイントに自由に移動し、同時に1つまたは別のコンベアラインを通過するには、コンベアを含めるフィールドのConveyブロックのプロパティでラインの名前を指定する必要があります。 この場合、パネルが通る必要のあるラインは、ラミネーションゾーン内のソーラーモジュールの数とステーションの負荷によって異なります。 ラインは、コードchooseLaminatingStation(agent).getConveyor()を使用して選択されます。 関数chooseLaminationStation()はパネルが通過するラミネーションステーションを返し、コード全体はステーションが配置されているコンベアを返します。

生産ラインの最後では、Leave the conveyor on exitプロパティがオンになっていないため、組み立てられたパネルはコンベアの端に残ります。 同時に、パネルはコンベアを降ろしているロボットを捉えます(seizeUnloadRobotブロック)。 ロボットがパネルに到達するとすぐに、leaveConveyorブロックを使用してパネルがコンベアから取り外され、完成したパネルのスタックに転送されます。 パネルのスタックに10個のユニットが集まると、それらは1つのバッチ(ブロックbatchbatch1、またはbatch2)にまとめられ、フォークリフトを使用してmoveToStorageブロック(タイプMoveByTransporter)で倉庫に送る準備が整います。

これで、コンベアの技術的な操作をシミュレートする方法がわかりました。 以下に、覚えておくべき重要事項の要約を示します。

  • エージェントの遅延または新しい状態への遷移によって処理を表すことができる場合、ステーションマークアップ要素を使用してAnyLogicでモデル化できます。
  • ステーションが複数のエージェントを同時に処理できる場合、この数のエージェントがステーションにいる場合にのみ処理が開始されます。
  • 他のステーションまたは処理の作業に対する処理の依存性をシミュレートするには、stopProcess()が呼び出されるまで遅延タイプを選択できます。 これにより、処理が明示的に中断されるまで、ステーションのエージェントが遅延します。
  • ステーション内のエージェントは、1つずつしか配置できません。 したがって、ステーションは、必要な数のエージェントに対応するのに十分な長さである必要があります。
  • 車両や人などのリソースをステーションに追加できるので、ワークフローをより正確にシミュレートできます-タスクとダウンタイム間でリソースを切り替えることができます。
  • 1つのConveyブロックは、コンベアネットワーク全体を通じてエージェント/ユニットを誘導できます。そのプロパティでは、最初と最後のコンベアを設定し、エージェントのルートにコンベアを含めたり除外したりします。 この場合、エージェントは途中のすべてのステーションを通過します。
  • 1つのコンベアライン内に存在できるエージェントのタイプは1つだけです。

ご不明な点がございましたら、下のコメント欄で、ご質問いただければ幸いです。

フィードバックをお待ちしています!

関連記事