ページ先頭

本文

技術情報

  • PLCのモーション制御プログラミング
  •  

第2回 同期制御と補正

PLCopenのMotion Control FB(ファンクションブロック)を使ったモーション制御プログラムの事例を紹介するシリーズの第2回です。PLCopenのMotion Control FBとは、IEC 61131-3準拠のPLC(Programmable Logic Controller)で使用するモーション制御用ファンクションブロックのことです。前回の「Motion Control ファンクションブロックの共通仕様と単軸の位置決め制御」では、Motion Control FBのインタフェースの振る舞いとバッファモードについて説明しました。今回は、「同期制御」と「同期制御の補正」の概要とプログラム事例を紹介します。

前回と同様、紹介するプログラム事例は特に断りがない限り、PLCopen Motion Control FBの技術仕様書に記載された範囲内で実現できるものを示します*1

*1 技術仕様書の実現内容は各PLCベンダーに依存します。本連載で紹介するプログラム事例、動作事例が各ベンダーのPLCopen認証Motion Control FBで実現できることを保証するものではありません。

同期制御

同期制御の広がり

「同期」という言葉はさまざまな用途で使用されますが、本連載における「同期制御」は、図1のように主軸(入力軸)と従軸(出力軸)がギア(歯車)やカムテーブル(カム)を用いて、まさしく「同期」して動作する制御方式のことです。

近年、歯車やカムを用いたメカ機構がサーボモータに置き換わる事例が増えています。モータを使用する同期制御の場合、メカ機構に比べ動作パターン の変更が簡単です。また、メンテナンス性の良さ、振動・騒音の軽減、金属片などの異物混入の防止といったメリットもあります。加えて、サーボアンプやコン トローラ、モーションネットワークの性能向上もあり、以前より同期制御を採用しやすくなったと言えます。

ギア動作・カム動作の関係

図 1:ギア動作・カム動作の関係

Motion Control FBに対応していないPLCでの同期制御

Motion Control FB非対応のPLCで同期制御を実現する場合、ユーザーが同期制御のアルゴリズムを実装する必要がありました。ギア動作をLD言語(ラダー言語)で実装した例を図2に示します。図で示している部分はギア比演算の一部ですが、複数の処理が必要になります。

Motion Control FB非サポートPLCでのギア動作のプログラム例

図 2:Motion Control FB非サポートPLCでのギア動作のプログラム例(オムロン製CX-One画面)

PLCベンダーが同期制御用の独自のプログラミングツールを提供している場合もありますが、PLCベンダーごとにツール操作を覚える必要があるうえ、単軸制御と異なるプログラミングツールが必要になります。

Motion Control FBの同期制御FB

Motion Control FBでは、単軸制御と同じルックアンドフィール(見た目や操作感)であり、かつ簡単に同期制御を実現するために、PLCopenの技術仕様書(Part1 and Part2、Version2.0)には9つのFBを定義しています(2014年6月現在)。定義されているFBを表1に記載します。詳しくはPLCopenのWebサイト を参照してください。

ギア動作 カム動作 補正/加減算
MC_GearIn MC_CamIn MC_PhasingAbsolute
MC_GearInPos MC_CamOut MC_PhasingRelative
MC_GearOut MC_CamTableSelect MC_CombineAxes

表 1:PLCopenRの技術仕様書(Part1 and Part2, Version2.0)に定義されている同期制御

位置指定ギア動作

MC_GearInPosの機能

“MC_GearInPos”(位置指定ギア動作)は、主軸と従軸の両軸に対して同期開始位置を指定するファンクションブロック(FB)です。MC_GearInPos を起動すると、従軸は主軸に対して「追い掛け動作(Catching Phase)」を開始します(図3)。主軸と従軸が同期開始位置を通過するとギア動作に切り替わります。

MC_GearInPosの動作イメージ

図 3:MC_GearInPosの動作イメージ

MC_GearInPosのプログラム事例

