装置立ち上げ時、配線を変更したタイミングで、LANケーブルを抜くことがあります。 ここではケーブル異常を検出するコードをご紹介します。
接続個数で判定する方法
EtherCATに接続している機器の個数をカウントする事が出来ます。 想定している個数と違う時にアラーム表示を行い。プログラムを停止します。 関数はEcMasterInfoのNumOfSlaves で個数を取得することができます。※WMX3.6で検証したコード
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(); // 制御を停止
// 本来は関数の外に記述します -- ここまで --
}
コメント