EtherCATプロトコル

Typhoon HIL ツールチェーンにおける EtherCAT プロトコルの実装について説明します。

リアルタイムのみ:このドキュメントは、リアルタイム シミュレーションにのみ有効です。

EtherCATプロトコルの紹介

EtherCAT(Ethernet for Control Automation Technology)は、ベッコフ・オートメーション社が開発したイーサネットベースの産業用フィールドバスプロトコルです。このプロトコルは、短いデータ更新(サイクル)時間、低い通信ジッタ、そしてハードウェアコストの削減が求められるオートメーションアプリケーションに、イーサネット構造を適用できるように特別に設計されています。

EtherCAT はマスター/スレーブ プロトコルです。つまり、ネットワークには 1 つのマスター デバイス (完全にソフトウェアで実装) と複数のスレーブ デバイス (ハードウェアで実装) が接続されます。マスター デバイスはサイクルごとに、複数の EtherCAT データグラムをカプセル化した 1 つの標準 Ethernet フレームを送信します。EtherCAT データグラムは、EtherCAT プロセス イメージ (最大 4 GB) の特定の部分をアドレス指定し、すべてのスレーブ デバイスには 1 つ以上のアドレスが割り当てられます。つまり、マスター デバイスから送信される 1 つの Ethernet フレームには、ネットワーク内のすべてのスレーブ デバイスのプロセス データが含まれます。各スレーブ デバイスは、フレームがデバイスを通過する間にフレームからデータを読み書きします。これは、リアルタイム通信に非常に役立ちます。また、EtherCAT データグラムは ISO/OSI 参照モデルの第 2 層 (データ リンク) までしか到達しないため、TCP/IP や UDP/IP などの上位レベルのプロトコル スタックは不要になります。

この周期的なプロセスデータ通信に加えて、CanOPEN over EtherCAT (CoE)、Ethernet over EtherCAT (EoE)、File Access over EtherCAT (FoE) といった非周期的な通信プロファイルも確立されています。なお、Typhoon HIL EtherCATスレーブデバイスとマスターデバイスは、現在、非周期的な通信プロファイルをサポートしていません

EtherCATスレーブデバイスは、マスターデバイスからESI設定ファイルを使用して設定できます。ESI設定ファイルは、スレーブデバイスを通信用に適切に設定するために必要なすべての情報を含むXMLドキュメントです。EtherCATスレーブ設定では、Typhoon HIL EtherCATスレーブデバイスで使用するために設計されたESIファイルテンプレートについて説明します。

注: Typhoon HIL EtherCATスレーブデバイスの設定および使用中に予期しないエラーが発生するのを防ぐため、提供されているESIファイルテンプレートを使用し、必要に応じて以下の手順に従って修正することを強くお勧めします。また、EtherCATマスターデバイスは、指定されたESIテンプレートに対応するESIファイルを持つスレーブデバイスとの通信をサポートします。

EtherCATスレーブデバイスのハードウェア

EtherCAT対応のTyphoon HILデバイスはすべて、 Microchip社製EtherCATスレーブハードウェア「LAN9252」を搭載しています。Microchip社製LAN9252は、3つのフィールドバスメモリ管理ユニット(FMMU)と4つのSyncManagerを搭載しています。プロセスデータの保存に使用される4KBのデータプロセスRAM(DPRAM)を内蔵しています。2つのEthernetポートは、マスターデバイスと別のスレーブデバイス(またはさらに2つのスレーブデバイス)とのインターフェースに使用できます。

EtherCAT スレーブ デバイスは、Typhoon HIL デバイスHIL506 および HIL606と互換性があります。

EtherCATスレーブデバイスコンポーネント

コンポーネントはサポートされていません:このコンポーネントは現在 TyphoonSim ではサポートされていません。このコンポーネントをモデルに追加すると、TyphoonSim でモデルを実行できなくなります。TyphoonSim モードでモデルを実行する前に、このコンポーネントを無効にするか、モデルから削除してください。

