技術仕様書(Part1 and Part2, Version2.0)には、2014年5月現在、単軸制御用のFBが36種類定義されています。単軸制御FBには、動作系FB(絶対値/相対値の位置決め、原点復帰、速度制御、トルク制御、停止など)と、非動作系FB(タッチプローブ、パラメータの読み書きなど)があります。詳しくは、PLCopenのWebサイトを参照してください。
図5のようなインデックステーブルに対し絶対値位置決めMC_MoveAbsoluteと、バッファモードの“バッファード”を用いた位置決め動作の事例を紹介します。
プログラミング環境はオムロン製Sysmac Studioを用い、LD(Ladder Diagram)により記述しています。ただし、Motion Control FBはLDの他、ST(Structured Text)などIEC 61131-3の各言語で記述可能です※3)。また、プログラム事例では原点復帰やインタロック処理、異常処理などは省略しています。
※3)オムロン製Sysmac Studioは、LDとSTをサポートしています。
図6にはプログラム例を示します。最初の行で“StartMove”の立ち上がり時に“MOVEABS1”を起動し、120度に向けて動作を開始します。次の行では、“MOVEABS1_ACT”の立ち上がりで“MOVEABS2”を“_mcBuffered”(バッファード)で起動します※4)。
※4)技術仕様書ではバッファードは“mcBuffered”と定義されていますが、オムロン製NJシリーズではシステム定義の列挙子であることを表すため、列挙子に接頭辞”_”を付けています。
“MOVEABS1”が完了すると、バッファードで起動された“MOVEABS2”が動作を開始し240度に向けて動作を開始します。最後の行では、“MOVEABS2_ACT”の立ち上がりで“MOVEABS3”を“_mcBuffered”で起動し、“MOVEABS2”が完了すると“MOVEABS3”の動作が開始し0度に向けて動作を開始します。
図6の通り、プログラム中にPLCのメモリアドレスが記載されていません。モータ設定に関する情報もAXIS_REF型の構造体変数“MC_Axis000”に含まれるため、プログラム中には表れません。このことより、ハードウェア情報に依存しないプログラムを実現できることが分かります。また、バッファモードを用いることで連続した動作を簡単に実現できる他、“BufferMode”を変更するだけで挙動を変更可能です。
図7に実行結果のトレースグラフを示します。上段が軸の位置(0〜360度、赤色)と速度(水色)、下段が各インスタンスの出力変数であるDone、Busy、Activeの振る舞いを示します。出力変数の振る舞いや軸の動作は、技術仕様書の内容に従って動作していることが分かります。FBのインタフェース標準化により、商品によってユーザーが学習しなければならない工数が削減されます。
今回は、Motion Control FBの共通仕様と、インデックステーブルを用いた単軸の位置決め制御のプログラム事例を紹介しました。Motion Control FBでは、ハードウェア依存部を排除し動作仕様やインタフェース仕様を標準化することで、モーション制御プログラムのソフトウェア再利用性を向上させることを説明しました。また、バッファモードを用いて連続した動作がプログラミングできることが理解できたと思います。次回は、同期制御FBと同期の補正について紹介します。
※) PLCopenおよび関連するロゴマークはPLCopenが所有する登録商標です。
※) Sysmacは、オムロン製FA機器製品の日本およびその他の国における登録商標です。
Copyright © ITmedia, Inc. All Rights Reserved.