サーボアラームには、過負荷や位置偏差異常、速度異常などのアラームが起こることがあります。
アラームが起こると軸の移動が完了せず、装置がなぜ止まっているのかが直感的にわかりません。そのため使用者にアラーム表示を行うと親切です。
ユーザーにアラームが起こっていることを知らせる方法をご紹介します。アラーム状態の取得方法は、軸に対してAxesStatusのAmpAlarmのフラグを確認することで実現できます。実際にはConsoleの文字の部分をアラームの表示処理に置き換えてください。
サンプルコード
※WMX3.6で検証したコード
void サーボアラーム監視(int i軸番号)
{
// 本来は関数の外に記述します -- ここから --
// APIを使用するには、CoreMotionApi_CLRLib.dllの参照が必要です
// コードの先頭にusing WMX3ApiCLR.EcApiCLR; を追加してください
var API = new WMX3Api();
var CMotion = new CoreMotion(API);
var CmStatus = new CoreMotionStatus();
API.CreateDevice("C:\\Program Files\\SoftServo\\WMX3\\"); // WMXに接続
API.StartCommunication(0xFFFFFFFF); // 通信開始
// 本来は関数の外に記述します -- ここまで --
// アンプ状態取得
CMotion.GetStatus(ref CmStatus);
if (CmStatus.AxesStatus[i軸番号].AmpAlarm) // 軸番号は0から始まります
Console.WriteLine("アンプのアラーム発生中です");
else
Console.WriteLine("アンプのアラームはありません");
// 本来は関数の外に記述します -- ここから --
API.StopCommunication(0xFFFFFFFF); // サーボネットワークとの通信を停止
API.CloseDevice(); // 制御を停止
// 本来は関数の外に記述します -- ここまで --
}
コメント