HOME > 開発システム事例 > PLCソフト開発「ワーク搬送装置」
開発システム事例

PLCソフト開発「ワーク搬送装置」

はじめに

ここではPLC(Programmable Logic Controller)を使用したワーク搬送装置のソフト開発実績についてご紹介します。
開発のポイント、システム構成の検討、役割分担などについて、次項でまとめます。

装置概要

本装置は、ワークを投入すると装置内の検査装置部までワークを搬入し、ワーク検査終了後にワークを搬出して装置外へワークを排出します。

  • ワーク情報管理

    装置内の各ワークの処理状態・現在位置・搬入中/搬出中などの情報を管理します。

  • ワーク搬送先の管理

    ワーク情報を元にワークの搬送先を指示します。タクトタイムを短縮するため、無駄な待ち時間がなくなるよう効率よくワーク搬送先を決定します。

  • ワーク搬送制御

    搬送の駆動源には、サーボモータ・パルスモータ・シリンダなどを使用して、I/O制御や位置決めコントローラやモーションコントローラを用いたモータの位置決め制御でワーク搬送を行います。

  • ワーク搬送位置補正

    ワーク搬送時にカメラで撮影した結果により、正確にワークの搬入出できるように位置補正します。

これらの制御を、高級言語が使用できデータ管理を得意とするC言語コントローラと、I/O制御やモータの位置決め制御を得意とするシーケンスCPUとで、それぞれ得意分野で制御を分担しました。ワーク搬送のイメージとしては、C言語コントローラが頭(搬送先の指示)となって、シーケンスCPUが手足(ワーク搬送)となり制御を行います。

システム構成

本装置の構成ですが、横河電機社製PLCを使用しており、特徴として『C言語コントローラ(e-RT3)』+『シーケンスCPU(FA-M3R)』のマルチCPU構成となっています。

ワーク搬送装置
ワーク搬送装置

開発のポイント

装置内には複数のワーク投入が可能で次々とワーク搬送が行われるので、タクトタイム(ワーク投入⇒ワーク検査⇒ワーク排出 までの時間)が非常に重要視されます。

役割分担

ワーク搬送は、C言語コントローラが頭となって、シーケンスCPUが手足となり分担して制御を行いました。
装置内では複数の搬送部に分かれており、それぞれの搬送部から次の搬送部へと次々とワークを受け渡していきます。
C言語コントローラでワーク情報管理と搬送先検索まで行い、シーケンスCPUでは各搬送部の単独動作(ワークを掴んで移動して置くなど)の制御のみを行いました。
搬送部から次の搬送部へワークを受け渡す動作は、単独動作の指示の組み合わせによって行われます。これにより、シーケンスCPUが行う処理が簡単になりました。

また、そのように役割分担を行うことで動作確認時に問題が発生しても、ワーク搬送先がおかしいのか?ワーク搬送動作自体がおかしいのか?でC言語コントローラ/シーケンスCPUのどちらの問題か簡単に切り分けを行うことができました。

ワーク情報管理

本装置のワークには大量のデータがあり、ワーク情報は上位コンピュータとのやり取りもありデータ管理は大変です。これをラダープログラムで管理しようとした場合かなり大変です。しかし、高級言語が使用できるC言語コントローラで処理を作成したことによりラダープログラムに比べるとデータ管理がしやすくなりました。

ワーク搬送先管理

本装置は、タクトタイムを重要視する装置のため、ワーク搬送は効率よく行わなければいけません。そのため、ワーク位置をトラッキングして搬送先の検索をして動かせるところまで次々とワーク搬送を行います。その際に、単純に空いているところまでワーク搬送を進めるのではなく、絶えず搬入/搬出の優先順位を考慮して、とにかく無駄な待ち時間をなくすようにしてタクトタイムを短縮しています。また、各搬送部の動作距離が短くなる(1動作終了後に続けて動作できる)ように最適な動作の検索することもタクトタイム短縮に繋がっています。
この搬送先の検索は、データ処理を得意とするC言語コントローラで行いました。

位置補正

本装置ではカメラで撮影した画像による位置補正も行っています。C言語コントローラで位置補正データを取得し位置補正座標を計算して動作指示しており、シーケンスCPUは指示された場所に移動するだけという単純な内容で位置補正を行うことができました。

モータ制御

各搬送部の制御はシーケンスCPUで行い駆動源にはモータを使用しています。制御軸が多数(10軸以上)あることから、各搬送部のモータ制御にはモーションコントローラを使用しました。

モーションコントローラを使用したメリットとして、多数の軸を制御できる点があります。位置決めコントローラの場合には、メーカーによりますが制御できるのは2〜4軸なので、それだけPLCのユニットも多数必要になってしまいますが、モーションコントローラは1ユニットで10軸以上を制御できる場合がほとんどです。

また、モーションコントローラではあらかじめ登録したパターン動作を動かすことができるので、シーケンスCPUからはモーションコントローラに指示を出すだけでワーク搬送を行うことができます。シーケンスCPUと位置決めコントローラでの単純な位置決め動作の組合せでパターン動作を行うことも可能ですが、この場合はシーケンスCPU⇔位置決めコントローラ間でのインターフェース処理時間が発生してしまいます。今回はモーションコントローラを使っているので余計なインターフェース処理時間が無くなりタクト短縮にもつながりました。

おわりに

C言語コントローラとシーケンスCPUでは、それぞれ得意分野が異なります。今回ご紹介した開発ではマルチCPU構成として、制御の独立性も考慮した上でそれぞれ得意分野の処理を分担して行いました。そうすることで、それぞれのプログラムが作りやすいだけでなく、何か問題が発生した場合に問題箇所の切り分けが容易にできました。
そして、本開発のポイントであるタクトタイムの短縮についても、独立性の高い処理効率の良い分割で実現できたことで、現地調整時のメカ特性を考慮した処理アルゴリズム変更にも柔軟に対応できました。

(Y.R.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