今回の記事ではBeckhoff TwinCAT3とキーエンスの通信Unit KV-XLE02でEtherCAT通信の構築方法を説明します。注意するのはKV-XLE02はEtherCAT Slaveとして稼働します。
さ、始めよう!
EtherCAT?
EtherCATはドイツのBECKHOFF社によって開発されたイーサネットベースのリアルタイムフィールドバスです。Ethernetをベースとしているため、ネットワーク構築時には一般的なEthernetケーブルを使用することができます。
KV-XLE02はEtherCATスレーブとして動作し、Process Data object通信(サイクリックI/O)とMailbox通信によるデータ通信に対応しています。データのやり取りは、Sync Managerと呼ばれるポートを使用して行います。
Object dictionary
Object dictionaryはEtherCATデバイス内でアプリケーション部と通信部の間で通信をやり取りするための情報テーブルです。中にはEtherCATデバイスが扱う情報を記述します。
また、個々の情報はObjectと呼ばれる。
Process Data Object通信を使用し、該当するObjectのCoE通信領域のプロセスデータを読み書きし、またMailbox通信を使用して、該当するObjectの製造者固有領域のパラメータを読み書きすることが可能です。
Process data object communication function
PDO通信機能には、Sync manager2とSync manager3を使用します。。その通信機能を使用することにより、マスタ・スレーブ間でサイクリック(I/O)通信が可能となります。
Object dictionaryに配置されたデータの一部をProcess Data Objectトに割り当てることで通信を行います。Process Data Objectには2種類あります。
- マスタからスレーブへデータを送信するRxPDO
- スレーブからマスタへデータを送信するTxPDO
Mailbox communication (Server) function
Mailbox通信機能は、Process Data Object通信以外のタイミングでのデータ通信に使用し、Sync Managerの0と1で管理します。この通信機能を使用し、ハンドシェイクを取りながら通信を行う。また、object dictionaryに配置されている全てのデータの通信が可能です。
What is DC (Distributed Clock)
DC (Distributed Clock)は高精度な時刻同期を行うEtherCAT独自の機能で、KV-XLE02はDCに対応しています。DCによる時刻同期機能により、EtherCATマスタと各スレーブ間で同じ時刻が同期され、EtherCATマスタと各スレーブ間の動作タイミングを同期した時刻に合わせることができます。
Wiring for EtherCAT Network
KV-XLE02のEtherCAT通信機能は、リング型およびライン型のネットワークトポロジに対応しています。注意するのはEtherCATマスタデバイスと1対1ライン方式で接続する場合(ポート1のみでEtherCAT通信を行う場合)も、EtherCAT通信機能を使用する場合はポート1とポート2の両方を占有するため、ポート2でも汎用イーサネットを使用することはできません。
Cable connection method
IN Port (PORT1)
EtherCAT通信の入力ポートです。必ず他のEtherCATデバイスのOUTポートに接続してください。他のEtherCATデバイスのINポートに接続すると通信が正常に行われません。
OUT Port (PORT2)
EtherCAT通信用の出力ポートです。必ず他のEtherCATデバイスのINポートに接続してください。他のEtherCATデバイスのOUTポートに接続すると通信が正常に行われません。
Download ESI File
下記のLinkからKV-XLE02のESI FileをDownloadしてください。
https://www.keyence.co.jp/search/all/?q=KV-XLE02%20ESI
Implementation
Keyence Side
最初はキーエンス側を構築します。
Unit Configuration
KV Studioを立ち上げ、Unit configuration>KV-8000をクリックしHardware Configuration設定画面を立ち上げます。
Add KV-XLE02
右にあるSelect Unit画面でKV-XLE02をHardware Configurationに追加します。
Setup unit
次はSetup unit Tabを開き、KV-XLE02の設定を変更します。
Base
Base設定はKV-XLE02本体の状態や制御を行うデバイスを設定します。
Port1/Port2 Settings
今回記事ではEtherCAT SlaveとしてBeckhoff TwinCAT3と繋がりますので、Port1 settingsとPort2 settingsのIndustrial Ethernetを”EtherCAT(Slave)”に設定します。
EtherCAT Slave Settings
ExplictDeviceIDをDsiableします。
Refresh setting
Refresh settingのTabを開き、Beckhoff TwinCAT3と交換するデータサイズと先頭デバイスを設定します。今回の例ではInputとOutputも16Wordを設定します。
Program
User programに簡単なデータ確認用プログラムを作成します。
Download
最後はプロジェクトをKV8000にDownloadします。
TwinCAT3 Side
次はTwinCAT3 Sideを構築します。
Install ESI File
キーエンスHPからDownloadしたESI Fileを下記のLinkに格納します。
C:\TwinCAT\3.1\Config\Io\EtherCAT
Add EtherCAT Master
TwinCAT3プロジェクトを作成し、I/O>Devices>Add New Itemで新しい通信Driverを追加します。
EtherCAT>EtherCAT Masterを選び、Okで進みます。
今回TwinCAT3でEtherCAT Masterとして使用するEthernet Adapterを設定しましょう。
Scan Network
今回はTwinCAT3のSlave自動検出機能を使ってEtherCAT SlaveをScanします。Device>右クリック>Scanします。
Done!KV-XLE02が見つかりました。
Configuration
次はKV-XLE02の設定を行います。
Process Data
Proess DataをTabを開き、KV-XLE02とTwinCAT3間で交換するPDOを設定します。
Outputs
Outputsをクリックし、0x1600をCheck入れてください(今回は16Wordの出力データがありますので)。
Inputs
Inputsをクリックし、0x1A00をCheck入れてください(今回は16Wordの入力データがありますので)。
Add PLC
次はPLCを追加するため、PLC>Add New Itemをクリックします。
Standard PLC Projectを選び>AddでPLCを追加します。
Add GVL
今度はGVLを追加するため、GVL>Add>Global Variable Listをクリックします。
GVL名を入力します。
KV-XLE02とMappingするProcess Input/Process Output変数を定義します。
Program
最後は簡単なプログラムを作成します。
Build
Mappingを行う前に、Build>Build Solutionでプロジェクトをコンパイルします。
Input Mapping
入力データとMappingするため、先ほど追加した変数をすべて選んでる状態で右クリック>Change Multi Linkします。
先程GVLで定義したInput Process Dataとリンクしましょう。
Output Mapping
出力も同じの操作でリンクしてください。
Activate Configuration
最後はプロジェクトをTwinCAT3 RuntimeにDownloadするため、Activate Configurationをクリックします。
Okで進みます。
OKをクリックし、TwinCAT RuntimeをRun Modeに変更します。
Login
Loginします。
Result
最後はKV-XLE02の通信状態を確認しましょう。
Online Tabを開くと、State MachineはOPの状態です。
つまりKV-XLE02は現在正常な状態です。
KV-XLE02で出力したデータがTwinCAT3側も受けました。
TwinCAT3側も同じく、出力したデータはKV-XLE02が受けました。
今度はUnitの状態を確認するため、KV-XLE02を右クリック>Unit Monitorをクリックしましょう。
現在KV-XLE02の稼働状態を確認できます。
Communication Monitorをクリックします。
Communication Monitor画面が表示されます。
Drop-Listから現在KV-XLE02が設定された通信Modeしか選べましせんので、今回いはEtherCAT(Slave)です。
Done!現在はOP状態だと確認できました。