EtherCATスレーブデバイスコンポーネントは、EtherCATスレーブ機能を実装します。コンポーネントプロパティでESIファイルをインポートすることで設定できます。コンポーネントはインポートされた設定ファイルを解析し、プロセスデータの詳細を表示します。

1 EtherCATスレーブコンポーネント
成分 コンポーネントダイアログウィンドウ

EtherCATスレーブ

基本的なスレーブ情報(ベンダーIDベンダー名製品コード製品名)は、 「ファイルを選択」ウィジェットのすぐ下に表示されます。TxPDO情報テーブルとRxPDO情報テーブルには、ESIファイルで定義されている送信プロセスデータオブジェクト(PDO)と受信PDOがそれぞれリストされます。TxPDO情報テーブルまたはRxPDO情報テーブルでPDO項目をクリックすると、ESIファイルで定義されているPDOのエントリがPDOエントリ情報テーブルに入力されます。ダイアログウィンドウは表示のみを目的としており、PDOを変更することはできません。このような変更はすべてESI構成ファイルで行う必要があります。

「OK」ボタンをクリックすると、定義されたRxPdoおよびTxPdoエントリがEtherCATスレーブコンポーネントの対応する出力端子および入力端子に変換され、エントリ名が端子名として使用されます。EtherCATスレーブコンポーネントの端子を区別するため、PDOエントリには一意の名前を付けることを強くお勧めします。

注: EtherCAT スレーブ コンポーネントのモデル内の変数の更新レートは約 2 ミリ秒です。

EtherCATスレーブ構成

ESI configuration files are XML documents with a special element hierarchy, which describes the slave's physical properties, as well as the communication protocol details (including the size and the type of process data objects used). Since all Typhoon HIL EtherCAT compatible devices are equiped with a certain kind of EtherCAT slave hardware, and considering that the devices do not support all EtherCAT communication profiles, some restrictions are made on the content of ESI files that configure Typhoon HIL EtherCAT slave devices. The following list describes the ESI file elements and attributes which are mandatory, forbidden, fixed, or ignored. Elements and attributes not mentioned in this list are free to be used as-is. ESI file elements are annotated using <> brackets, while the element attributes are annotated with the preceding @ symbol.
<EtherCATInfo> - mandatory
    <InfoReference> - forbidden
    <Vendor> - mandatory
        <Id> - mandatory
        <Name> - mandatory
    <Descriptions>
        <Groups> - mandatory
            <Group> - mandatory
        <Devices> - mandatory
            <Device> - mandatory
                @Invisible - forbidden
                @Physics - fixed - "YY"
                <Type> - mandatory
                <Name> - mandatory
                <GroupType> - mandatory
                <Profile> - ignored
                <Fmmu> - fixed - Outputs
                <Fmmu> - fixed - Inputs
                <Sm> - fixed - MBoxOut
                    @ControlByte - mandatory
                    @DefaultSize - mandatory
                    @Enable - fixed - "1"
                    @StartAddress - mandatory
                <Sm> - fixed - MBoxIn
                    @ControlByte - mandatory
                    @DefaultSize - mandatory
                    @Enable - fixed - "1"
                    @StartAddress - mandatory
                <Sm> - fixed - Outputs
                    @ControlByte - mandatory
                    @Enable - fixed - "1"
                    @StartAddress - fixed - in range - 0x1000 - 0x1FFF    
                <Sm> - fixed - Inputs
                    @ControlByte - mandatory
                    @Enable - fixed - "1"
                    @StartAddress - fixed - in range - 0x1000 - 0x1FFF
                <RxPdo> - mandatory (at least one)
                    @Fixed - fixed - "true"
                    @Mandatory - fixed - "true"
                    @Virtual - forbidden
                    @OverwrittenByModule - forbidden
                    @SRA_Parameter - forbidden
                    <Index> - fixed - in range - 0x1600 - 0x17FF
                    <Name> - mandatory
                    <Entry>
                        <Index> - fixed - in range - 0x6000 - 0x9FFF
                        <SubIndex> - fixed - in range - 0x01 - 0xFF
                        <Name> - mandatory
                        <BitLen> - mandatory
                        <DataType> - mandatory
                        <DependOnSlot> - forbidden
                        <DependOnSlotGroup> - forbidden 
                <TxPdo> - mandatory (at least one)
                    @Fixed - fixed - "true"
                    @Mandatory - fixed - "true"
                    @Virtual - forbidden
                    @OverwrittenByModule - forbidden
                    @SRA_Parameter - forbidden
                    <Index> - fixed - in range - 0x1A00 - 0x1BFF
                    <Name> - mandatory
                    <Entry>
                        <Index> - fixed - in range - 0x6000 - 0x9FFF
                        <SubIndex> - fixed - in range - 0x01 - 0xFF
                        <Name> - mandatory
                        <BitLen> - mandatory
                        <DataType> - mandatory
                        <DependOnSlot> - forbidden
                        <DependOnSlotGroup> - forbidden
                <Mailbox> - forbidden
                <Slots> - forbidden
                <Eeprom> - mandatory
                    <ByteSize> - fixed - 2048
                    <ConfigData> - fixed - first two bytes - 80
        <Modules> - forbidden       

