「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
ソフテックでは今までPLCを使用したさまざまな制御を手がけてきました。
搬送装置の駆動源には、サーボモーター、パルスモーターなどが多く使用されます。
PLCでは位置決めコントローラやモーションコントローラを使用してモーターの位置決め制御を行います。今回は位置決め制御の中でも複雑な制御となる同期制御についてご紹介したいと思います。
同期制御とは、基本となる軸(主軸)に対して従軸を同期させる制御です。同期制御では、主軸の移動量(フィードバック)に応じて従軸を動作させます。フィードバックを使用しているため、主軸に対して正確に従軸を追従させることが可能となります。
同期制御を使用する場合には次のようなメリットがあります。
2つの軸動作を位置決め制御で行う場合には、通常は片方の軸が指定位置へ移動し終わったのを確認してから、もう片方の軸の動作を行います。
しかし、同期制御の場合には主軸の現在位置に応じて従軸の位置が決まるため、主軸が1つの動作を完了する前に従軸も動作させることできます。そのため、無駄な待ち時間なしで連続動作させることができます。
位置決め制御でそれぞれ同時に動作指示を出す場合は、障害物など何らかの理由で片方の軸が停止しても、もう片方の軸の動作はそのまま続いてしまいます。同期制御の場合は主軸のフィードバックに応じて従軸が動作するため、主軸が停止したら、それに応じて従軸も停止するので装置破損の危険も少なく安全に動作できます。
同期制御は、以下の方法で実現することができます。
機械式(ハードウェア)で同期制御を行う場合には、各制御軸をメインシャフト、ギヤ、クラッチ、カムなどの組合せにより行います。この場合には、ソフトウェアは単純に主軸の動作を制御するのみで簡単に済みます。しかし、次のような欠点もあります。
ソフトウェア(ユーザープログラム)で同期制御を行うには、主軸に取り付けたエンコーダからのフィードバックを取得し、その現在位置に合わせて従軸に対して位置決め制御を行います。2軸の同期制御の場合には比較的容易に実装することが可能です。
しかし、3軸以上での位置決め制御の場合、各軸を目的位置に順次移動させるため、同時に制御開始するといった並列で動作する機構の場合は、動作開始までの時間に誤差が出てきます。
そのためソフトウェア(ユーザープログラム)での同期制御は、主軸が動作してから従軸が動作するまでの応答時間を気にしないで済む、短時間の動作には有効な方法だと思います。
図1. ソフトウェアによる同期制御
モーションコントローラは高価ですが、機能として同期制御を備えていて簡単に同期制御を行うことができます。
また、サーボアンプとモーションコントローラ間は、 SSCNETやMECHATROLINK(※1)といったネットワークで繋がれていることで、リアルタイムに近い精度の高い同期制御が可能となっています。
モーターの動作は、コントローラからサーボアンプに対してパルス指令を出すことで行われますが、上記ネットワークの特徴的な仕様としてサーボアンプとコントローラ間の高速な定周期通信があります。この定周期通信でコントローラからサーボアンプに指令を送り、また、サーボアンプからコントローラに制御状態の情報を返すので、定周期通信の周期が短ければ短いほど、精度の高い同期制御を行うことができます。
(SSCNET IIIの場合は、コントローラの仕様にもよりますが0.44[ms]周期での通信可能です)
また、主軸に対して従軸がどのように追従するか?は、電子カムと呼ばれるテーブルデータに登録するといった使い方が可能です。この場合、主軸の動作に応じて電子カムに登録した情報に沿って従軸が動作しますので、複雑な動作パターンも簡単に動作させることができます。
さらに、モーションコントローラの場合モーター同士の同期だけでなくエアシリンダーなどとも同期を取ることが可能です。通常、モーションコントローラには同期接点出力が用意されています。これによって主軸の移動量により同期接点出力をON/OFFしてエアシリンダーの動作を行うといったことが可能になります。
図2. モーションコントローラを使用した同期制御
では、同期制御がどういった制御に使用できるか?モーションコントローラを使用した場合の具体例を紹介します。
一般的な同期制御の例を紹介したいと思います。
下記の例では、ベルトコンベア上に流れている空容器に対して液体の充鎮を行います。
ベルトコンベア(主軸)とノズル搬送部(従軸)・ノズル部(従軸)を同期制御することにより、ベルトコンベアを動かしながら、液体の充鎮が行うことが可能になります。
また、ノズル動作の電子カムを作成することにより、泡立てることなく容器への液体の充鎮を行うことも可能です。電子カムの内容を変更すれば、違う形状の容器にも対応できます。
図3. 液体の充鎮
上記の(A)の例は一般的な使い方ですが、ちょっと特殊な制御例をご紹介したいと思います。
要求仕様として、制御対象は1軸で定周期(40[ms])ごとに位置制御を行うというものでした。開発当初は、PLCにて単純な位置決め制御により実現しようと考えましたが、長時間動作させると、コントローラに対して位置決め指示を出して応答を待つ時間などわずかな時間が誤差となり定周期での位置制御が実現できませんでした。
そこで、モーションコントローラの同期制御機能を使用することにしました。仮想軸を等速運転させ、その仮想軸を主軸として同期制御を行いました。主軸は等速運転を行っているため、これに同期することで定周期での位置決めを行うことが可能となりました。さらに定周期での1周期ごとの従軸(実際に動作する軸)の動作パターンも複雑だったのですが、電子カムを作成することで動作を実現できました。
最終的に同期制御を使用して動作を実現できましたが、開発当初は位置決め制御以外に割り込み処理や速度制御でも動作検証を行い、わずかな誤差でうまくいかず、実現方法がなかなか見つけることができず苦労しました。しかし、苦労していたことをお客様もご存知でしたので、同期制御にて動作実現できたときには、その分喜んで頂けたように思います。
同期制御について説明してきましたが、同期制御は意外と簡単に実現できます。しかし、同期制御はあくまで制御方法の1つでしかありません。単純な位置決め制御で実現できる動作にわざわざ高価なモーションコントローラを使用しても意味がありません。制御対象システムの特徴を考えた上で、最適な機器・制御方法を選択することが重要となります。
(Y.R.)
関連ページへのリンク
関連するソフテックだより