EtherCAT機器接続確認 トラブル時の早期検出

コーディング

装置立ち上げ時、配線を変更したタイミングで、LANケーブルを抜くことがあります。 ここではケーブル異常を検出するコードをご紹介します。

接続個数で判定する方法

EtherCATに接続している機器の個数をカウントする事が出来ます。 想定している個数と違う時にアラーム表示を行い。プログラムを停止します。 関数はEcMasterInfoのNumOfSlaves で個数を取得することができます。

private void EtherCATスレーブ通信確認(int i本来あるべき個数)
{
  // 本来は関数の外に記述します  -- ここから -- 
  // APIを使用するには、EcApi_CLRLib.dllの参照が必要です
  // コードの先頭にusing WMX3ApiCLR.EcApiCLR; を追加してください
  var API = new WMX3Api();
  var EcLib = new Ecat(API);
  var EcMasterInfo = new EcMasterInfo();
  API.CreateDevice("C:\\Program Files\\SoftServo\\WMX3\\");   // WMXに接続
  API.StartCommunication(0xFFFFFFFF);                         // 通信開始
  // 本来は関数の外に記述します  -- ここまで -- 


  // エンジンから現在のマスター情報を読み込みます
  EcLib.GetMasterInfo(EcMasterInfo);
  if (EcMasterInfo.NumOfSlaves == i本来あるべき個数)
     Console.WriteLine("個数が正常です");
  else
     Console.WriteLine("個数が異常です。LANケーブル、スレーブを確認してください");


  // 本来は関数の外に記述します  -- ここから -- 
  API.StopCommunication(0xFFFFFFFF);       // サーボネットワークとの通信を停止
  API.CloseDevice();                          // 制御を停止
  // 本来は関数の外に記述します  -- ここまで -- 
}

コメント

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