同期マネージャー

Typhoon HIL EtherCATスレーブデバイスが正常に動作するには、4つのSyncManagerすべてを前述のとおりに設定する必要があります。MBoxOutおよびMBoxIn SyncManagerのデフォルトサイズは0以外である必要があります。SyncManagerのメモリ領域は重複してはなりません。出力および入力SyncManagerのメモリ領域は、割り当てられたPDOの3倍サイズであることに注意してください。これは、メモリ領域の同期を維持するために必要です。最後に、SyncManagerのメモリ領域の合計サイズは、DPRAMの合計サイズ(4KB)を超えてはなりません。

プロセスデータオブジェクト

ESIファイルのRxPdo要素とTxPdo要素は、マスターデバイスとスレーブデバイス間のデータ交換に関与する単一のプロセスデータオブジェクトを表します。スレーブデバイスからマスターデバイスに送信されるデータはTxPdo要素によって記述され、 RxPdo要素はマスターデバイスからスレーブデバイスに送信されるデータを記述します。各PDOは、一意のインデックスと(必ずしも一意である必要はない)名前で定義する必要があります。RxPdoインデックス0x1600~0x17FFの範囲に属する必要があり、 TxPdoインデックスは0x1A00~0x1BFFの範囲に属する必要があります。Typhoon HIL EtherCATスレーブデバイスは動的なPDO構成をサポートしていないため、PDO要素のFixed属性Mandatory属性を「true」に設定する必要があります。PDO要素のSm属性は、対応するSyncManagerのインデックスに設定する必要があります( Outputs SyncManagerはRxPdo要素に対応し、 Inputs SyncManagerはTxPdo要素に対応します)。

各PDO要素は、プロセスデータ通信に参加する単一の変数を表す0個以上のエントリ要素で構成されます。エントリはインデックスとサブインデックスによって一意に定義されます。エントリが伝送するデータは、ビット長とデータ型によって記述されます。EtherCATプロトコルで記述されるデータ型は表2に示されています。Typhoon HILデバイスは32ビットを超えるデータ型をサポートしていないため、32ビットを超えるEtherCATベースデータ型はすべて切り捨てられることに注意してください。

2 EtherCAT基本データ型
名前 説明 ビットサイズ 範囲
ブール ブール値 1
BIT1 1ビット文字列 1
BIT2 2ビット文字列 2
BIT3 3ビット文字列 3
BIT4 4ビット文字列 4
BIT5 5ビット文字列 5
BIT6 6ビット文字列 6
BIT7 7ビット文字列 7
BIT8 8ビット文字列 8
ビタ8 8つの個別ビット 8
ビタ16 16個の個別ビット 16
ビタRR32 32個の個別ビット 32
シント 短整数 8 -128から127
INT 整数 16 -32.768から32.767
INT24 24ビット整数 24 -2 23から2 23 - 1
ディント 倍精度整数 32 -2 31から2 31 - 1
INT40 40ビット整数 40 -2 39から2 39 - 1
INT48 48ビット整数 48 -2 47から2 47 - 1
INT56 56ビット整数 56 -2 55から2 55 - 1
糸くず 長整数 64 -2 63から 2 63 - 1
USINT 符号なし短整数 8 0から255
単位 符号なし整数 16 0から65.535
UINT24 符号なし24ビット整数 24 0対2 24 - 1
UDINT 符号なし倍精度整数 32 0対2 32 - 1
UINT40 符号なし40ビット整数 40 0対2 40 - 1
UINT48 符号なし48ビット整数 48 0対2 48 - 1
UINT56 符号なし56ビット整数 56 0対2 56 - 1
ULINT 符号なし長整数 64 0対2 64 - 1
本物 浮動小数点 32
LREAL ロングフロート 64

