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時の振る舞い |
---|---|---|
状態の自動復元 |
通信エラーが発生する前の状態に戻ります。 |
通信エラー発生した後の状態にスレーブが自発的に移行した状態のままとなります。 |
通信エラー後に再初期化 |
一度 |
最終状態のまま |
まとめ#
通信異常が解除された場合に自動的にOP状態へ移行するかどうかは、まず、マスタ側の挙動が優先されます。こちらの「通信エラー後に再初期化」がONであれば、スレーブ側の振る舞いに関わらずマスターにより状態変更が行われます。
マスタ側の「通信エラー後に再初期化」がOFFの状態で、且つ、スレーブ側の「状態の自動復元」によって、次の挙動の違いが発生します。
- OFFの場合
通信エラーが発生した事により遷移した状態のままとなります。ターミナルによっては通信異常により
SAFEOP
に移行し、そのままの状態となります。エラー中の各スレーブの状態は、
ERR **** NO_COMM
により分かります。エラー復帰後もこの****
の状態になります。- ONの場合
通信エラーが発生する直前の状態に戻ります。必ずしもOPとは限りません。スレーブ側に対する状態遷移操作や、スレーブ側の制御により意図的に移行した最終状態に戻ります。マスタで「通信エラー後に再初期化」を有効にした場合は、確実にスタートアップ設定に基づいた状態(デフォルト
OP
)へ遷移しますが、そちらを無効にして、この設定を有効にした場合は、エラー発生直前の状態へ遷移されます。
なお、スレーブ側の「通信エラー後に再初期化」の設定は、通信エラー解除後の状態には関係ありませんが、一度INIT
に移行してスタートアップが行われますので、CoEパラメータ等の再書き込みが行われ、安全に再起動することができます。