EtherCATの通信異常が発生した後に自動的にOPに回復するにはどの設定が必要ですか

8.5. EtherCATの通信異常が発生した後に自動的にOPに回復するにはどの設定が必要ですか#

下記の設定になります。

マスターの挙動設定#

EtherCATマスタ > EtherCAT タブ > 詳細設定 > ステートマシン > マスタ設定 > ランタイム動作 > 通信エラー後に再初期化

この設定により以下の通り挙動が変わります。

ON

必ずINIT状態に戻り、スタートアップ動作となるため、スレーブ側に問題が無ければスタートアップ状態設定(デフォルトではOP)に移行する。

OFF

マスタは通信異常が発生した直前の最終状態を記憶しており、後述するスレーブ側の設定により状態遷移の振る舞いが変わる。

マスタのオンラインタブで各スレーブのステートが一覧できます。

本設定がONの場合、通信切断中は該当するスレーブ状態がINIT NO_COMMになり、復活するとスタートアップで指定した状態へ遷移します。

OFFの場合、通信中断中は直前の状態でERR表記となり、例えば直前にSAFEOPへ移行してから通信異常状態となると、ERR SAFEOP NO_COMMの表記になります。通信異常が回復するとスレーブ側の設定によりSAFEOPまたは、通信異常が発生する前の状態へ戻ります。

スレーブの挙動設定#

マスタの詳細設定で行うスレーブの設定は全てのスレーブに対して反映され、そのスレーブの通信異常が発生した際の挙動が決定されます。スレーブ個別に変更を行う場合は、各スレーブ内のEtherCATタブの詳細設定にて行ってください。

EtherCATマスタ > EtherCAT タブ > 詳細設定 > ステートマシン > スレーブ設定 > ステートマシン

設定項目

ON時の振る舞い

OFF時の振る舞い

状態の自動復元

通信エラーが発生する前の状態に戻ります。

通信エラー発生した後の状態にスレーブが自発的に移行した状態のままとなります。

通信エラー後に再初期化

一度INITに戻りスタートアップ処理が行われてから通信エラー発生した状態に戻るか、自動復元がONであればエラー発生直前の状態に戻ります。

最終状態のままINITへの状態変更は行われません。

まとめ#

通信異常が解除された場合に自動的にOP状態へ移行するかどうかは、まず、マスタ側の挙動が優先されます。こちらの「通信エラー後に再初期化」がONであれば、スレーブ側の振る舞いに関わらずマスターにより状態変更が行われます。

マスタ側の「通信エラー後に再初期化」がOFFの状態で、且つ、スレーブ側の「状態の自動復元」によって、次の挙動の違いが発生します。

OFFの場合

通信エラーが発生した事により遷移した状態のままとなります。ターミナルによっては通信異常によりSAFEOPに移行し、そのままの状態となります。

エラー中の各スレーブの状態は、ERR **** NO_COMMにより分かります。エラー復帰後もこの****の状態になります。

ONの場合

通信エラーが発生する直前の状態に戻ります。必ずしもOPとは限りません。スレーブ側に対する状態遷移操作や、スレーブ側の制御により意図的に移行した最終状態に戻ります。マスタで「通信エラー後に再初期化」を有効にした場合は、確実にスタートアップ設定に基づいた状態(デフォルトOP)へ遷移しますが、そちらを無効にして、この設定を有効にした場合は、エラー発生直前の状態へ遷移されます。

なお、スレーブ側の「通信エラー後に再初期化」の設定は、通信エラー解除後の状態には関係ありませんが、一度INITに移行してスタートアップが行われますので、CoEパラメータ等の再書き込みが行われ、安全に再起動することができます。