WMX3やEtherCATを使い始めると「CSPモード」「インポジション」「サイクルタイム」など、初めて聞く専門用語がたくさん出てきます。このページではWMX3を使う上で必ず出てくる用語を、初学者向けにやさしく解説します。
基本概念
WMX3(ダブルエムエックススリー)
Moventas(モベンシス)社が開発したソフトウェアモーションコントローラ。PCにインストールするだけでEtherCATスレーブ(サーボアンプ・I/Oモジュール等)を制御できる。C#・C++・Pythonから同じAPIで操作できるのが特徴。
モーションコントロール
モーターを使って機械の「位置・速度・力(トルク)」を精密に制御すること。工作機械・ロボット・半導体製造装置などで使われる技術。
WMX3エンジン
WMX3の中核となるリアルタイムプロセス。RTX(リアルタイムOS拡張)上で動作し、EtherCATの通信と軸制御演算を担う。ユーザーアプリ(C#など)からAPIを通じてエンジンに指令を送る仕組み。
デバイス(Device)
WMX3エンジンとの通信チャネルを開いたオブジェクト。C#では WMX3Api クラスのインスタンスを作り、CreateDevice() でデバイスを取得する。スレッドごとに別々のデバイスを作る必要がある。
RTX / RTX64
WindowsにリアルタイムOS機能を追加する拡張ソフト(IntervalZero社製)。WMX3はRTX上でサイクリックなモーション演算を行う。RTXライセンスドングルが必要。
シミュレーター(Simulator)
実機のサーボやI/Oがなくても、PC内で軸の動作を仮想的に再現できる機能。開発初期のデバッグや動作確認に使う。
制御モード
CSPモード(Cyclic Synchronous Position)
サイクルごとに「目標位置」をサーボアンプへ送る制御モード。WMX3が1サイクルごとに位置指令を計算してサーボへ送信する。最も一般的に使われるモード。
CSVモード(Cyclic Synchronous Velocity)
サイクルごとに「目標速度」をサーボアンプへ送る制御モード。速度制御が必要な用途(巻き取り機、ローラーなど)で使う。
CSTモード(Cyclic Synchronous Torque)
サイクルごとに「目標トルク(力)」をサーボアンプへ送る制御モード。張力制御やダンサー制御などで使う。
位置制御モード / 速度制御モード / トルク制御モード
WMX3の軸指令モード(AxisCommandMode)。CSP≒位置、CSV≒速度、CST≒トルクに対応する。cm.axisControl.SetCommandMode() で切り替える。
軸の状態(OperationState)
Idle(アイドル)
軸が停止していて、次の命令を受け付けられる状態。移動命令は必ずIdle状態から送る。NotIdleState エラーが出たら前の動作完了を motion.Wait() で待つ。
Pos(ポス)
絶対位置・相対位置移動中の状態(Position の略)。MoveAbsolute や MoveRelative を実行中はこの状態になる。
Jog(ジョグ)
速度指令で連続移動中の状態。StartJog() で開始し、Stop() で停止する。速度の符号(±)で移動方向を決める。
Home(ホーム)
原点復帰動作中の状態。StartHome() で開始する。完了するとエンコーダ位置がリセットされる。
プロファイル・軌跡
台形加減速(Trapezoidal Profile)
加速→定速→減速の3段階で動く最も基本的な速度プロファイル。速度グラフが台形に見えることから名前が付いた。ProfileType.Trapezoidal で指定する。
S字加減速(S-Shape / Jerk Ratio)
加速・減速をなめらかなS字曲線にするプロファイル。急激な速度変化(ジャーク)を抑えることで機械への衝撃を減らせる。ProfileType.SShape または JerkRatio パラメータで設定する。
ジャーク(Jerk)
加速度の変化率(加加速度)。ジャークが大きいと機械に振動が発生する。S字加減速でジャークを制限することで滑らかな動作になる。
補間(Interpolation)
複数の軸を連動させて、直線・円弧などの軌跡を描く制御。例えばX軸とY軸を同時に動かしてX方向に直線移動するのが「直線補間」。WMX3では StartLinearIntplPos() / StartArcIntplPos() などで実現する。
直線補間(Linear Interpolation)
2軸以上を使って直線経路を描く補間。工作機械のカット動作などに使う。
円弧補間(Circular Interpolation)
2軸を使って円・円弧を描く補間。中心点と終点、または半径と終点で円弧を指定する。
オーバーライド(Override)
動作中に速度を倍率で変更する機能。100%を基準に50%にすると速度が半分になる。緊急減速や速度調整に使う。
I/O・信号
デジタルI/O(Digital I/O)
ON/OFFの2値で信号をやり取りする入出力。センサーの検出信号(入力)やシリンダー制御(出力)などに使う。WMX3では io.SetOutputBit() / io.GetInputBit() で操作する。
アドレス(Address)とビット(Bit)
I/Oの位置を指定する番号。アドレスはバイト単位(0、1、2…)、ビットはそのバイト内のビット位置(0〜7)。例えば「アドレス0、ビット3」のように指定する。
インポジション(InPos / In-Position)
軸が目標位置の近くに達したことを示す信号。「位置決め完了」とも呼ぶ。インポジション幅(許容誤差)はパラメータで設定する。
リミットスイッチ(Limit Switch)
軸の移動限界を検出するセンサー。ハードリミット(物理スイッチ)とソフトリミット(ソフトウェアの上限/下限設定)の2種類がある。ハードリミットが作動すると AxisHardLimit エラーが返る。
アンプアラーム(Amp Alarm)
サーボアンプが異常を検出して停止した状態。過電流・過熱・エンコーダ異常などが原因。AxisAmpAlarm エラーが返る。アラームをリセットして原因を取り除いてから再起動する。
EtherCAT通信
EtherCAT(イーサキャット)
産業用リアルタイムEthernetの通信規格。通常のEthernetを改良し、1ms以下の短サイクルでデータをやり取りできる。サーボアンプ・I/Oモジュールとの通信に使われる。
マスター(Master)/スレーブ(Slave)
EtherCATはマスター(親)とスレーブ(子)の構成。PCがマスターとなり、サーボアンプやI/Oモジュールがスレーブになる。WMX3エンジンがマスターとして動作する。
サイクルタイム(Cycle Time)
EtherCATが1回のデータ送受信を行う時間間隔。WMX3では通常1ms(1000μs)。短いほどリアルタイム性が高くなるが、PCの処理能力が必要になる。
ESIファイル(EtherCAT Slave Information)
EtherCATスレーブの仕様情報が書かれたXMLファイル。スレーブメーカーが提供する。WMX3の設定フォルダに配置してスレーブを認識させる。拡張子は .xml。
ENIファイル(EtherCAT Network Information)
EtherCATネットワーク全体の構成情報をまとめたファイル。WMX3ではTwinCAT等のツールでネットワークをスキャンしてENIファイルを生成し、WMX3に読み込ませる。
SDO通信(Service Data Object)
EtherCATのスレーブ設定パラメータを読み書きする通信方式。通信開始前後に使用し、サーボのゲイン設定や動作モード変更などに使う。PDO通信と違いサイクリックではない(非定期)。POD通信中でも、この処理が出来ます。ただ、EtherCAT周期の数回分で通信が行われるので、早く設定を書き換える必要がある場合は注意。
PDO通信(Process Data Object)
EtherCATのリアルタイムデータをサイクリックに交換する通信方式。位置指令・速度指令・現在位置などをサイクルごとに送受信する。WMX3のモーション制御はPDOを使っている。
原点復帰(Homing)
原点復帰(Homing / Home)
機械の基準位置(原点)を確定させる動作。電源を入れた直後はエンコーダの絶対位置が不明なため、決まった動作でリミットセンサーやZ相パルスを探して位置をリセットする。
Z相(Z-phase)
エンコーダが1回転ごとに1パルス出力する原点検出用の信号。モーターが1回転するたびに正確に同じ位置でパルスが出るため、原点の目印として使う。
まとめ
- CSP/CSV/CST:位置/速度/トルク制御モード。WMX3では通常CSPモードを使う
- OperationState:軸の状態。Idleになってから次の命令を送る
- 台形 vs S字:S字は振動が少ないが、JerkRatioの設定が必要
- インポジション:位置決め完了の合図。許容幅はパラメータで設定する
- ESI/ENIファイル:EtherCATを動かす前に必要な設定ファイル
- サイクルタイム:短いほど精度が高くなるが、PCの負荷も上がる
あとがき
この記事はニーズがあるのかよくわからなかったので、とりあえず書いてみました。アクセス数が多ければこのような記事も書きます。

コメント