今回の記事ではctrlXとEtherCAT appを使用しEtherCATネットワークを立ち上げ、またPilz社のPNOZ m EF EtherCAT FSoEと連携しFSoEネットワークを構築します。FSoE SlaveはWeidmuller社のデバイスを使用しています。
さ、FAを楽しもう。
Reference Link
Reference Video
Implementation
Download ESI File
最初に各EtherCAT SlaveのESI FileをDownloadします。
OMRON NX EtherCAT Coupler
こちらのLinkからOMRON NX EtherCAT Coupler のESI FileをDownloadしてください。
https://www.fa.omron.co.jp/member/product/tool/23/esi/download.htm
OMRON GX-JC03/JC06 Junction Coupler
こちらのLinkからOMRON GX-JC03/JC06 Junction Coupler のESI FileをDownloadしてください。
https://www.fa.omron.co.jp/member/product/tool/23/esi/download.htm
Weidmuller EtherCAT Coupler
こちらのLinkからWeidmuller EtherCAT Coupler のESI FileをDownloadしてください。
https://eshop.weidmueller.com/ja/ur20-fbc-ec/p/1334910000
Pilz PNOZ m EF EtherCAT FSoE
こちらのLinkからPilz PNOZ m EF EtherCAT FSoE のESI FileをDownloadしてください。
Wiring
こちらは今回記事で使用したWeidmullerのFSoE Slaveの配線図です。
Ctrlx Side
最初にCtrlx側を構築します。
EtherCAT Master
EtherCAT Master AppsからEtherCATネットワークを構築していくので、ctrlX PLCのWeb ServerにアクセスしEtherCAT Masterをクリックしてください。
Add EtherCAT MasterをクリックしEtherCAT Masterを追加しましょう。
EtherCAT Master名と使用するPortを設定しましょう。
Done!EtherCAT Masterが追加されました。
Configure EtherCAT
EtherCAT ネットワークを構築するにはctrlX IO Engineering を使用する必要があります。
こちちはctrlX IO Engineeringの初期画面です。
New Project
New Projectをクリックし新規プロジェクトを作成しましょう。
ctrlX CORE I/Oを選び>プロジェクトを作成しましょう。
Done!新規プロジェクトが作成されました。
Install ESI File
Tools>Device Repositoryで先程メーカーのHPからDownloadしたESI FileをImportします。
InstallボタンをクリックしESI FileをImportしましょう。
Configure EtherCAT Slave
これからctrlXでEtherCAT ネットワークを構築していきましょう。
Add OMRON junction
もちろんctrlXのScan機能を使ってEtherCAT ネットワークのSlaveを検索することもできますが、今回は手動でSlaveを一つずつ追加して行きましょう。
ethercatmasterを右クリック>Add Deviceします。
こちらはEtherCAT Slaveの追加画面になります。
OMRON>Junction Slave>GX-JC03を選び>Add Deviceで追加しましょう。
Done!OMRON社のGX-JC03がEtherCATネットワークに追加されました。
Add OMRON Coupler
今度はOMRON社のNX-ECC203 EtherCAT Couplerを追加しましょう。
OMRON社のEtherCAT Coupler NX-ECC203がGX-JC03のX2と接続していますので、X2を右クリック>Add Deviceします。
OMRON>Terminal Coupler>NX-ECC203 EtherCAT Couplerを選び>Add DeviceでEtherCATネットワークに追加しましょう。
Done!OMRON社のNX-ECC203が追加されました。
Add NX-ID5442
NX-ECC203のSlot1には16点PNP入力モジュール NX-ID5442がインストールされていますので、NX-ECC203を右クリックし>Add Deviceします。
NX-ID5442を選び>Add Deviceでモジュールを追加しましょう。
Done!
Add NX-OD5256
NX-ECC203のSlot2には16点出力モジュール NX-OD5256がインストールされていますので、NX-ECC203を右クリックし>Add Deviceします。
NX-OD5256を選び>Add Deviceでモジュールを追加しましょう。
Done!
Add ILM400
NX-ECC203のSlot3にはIO-Linkモジュール NX-ILM400がインストールされていますので、NX-ECC203を右クリックし>Add Deviceします。
NX-ILM400を選び>Add Deviceでモジュールを追加しましょう。
Done!
Result
これでOMRONのEtherCAT Coupler NX-ECC203の設定が完了しました。
Add PNOZ m EF EtherCAT FSoE
次はOMRONのEtherCAT junction Port X3と接続してるPilz社のPNOZ m EF EtherCAT FSoEを追加して行きましょう。
OMRON社のGX-JC03 Junction BoxのX3を右クリック>Add Deviceします。
Pilz>PNOZmulit 2 >PNOZ m EF EtherCAT FSoEを選び、Add Deviceでデバイスを追加しましょう。
Done!X3にPilz者のPNOZ m EF EtherCAT FSoE モジュールが追加さいれました。
Add FSoE 1 Byte IN 1 Byte Out
今回記事では3つのワイドミュラー FSoE Slaveを使用しますので、Slot1/Slot2/Slot3にFSoE_M_1BYTE_IN_1BYTE_OUTを追加してください。
Done!
Add Weidmuller EtherCATCoupler
次はWeidmuller EtherCAT Couplerを追加します。
OMRONのGX-JC03 Junction BoxのX3>右クリック>Add Deviceします。
今回記事で使用するのはUR20-FBC-EC/1334910000になります。
Done!UR20-FBC-EC/1334910000のWeidmuller EtherCAT Couplerが追加されました。
Add Slot1 – UR20‐4DI‐4DO‐PN-FSOE-V2
Weidmuller EtherCAT CouplerのSlot1にインストールされたUR20‐4DI‐4DO‐PN-FSOE-V2を追加するため、UR20-FBC-EC/1334910000>右クリック>Add Deviceします。
UR20‐4DI‐4DO‐PN-FSOE-V2を追加しましょう。
Done!
Add Slot2/3 – UR20‐8DI‐PN-FSOE-V2
Weidmuller EtherCAT CouplerのSlot2とSlot3にインストールされたUR20‐8DI‐PN-FSOE-V2を追加するため、UR20-FBC-EC/1334910000>右クリック>Add Deviceします。
UR20‐8DI‐PN-FSOE-V2を追加していきましょう。
Result
Done!これでEtherCATネットワーク内にあるSlaveが全部追加されました。
Configure Slave to Slave Connection
PNOZ m EF EtherCAT FSoEとワイドミュラーのFSoE Slaveの入出力をお互いにLoopbackする必要があります。いままでCodesysの中にプログラムを書きましたが、ctrlXではSlave to slaveという機能がありまして、Slave間で直接データを渡すことができます。
EtherCAT>Slave to slave Tabを開いてください。
こちらctrlX IO EngineeringのSlave to slave機能画面です。
PNOZ m EF EtherCAT FSoE Slot1→Slot1 UR20_4DI-4DO_PN_FSOE-1
PNOZ m EF EtherCAT FSoEのSlot1 0x1A00 TxPDO入力データをUR20_4DI-4DO_PN_FSOE-1の0️x1600出力データに転送するため、
- Source側でPNOZ m EF EtherCAT FSoEのSlot1>0x1A00を選びます。
- Destination側でUR20-FBC-EC/1334910000のSlot1>UR20_4DI-4DO_PN_FSOE-1>0x1600を選択します。
- 最後は>>の矢印ボタンをクリックします。
Done!これだけでSlave間のデータ転送ができました。
PNOZ m EF EtherCAT FSoE Slot2→Slot2 UR20_8DI_PN_FSOE
PNOZ m EF EtherCAT FSoEのSlot2 0x1A01 TxPDO入力データをUR20_4DI-4DO_PN_FSOE-1の0️x1601出力データに転送するため、
- Source側でPNOZ m EF EtherCAT FSoEのSlot3>0x1A01を選びます。
- Destination側でUR20-FBC-EC/1334910000のSlot2>UR20_8DI_PN_FSOE-1>0x1601を選択します。
- 最後は>>の矢印ボタンをクリックします。
Done!
PNOZ m EF EtherCAT FSoE Slot3→Slot3 UR20_8DI_PN_FSOE
PNOZ m EF EtherCAT FSoEのSlot 0x1A01 TxPDO入力データをUR20_4DI-4DO_PN_FSOE-2の0️x1602出力データに転送するため、
- Source側でPNOZ m EF EtherCAT FSoEのSlot3>0x1A02を選びます。
- Destination側でUR20-FBC-EC/1334910000のSlot3>UR20_8DI_PN_FSOE-1>0x1602を選択します。
- 最後は>>の矢印ボタンをクリックします。
Done!
Slot1 UR20_4DI-4DO_PN_FSOE-1→PNOZ m EF EtherCAT FSoE Slot1
今度は逆方向です。
UR20_4DI-4DO_PN_FSOE-1のSlot1 0x1A00 TxPDO入力データをPNOZ m EF EtherCAT FSoE Slot1の0️x1600出力データに転送するため、
- Source側でUR20_4DI-4DO_PN_FSOE-1のSlot1>0x1A00を選びます。
- Destination側でPNOZ m EF EtherCAT FSoEのSlot1>0x1600を選択します。
- 最後は>>の矢印ボタンをクリックします。
Slot2 UR20_8DI_PN_FSOE→PNOZ m EF EtherCAT FSoE Slot2
UR20_8DI_PN_FSOE-1のSlot2 0x1A00 TxPDO入力データをPNOZ m EF EtherCAT FSoE Slot2の0️x1601出力データに転送するため、
- Source側でUR20_8DI_PN_FSOEのSlot2>0x1A01を選びます。
- Destination側でPNOZ m EF EtherCAT FSoEのSlot2>0x1601を選択します。
- 最後は>>の矢印ボタンをクリックします。
Slot3 UR20_8DI_PN_FSOE→PNOZ m EF EtherCAT FSoE Slot3
UR20_8DI_PN_FSOE-1のSlot3 0x1A00 TxPDO入力データをPNOZ m EF EtherCAT FSoE Slot3の0️x1602出力データに転送するため、
- Source側でUR20_8DI_PN_FSOEのSlot3>0x1A02を選びます。
- Destination側でPNOZ m EF EtherCAT FSoEのSlot3>0x1602を選択します。
- 最後は>>の矢印ボタンをクリックします。
Result
Done!
Download
最後はConfigurationをCPUにDownloadしてください。
EtherCATネットワーク構成を変更するにはInit状態に切り替える必要があり、もしEtherCAT MasterがすでにOP状態である場合、Warningができてきますので、Yesで進みます。
Done!
PLC Project
今度はPLCプロジェクトを作成するため、ctrlX PLC Engineeringを開き>New Projectをクリックします。
Projects>ctrlX CORE ARM64 projectを選び>Okで進みます。
Done!新規PLCプロジェクトが追加されました。
Configure RealTime Layer
次はRealtime Data Layerの変数(今回の記事ではEtherCAT Master App)を追加するため、DataLayer_Realtime>Selectively from ctrlX COREをクリックします。
こちらはRealtime Data Layerの設定画面になります。
Source ControlのDrop-ListからEthercat_master_Instances_Ethercatmasterを選びます。
Data Layer経由でアクセスできるEtherCAT app変数全部が表示されます。
ワイドミュラーのEtherCAT CouplerやPilzのPNOZ m EF EtherCAT FSoEにもDataLayer_Realtime経由で直接アクセスできます。
すべての変数を選び>2で示したボタンをクリックすれば、変数をプロジェクトにImportできます。
Done!
GVL
EtherCAT SlaveのデータとMappingするGlobal Variable Listを定義します。
{attribute ‘qualified_only’} VAR_GLOBAL VirtualOutputFromPilz:ARRAY[0..15]OF USINT; VritualInputToPilz:ARRAY[0..15]OF USINT; NX_ECC203_1_Slot1:UINT; END_VAR |
Program
こちらは非常停止などの信号を受け取りるプログラムです。
PROGRAM PLC_PRG VAR xEStop:BOOL; xOSSD:BOOL; xCondition:BOOL; xConditionOKwithTimer:BOOL; FSoEStatusOK:ARRAY[0..9]OF BOOL; END_VAR xCondition:=GVL_EtherCAT.VirtualOutputFromPilz[0].4; xConditionOKwithTimer:=GVL_EtherCAT.VirtualOutputFromPilz[0].3; FSoEStatusOK[2]:=GVL_EtherCAT.VirtualOutputFromPilz[0].0; FSoEStatusOK[4]:=GVL_EtherCAT.VirtualOutputFromPilz[0].1; FSoEStatusOK[8]:=GVL_EtherCAT.VirtualOutputFromPilz[0].2; xEStop:=GVL_EtherCAT.VirtualOutputFromPilz[0].5; xOSSD:=GVL_EtherCAT.VirtualOutputFromPilz[0].6; |
Mapping
先ほどGlobal Variable Listで定義した変数をDataLayer_RealtimeのデータとMappingしましょう。
GVLの変数をPilz社のFSOE MasterとMappingします。
GVLの変数をOMRONのEtherCAT CouplerとMappingします。
Login
LoginボタンをクリックしプロジェクトをDonwloadしてください。
OKで進みます。
またOkで進みます。
Pilz Side
次はPilzのPNOZ m EF EtherCAT FSoE側を構築します。それは実際のFSoE安全通信と安全プログラムを担当するのはこちらのControllerなので。
Import ESI File
PNOZmulti ConfiguratorからEtherCAT/FSoEのTabを開きます。
右にあるEtherCAT/FSoE Slave Libraryから”Import ESI Files”をクリックしESI Fileを追加します。
weidmüllerのESI FileをImportしましょう。
Done!
Configure FSOE Connection
次はTools>EtherCAT/FSOE>EtherCAT/FSoE ConfigurationでFSoEの安全通信を設定します。
下図のように、Slot1/Slot2/Slot3はワイドミュラーのFSoE Slaveと接続するように設定しました。
FSoE ConnID/Address
FSoE Addressの設定はWeidmullerのFSoE Slave側面にあるロータリスイッチに合わせて設定します。ConnIDはネットワーク内に被らないように設定しましょう。
Parameter
今回の記事ではWeidmullerのFSoE Slaveがキーエンスlight curtainと接続してるので、安全入力にはPulse Testの設定を無効にする必要があります。
キーエンスのlight curtainはSlot2の入力0・1と接続しています。
#8000.35のInput dual channel modeをDual channel quuivalentに設定します(OSSD入力が2つ同時にくるので)。
次は#8000.33と#8000.38のTest pulseをExternalに設定しましょう、
Program
最後は簡単な安全プログラムを作成します。こちらのプログラムでは、
- 非常停止がとlight curtain同時に入力されたら、2秒の遅延待ってか安全出力#2.D01_0にTrueさせます。
- 非常停止がONになったら非安全通信のa2.o5(Byte0の5Bit目)を出力します。
- light curtainが入力されたら非安全通信のa2.o6(Byte0の6Bit目)を出力します。
- 非常停止がとlight curtain同時に入力されたら非安全通信のa2.o4(Byte0の4Bit目)を出力します。
- 非常停止がとlight curtain同時に入力されたら、2秒の遅延が経ったら非安全通信のa2.o3(Byte0の3Bit目)を出力します。
こちらのプログラムは各FSoE Slaveの安全通信状態をEtherCAT経由でctrlXにFeedbackします。
- FSoE Address=2のFSoE Slaveが安全通信OKなら、非安全通信のa2.o0(Byte0の0Bit目)を出力します。
- FSoE Address=4のFSoE Slaveが安全通信OKなら、非安全通信のa2.o1(Byte0の1Bit目)を出力します。
- FSoE Address=8のFSoE Slaveが安全通信OKなら、非安全通信のa2.o2(Byte0の2Bit目)を出力します。
Download
プロジェクトをDownloadするには、PNOZmulit>Project Managerをクリックしましょう。
Download画面が表示されます。
赤枠のボタンをクリックしプロジェクトをDownloadしましょう。
CPUのOrder NumberとSerial Numberを入力してください。
Order NumberとSerial NumberはCPUの画面から確認できます。
Ethernet Connectionを変更したいので、”Select Device Ethernet Connection”をクリックし、OKで進みます。
”Save project on USB Memory and activate”を選択し、Okで進みましょう。
注意事項を確認し、Confirmで進みましょう。
Downloadが始まるので、しばらく待ってください。
ツールからPNOZmulit CPUを再起動しますか?の確認画面が表示され、Yesで進みます。
Result
PLCプログラムで非常停止やOSSDの信号を無事に受け取りました。
こちらの動画から動作確認できます。