ソフトウェアの制限により、Typhoon HIL EtherCAT スレーブ デバイスが適切に動作するには (定義された PDO が使用されていない場合でも)、ESI ファイル内に非ゼロ ビット長のRxPdo要素とTxPdo要素がそれぞれ少なくとも 1 つずつ存在する必要があります。

EEPROM

<ConfigData> subelement of the <Eeprom> element of the ESI file allows for specifying the EEPROM configuration data. Since the Typhoon HIL EtherCAT slave device uses SPI microcontroller interface, the first two bytes of the EEPROM configuration data should be set to 80.

ESI構成ファイルの例

以下の例は、DINTデータ型の32ビットエントリをスレーブデバイスからマスターデバイスに送信し、同じ型のエントリを反対方向に送信する場合のプロセスデータ構成を示しています。PDOとそのエントリの追加または削除は、PDOの合計サイズがDPRAMの制限(SyncManagersの段落で説明)を超えない限り、自由に行うことができます。

<?xml version="1.0"?>
<EtherCATInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EtherCATInfo.xsd" Version="1.6">
  <Vendor>
    <Id>#xC7B</Id>
    <Name>Typhoon HIL Inc</Name>
  </Vendor>
  <Descriptions>
    <Groups>
      <Group>
        <Type>HIL606 Slaves</Type>
        <Name LcId="1033">HIL606 Slaves</Name>
      </Group>
    </Groups>
    <Devices>
      <Device Physics="YY">
        <Type ProductCode="#x00000100" RevisionNo="#x1">HIL606 EtherCAT Slave</Type>
        <Name LcId="1033">HIL606 EtherCAT Slave</Name>
        <GroupType>HIL100 Slaves</GroupType>
        <Fmmu>Outputs</Fmmu>
        <Fmmu>Inputs</Fmmu>
        <Sm ControlByte="#x26" DefaultSize="128" Enable="1" StartAddress="#x1000">MBoxOut</Sm>
        <Sm ControlByte="#x22" DefaultSize="128" Enable="1" StartAddress="#x1080">MBoxIn</Sm>
        <Sm ControlByte="#x24" Enable="1" StartAddress="#x1100">Outputs</Sm>
        <Sm ControlByte="#x20" Enable="1" StartAddress="#x1300">Inputs</Sm>
        <RxPdo Fixed="true" Mandatory="true" Sm="2">
          <Index>#x1600</Index>
          <Name>TestRxVars</Name>
          <Entry>
            <Index>#x7000</Index>
            <SubIndex>#x1</SubIndex>
            <BitLen>32</BitLen>
            <Name>TestRxVar</Name>
            <DataType>DINT</DataType>
          </Entry>
        </RxPdo>
        <TxPdo Fixed="true" Mandatory="true" Sm="3">
          <Index>#x1A00</Index>
          <Name>TestTxVars</Name>
          <Entry>
            <Index>#x6000</Index>
            <SubIndex>#x1</SubIndex>
            <BitLen>32</BitLen>
            <Name>TestTxVar</Name>
            <DataType>DINT</DataType>
          </Entry>
        </TxPdo>
        <Eeprom>
          <ByteSize>2048</ByteSize>
          <ConfigData>8002000000000000</ConfigData>
          <BootStrap>0010800080108000</BootStrap>
        </Eeprom>
      </Device>
    </Devices>
  </Descriptions>
