EtherCATステートマシン
EtherCATスレーブの導入、設定、診断を行うにはスレーブの状態と遷移について知っていると設定項目の理解や問題解決に役立ちます。また、設定項目の意味を理解する手助けとなります。
EtherCATスレーブの状態
EtherCATスレーブはマスタからの指示に対応して以下のいずれかの状態になります。EtherCATのRUNインジケータのあるスレーブではRUNインジケータの点灯内容でスレーブの状態を確認できます。ELターミナルなどのスライスI/Oには通常RUNインジケータはありません。
Init: 電源投入後の状態です。マスタからスレーブのレジスタ(※)にアクセスできます。RUNインジケータは消灯します。
Pre-Operational (PreOp): 準備状態です。マスタはスレーブのアプリケーション部分の設定項目 (CoEオブジェクトディクショナリなど) にアクセスできます。RUNインジケータが点滅 (200msごとにオン・オフ) します。
Safe-Operational (SafeOp): 安全運転状態です。マスタはプロセスデータの周期通信を行います。マスタはスレーブから正しい入力データを受信しますが、スレーブはマスタから受信した出力データを処理せずに安全状態を維持します。RUNインジケータは一瞬点灯後1秒間消灯 (200ms点灯 1s消灯:シングルフラッシュ) を繰り返します。
Operational (Op): 運転状態です。マスタ・スレーブ間でプロセスデータの周期通信を行い動作します。RUNインジケータは点灯します。
Bootstrap (Boot): スレーブのファームウェアを書き換えるための特殊な状態です。ファームウェア書き換えに対応している場合にだけ選択できます。
※レジスタはEtherCATスレーブの基本的な通信機能の設定やモニタを行うためのパラメータです。
ERRインジケータを装備しているEtherCATスレーブの場合、障害発生をその点灯状態で検出できます。主な点灯状態と障害内容は以下のとおりです。
点灯: アプリケーション用のマイコンの致命的な障害。
ダブルフラッシュ: 通信のタイムアウト。例、ケーブルの切断でプロセスデータを受信できなくなった
シングルフラッシュ: スレーブ内部の軽微なエラー。TwinCATのログ画面でエラー内容の確認を行ってください。
ゆっくり点滅: 不正な設定: スレーブの通信やアプリケーションの処理のための設定内容が正しくない。
早く点滅: 起動時にエラーが発生
消灯: 正常、エラー無し
EtherCATスレーブの状態遷移
EtherCATスレーブは状態遷移ごとにマスタからの機能設定と遷移の指示を受けて状態遷移します。マスタとスレーブ間が正しく設定されていれば、Init→PreOp→SafeOp→Opと順番に遷移し運転状態になります。障害が発生した場合は運転を停止し安全な状態になり、マスタに障害を通知します。障害の内容によりErr SafeOp, Err PreOp, Err Initのいずれかの状態になります。
TwinCAT 3 XAEでは各スレーブの状態のモニタリング、ログ情報による障害内容の確認を行えます。診断機能の詳細についてはターミナルの診断のページで解説します。
状態遷移の図を示します。スレーブは必ずマスタの設定と指示により上位の状態に1段階ずつ遷移しますが、エラー発生時は内容により適切な状態に移行します。TwinCAT 3では状態変更時の設定項目を表すために、各状態の頭文字を使って IP (Init→PreOp) のように表示します。
状態遷移時に発行されるコマンド
状態遷移時にEtherCATマスタがスレーブに発行するコマンドを簡単に説明します。完全に理解するにはEtherCATの技術仕様に関する深い知識が必要になります。
レジスタへのコマンド
このセクションはスレーブ開発者向けの知識であり、一般ユーザの方は理解する必要はありません。
EtherCATスレーブには対応したESIファイルがあり、TwinCAT 3 XAEはESIファイルの内容からスレーブの状態遷移に必要となるコマンドを生成します。主な項目としてスレーブの通信バッファやアドレス指定などがあります。各スレーブへのコマンドの内容はTwinCAT XAEで確認できます。
レジスタへのコマンドを確認したいスレーブ (下図ではTerm 5 (EL3102)) をクリックします。「EtherCAT」タブを選択し、「Advanced Settings」をクリックします。
「Advanced Settings」ダイアログの左ツリーで「General→Init Commands」を選択します。
「Init Commands」の画面で表の上部のIP, PSなどは前述の状態遷移時に対応し、コマンドの行の「X」がついている状態戦時にそのコマンドをマスタが発行します。
コマンドの行を選択すると下部にコマンドの内容の詳細が表示されます。
このコマンドでは状態遷移を指示するレジスタにエラー確認とInitへの遷移を意味する値を書き込みます。
CoEスタートアップコマンド
この機能は、スレーブに対して追加の機能設定を行いたい場合に使用します。
状態遷移の際に、マスタがCoEスタートアップコマンドを発行してCoEオブジェクトのパラメータ値を変更します。例えば、アナログ入力ターミナルにユーザが使用したいスケーリングのパラメータを設定するときなどに使用します。このコマンドを登録すると、電源を切ると設定が消えるようなスレーブや故障時にデバイスを交換した後でも、追加の設定をすることなくシステムを運用できます。
設定方法の詳細についてはCoEオブジェクトディクショナリのページを参照してください。
TwinCAT 3 XAEによる状態遷移方法
全スレーブへの状態遷移指示
EtherCATマスタポート「Device 2 (EtherCAT)」をクリックし、「Online」タブを選択します。
「Init」、「Pre-Op」、「Safe-Op」、「Op」ボタンをクリックすると全スレーブに選択した状態遷移を指示します。
スレーブ単体への状態遷移指示
対象のEtherCATスレーブを選択し、「Online」タブを選択します。
「Init」、「Pre-Op」、「Safe-Op」、「Op」ボタンをクリックすると全スレーブに選択した状態遷移を指示します。
「Bootstrap」に対応している場合は、このボタンでファームウェアを書き換えるモードに移行します。