三角関数やベクトルを使って座標を計算し、モーション動作を追加して動作を確認する際、いきなり装置を動かすのは非常に危険です。本記事では、ローカル環境で動作を確認するためのツールについて解説します。このツールを使用すれば、複数の軸をプロットすることが可能であり、軸同士の連携タイミングを目視で確認することもできます。安全に、そして効率的に動作をチェックできる方法を見ていきましょう!
MotionScopeは何者?
1つのチャートに2軸分のプロットとデジタルI/O出力ができます。直線補間や円モーションなど、指令座標が確認できます。
チャートは4つまで表示することが出来ますが、私は2つまでしか使ったことがありません。軸の座標以外に、速度を表示させることが出来ます。実際に机上で実行するときは、WMX3Consoleで軸の現在座標を数値させておくとよいでしょう。
トリガー条件設定 IOの出力をプロット開始とする
モーション処理のある区間からプロットを開始したい場合があります。 その場合、開始させるタイミングで信号を与えてあげます。その信号がトリガーになりプロットが開始されます。
トリガーの設定方法
以下のアイコンをクリックで機能が有効になります。

監視させる対象を、デジタルIOのアドレスを設定します。プログラムコードから制御できるのは出力なので”Output”を選択します。デフォルトでは信号が上がった時からプロットが開始されます。 下の図はデジタル出力のアドレス0,0を監視しています。このアドレスはWMX3Consoleで見えているI/Oと同じものになります。

プロット開始を指定するタイミング
▶ボタンを押しトリガー待ちにします。

StartLog(); を呼び出したタイミングでプロットが行われるようになります。
開始コード
/// <summary>I/O操作クラス(IOApi_CLRLib.dll)</summary>
public Io mIO;
/// <summary>
/// グラフ記録開始
/// </summary>
private void StartLog()
{
mIO = new Io(API);
mIO.SetOutBit(0, 0, 1); // 記録(プロット)開始
// すぐにフラグをOFFにするとトリガーがかかりません
System.Threading.Thread.Sleep(100);
mIO.SetOutBit(0, 0, 0);
}
以下は、2軸を直線補間で動作させたときのプロットです。

デジタルI/Oの状態を描画する方法
モードをDIOに変更します。対象のByteとBitを指定してください。

あとがき
WMX3.5の時はよくアプリが落ちてましたが、3.6からは安定しています。モーション制御はWMXのAPIを使用するまでに、数値計算も必要な部分があり、実行すると予想外の座標に行ってしまうことがあります。
円のモーション計算は、動いてほしいルートとは逆方向からゴールに向かって行ってしまったりしたので、グラフ表示ができるのはすごく助かりました。