1
EtherCAT デバイスプロトコル ETG仕様書: www.ethercat.org/etg<仕様書番号 (4)> ナレッジベース: www.ethercat.org/kb 開発者 フォーラム : www.ethercat.org/forum obj 0x1C12:1 obj 0x1C13:1 obj 0x1600:1 obj 0x1A00:1 obj 0x1A00:2 obj 0x7000 obj 0x6000 obj 0x6010 設定 1. 構成 obj 0x700:1 Bool = 1 obj 0x6000:1 INT = -3 obj 0x700:2 Bool = 0 obj 0x6000:2 Bool = 0 obj 0x6010:1 STRING = ETGobj 0x700:3 UINT = 42 obj 0x600:3 STRING = EtherCATobj 0x6010:2 UNSIGNED = 5 マスター 周期通信: 入力データ処理 スレーブ ベリファイ: DCによる同期動作 (サポートする場合) 開始: 出力プロセスデータ更新 (START_OUTPUT_HANDLER) スレーブ 停止: 出力プロセスデータ更新 (STOP_OUTPUT_HANDLER) OD エリア OD インデックス範囲 通信エリア 0x1000-0x1FFF RxPDO Mapping 0x1600-0x17FF TxPDO Mapping 0x1A00-0x1BFF SM RxPDO Assign 0x1C12 SM TxPDO Assign 0x1C13 プロファイルエリア (モジュール) 0x6000-0xBFFF 入力エリア 0x6000-0x6FFF 出力エリア 0x7000-0x7FFF SDO リクエスト / レスポンスはCoEオブジェクトのリード/ ライト 使用しますSDO Infoサービスはオブジェクトディクショナリ 構成関連するオブジェクトエントリーをリードしますSDOボートはサービスのエラーを通知しますESC ホストコントローラー スレーブ SLAVE 1 SLAVE 2 SLAVE 3 SLAVE 4 EPU PORT 3 No Link PORT 1 PORT 2 Link リクエスト レスポンス アボート 送信モード: Expedited Normal Segmented データ 4 Byte データ = Mbx size データ > Mbx size マスター スレーブ PORT 1 Link PORT 0 Link (SM3 PDO Assignment) (RxPDO Mapping) データグラム ・・・ ESM CoE 0x03 プロセスデータ µC ESC Mailbox EoE 0x02 AoE 0x01 FoE 0x08 SoE 0x10 PDI (プロセスデータインタフェース) プロセスデータRAM LATCH SYNC AL DL Ph レジスター SII (EEPROM) SM 0 reg 0x0800 SM 1 reg 0x0808 SM 2 reg 0x0810 SM 3 reg 0x0818 DC reg 0x0900 EtherCAT処理ユニット(EPU) ADO 0x1000 FMMU 0 reg 0x0600 FMMU 1 reg 0x0610 オートフォワーダーループバック Port 0 (in) Port 1 (out) Port 2 (out) Port 3 (out) 参照先 : ETG. 1000 . 3 reg 0x0100 reg 0x0110 reg 0x0302 reg 0x0311 EtherCAT ステートマシン (ESM) EtherCATデバイスのステートマシンはスレーブが状態遷移するために必要設定項目状態ごとに定義実装されている各機能にその設定反映します。状態遷移時った設定ったりスレーブ内部エラーが 発生したりするとESMAL Status レジスタのエラーフラグとAL Status Codeのエラーコードを通知します状態遷移のリクエストとレスポンスまたはエラーレスポンスはESCAL Control レジスタ( reg 0x120), AL Status ジスタ( reg 0x130)およびAL Status Codeレジスタ( reg 0x134) 使用しますESMはスレーブのビヘイビアを規定 マスターはESMにしたがいスレーブの設定状態変更をリクエストしますESM管理するマスター とスレーブ基本設定解説下図します見方: マスターとスレーブは必要設定ってからAL ControlAL Status状態遷移のリクエストとレ スポンスをライトしますCoE オブジェクトディクショナリー(OD) OD従来CANopen®規格定義されたスレーブ様々 なデータ変数構造体のセットです。各データ構造 はオブジェクトといい16bitのインデックスで指定しますオブジェクトごとに最大255のエントリーをもつことがで 8bitのサブインデックス(SI) 使用してえば obj 0x7000:03のように指定できますオブジェクトはオブジェクトコー ドタイプとしてVARIABLE(変数型、 SI0のみ)ARRAY(配列型、全エントリーが同一のデータ共通名称)RECORD(造体型、 エントリーがそれぞれなるデータ名称)のいずれかですARRAY またはRECORDオブジェクトではSI0 最大のサブインデックス番号意味SI116bitのオフセット 位置からまります(Complete Access場合)CoEベースのプロセスデータ設定 CoEはフレキシブルなプロセスデータ設定をサポートしています。個々変数(MDP場合、 obj 0x7000-0x7FFF obj 0x6000-0x6FFF)のセットをMappingオブジェクト ( obj 0x1600-0x17FF/ obj 0x1A00-0x1BFF)定義 しますこのうちSM2およびSM3周期通信するMappingオブジェクトを選択してAssignオブジェクト ( obj 0x1C12, obj 0x1C13)てますこれらのオブジェクトはコンプレックスデバイス(μC内蔵) 使用シンプルデバイス(μC/OD) 概念でプロセスデータ構成ESI記述しますFMMU フィールドバスメモリー管理ユニット (FMMU)論理アドレス指定のデータをESCDPRAMアドレスにビット 単位対応づけしますFMMU設定3 すように論理開始アドレス、長、論理開始および終了ビット これに対応した物理開始アドレスとビットおよび対応方向指定からなります一般的FMMU0出力データFMMU1入力データに使用します参照先: ETG.1000.4 フィールドバスメモリ管理ユニット(FMMU) フレームの経路処理 EtherCAT通信ずマスターのイーサネットインタフェースから送信するフレームで開始しますスレーブではESCがフレームをオンザフライで処理しますESC内部EtherCAT処理ユニット (EPU) とポート 巡回経 構成されていますEtherCAT処理ユニット (EPU) 処理したフレームはのオープン(外部リンク確立)状態 のポートまでフォーワードされ、外部からったフレームはPORT 0方向にフォワードされますPORT 0にス レーブのINポートですこのしくみによってトポロジーは論理的にリング構造となり 、原理上フレームの衝突輻輳発生しませ つまり 、通信必要時間一定であり 正確計算できますCoE SDO (サービスデータオブジェクト )サービス CoE SDO アボートコード 0x06010001 ライトオンリーのオブジェクトにリードを実行 0x06070012 サービスパラメータのさが過大 0x06010002 リードオンリーのオブジェクトにライトを実行 0x06070013 サービスパラメータのさが過小 0x06010005 オブジェクトMailboxサイズをえた 0x06070011 サブインデックスが存在しない 0x06020000 オブジェクトディクショナリーに該当オブジェクトが存在しない 0x06070031 ライトしたパラメータ過大 0x06070010 サービスパラメータ不一致 0x06070032 ライトしたパラメータ過小 参照先: ETG.1000.5 – CoEサービス仕様 CoE 基本データ(抜粋) 0x0001 BOOL/BIT 0x0003 INT 0x001E BYTE 0x0005 USINT 0x001F WORD 0x0006 UINT 0x0020 DWORD 0x0008 REAL 0x0002 SINT 0x0011 LREAL 参照先: ETG.1020 基本データobj 0x1600 obj 0x1A00 obj 0x1C12 obj 0x1C13 obj 0x7000 obj 0x6000 マスター スレーブ 用語使(SM2 PDO Assignment) (TxPDO Mapping) (出力) (入力) マスター アサイン: EEPROM Control/Status とアドレス ( reg 0x0500 0x050F) クリアー: Mailbox SyncManager SM0 ( reg 0x0800 0x0807) SM1 ( reg 0x0808 0x080F) セット : 固定物理アドレス( ノードアドレス) ( reg 0x0010) Mailbox SyncManagers: SM0 ( reg 0x0800 0x0807) SM1 ( reg 0x0808 0x080F) SyncManager状態取得用FMMU ( reg 0x0620 0x062F) スレーブ ベリファイ: Maibox SyncManager設定 開始: Mailbox通信 (START_MBX_HANDLER) マスター ダウンロード: 例、 CoE コマンド: PDO assign(入出力) ( obj 0x1C12/13) PDO mapping (例、入力) ( obj 0x1A00 0x1BFF) セット : プロセスデータSyncManager: SM2 ( reg 0x0810 0x0817) SM3 ( reg 0x0818 0x081F) FMMU: 出力 ( reg 0x0600 0x060F) 入力 ( reg 0x0610 0x061F) Module Ident List ( reg 0xF020 ) スレーブ ベリファイ: プロセスデータSyncManager設定、 PDO assign/mapping 開始: 入力プロセスデータ更新 (START_INPUT_HANDLER) マスター アサイン: EEPROM Control/Status とアドレス ( reg 0x0500 0x050F) クリアー: Mailbox SyncManagers: SM0 ( reg 0x0800 0x0807) SM1 ( reg 0x0808 0x080F) SyncManager状態取得用FMMU ( reg 0x0620 0x062F) スレーブ 停止: Mailbox通信 (STOP_MBX_HANDLER) マスター クリアー: プロセスデータSyncManager: SM2 ( reg 0x0810 0x0817) SM3 ( reg 0x0818 0x081F) FMMU: 出力 ( reg 0x0600 0x060F) 入力 ( reg 0x0610 0x061F) スレーブ 停止: 入力プロセスデータ更新 (STOP_INPUT_HANDLER) INIT *(0x01) ESCレジスタにのみアクセス可能 BOOT *(0x03) オプション PREOP *(0x02) メールボックス通信可能 SAFEOP *(0x04) プロセスデータ通信可能。 ただし まだ出力安全状態 OPERATIONAL *(0x08) プロセスデータが有効 状態遷移 デフォルトタイムアウト PreopTimeout (3000ms) BackToSafeopTimeout (200ms) SafeopOPTimeout (10000ms) BackTolnitTimeout (5000ms) 参照先 : ETG. 1000 . 6 – AL ステートマシン 2. 構成 (可変PDO マッピング) 参照先: ETG.1000.6 - オブジェクトディクショナリー ETG.5001 - モジュラーデバイスプロファイル 同期モード obj 0x1C32/33経由でモード固有設定 フリーラン: DC不使用、 ホストコントローラーのアプリケーションは EtehrCAT通信サイクルと独立して動作。 SM-同期: DC不使用、 ホストコントローラーのアプリケーションはプ ロセスデータのスレーブの出力SyncManagerへのライトをトリガに始。 (SM2- イベント ESCPDI IRQ またはAL イベントレジスタ0x0200をポ ーリング) DC-同期: ハードウェアタイマーにづく 割込信号(SYNC0/SYNC1) をト リガにホストコントローラーアプリケーションが出力処理。 ディストリビュートクロック ディストリビュートクロック(DC)EtherCATデバイスのローカルクロックを 最大誤差1μs より 十分高精度時刻同期する機能ですDCESC64bit幅、 ナノセカンド単位のシステムタイムを管理、起点 20001100:00です。常DC機能動作する最初のスレーブのシ ステムタイムを参照時計として使用しますDC動作以下2段階からなります初期化 1. フレーム受信時刻のラッチをトリガ(xWR reg 0x0900) 2. ラッチした受信時刻をリード (xRD reg 0x0900 0x090F) 3. システムタイムオフセットを設定 (xWR reg 0x0920) 4. 伝搬遅延オフセットを設定 (xWR reg 0x0928) ドリフト 補償 周期的参照時計のシステムタイムを配信 (xRMW reg 0x0910) SyncManager (SM) SyncManagerはハンドシェイク(1-バッファ, Mailbox SM) とバッファモード(3-バッファ, プロセスデータSM)データのコンシステ ンシーの管理DPRAMアクセスの制御いますコンプレックスデバイス(μC)するSMチャネルの一般的割当します参照先: ETG.1000.4 – SyncManager 0x00 NOP ノーオペレーション 0x08 BWR ブロードキャストライト 0x01 APRD オートインクリメント物理リード 0x09 BRW ブロードキャストリード&ライト 0x02 APWR オートインクリメント物理ライト 0x0A LRD 論理アドレスリード 0x03 APRW オートインクリメント物理リード&ライト 0x0B LWR 論理アドレスライト 0x04 FPRD 固定アドレス物理リード 0x0C LRW 論理アドレスリード&ライト 0x05 FPWR 固定アドレス物理ライト 0x0D ARMW オートインクリメント物理リード&マルチライト 0x06 FPRW 固定アドレス物理リード&ライト 0x0E FRMW 固定アドレス物理リード&マルチライト 0x07 BRD ブロードキャストリード コマンド 参照先 : ETG. 1000 . 4 EtherCAT フレームの構成 0x00D Invalid Output config. 0x0036 DC SYNC0 Cycle Time 0x001E Invalid Input config. 0x001B SyncManager Watchdog 0x0024 Invalid Input mapping 0x001A Synchronisation error 0x0025 Invalid Output mapping 0x0033 DC SYNC IO Error 0x0030 Invalid DC SYNC config. AL Status Code(抜粋) 参照先: ETG.1020 - AL Status Code説明 マスター スレーブ 3: FMMU設定 スレーブはESC通過するフレームからプロセスデータのリード/ ライトを実行しますFMMU0 AA AA BB BB CC CC CC CC CC CC DD DD DD DD WKC WKC+5 0x1000000 LRW FMMU1 FMMU0 FMMU1 FMMU0 スレーブ 1 スレーブ 2 スレーブ 3 0x1000000 0x04 0x1600 0x01 (リード) 0x1000004 0x04 0x1A00 0x02 (ライト) 0x1000008 0x06 0x1600 0x01 (リード) 0x100000E 0x04 0x1A00 0x02 (ライト) 0x1000004 0x04 0x1600 0x01 (リード) 設定レジスタ : reg 0x0600 論理開始アドレス reg +0x0: (Byte) reg +0x4: 物理開始アドレス reg +0x8: タイプ reg +0xB: 参照先: ETG.1000.4 フレームの構成 データ領域 n データ領域 2 データ領域 1 宛先MAC 送信元MAC EtherType (0x88A4) イーサネット ヘッダー データ 16 bit 48 bit 48 bit サイズ識別子 優先度 コンプリートアクセス 予約 アドレス 送信タイプ タイプ (CoE: 0x03) コマンド指定 タイプ (0x01) チャネル データセットサイズ カウンタ インデックス 予約 サブインデックス データサイズ データ 11 bit 1 bit 2 bit 1 bit 1 bit 16 bit 16 bit 1 bit 4 bit 3 bit 4 bit 6 bit 2 bit 3 bit 16 bit 1 bit 8 bit 32 bit EtherCAT ヘッダー FCS パディング 32 bit WKC 16 bit イーサネットデータ データ EtherCAT データ データグラム Mailbox サービスデータ Mailbox ヘッダー データグラム ヘッダー データ データ コマンド インデックス アドレス 予約 巡回? データグラム IRQ 8 bit 8 bit 32 bit 11 bit 3 bit 1 bit 1 bit 16 bit イーサネットフレーム (IEEE 802 . 3 ): 64 - 1518 Byte 1: レジスタのリード/ ライトアクセス 2: Mailbox通信(SM0, SM1経由), CoE SDO サービス 3: プロセスデータ通信 (SM2, SM3経由) 番号(不使用) 予約 サービス (0x02) 9 bit 3 bit 4 bit プロトコルヘッダー 参照先: ETG.1000.3 - データリンクのサービスとコンセプト DL Control DL Status Invalid Fr. Cntr Link Lost Cntr 設定&診断レジスタ マスター 1: ESM関連レジスタのリード/ ライトと ESM相互作用 状態遷移はデータリンクサービス(DL-サービス) でリクエストし、固定物理アドレス(ADP) DPRAMアドレスオフセット (ADO) でスレーブのレジスタをアドレス指定して データのリード/ ライトをいますこの処理成功したスレーブはワーキングカウンタ(WKC) をインクリメントしますデータグラム コマンド FPWR (s) 0x02 WKC 0x0000 WKC+1 WKC+1 WKC+1 アドレス (位置 | オフセット) ADP 0x03E9 | ADO 0x0120 PREOP状態遷移リクエスト 成功 失敗 FPRD FPRD 0x02, 0x0000 0x11, 0x0016 0x0000 0x0000 ADP 0x03E9 | ADO 0x0130 ADP 0x03E9 | ADO 0x0130 ESC µC スレーブ ( ADP 0x03E9) AL Control reg 0x0120 0x01 0x02 PREOPリクエスト 0x02 0x01 AL Status reg 0x0130 0x01 INIT状態 0x02 PREOP状態 0x11 INIT状態, エラー表示 AL Status Code reg 0x0134 0x0000 エラー0x0000 エラー0x0016 不正メールボックス設定 NG Mbx SM 設定確認 Mbx SM 設定確認 OK 参照先 : ETG. 1000 . 6 プロトコルステートマシン ケース: 2 ケース: 1 マスター 2: CoE SDO(サービスデータオブジェクト )相互作用 オブジェクトディクショナリー(OD)のアクセスにはSDOサービスを使用しますこのSDO アップロードリクエストを0x1C12:01発行ケース 1: アップロードレスポンスケース 2: 送信中止のサービスについてそれぞれしますデータグラム コマンド FPWR タイプ サービス 識別子 インデックス SI データ 0x0000 WKC+1 WKC+1 WKC+1 WKC+1 ADP 0x03E9 | ADO 0x1000 アップロードリクエスト FPRD FPRD 0x0000 0x0000 ADP 0x03E9 | ADO 0x1080 ADP 0x03E9 | ADO 0x1080 ESC µC スレーブ ( ADP 0x03E9) NG OK 参照先 : ETG. 1000 . 6 – SDO アップロードレスポンス 送信中止(アボート ケース: 2 ケース: 1 アドレス (位置 | オフセット) WKC CoE CoE CoE リクエスト リクエスト リクエスト アップロード 中止 アップロード 0x1C12 0x1C12 0x1c12 0x01 0x01 0x01 オブジェクトデータ 0x06090011 SdoRes() SdoRes() MBX_Main() MailboxServiceInd() COE_ServiceInd() SDOS_Sdolnd() OBJ_Read() ESC 嘔気モード マスター フレーム IRQ SM-同期 DC-同期 Free Run ローカルタイマー タスク タスク タスク フレーム フレーム SM2/3 SM2/3 SYNC0 SYNC0 アプリケーション ジッタ: ~µs ジッタ: ~ns アプリケーション アプリケーション アプリケーション アプリケーション アプリケーション アプリケーション アプリケーション : プロセスデータオブジェクト (PDO)SM2: RxPDO(出力) SM3: TxPDO(入力) reg 0x0100 reg 0x0110 reg 0x0300 reg 0x0310 ESC CoE サービス (番号) SDO Request (0x02) SDO Response (0x03) SDO Info (0x08) 0x00 分割ダウンロード 分割アップロード 0x01 ダウンロード 分割ダウンロード ODリスト取得リクエスト 0x02 アップロード アップロード ODリスト取得レスポンス 0x03 分割アップロード ダウンロード オブジェクト記述取得リクエスト 0x04 送信中止 オブジェクト記述取得レスポンス 0x05 エントリー記述取得リクエスト 0x06 エントリー記述取得レスポンス 0x07 SDO Infoエラーリクエスト 参照先: ETG.1000.6 – SDO モジュラーデバイスプロファイル(MDP) MDPはあらゆるEtherCATスレーブの基本データ構成定義できるようになっていますデータの種類(入力、出力、設定, ...) ごとに使用するインデックス範囲規定していますインデックス範囲はモジュールごとにめられたオブジェクト 区分されていますMDP以下3種類分類できます1. フィールドバスゲートウェイ: 接続したフィールドバススレーブがモジュール 2. モジュラーデバイス: 接続したサブデバイスがモジュール 3. モジュールデバイス: チャネルがモジュール(4チャネルアナログ入力など) MDP対応デバイスは最大255モジュールまで接続可能ですモジュールは以下のデータ構造をサポートします1 TxPDO 1 RxPDO オブジェクトディクショナリーエリアに最大16のインデックス デバイス全体PDOとしてグローバルオブジェクトの定義追加できますダウンロード アップロード ライト リード プロセスデータ SM n µC EtherCAT CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB ADO 0x1000 ADO 0x1100 ADO 0x1110 ADO 0x1120 プロセスデータRAM レジスター 0x1100からリード 0x1100にライト 物理開始アドレス マスター スレーブ 1 スレーブ n スレーブ2 参照時計 t 初期化 ドリフト補償 スレーブ 2 スレーブ 3 スレーブ n ローカルクロック 参照先 : ETG. 1020 同期 ETG. 1000 . 4 ディストリビュートクロック レジスター SM0 Mailbox出力 reg 0x0800 MBX_WRITE_ADDRESS reg 0x0802 MBX_SIZE reg 0x0804 reg 0x0805 SM1 Mailbox入力 reg 0x0808 MBX_READ_ADDRESS reg 0x080A MBX_SIZE reg 0x080C reg 0x080D SM3 入力 reg 0x0818 PD_READ_ADDRESS reg 0x081A PD_OUTPUT_SIZE reg 0x081C reg 0x081D SM2 出力 reg 0x0810 PD_WRITE_ADDRESS reg 0x0812 PD_INPUT_SIZE reg 0x0814 reg 0x0815 物理開始アドレス コントロール ステータス SDO コマンド指定 トポロジーのデバイスタイプ 1: フィールドバスゲートウェイ デバイスタイプ 2: モジュラーデバイス デバイスタイプ 3: モジュールデバイス Gateway モジュール 1 モジュール 1 チャネル / モジュール 1 モジュール 2 モジュール 2 ADC Sensor Digital Out 参照先: ETG.5001 – MDP デバイスモデル MDP デバイス エリア名称 インデックス範囲 モジュール 0 モジュール 1 通信エリア 0x1000 0x1FFF RxPDOs TxPDOs 0x1600 0x17FF 0x1A00 0x1BFF 0x1600 0x1A00 0x1601 0x1A01 ベンダー固有エリア 0x2000 0x5FFF 入力エリア 0x6000 0x6FFF 0x6000 0x600F 0x6010 0x601F 出力エリア 0x7000 0x7FFF 0x7000 0x700F 0x7010 0x701F 設定エリア 0x8000 0x8FFF 0x8000 0x800F 0x8010 0x801F 情報エリア 0x9000 0x9FFF 0x9000 0x900F 0x9010 0x901F 診断エリア 0xA000 0xAFFF 0xA000 0xA00F 0xA010 0xA01F サービス転送エリア 0xB000 0xBFFF 0xB000 0xB00F 0xB010 0xB01F デバイスエリア 0xF000 0xFFFF スレーブの構成EtherCATスレーブコントローラー(ESC) ESCはさまざまな論理機能要素( オートフォワーダー&ループバック機能EPUなど) 高速なプロセスデータ通信実現していますコンプレックススレーブは独立 したホストコントローラー/μCでスレーブアプリケーションを処理しますシンプルスレーブはホストコントローラーをもたずデジタルI/OのみをサポートしますMDPデバイスタイプ MDP オブジェクトディクショナリー チャネル / モジュール 3 チャネル / モジュール 2

EtherCAT デバイスプロトコル · 2019-08-30 · このうちSM2およびSM3で周期通信するMappingオブジェクトを選択してAssignオブジェクト(obj 0x1C12,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EtherCAT デバイスプロトコル · 2019-08-30 · このうちSM2およびSM3で周期通信するMappingオブジェクトを選択してAssignオブジェクト(obj 0x1C12,

EtherCAT デバイスプロトコル

ETG仕様書: www.ethercat.org/etg<仕様書番号 (4桁)> ナレッジベース: www.ethercat.org/kb 開発者フォーラム: www.ethercat.org/forum

obj0x1C12:1obj0x1C13:1

obj0x1600:1 obj0x1A00:1 obj0x1A00:2

obj0x7000 obj0x6000 obj0x6010

設定 1. 構成

obj0x700:1

Bool = 1 obj0x6000:1

INT = -3

obj0x700:2

Bool = 0 obj0x6000:2

Bool = 0 obj0x6010:1

STRING = “ETG”

obj0x700:3

UINT = 42 obj0x600:3

STRING = “EtherCAT” obj0x6010:2

UNSIGNED = 5

マスター周期通信: 入力データ処理スレーブベリファイ: DCによる同期動作 (サポートする場合)開始: 出力プロセスデータ更新 (START_OUTPUT_HANDLER)

スレーブ停止: 出力プロセスデータ更新 (STOP_OUTPUT_HANDLER)

OD エリア OD インデックス範囲通信エリア 0x1000-0x1FFF

RxPDO Mapping 0x1600-0x17FF

TxPDO Mapping 0x1A00-0x1BFF

SM RxPDO Assign 0x1C12

SM TxPDO Assign 0x1C13

プロファイルエリア (モジュール) 0x6000-0xBFFF

入力エリア 0x6000-0x6FFF

出力エリア 0x7000-0x7FFF

SDOリクエスト/レスポンスはCoEオブジェクトのリード/ライト処理に使用します。SDO Infoサービスはオブジェクトディクショナリの構成や関連するオブジェクトエントリーをリードします。SDOアボートはサービスのエラーを通知します。

ESC

ホストコントローラー

スレーブ

SLAVE 1

SLAVE 2

SLAVE 3

SLAVE 4

EPU PORT 3No Link

PORT

1

PORT 2Link

リクエストレスポンスアボート

送信モード:

Expedited

Normal

Segmented

データ ≤ 4 Byte

データ = Mbx size

データ > Mbx size

マスター

スレーブ

PORT 1

Link

PORT

0Li

nk

(SM3 PDO Assignment)

(RxPDO Mapping)

データグラム

・・・

ESM CoE0x03

プロセスデータ

µC

ESC

Mailbox

EoE0x02

AoE0x01

FoE0x08

SoE0x10

PDI (プロセスデータインタフェース)

プロセスデータRAM

LATCH SYNC

ALD

LPh

レジスターSII

(EEP

ROM

)

SM 0reg 0x0800

SM 1reg 0x0808

SM 2reg 0x0810

SM 3reg 0x0818

DCreg 0x0900

EtherCAT処理ユニット (EPU)

ADO0x1000

FMMU 0reg 0x0600

FMMU 1reg 0x0610

オートフォワーダー&ループバック

Port 0 (in) Port 1 (out) Port 2 (out) Port 3 (out)

参照先

: ETG

. 100

0.3

reg0x0100

reg0x0110

reg0x0302

reg0x0311

EtherCAT ステートマシン (ESM)EtherCATデバイスのステートマシンは、スレーブが状態遷移するために必要な設定項目を状態ごとに定義し、実装されている各機能にその設定を反映します。状態遷移時に誤った設定を行ったりスレーブ内部エラーが発生したりすると、ESMはAL StatusレジスタのエラーフラグとAL Status Codeのエラーコードを通知します。状態遷移のリクエストとレスポンスまたはエラーレスポンスはESCのAL Controlレジスタ(reg0x120), AL Statusレジスタ(reg0x130)およびAL Status Codeレジスタ(reg0x134)を使用します。ESMはスレーブのビヘイビアを規定し、マスターはESMにしたがいスレーブの設定や状態変更をリクエストします。ESMの管理に関するマスターとスレーブ間の基本設定の解説を下図に示します。図の見方: マスターとスレーブは必要な設定を行ってからAL ControlやAL Statusで状態遷移のリクエストとレスポンスをライトします。

CoE オブジェクトディクショナリー(OD)ODは従来CANopen®規格で定義された、スレーブ内の様々なデータ型の変数の構造体のセットです。各データ構造体はオブジェクトといい16bitのインデックスで指定します。オブジェクトごとに最大255個のエントリーをもつことができ、8bitのサブインデックス(SI)を使用して例えば obj0x7000:03のように指定できます。オブジェクトはオブジェクトコードタイプとしてVARIABLE(変数型、SI0のみ)、ARRAY(配列型、全エントリーが同一のデータ型と共通名称)、RECORD(構造体型、エントリーがそれぞれ異なるデータ型と名称)のいずれかです。ARRAYまたはRECORDオブジェクトではSI0 は最大のサブインデックス番号を意味し、SI1は16bitのオフセット位置から始まります(Complete Accessの場合)。

CoEベースのプロセスデータ設定CoEはフレキシブルなプロセスデータ設定をサポートしています。個々の変数(MDPの場合、obj0x7000-0x7FFFとobj0x6000-0x6FFF)のセットをMappingオブジェクト(obj0x1600-0x17FF/obj0x1A00-0x1BFF)に定義します。このうちSM2およびSM3で周期通信するMappingオブジェクトを選択してAssignオブジェクト(obj0x1C12, obj0x1C13)に割り当てます。これらのオブジェクトはコンプレックスデバイス(μC内蔵)で使用し、シンプルデバイス(μC/OD無し)も同じ概念でプロセスデータ構成をESIに記述します。

FMMU フィールドバスメモリー管理ユニット(FMMU)は論理アドレス指定のデータをESCのDPRAMアドレスにビット単位で対応づけします。FMMUの設定は例3に示すように論理開始アドレス、長さ、論理開始および終了ビット、これに対応した物理開始アドレスとビットおよび対応方向の指定からなります。一般的にFMMU0は出力データ、FMMU1は入力データに使用します。参照先: ETG.1000.4 – フィールドバスメモリ管理ユニット (FMMU)

フレームの経路と処理EtherCAT通信は必ずマスターのイーサネットインタフェースから送信するフレームで開始します。スレーブ側ではESCがフレームをオンザフライで処理します。ESC内部はEtherCAT処理ユニット(EPU)とポート間の巡回経路で構成されています。EtherCAT処理ユニット(EPU)で処理したフレームは次のオープン(外部リンク確立)状態のポートまでフォーワードされ、外部から戻ったフレームはPORT 0方向にフォワードされます。PORT 0は常にスレーブのINポートです。このしくみによってトポロジーは常に論理的にリング構造となり、原理上フレームの衝突や輻輳は発生しません。つまり、通信に必要な時間は一定であり正確に計算できます。

CoE SDO (サービスデータオブジェクト)サービス

CoE SDO アボートコード

0x06010001 ライトオンリーのオブジェクトにリードを実行 0x06070012 サービスパラメータの長さが過大0x06010002 リードオンリーのオブジェクトにライトを実行 0x06070013 サービスパラメータの長さが過小0x06010005 オブジェクト長がMailboxサイズを超えた 0x06070011 サブインデックスが存在しない0x06020000 オブジェクトディクショナリーに該当オブジェクトが存在しない 0x06070031 ライトしたパラメータ値が過大

0x06070010 サービスパラメータ長が不一致 0x06070032 ライトしたパラメータ値が過小

参照先: ETG.1000.5 – CoEサービス仕様

CoE 基本データ型 (抜粋)

0x0001 BOOL/BIT 0x0003 INT

0x001E BYTE 0x0005 USINT

0x001F WORD 0x0006 UINT

0x0020 DWORD 0x0008 REAL

0x0002 SINT 0x0011 LREAL

参照先: ETG.1020 – 基本データ型

obj0x1600

obj0x1A00

obj0x1C12

obj0x1C13

obj0x7000

obj0x6000マスター

スレーブ

用語の使い方

(SM2 PDO Assignment)

(TxPDO Mapping)

(出力)

(入力)

マスターアサイン: EEPROM Control/Statusとアドレス (reg0x0500 – 0x050F) クリアー: Mailbox SyncManager SM0 (reg0x0800 – 0x0807) SM1 (reg0x0808 – 0x080F) セット: 固定物理アドレス(ノードアドレス) (reg0x0010) Mailbox SyncManagers: SM0 (reg0x0800 – 0x0807) SM1 (reg0x0808 – 0x080F) SyncManager状態取得用FMMU (reg0x0620 – 0x062F)スレーブベリファイ: Maibox SyncManager設定 開始: Mailbox通信 (START_MBX_HANDLER)

マスターダウンロード: 例、CoEコマンド: PDO assign(入出力) (obj0x1C12/13)   PDO mapping (例、入力) (obj0x1A00 – 0x1BFF) セット:  プロセスデータSyncManager: SM2 (reg0x0810 – 0x0817) SM3 (reg0x0818 – 0x081F) FMMU: 出力 (reg0x0600 – 0x060F) 入力 (reg0x0610 – 0x061F) Module Ident List (reg0xF020 )スレーブベリファイ: プロセスデータSyncManager設定、PDO assign/mapping開始: 入力プロセスデータ更新 (START_INPUT_HANDLER)

マスターアサイン: EEPROM Control/Statusとアドレス (reg0x0500 – 0x050F) クリアー: Mailbox SyncManagers: SM0 (reg0x0800 – 0x0807) SM1 (reg0x0808 – 0x080F) SyncManager状態取得用FMMU (reg0x0620 – 0x062F)スレーブ停止: Mailbox通信 (STOP_MBX_HANDLER)

マスタークリアー: プロセスデータSyncManager: SM2 (reg0x0810 – 0x0817) SM3 (reg0x0818 – 0x081F) FMMU: 出力 (reg0x0600 – 0x060F) 入力 (reg0x0610 – 0x061F)スレーブ停止: 入力プロセスデータ更新 (STOP_INPUT_HANDLER)

INIT *(0x01) ESCレジスタにのみアクセス可能

BOOT *(0x03) オプションPREOP *(0x02) メールボックス通信が可能

SAFEOP *(0x04) プロセスデータ通信が可能。ただし、まだ出力は安全状態

OPERATIONAL *(0x08) 両プロセスデータが有効

状態遷移(デフォルトタイムアウト)

PreopTimeout (3000ms) BackToSafeopTimeout (200ms) SafeopOPTimeout (10000ms) BackTolnitTimeout (5000ms)参照先

: ETG

. 100

0.6

– ALステートマシン

2. 構成

(可変PDO マッピング)

参照先: ETG.1000.6 - オブジェクトディクショナリー    ETG.5001 - モジュラーデバイスプロファイル

同期モードobj0x1C32/33経由でモード固有の設定フリーラン: DC不使用、ホストコントローラー内のアプリケーションはEtehrCATの通信サイクルと独立して動作。SM-同期: DC不使用、ホストコントローラー内のアプリケーションはプロセスデータのスレーブの出力SyncManagerへのライトをトリガに開始。(SM2-イベント、ESCのPDI IRQまたはALイベントレジスタ0x0200をポーリング)DC-同期: ハードウェアタイマーに基づく割込み信号(SYNC0/SYNC1)をトリガにホストコントローラーアプリケーションが出力処理。

ディストリビュートクロックディストリビュートクロック(DC)はEtherCATデバイスのローカルクロックを最大誤差1μsより十分高い精度で時刻同期する機能です。DCはESC内の64bit幅、ナノセカンド単位のシステムタイムを管理し、起点は2000年1月1日00:00です。常にDC機能の動作する最初のスレーブのシステムタイムを参照時計として使用します。DCの動作は以下の2段階からなります。

初期化 1. フレーム受信時刻のラッチをトリガ(xWR reg0x0900) 2. ラッチした受信時刻をリード (xRD reg0x0900 – 0x090F) 3. システムタイムオフセットを設定 (xWR reg0x0920) 4. 伝搬遅延オフセットを設定 (xWR reg0x0928)

ドリフト補償 周期的に参照時計のシステムタイムを配信 (xRMW reg0x0910)

SyncManager (SM) SyncManagerはハンドシェイク(1-バッファ, Mailbox SM用)とバッファモード(3-バッファ, プロセスデータSM用)に対し、データのコンシステンシーの管理とDPRAMアクセスの制御を行います。コンプレックスデバイス(µC有り)に対するSMチャネルの一般的な割当を示します。参照先: ETG.1000.4 – SyncManager

0x00 NOP ノーオペレーション 0x08 BWR ブロードキャストライト0x01 APRD オートインクリメント物理リード 0x09 BRW ブロードキャストリード&ライト0x02 APWR オートインクリメント物理ライト 0x0A LRD 論理アドレスリード0x03 APRW オートインクリメント物理リード&ライト 0x0B LWR 論理アドレスライト0x04 FPRD 固定アドレス物理リード 0x0C LRW 論理アドレスリード&ライト0x05 FPWR 固定アドレス物理ライト 0x0D ARMW オートインクリメント物理リード&マルチライト0x06 FPRW 固定アドレス物理リード&ライト 0x0E FRMW 固定アドレス物理リード&マルチライト0x07 BRD ブロードキャストリード

コマンド

参照先

: ETG

. 100

0.4

–Et

herC

AT フレームの構成 0x00D Invalid Output config. 0x0036 DC SYNC0 Cycle Time

0x001E Invalid Input config. 0x001B SyncManager Watchdog

0x0024 Invalid Input mapping 0x001A Synchronisation error

0x0025 Invalid Output mapping 0x0033 DC SYNC IO Error

0x0030 Invalid DC SYNC config.

AL Status Code(抜粋)

参照先: ETG.1020 - AL Status Codeの説明

マスター

スレーブ

例 3: FMMU設定各スレーブはESCを通過するフレームからプロセスデータのリード/ライトを実行します。

FMMU0

AA AABB BB CC CC CC CC CC CC DD DD DD DD WKC

WKC+5

0x1000000LRW

FMMU1 FMMU0 FMMU1 FMMU0

スレーブ 1 スレーブ 2 スレーブ 3

0x10000000x040x16000x01 (リード)

0x10000040x040x1A000x02 (ライト)

0x10000080x060x16000x01 (リード)

0x100000E0x040x1A000x02 (ライト)

0x10000040x040x16000x01 (リード)

設定レジスタ: reg0x0600

論理開始アドレス reg+0x0:長さ (Byte) reg+0x4:

物理開始アドレス reg+0x8: タイプ reg+0xB:

参照先: ETG.1000.4 – フレームの構成

データ領域 n

データ領域 2

データ領域 1

宛先MAC

送信元MAC

EtherType (0x88A4)イーサネット

ヘッダー データ

16 bit

48 bit

48 bit

長さ 長さ

サイズ識別子

優先度

コンプリートアクセス

予約 アドレス

送信タイプ

タイプ (CoE: 0x03)

コマンド指定

タイプ (0x01) チャネル

データセットサイズ

カウンタ

インデックス

予約

サブインデックス

全データサイズ

データ

11 bit

1 bit

2 bit

1 bit

1 bit 16 bit

16 bit

1 bit

4 bit

3 bit

4 bit 6 bit

2 bit

3 bit

16 bit

1 bit

8 bit

32 bit

Ethe

rCATヘッダー

FCS

パディング

32 bit

WKC 16 bit

イーサネットデータ

データ

Ethe

rCATデータ

データグラム

Mai

lboxサービスデ

ータM

ailb

oxヘッダー

データグラム

ヘッダー

データ

データ

コマンド

インデックス

アドレス

長さ

予約

巡回?

次データグラム?

IRQ

8 bit

8 bit

32 bit

11 bit

3 bit

1 bit

1 bit

16 bit

イーサネットフレーム(

IEEE

802

. 3):

64- 1

518

Byte

例 1: レジスタのリード/ライトアクセス

例 2: Mailbox通信(SM0, SM1経由), CoE SDO サービス

例 3: プロセスデータ通信(SM2, SM3経由)

番号(不使用)

予約

サービス (0x02)

9 bit

3 bit

4 bitプロトコル

ヘッダー

参照先: ETG.1000.3 - データリンク層のサービスとコンセプト

DL Control

DL Status

Invalid Fr. Cntr

Link Lost Cntr

設定&診断レジスタ

マスター

例 1: ESM関連レジスタのリード/ライトとESMの相互作用状態遷移はデータリンク層サービス(DL-サービス)でリクエストし、固定物理アドレス(ADP)とDPRAMアドレスオフセット(ADO)でスレーブのレジスタをアドレス指定してデータのリード/ライトを行います。この処理に成功したスレーブはワーキングカウンタ(WKC)をインクリメントします。

データグラム

コマンド

FPWR

値(s)

0x02

WKC

0x0000

WKC+1

WKC+1

WKC+1

アドレス (位置 | オフセット)

ADP0x03E9 | ADO0x0120

PREOPに状態遷移リクエスト

成功

失敗

FPRD

FPRD

0x02, 0x0000

0x11, 0x0016

0x0000

0x0000

ADP0x03E9 | ADO0x0130

ADP0x03E9 | ADO0x0130

ESC µC

スレーブ (ADP0x03E9)

AL Control

reg0x01200x010x02

PREOPリクエスト

0x02

0x01

AL Status

reg0x0130

0x01INIT状態

0x02PREOP状態

0x11INIT状態,エラー表示

AL Status Code

reg0x0134

0x0000エラー無し

0x0000エラー無し

0x0016 不正なメールボックス設定 NG

Mbx

SM設定の確認 M

bx S

M設定の確認

OK

参照先

: ETG

. 100

0.6

– プロトコルステートマシン

ケース: 2

ケース: 1

マスター

例 2: CoE SDO(サービスデータオブジェクト)の相互作用オブジェクトディクショナリー(OD)のアクセスにはSDOサービスを使用します。この例はSDO アップロードリクエストを0x1C12:01に発行し、ケース 1: アップロードレスポンス、ケース 2: 送信中止のサービスについてそれぞれ示します。

データグラム

コマンド

FPWR

タイプ サービス 識別子 インデックス SI データ

0x0000

WKC+1

WKC+1

WKC+1WKC+1

ADP0x03E9 | ADO0x1000

アップロードリクエスト

FPRD

FPRD

0x0000

0x0000

ADP0x03E9 | ADO0x1080

ADP0x03E9 | ADO0x1080

ESC

µC

スレーブ (ADP0x03E9)

NG

OK

参照先

: ETG

. 100

0.6

– SD

O

アップロードレスポンス

送信中止(アボート)ケース: 2

ケース: 1

アドレス (位置 | オフセット) WKC

CoE

CoE

CoE

リクエスト

リクエスト

リクエスト

アップロード

中止

アップロード

0x1C12

0x1C12

0x1c12

0x01

0x01

0x01

オブジェクトデータ

0x06090011

SdoRes()

SdoRes()

MBX_Main()

MailboxServiceInd()

COE_ServiceInd()

SDOS_Sdolnd()

OBJ_Read()

ESC

嘔気モード

マスター

フレーム

IRQ

SM-同期

DC-同期

Free Runローカルタイマー

タスク タスク タスク

フレーム フレーム

SM2/3 SM2/3SYNC0 SYNC0

アプリケーション

ジッタ―: ~µs

ジッタ―: ~ns

アプリケーション アプリケーション

アプリケーションアプリケーション

アプリケーション アプリケーション アプリケーション

例: プロセスデータオブジェクト(PDO)の組み立て SM2: RxPDO(出力) SM3: TxPDO(入力)

reg0x0100

reg0x0110

reg0x0300

reg0x0310

ESC

CoE サービス (番号)SDO Request (0x02) SDO Response (0x03) SDO Info (0x08)

0x00 分割ダウンロード 分割アップロード0x01 ダウンロード 分割ダウンロード ODリスト取得リクエスト0x02 アップロード アップロード ODリスト取得レスポンス0x03 分割アップロード ダウンロード オブジェクト記述取得リクエスト0x04 送信中止 オブジェクト記述取得レスポンス0x05 エントリー記述取得リクエスト0x06 エントリー記述取得レスポンス0x07 SDO Infoエラーリクエスト

参照先: ETG.1000.6 – SDO

モジュラーデバイスプロファイル(MDP)MDPはあらゆるEtherCATスレーブの基本データ構成を定義できるようになっています。データの種類(入力、出力、設定, ...)ごとに使用するインデックス範囲を規定しています。インデックス範囲はモジュールごとに定められたオブジェクト数に区分されています。MDPは以下の3種類に分類できます。1. フィールドバスゲートウェイ: 接続した各フィールドバススレーブがモジュール2. モジュラーデバイス: 接続した各サブデバイスがモジュール3. モジュールデバイス: 各チャネルがモジュール(4チャネルアナログ入力など)MDP対応デバイスは最大255モジュールまで接続可能です。モジュールは以下のデータ構造をサポートします。

1 TxPDO 1 RxPDO 各オブジェクトディクショナリーエリアに最大16個のインデックスデバイス全体のPDOとしてグローバルオブジェクトの定義を追加できます。

ダウンロード

アップロード

ライト

リード

プロセスデータ SM n

µC

EtherCAT

CC CC CC CCCC CC CC CCCC CC CC CCCC CC CC CC

AA AA AA AAAA AA AA AAAA AA AA AAAA AA AA AA

BB BB BB BBBB BB BB BBBB BB BB BBBB BB BB BB

ADO0x1000 ADO0x1100 ADO0x1110 ADO0x1120

プロセスデータRAMレジスター

0x1100からリード

0x1100にライト

物理開始アドレス 長さ

マスター

スレーブ 1

スレーブ n

スレーブ2参照時計

……

t

初期化

ドリフト補償

スレーブ 2

スレーブ 3

スレーブ n

ローカル

クロック

参照先

:ET

G. 1

020

– 同期

ETG

. 100

0.4

– ディス

トリビュートク

ロック

レジスター SM0Mailbox出力

reg0x0800MBX_WRITE_ADDRESS

reg0x0802MBX_SIZE

reg0x0804

reg0x0805

SM1Mailbox入力

reg0x0808MBX_READ_ADDRESS

reg0x080AMBX_SIZE

reg0x080C

reg0x080D

SM3入力

reg0x0818PD_READ_ADDRESS

reg0x081APD_OUTPUT_SIZE

reg0x081C

reg0x081D

SM2出力

reg0x0810PD_WRITE_ADDRESS

reg0x0812PD_INPUT_SIZE

reg0x0814

reg0x0815

物理開始アドレス

長さ

コントロール

ステータス

SDO コマンド指定

トポロジーの例

デバイスタイプ 1:フィールドバスゲートウェイ

デバイスタイプ 2:モジュラーデバイス

デバイスタイプ 3:モジュールデバイス

Gateway

モジュール 1 モジュール 1 チャネル /モジュール 1

モジュール 2 モジュール 2

ADC

Sensor

Digital Out

参照先: ETG.5001 – MDP デバイスモデル

MDP デバイスエリア名称 インデックス範囲 モジュール 0 モジュール 1 …通信エリア 0x1000 – 0x1FFF

RxPDOs

TxPDOs

0x1600 – 0x17FF

0x1A00 – 0x1BFF

0x1600

0x1A00

0x1601

0x1A01

……

ベンダー固有エリア 0x2000 – 0x5FFF

入力エリア 0x6000 – 0x6FFF 0x6000 – 0x600F 0x6010 – 0x601F …出力エリア 0x7000 – 0x7FFF 0x7000 – 0x700F 0x7010 – 0x701F …設定エリア 0x8000 – 0x8FFF 0x8000 – 0x800F 0x8010 – 0x801F …情報エリア 0x9000 – 0x9FFF 0x9000 – 0x900F 0x9010 – 0x901F …診断エリア 0xA000 – 0xAFFF 0xA000 – 0xA00F 0xA010 – 0xA01F …サービス転送エリア 0xB000 – 0xBFFF 0xB000 – 0xB00F 0xB010 – 0xB01F …デバイスエリア 0xF000 – 0xFFFF

スレーブの構成とEtherCATスレーブコントローラー(ESC)ESCはさまざまな論理機能要素(オートフォワーダー&ループバック機能やEPUなど)で高速なプロセスデータ通信を実現しています。「コンプレックス」スレーブは独立したホストコントローラー/µCでスレーブアプリケーションを処理します。「シンプル」スレーブはホストコントローラーをもたず、デジタルI/Oのみをサポートします。

MDPデバイスタイプ

MDP オブジェクトディクショナリー

チャネル /モジュール 3

チャネル /モジュール 2