</EtherCATInfo>

EtherCAT マスターコンポーネント

コンポーネントが無視されます:このコンポーネントはTyphoonSimでは無視されます。TyphoonSimシミュレーション中、このコンポーネントへの入力は破棄され、コンポーネントからの出力はゼロになります。

EtherCATマスターデバイスコンポーネントは、EtherCATマスター機能を実装します。このコンポーネントを使用すると、HILデバイス上のEthernetポートを選択し、スレーブデバイスとのデータ交換に使用できます。また、サイクルタイムを0.2ミリ秒から3600秒の範囲で調整できます。サイクルタイムパラメータは、マスターが複数のEtherCATデータグラムを含む単一の標準Ethernetフレームの送信を開始する頻度(秒単位)を決定します。

プラス記号をクリックすると、任意の数のスレーブデバイスを追加できます。ただし、スレーブデバイスの数は、現在ネットワーク上にあるスレーブデバイスの数と一致する必要があります。各スレーブデバイスの情報は、それぞれのタブに表示されます。タブの順序は、ネットワーク上のスレーブデバイスの物理的な順序に対応しています(最初のタブは、このスレーブデバイスがネットワーク上の最初のデバイスであることを示します)。マイナス記号をクリックすると、現在選択されているタブ(スレーブデバイス)が削除されます。

各スレーブデバイスごとに、ESIファイルをインポートする必要があります。EtherCATマスターコンポーネントがサポートするESIファイルの必須、禁止、固定、および無視フィールドは、上記のEtherCATスレーブ設定で提供されるESIテンプレートで指定されます。マスターコンポーネントはインポートされたESIファイルを解析し、ベンダーIDベンダー名製品コードRxPdoTxPdoエントリなどのスレーブデバイスの情報フィールドを表示します。

EtherCATマスターコンポーネントは、スレーブデバイスを再プログラムする機能を備えています。その場合、バイナリファイルをインポートし、 「再プログラム」コンボボックスから「モデルロード時」オプションを選択する必要があります。通常、スレーブデバイスの再プログラムが必要な場合を除き、マスターコンポーネントの動作にスレーブデバイスのバイナリファイルのインポートは必要ありません。

タブ名をダブルクリックすることで、スレーブデバイスの名前を変更できます。スレーブデバイスには一意の名前を設定する必要があります。デフォルトの名前は「スレーブ1」、「スレーブ2」などです。

「OK」ボタンをクリックすると、各スレーブの解析されたRxPdoおよびTxPdoエントリが、EtherCATマスターコンポーネントの対応する入力端子および出力端子に変換されます。各スレーブに対応するEtherCATマスターコンポーネントの端子を区別するため、各スレーブのPDOエントリに一意の名前を付けることを強くお勧めします。

3 EtherCATマスターコンポーネント
成分 コンポーネントダイアログウィンドウ
EtherCATマスター

パディングビットを含む ESI 構成ファイルの例

In order to avoid unexpected errors during configuration and usage of the Typhoon HIL EtherCAT master component, it is necessary to add padding bits for each PDO entry that has a bit count different from 8, 16, 32, or 64 bits. This requirement applies to the ESI file of every slave device. An example of an ESI file with padding bits is given below. Padding bits are defined within the <Entry> tag, with <Index> and<SubIndex> values set to 0, while the <BitLen> is set to a value such that the total size of the corresponding PDO entry is 8, 16, 32, or 64 bits.

