このシリーズではEtherCATの勉強メモや簡単な説明を少しずつ発信したいと思います。日本国内ではCC-LINKやCC-LINK IEはMainですが、海外ではProfinet・Ethernet/IP・EtherCATのShareのほうがはるかに上です。
少しでもEtherCATの知名度をUPできるように頑張ります。
Thanks!
この記事が出来上がるのはベッコフ日本法人ベッコフオートメーション株式会社さまとワゴジャパン株式会社さまから機材を貸してくださったおかけです。誠にありがとうございます。
ベッコフ日本法人ベッコフオートメーション株式会社
IPC6920-005はベッコフ日本法人ベッコフオートメーション株式会社さまが貸してくださったものです。Beckhoff Automationは1980 年会社設立、PCベースの制御技術をベースにしたオープンオートメーションシステム導入の先頭に立つドイツ企業です。実際Beckhoffが関わる分野はIPCだけではなく、Motion・Vision・Iot・ロボットなど様々な分野に常に新たなイノベーションを生み出してます。
ベッコフ日本法人ベッコフオートメーション株式会社は、2011年に横浜に本社、2017年に名古屋オフィスを設立しました。
こちらはベッコフ日本法人ベッコフオートメーション株式会社様のホームページです。
どうぞよろしくお願いします。
https://www.beckhoff.com/ja-jp/
ワゴジャパン株式会社
EtherCAT Coupler750-354はワゴジャパン株式会社さまが貸してくださったものです。WAGO は 1951 年に設立され、いままで端子台の技術で世界中の産業にずっと貢献してるドイツ企業、PUSH WIREやCAGE CLAMPの技術などで現場を支えてきました。他にWAGOさまにもPLC LINEUPがあり、オープン性と柔軟性に重点を置いた自動化ソリューションを提供しています。
ワゴジャパン株式会社は 東京都江東区に本社があります。
Reference Link
EtherCAT
http://soup01.com/ja/category/protocol/ethercat/
Ethernet/IP
http://soup01.com/ja/category/protocol/ethernet-ip/
Profinet
http://soup01.com/ja/category/protocol/profinet/
EtherCAT?
EtherCAT(EtherCAT for Control Automation Technology)は2005年からIEC標準のOpen-protocolで高速なCycle Time <=100usとJutter <=1usに実装したIndustry Protocolです。
Toplogies
ネットワークの構成により、EtherCATはLinera・Start・TreeのToplogiesで最大65535 Nodesを接続できます。
Hardware
EtherCATで使用するHardware媒体はIEC8802-3標準のもので、
Standard Ethernet path Cable(100 base TX)・Fiber Optics・Copper Wiresでも利用可能です。工業用なのでShield付きのs/utpやs/stp をおすすめします。Standard Ethernet path Cable(100 base TX)なら最大100mでFiber Opticsは最大2kmまでになります。
Monitoring
Timestamp を使用することによりEtherCATは高速・正確な情報診断を取得できます。もちろん使用するのは標準的なEthernet監視ツールだけです(例えばWireshark)。EtherCATを使用することで他の既存Ethernet ネットワークや他のFieldbus(CANopen/DeviceNet/PROFIBUS)とGatewayに統合することも簡単になります。
Addressing
EtherCATはImplicit addressingを使用し、Slavesは自動的にAddressを割り付けます。
つまり基本的にはEtherCAT Network内に手動でアドレスを設定する必要はありません。
そのAddressは定数・Manual設定なし・理論上で最大65535までになります。
Configuration
EtherCAT ネットワークを構築するにはProfinetのGSDMLと似て ”ESI” Fileが必要になります(EtherCAT slave infomration)。そのESI FileはEtherCAT Configuration (今回はTwinCAT)にImportしEtherCATネットワークを構築します。
ESI File
ESI Fileは各メーカーのHPからDownloadすることができます。そのESI Fileにはデバイスのアプリケーションのパラメーター・Device Class・Status Machineなどの情報が入っています。ConfigurationツールでEtherCAT Slaveで設定したパラメータはそのまま実機に反映されます。
EtherCAT State Machine(ESM)
すべてのEtherCAT SlaveではEtherCAT State Machine(ESM)があり、該当するMasterとSlave間の状態遷移を制御します。シンプルなEtherCAT SlavesではESMはほぼMasterからのリクエストに沿って状態を遷移し、複雑なEtherCAT SlaveならMasterからのリクエストを拒否や自分自身で状態を変えることも実装されます(例えばSlaveのConfigurationエラー)。
EtherCAT SlaveのESMは以下の状態があります。
- INIT
- PREOP(Pre-Operational)
- SAFEOP(Safe-Operational)
- OP(Operational)
- BOOT(Bootstran、オプション)
INIT
EtherCATの電源がONすると最初にINITの状態になり、その状態ではProcess DataやMailbox通信はできません。EtherCAT MasterはMailbox communicationを通信するために sync managerのChannel0とChannel1を初期化します。
Pre-Operational
EtherCAT SlaveはInitからPre-Operationalに遷移する(IP)にはMailboxが正常に初期化してるかによります。EtherCAT SlaveがPre-Operational状態ではMailbox通信できますが、Prcocess Dataはまだできません。もし構築したPDO Mappingは問題なければ、
EtherCAT Masterが sync manager channels2(FMMU、Fieldbus Memory Management Unit)を初期化し、Safe-Operational に遷移します。
Safe-Operational
PREOPからSAFEOPい遷移する際、EtherCAT SlaveはSync managerのProcess Data 通信Channelは正常か(場合によってDistributed clocksもCheckされます)。その状態ではMailboxとProcess Data通信も可能ですが、Input Dataは周期更新され、OutputsはずっとSafe stateのままになっています。
Operational
その状態ではMailbox・Process Data Input/Outputでも可能なだけではなく、file access over EtherCAT (FoE)もOKで SlaveのFirmware Updateでもできます。
Bootstrap
その状態はOptionalで、EtherCAT slaveはINITのときのみ遷移できます。その状態ではfile access over EtherCAT (FoE)が有効になり、EtherCAT SlaveのFirmwareをUpdateすることができます。
Check in TwinCAT3
Slave Information Intetface
EtherCAT Slaveの中に EEPROMがありSIIの役割として働きます。SIIはSlave infomration InterfaceでMasterがEtherCAT Fieldbus chipの内部情報にアクセスできるようにしています。例えば、
- Slave識別情報
- Manufacturer ID
- Product ID
- Version
- Series Number
- Sync Manager 0と1のパラメータ設定(Mailbox)
- Support できるMailbox Protocol情報(例えばCoE)
- Sync Manager2,3のProcess Data Mapping・パラメータ設定
場合によりMasterはSIIからSlaveの情報を読み、ESI FileなしでSlaveを操作できます。
注意するのはSIIはEEPROMメモリに保存してるデータだけで、そのEEPROMサイズは 1 Kbit から 4 Mbit までです。
ESI?SII?
EtherCATはESI FileとSIIにも同じSlaveの情報を提供していますが、なぜ2つがある?の疑問がありませんか。
例えば小型のEtherCAT MasterではESI Fileが要らなく直接Slaveの情報を読み取りNetworkを構築できますが、Networkが大きくなると、ESI Fileを直接EtherCAT MasterのFile Systemから読み取ったほうが早いだろうし、ESI FileがあることだけでOffline上ではEtherCAT Networkを構築することができます。
CoE
CoE(CAN Application Layer Over EtherCAT)のおかけでEtherCATにCANOpenと同じ通信構造が実装されます。たとえば、
- Object Dictonary
- PDO Mapping(Process Data Objects)
- SDO(Service Data Object)
つまり本来CANOPEN使用しているものが少なめの変更によりEtherCATに実装することができ、一部のCANOPEN Firmwareも再利用できます。CANOPENのDevice profies、たとえばCiA402 Drive ProfileでもそのままEtherCATで再利用できます。
PDO(Process Data Objects)
PDOは効率よく、なおかつ高速でデータを交換することができます。(例えばIN/OUT Data)
Prcess Dataの内容はMapping パラメータに定義されます。
SDO(Service Data Object)
SDOはEtherCAT MasterからObject Dictonaryへアクセスやデバイスパラメータを読み書きするためのものです。注意するのはSDO通信は非同期で通信の優先順位は低いことです。
Command Objects
Command ObjectはSlaveの返答がMailboxのタイムアウト内で届かない場合に使用されます。そのCommand ObjectはどんなObject Indexでも使用できます。
Configuration
こちらは今回EtherCAT説明するために使用する構成です。
Reference Link
以下のLinkから構築方法を参考してください。
Check in TwinCAT3
では実際TwinCAT3からEtherCATの状態を見てみましょう。
CoE-OnlineのTab開きます。
Show Offline Data
Show Offline DataをクリックするとOfflineデータを確認できます。
Show Online Data
今回は実際接続してるEtherCAT Slaveの状態をみたいから、Show Offline DataのCheckboxを外してください。
そうすると、現在のSlaveの状態を確認できます。例えば1018:0 Identify Objectの1018:01 Vendor IDは0x21が表示されていますね。
0x21はETGのページからみるとWAGOだとわかりますね。
実際デジタル出力Moduleはいま出力しています。
CoE-OnlineのTabの7010:01から08まで見ますと同じくProcess Outputが見えます。
Mapping
次はMappingのことを少し話しますね。
Mapping Module 0x1AFF
最初に0x1AFFが入ってるのは、WagoのManualではObject 0x1AFF、Box1のInputになっています。そのInputを開くと同じのMappingが入っています。
Mapping Module 0x16FF
次のOutput 0x16FFも実際モジュール本体を制御するPDOでOuputを開くと同じのMappingが入っています。
Mapping Module Input1 0x1A00
Wagoのモジュールにも書きましたが、Indexは0x1A00+(IOモジュール-1)なので、1Slot目のデジタル入力は1A00+(1-1)、Index=1A00になります。
そしてPDOのIndex Pointerは0x6000+(IOモジュール-1)x0010、つまり6000+(1-1) ・0x0010=0x6000になります。
Mapping Module Input3 0x1A00
3Slot目のアナログ入力モジュールは同じ計算方法で0x6000+(IOモジュール-1)x0010、つまり6000+(3-1) ・0x0010=0x6020になります。
Mapping Module Output2 0x1600
2Slot目のデジタル出力のPDO Index計算も同じで、0x7000+(IOモジュール-1)x0010、つまり7000+(2-1) ・0x0010=0x7010になります。
Mapping Module Output4 0x1600
最後4Slot目のデジタル出力のPDO Index計算も同じで、0x7000+(IOモジュール-1)x0010、つまり7000+(24-1) ・0x0010=0x7030になります。
SM2/3
SM2 → Process Data Out
SM3 → Process Data In
今回は以上になりますー