連載
» 2014年06月09日 09時00分 UPDATE

PLCのモーション制御プログラミング入門(1):Motion Control FBの共通仕様と単軸の位置決め制御 (1/2)

PLCのモーション制御プログラム開発に貢献する「PLCopen Motion Control FB」。本連載ではMotion Control FBについてより深く掘り下げ、解説していく。第1回は共通仕様と単軸の位置決め制御について取り上げる。

[オムロン,MONOist]
plc

 PLCopenのMotion Control FBとは、IEC 61131-3準拠のPLC(Programmable Logic Controller)で使用するモーション制御用ファンクションブロックのことです。

 以前の連載「PLCの国際標準プログラミング入門」において、第4回で『PLCopenの「Motion Control FB」とは』を取り上げました。この中で、ハードウェア依存部を排除し動作仕様やインタフェース仕様を標準化することにより「再利用性を向上させること」「ユーザーのトレーニングコストを低減させること」が「Motion Control FB(ファンクションブロック)」の狙いであることを説明しました。

オムロン製 CJシリーズの相対位置決めプログラム 図1:オムロン製 CJシリーズの相対位置決めプログラム(SYSMAC CJ1W-NC281/481/881 ユーザーズマニュアルより)(クリックで拡大)
NJシリーズの相対位置決めプログラム 図2:オムロン製NJシリーズの相対位置決めプログラム事例(Sysmac Studio画面)(クリックで拡大)

 相対位置決めを例に、Motion Control FBをサポートしていないPLC(図1)と、サポートしているPLC(図2)のプログラムを比較してみます。

 図1では、W012、W010.01といったメモリアドレスをプログラム中に記述しています。慣れた方には実装しやすいプログラミング方法であるもののメモリアドレスを意識する必要があります。一方、図2はメモリアドレスを意識する必要もなく、メモリアドレス変更時でもプログラムに影響しないため、プログラムの再利用性が向上します。また、プログラムの視認性が高まること、IEC 61131-3 に準拠した変数が使用できることもMotion Control FBのメリットだといえます。

 この例からMotion Control FBの狙いやメリットを理解してもらえると思います。しかし本記事の読者の多くは、より複雑な制御をする場合にMotion Control FBをどのように使うのか知りたいのではないでしょうか。

 そこで今回から4回にわたって、Motion Control FBを用いたモーション制御プログラムの事例を紹介しながら、Motion Control FBの狙いやメリットをより具体的に紹介していきます。第1〜3回まではMotion Control FBの代表的な機能の紹介とともに、Motion Control FBを適用したプログラム事例を紹介します。第4回は、PLCベンダー間でのプログラムの移植性について紹介します。初回となる今回は、Motion Control FBの共通仕様と単軸の位置決めについて説明します。

内容
第1回 Motion Control FBの共通仕様と単軸の位置決め制御
第2回 同期制御と補正
第3回 多軸協調制御
第4回 PLCベンダー間でのプログラム再利用性

 本連載で紹介するプログラム事例は特に断りがない限り、PLCopen Motion Control FBの技術仕様書に記載された範囲内で実現できるものです※1)

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

Motion Control FBの共通仕様

 技術仕様書では、各FBのインタフェースの他、Motion Control FBの共通仕様も記載されています。今回は、FBのインタフェースの振る舞いとバッファモードについて紹介します。

FBのインタフェースの振る舞い

 各FBのインタフェース(入力/出力の変数)のうち、代表的な変数を表1に紹介します。また、これらの変数のTRUE/FALSEのタイミングチャートを図3に示します。

 FBはExecuteの立ち上がりエッジで起動され、BusyがTRUEとなります。FBが制御状態になると、ActiveもTRUEになります。FBが正常完了するとDoneがTRUEとなり、BusyやActiveはFALSEになります。

代表的なインタフェースの振る舞い 表1:代表的なインタフェースの振る舞い(クリックで拡大)

 図3の(a)(c)(d)のようにExecuteがTRUEの状態でDone、Command Aborted、ErrorがTRUEになった場合、Executeの立下りでこれらはFALSEになります※2)。もし(b)のように、ExecuteがFALSEの状態でこれらの変数がTRUEになった場合、Doneなどは1サイクルだけTRUEとなります。

※2)オムロン製NJシリーズでは、エラーリセットが完了するまでErrorのTRUEを継続する仕様です。

技術仕様書に実装例として示された入力/出力変数のタイミングチャート 図3:技術仕様書に実装例として示された入力/出力変数のタイミングチャート(技術仕様書 Part1 and Part2, Version 2.0のFigure7を編集して記載)(クリックで拡大)

バッファモード

 バッファモードとは、複数のFBを連続的に動作させる場合や、実行中のFBを中断し次のFBを実行する場合に使用する機能です。FB1が実行中の命令、FB2が次に実行される命令のとき、FB2の入力変数“BufferMode”にMC_BUFFER_MODE型の列挙子を指定します。

 バッファモードの定義を表2に紹介します。

表2:バッファモードの定義 表2:バッファモードの定義(クリックで拡大)
図4:バッファモードの振る舞い 図4:バッファモードの振る舞い(クリックで拡大)
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.