WMX サーボアラームを監視する方法

コーディング

サーボアラームには、過負荷や位置偏差異常、速度異常などのアラームが起こることがあります。 

アラームが起こると軸の移動が完了せず、装置がなぜ止まっているのかが直感的にわかりません。そのため使用者にアラーム表示を行うと親切です。

ユーザーにアラームが起こっていることを知らせる方法をご紹介します。アラーム状態の取得方法は、軸に対してAxesStatusのAmpAlarmのフラグを確認することで実現できます。実際にはConsoleの文字の部分をアラームの表示処理に置き換えてください。

サンプルコード

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();                         // 制御を停止
  // 本来は関数の外に記述します  -- ここまで -- 

}

コメント

タイトルとURLをコピーしました