- PLCのモーション制御プログラミング
第3回 多軸協調制御(軸グループによる補間制御)
PLCopen®のMotion Control FB(ファンクションブロック)を使ったモーション制御プログラムの事例を紹介するシリーズの第3回目です。PLCopen®のMotion Control FBとは、IEC 61131-3準拠のPLC(Programmable Logic Controller)で使用するモーション制御用ファンクションブロックのことです。その狙いは、ハードウェア依存部を排除し動作仕様やインタフェース仕様を標準化することで、「ソフトウェア再利用性の向上」と「ユーザのトレーニングコストの低減」を図ることにあります。
前回は「同期制御」と「同期制御の補正」でしたが、今回は「多軸協調制御」について紹介します。
前回と同様、紹介するプログラム事例は特に断りがない限り、PLCopen® Motion Control FBの技術仕様書に記載された範囲内で実現できるものです*1
*1 技術仕様書の実現内容は各PLCベンダーに依存します。本連載で紹介するプログラム事例、動作事例が各ベンダーのPLCopen認証Motion Control FBで実現できることを保証するものではありません。
多軸協調制御
多軸協調制御とは
複数の軸を軸グループという単位で管理し、各軸が協調して動作して直線補間や円弧補間などの補間制御を行う方式のことを「多軸協調制御」と表現します(図1)。PLCopen®の技術仕様書では「Coordinated Motion」と表現しています。
図1:多軸協調制御の例
Motion Control FBに対応していないPLCでの補間制御
直線補間や円弧補間のプログラミング方法は、PLCベンダーによって大きく異なります。Gコード(G言語)や独自の言語を定義している場合もありますし、専用のプログラミングツールを使用しなければならない場合もあります。
例えば、絶対位置(X,Y)=(100, 100)に向かって補間速度500で直線補間を行うプログラム例を図2に示します。記述方法に違いがあることが分かります。
図2:直線補間のプログラム例
Motion Control FBの多軸協調制御
PLCopen®の技術仕様書(Part4, Version1.0)には38個のファンクションブロック(FB)が定義されています。これらFBの使い方は、単軸制御や同期制御と同じため学習工数が削減できるほか、多軸協調制御専用のプログラミングツールが不要、といった特長もあります。
各FBの詳細はPLCopen®のWebサイト(Part4 - Coordinated Motion)を参照してください。
多軸協調制御の状態遷移
多軸協調制御は、軸グループ単位で管理を行います。
軸グループが有効のとき、多軸協調制御命令を使用できます。多軸協調制御命令により軸グループの状態が遷移します。また、軸グループに所属する軸で異常が発生した場合、軸グループはエラー発生状態となります。
軸グループの状態遷移を図3に示します。
図3:軸グループの状態遷移
直線補間と円弧補間のプログラム例
直線補間命令の種類
Motion Control FBには、絶対値直線補間 “MC_MoveLinearAbsolute” と相対値直線補間 “MC_MoveLinearRelative” の2種類の直線補間が定義されています。
MC_MoveLinearAbsoluteのプログラム事例
“MC_MoveLinearAbsolute”を用いて、初期位置(0,0)から目標位置1(100,0), 目標位置2(100,100)の順に目標位置4(0,0)まで一筆書きで動作をします(図4)。
図4:直線補間の動作例
図5および図6にプログラム事例を記載します。図5の最初の行で軸グループを有効にし、2行目以降で目標位置1、2、…の順でブレンディングネクスト*2 “_mcBlendingNext” を用いて命令を起動しています。図6の最終行で軸グループを無効にしています。
*2 ブレンディングネクストの詳細は、本連載の第1回目を参照してください。
図の通り、直線補間の連続動作が簡単に実現できます。また、これまで紹介してきた単軸位置決め制御や同期制御と同じようにプログラミングできることが分かります。
図5:直線補間のプログラム例
MC_MoveLinearAbsoluteと円弧補間の組み合わせ
次に、”MC_MoveLinearAbsolute” と円弧補間 ”MC_MoveCircular2D」*3の組み合わせについて紹介します。先ほどの動作で、目標位置1のコーナーに円弧補間を組み合わせます(図6の赤線部分)。
*3 MC_MoveCircular2Dはオムロン製NJシリーズの2軸円弧補間命令です。技術仕様書には、円弧補間としてMC_MoveCircularAbsoluteとMC_MoveCircularRelativeが定義されています。
図6:直線補間と円弧補間(赤線)の組み合わせの動作例
図7に、初期位置 (0,0) から目標位置1-a (95, 0)、目標位置1-b (100, 5) を経由して、目標位置2 (100, 100)まで動作するまでのプログラム事例を記載します。前述のプログラムに 円弧補間 “MC_MoveCircular2D” を追加されることで、直線補間と円弧補間の組み合わせ動作を簡単に実現できることが分かります。
図7:直線補間と円弧補間の組み合わせ プログラム例
終わりに
今回は、多軸協調制御のプログラム事例を紹介し、直線補間による連続動作や、直線補間と円弧補間を組み合わせた連続動作が可能であることを説明しました。
なお今回はご紹介していませんが、技術仕様書には軸座標系/機械座標系/ワーク座標系の3種類の座標系、および座標変換FBが定義されています。座標変換FBは、パラレルリンクロボットをはじめとする多関節ロボットをFBから制御する際に有効です。
多関節ロボットのような複雑な座標変換を行う場合、ボードPCや専用コントローラの使用がこれまで用いられてきました。しかし、近年はPLCの演算性能が向上しており、ボードPCと同等レベルの演算性能を持つPLCも登場しています。将来、PLCとMotion Control FBを使って多関節ロボットを制御できる時代が来るかもしれません。
次回は、「PLCベンダー間でのプログラム移植性」について紹介します。
注1.PLCopen®および関連するロゴマークはPLCopenが所有する登録商標です。
注2.Sysmacは、オムロン株式会社製FA機器製品の日本及びその他の国における商標または登録商標です。