EC-Motion Advanced - モーション制御ライブラリ
概要
EC-Motion Advancedは、CiA402®プロファイル対応ドライブ向けのモーション制御ライブラリであり、EC-Masterのアドオンとして提供されます。追加の専用ハードウェアを必要とせず、単軸および多軸のモーション制御を実現できます。
EC-Motionは、PLC(プログラマブルロジックコントローラ)スタイルのインターフェースを備えており、PLC環境やC++アプリケーションに容易に組み込んでサーボドライブを制御することができます。
内蔵の軌跡生成器(トラジェクトリジェネレータ)は、指定された動作条件(最大速度、加速度、減速度、ジャーク値)に基づいて、目標位置までの速度プロファイルを自動計算します。ジャーク制限付きの動作や、速度間のスムーズな切り替え(ブレンディング)にも対応しています。サーボドライブは、Cyclic Synchronous Position(CSP)モードまたはCyclic Synchronous Velocity(CSV)モードで動作可能です。

ソフトウェア構成
ライブラリには、軸を「Operation enabled」状態に切り替える McPower のような管理用ファンクションブロック、および軸を特定の位置へ移動させる McMoveAbsolute などのモーション制御用ブロックが用意されています。
軸が移動中であっても、次の動作コマンドは自動的にキューに登録され、現在の動作完了後に実行されます。
また、低/前/次/高といったブレンディングモードを使用することで、途切れのない一連の動作を実現できます。
ライブラリの中核であるトラジェクトリジェネレータは、動作開始前に加速・定速・減速といった各セクションを分割して計算します。加速および減速セクションでは、ジャーク制限を設定することが可能です。
滑らかな軸動作を実現するため、ジェネレータは毎サイクルごとに次の速度値を算出し、最終位置に到達するまで更新を続けます。軸レイヤーは動作モードに応じて、算出した速度を 目標位置(CSP) または 目標速度(CSV) に変換します。

設定と診断
EtherCAT 設定・診断ツール「EC-Engineer」 を使用することで、各軸のパラメータ設定を簡単に行えます。一度設定すれば、CiA402 対応のすべてのドライブをアプリケーションコードを変更することなく制御できます。

また、EC-Engineer の診断モードでは、各軸の入出力をリアルタイムでモニタリングできます。
モーションダイアログには現在位置やモーション状態などのライブデータが表示され、軸のオン/オフ切り替えや位置決め動作の実行も可能です。

主な特長
- 対応OS:Linux、Xenomai、FreeRTOS、QNX、VxWorks、RTX64 など
- 対応CPUアーキテクチャ:x86、x64、ARM、ARM64
- 単軸および多軸(カミング/ギアリング)制御に対応
- 高精度トラジェクトリジェネレータ搭載
- ジャーク制限付きモーションに対応
- 停止せずに連続動作できるブレンディング機能
- 動作中のパラメータ変更(連続更新)をサポート
- PLC 互換インターフェースによる容易な統合
- 管理系ファンクションブロック(Administrative Function Blocks)
- McPower:パワーステージのオン/オフを制御します。
- McSetPosition:座標系をシフトします。
- McReadParameter / McReadBoolParameter:パラメータ値を読み出します。
- McWriteParameter / McWriteBoolParameter:パラメータ値を変更します。
- McReadActualPosition:現在位置を読み出します。
- McReadActualVelocity:現在の速度を読み出します。
- McReadMotionState:現在の動作状態を取得します。
- McReadAxisInfo:軸に関する情報を読み出します。
- McReadAxisError:ファンクションブロックに直接関連しない一般的な軸エラーを表示します。
- McReset:エラーリセットを行い、「ErrorStop」状態から「Standstill」状態へ遷移させます。
- McCalcMoveProfile / McCalcMoveTimeAtPos:実際に動作せずに軌道や到達時間を計算します。
- 単軸モーションファンクションブロック(Single-Axis Motion Function Blocks)
- McStop:制御された停止動作を指令し、軸を「Stopping」状態に遷移させます。
- McHalt:制御された停止動作を指令し、軸を「Standstill」状態に遷移させます。
- McMoveAbsolute:指定した絶対位置への制御された動作を指令します。
- McMoveRelative:現在位置から指定距離分の相対移動を指令します。
- McMoveVelocity:指定した速度で継続的に動作するよう指令します(終わりのない連続動作)。
- McMoveContinuousAbsolute:指定した絶対位置への制御動作を行い、終了時の速度も指定します。
- McMoveContinuousRelative:指定した相対距離分の制御動作を行い、終了時の速度も指定します。
- 多軸モーションファンクションブロック(Multi-Axis Motion Function Blocks)
- McCamTableSelect:CAMテーブルを選択し、関連するテーブルとの接続を設定します。
- McCamIn:CAM制御を有効化します。
- McCamOut:スレーブ軸をマスター軸から即座に切り離します。
- McGearIn:スレーブ軸とマスター軸の速度比を設定します。
- McGearOut:スレーブ軸をマスター軸から切り離します。
メリット
- 追加のモーションコントローラ不要 → ハードウェアコスト削減
- EC-Master とのシームレス統合 → 開発効率向上
- 多くの OS/CPU に即対応 → セットアップ時間短縮
- モーション制御とメインデバイススタックを一括提供 → 導入と管理を簡素化