MC_GearInPosをロータリーカッターに適用したプログラム事例を紹介します。ロータリーカッター(ロータリーナイフと呼ばれる場合もあります) は、フィルムや紙、針金などの長いワークを所定の長さに切断する際に使用する機構です。カッター(刃)の取り付けられた軸が、ワーク(切断対象)に同期しながらワークを切断します(図4)。今回の例では、ワークを送る軸を主軸、カッターを取り付けた軸を従軸とし、カッターは1枚刃としています。

ロータリーカッター機構

図 4:ロータリーカッター機構

本例では図5のように、従軸が15°の位置からMC_GearInPosによる動作を開始します。60°まで「追い掛け動作」を行った後、主軸の「フィードバック位置」に対してギア比1:1のギア動作を行います。従軸が120°を過ぎたら同期を解除し、15°に戻ります。

MC_GearInPosのプログラム事例

図 5:ロータリーカッターの動作イメージ

プログラム事例を図6、動作結果を図7に示します。図6の1行目では主軸の速度制御を開始します。2~3行目は、図5で説明した例の動作を行っています。

ロータリーカッターのような複雑な動作であっても、MC_GearInPosとMC_MoveAbsoluteにより簡単に実現できます。また、同期制御専用のプログラミングツールが不要であり、単軸制御FBと同じルックアンドフィールで同期制御FBがプログラミングできるという点もMotion Control FBの特長と言えます。

MC_GearInPosのプログラム事例

図 6:MC_GearInPosのプログラム事例(オムロン製Sysmac Studio画面)

MC_GearInPosの動作結果

図 7:MC_GearInPosの動作結果(オムロン製Sysmac Studio画面に加筆)

同期制御の補正

MC_Phasingの機能

次に同期制御の補正機能について紹介します。主軸の「フィードバック位置」と「実際の位置」の間にズレが生じる場合があります。また、ワークの伸縮 などにより同期制御中に主軸と従軸の間にズレが生じる場合もあります。このような場合は“MC_Phasing”(位相補正)を用います。 MC_Phasingでは、主軸位置を仮想的に補正し、これを従軸への入力値として同期制御を行います。

なお、技術仕様書(Part1 and Part2, Version2.0)では、MC_PhasingAbsolute、MC_PhasingRelativeとして定義されています。*2

*2 オムロン製コントローラNJシリーズのMC_Phasingは、MC_PhasingRelativeと機能互換です。

MC_Phasing を用いたプログラム例

MC_GearInを用いてギア動作を行っている際にMC_Phasingを用いて補正を行う事例を図8に示します。この例では、MC_Phasingを起動するタイミングで主軸と従軸のフィードバック位置の誤差を計算し、MC_Phasingの補正量に入力しています。*3

*3 オムロン製プログラミングツールSysmac Studioは、LD中にSTを記述できる「インラインST」機能を提供しています。LD中で補正量の演算など数式を使う場合は、STによる記述が便利です。

MC_Phasingを用いたプログラム事例(オムロン製Sysmac Studio画面)

図 8:MC_Phasingを用いたプログラム事例(オムロン製Sysmac Studio画面)

動作結果を図9に示します。補正前は「主軸のフィードバック位置」(赤線)と「従軸のフィードバック位置」(青線)にはズレがあります。しかし、MC_Phasingの実行後は主軸と従軸が完全に一致しています。

MC_Phasing による位相補正結果(オムロン製Sysmac Studio画面に加筆)

図 9:MC_Phasing による位相補正結果(オムロン製Sysmac Studio画面に加筆)

終わりに

今回は、同期制御と補正についてプログラム事例を紹介しました。Motion Control FBには、同期制御に必要な機能が定義されていることがお分かりいただけたと思います。

なお今回は紹介していませんが、Motion Control FBにはカムテーブルを用いた“MC_CamIn”(カム動作)、2つの軸の値を加減算して指令値を決定できる“MC_CombineAxes”(加減算 位置決め)といったFBもあります。これらについては、PLCopenのWebサイトや各PLCベンダーの情報をご確認ください。

次回は、軸グループ制御(補間動作)について紹介します。

注1.PLCopen®および関連するロゴマークはPLCopenが所有する登録商標です。
注2.Sysmacは、オムロン株式会社製FA機器製品の日本及びその他の国における商標または登録商標です。