<?xml version="1.0"?>
<EtherCATInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EtherCATInfo.xsd" Version="1.6">
  <Vendor>
    <Id>#xC7B</Id>
    <Name>Typhoon HIL Inc</Name>
    <ImageData16x14>424DF8010000000000003600000028000000100000000E0000000100100000000000C2010000120B0000120B00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397B8C75C6748474A5744A75947AFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F8B7521746374847420706374837441746374FF7FFF7FFF7FFF7FFF7FFF7FFF7F00708374A47400709C7FA47463744274E674FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00702074CD79FF7FFF7F00740070FF7FFF7FFF7FFF7FFF7FFF7F5A7FFF7FFF7F947A0070FF7FFF7FFF7F0070D67AFF7FFF7FD67AFF7FFF7FFF7F0070FF7FFF7F00709C7FFF7FFF7FCD796274FF7FFF7FFF7F00705A7FFF7FFF7F6274E774AD754975FF7FFF7FFF7F0070FF7FFF7FFF7FA5740875FF7FFF7FFF7F497541740070FF7FFF7FFF7F0070187FFF7FFF7FF77A2174FF7FFF7FFF7FFF7F937A217400709C7FFF7F317A0070C674FF7FFF7F00705A7FFF7FFF7FFF7FFF7FFF7F087541740070397B0070A4742170EF790775297DFF7FFF7FFF7FFF7FFF7FFF7FFF7FAC79007000708474A47484742170A57CFF7F7B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397F8B75C6748474C574AC75FF7FD6561863FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000</ImageData16x14>
  </Vendor>
  <Descriptions>
    <Groups>
      <Group>
        <Type>HIL100 Slaves</Type>
        <Name LcId="1033">HIL100 Slaves</Name>
        <ImageData16x14>424DF8010000000000003600000028000000100000000E0000000100100000000000C2010000120B0000120B00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397B8C75C6748474A5744A75947AFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F8B7521746374847420706374837441746374FF7FFF7FFF7FFF7FFF7FFF7FFF7F00708374A47400709C7FA47463744274E674FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00702074CD79FF7FFF7F00740070FF7FFF7FFF7FFF7FFF7FFF7F5A7FFF7FFF7F947A0070FF7FFF7FFF7F0070D67AFF7FFF7FD67AFF7FFF7FFF7F0070FF7FFF7F00709C7FFF7FFF7FCD796274FF7FFF7FFF7F00705A7FFF7FFF7F6274E774AD754975FF7FFF7FFF7F0070FF7FFF7FFF7FA5740875FF7FFF7FFF7F497541740070FF7FFF7FFF7F0070187FFF7FFF7FF77A2174FF7FFF7FFF7FFF7F937A217400709C7FFF7F317A0070C674FF7FFF7F00705A7FFF7FFF7FFF7FFF7FFF7F087541740070397B0070A4742170EF790775297DFF7FFF7FFF7FFF7FFF7FFF7FFF7FAC79007000708474A47484742170A57CFF7F7B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397F8B75C6748474C574AC75FF7FD6561863FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000</ImageData16x14>
      </Group>
    </Groups>
    <Devices>
      <Device Physics="YY">
        <Type ProductCode="#x00000100" RevisionNo="#x1">HIL100 EtherCAT Slave</Type>
        <Name LcId="1033">HIL100 EtherCAT Slave</Name>
        <GroupType>HIL100 Slaves</GroupType>
        <Fmmu>Outputs</Fmmu>
        <Fmmu>Inputs</Fmmu>
        <Sm ControlByte="#x26" DefaultSize="128" Enable="1" StartAddress="#x1000">MBoxOut</Sm>
        <Sm ControlByte="#x22" DefaultSize="128" Enable="1" StartAddress="#x1080">MBoxIn</Sm>
        <Sm ControlByte="#x24" Enable="1" StartAddress="#x1100">Outputs</Sm>
        <Sm ControlByte="#x20" Enable="1" StartAddress="#x1300">Inputs</Sm>
        <RxPdo Fixed="true" Mandatory="true" Sm="2">
          <Index>#x1600</Index>
          <Name>Signed_int_tx</Name>
          <Entry>
            <Index>#x7000</Index>
            <SubIndex>#x1</SubIndex>
            <BitLen>8</BitLen>
            <Name>Signed_int_tx_1</Name>
            <DataType>SINT</DataType>
          </Entry>
          <Entry>
            <Index>#x7000</Index>
            <SubIndex>#x2</SubIndex>
            <BitLen>24</BitLen>
            <Name>Signed_int_tx_2</Name>
            <DataType>INT24</DataType>
          </Entry>
          <Entry>
            <Index>#x0</Index>
            <SubIndex>#x0</SubIndex>
            <BitLen>8</BitLen>
          </Entry>
          <Entry>
            <Index>#x7000</Index>
            <SubIndex>#x3</SubIndex>
            <BitLen>40</BitLen>
            <Name>Signed_int_tx_3</Name>
            <DataType>INT40</DataType>
          </Entry>
          <Entry>
            <Index>#x0</Index>
            <SubIndex>#x0</SubIndex>
            <BitLen>24</BitLen>
          </Entry>
        </RxPdo>
        <TxPdo Fixed="true" Mandatory="true" Sm="3">
          <Index>#x1A00</Index>
          <Name>Signed_int_rx</Name>
          <Entry>
            <Index>#x6000</Index>
            <SubIndex>#x1</SubIndex>
            <BitLen>56</BitLen>
            <Name>Signed_int_rx_1</Name>
            <DataType>INT56</DataType>
          </Entry>
          <Entry>
            <Index>#x0</Index>
            <SubIndex>#x0</SubIndex>
            <BitLen>8</BitLen>
          </Entry>
        </TxPdo>
        <Eeprom>
          <ByteSize>2048</ByteSize>
          <ConfigData>8002000000000000</ConfigData>
          <BootStrap>0010800080108000</BootStrap>
        </Eeprom>
        <ImageData16x14>424DF8010000000000003600000028000000100000000E0000000100100000000000C2010000120B0000120B00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397B8C75C6748474A5744A75947AFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F8B7521746374847420706374837441746374FF7FFF7FFF7FFF7FFF7FFF7FFF7F00708374A47400709C7FA47463744274E674FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00702074CD79FF7FFF7F00740070FF7FFF7FFF7FFF7FFF7FFF7F5A7FFF7FFF7F947A0070FF7FFF7FFF7F0070D67AFF7FFF7FD67AFF7FFF7FFF7F0070FF7FFF7F00709C7FFF7FFF7FCD796274FF7FFF7FFF7F00705A7FFF7FFF7F6274E774AD754975FF7FFF7FFF7F0070FF7FFF7FFF7FA5740875FF7FFF7FFF7F497541740070FF7FFF7FFF7F0070187FFF7FFF7FF77A2174FF7FFF7FFF7FFF7F937A217400709C7FFF7F317A0070C674FF7FFF7F00705A7FFF7FFF7FFF7FFF7FFF7F087541740070397B0070A4742170EF790775297DFF7FFF7FFF7FFF7FFF7FFF7FFF7FAC79007000708474A47484742170A57CFF7F7B6FFF7FFF7FFF7FFF7FFF7FFF7FFF7F397F8B75C6748474C574AC75FF7FD6561863FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000</ImageData16x14>
      </Device>
    </Devices>
  </Descriptions>
</EtherCATInfo>

この ESI ファイルの例では、 SINTデータ型の 8 ビットエントリが 1 つと、 INT24データ型の 24 ビットエントリが 1 つ定義されています。これらのエントリには、ビット長を 8 に設定したパディング PDO エントリを定義する必要があります。さらに、 INT40データ型の 40 ビットエントリが 1 つ定義されており、24 ビットのパディングビットを定義する必要があります。パディング PDO エントリを除くこれらの 3 つのエントリは、 RxPDOオブジェクト内で定義され、マスターデバイスからスレーブデバイスへのデータ送信に使用されます。反対方向では、 INT56データ型の 56 ビットエントリが 1 つ定義されており、これらのエントリには、ビット長を 8 に設定したパディング PDO エントリを定義する必要があります。

EtherCAT マスター コンポーネントは、Typhoon HIL デバイス ( HIL101、HIL404、HIL506、HIL606)と互換性があります。

仮想HILサポート

Virtual HILは現在このプロトコルをサポートしていません。非リアルタイム環境(例:ローカルコンピュータでモデルを実行する場合)を使用する場合、このコンポーネントへの入力は破棄され、このコンポーネントからの出力はゼロになります。