GC1000ではEtherNet/IP™, PROFINET, UDP, Modbus/TCP, または MC プロトコルの通信に対応できます。今回の記事ではWAGO PFC200 ControllerとGC1000のEthernet/IP通信のテーマです。
さ、はじめよう!
Reference Link
Download EDS File
こちらのLinkからGC1000のEDS FileをDownloadしてください。
https://www.keyence.com/products/safety/safety-controller/gc/downloads/?mode=so&modelId=PM_2691000
Implementation
D4SL-N2NDG-D
赤枠でマークされたのは今回使用する端子です。
9,10が24vがあるとロックがかけられ、2,1と4,3はロック信号のFeedbackになります。
こちらは今回使用する端子台式のオムロンのドアロックです、
Wiring
こちらはオムロンのD4SL-N2NDG-Dドアロック、あとLock・Unlockの入力スイッチです。
こちらは前回とおなじの非常停止・ランプ・リセットボタンの配線になります。
Keyence Side
Configure the Ethernet/IP
最初はGC1000にEthernet/IPのConfigurationを追加するため、Option>Ethernet>Ethernet/IPをEthernet に入れしましょう。
このようなEthernet/IPが追加できる部分がピンク色になります。
Done!
Configure INPUT
Communication Inputを定義します。こちらはWAGO PFC200の出力になります。
Configure OUTPUT
Communication Outputを定義します。こちらはWAGO PFC200のInputになります。
Configure Register
GC1000は内部レジスタも使用できます。System>RegisterをSystemの部分に追加しましょう。
このようなレジスタが追加できる部分がピンク色になります。
Done!
次はRegisterをダブルクリックします。
Register settings画面が表示されます。
Addボタンをクリックし新しいレジスタを追加しましょう。
Register detailed settingsの画面が表示され、各Registerのラベルやコメントの設定が可能です。
Done!
Addボタンで複数のレジスタを宣言しましょう。
Done!2つの内部レジスタが定義されました。
もし現在定義されたレジスタを編集したい場合Editボタンをクリックしてください。
そこからレジスタ名とコメントの修正も可能です。
Done!
Configure the Door Switch
OMRONのD4SL-N2NDG-Dドアロックをプロジェクトに追加するため>Input devices>Safety input device>Guard locking switchをInput devices(s)に追加してください。
Input Temrinal
次はTerminalをクリックし配線端子を設定します。
今回D4SL-N2NDG-Dのドアロックは端子台Si2/Si3と配線し、Test端子台はTo2/To3に配線します。
GC Configuratorと実配線の関係図は以下になります。
Output Terminal
次は出力端子の設定です。こちらの端子はドアロックのON/OFFに配線します。
今回の記事ではドアロックの出力はSo0と接続しています。
GC Configuratorと実配線の関係図は以下になります。
Unlock/Lock Switch
今度はOther inputから2つの入力を追加します。こちらの2つの入力はオペレーターがドアロックやアンロックさせます。
Unlock/LockのスイッチはSi11/Si12と配線しています。
Program
GC1000の安全プログラムを作成します。今回は安全機能に合わせてESTOP・DOOR・Summaryのページに分けます。
ESTOP
こちらは非常停止の制御プログラムで、前回とほぼ変わらないんです。
RESET00のBlockにあるINparmaはDoorスイッチの安全入力と非常停止のAND論理に変わります。
次は非常停止の状態・RESETの状態をGC1000の内部レジスタに転送します。
DOOR
こちらはDoorロックの制御プログラムになります。
基本はRemote・Localモードに分かれ、RemoteモードであればEthernet/IP 経由でDoorのUnlock/Lockコマンドを発行します。LocalモードであればGC1000に配線されたスイッチでUnlock/Lock操作を行います。
こちらはRemote モードの制御です。
Remote モードのとき、DoorのUnlock/LockコマンドはEthernet/IP のIN_00_01とIN_00_02から受け取ります。
こちらはLocalモードの制御です。
Localモードのとき、DoorのUnlock/Lockコマンドはスイッチの状態から受け取ります。
受け取ったUnlock/LockのコマンドをUNLK BlockのUI/LIにわたり、UOはDoorロックの出力と繋がります。
Doorロックの接点をGC1000の内部レジスタに転送します。
Summary
最後はGC1000の内部レジスタをEthernet/IP のComm Outputに出力します。
Result
こちらの動画からD4SL-N2NDG-DのUnlock/Lock操作を確認できます。
Keyence.GC1000 Lock Unlock Door
こちらの動画からD4SL-N2NDG-DがLock>リセット操作を確認できます。
Keyence.GC1000 Reset Status While Door is unlock and Resume
こちらの動画からD4SL-N2NDG-Dが非常停止リリース>リセット操作を確認できます。
Keyence.GC1000 Reset Status While ESTOP is triggered
Wago Side
次はWago PFC200 側を構築します。
New Project
File>New Projectで新規プロジェクトを作成します。
TemplatesをStandard Projectに選択し、Okで進みます。
Standard Projectの設定画面が表示されます。
Deviceを750-8215 PFC200(WAGO)に設定し、OKで進みます。
Install the EDS File
新規プロジェクトを作成したら、今度はCodesys IDEにGC1000のEDS Fileをインストールするため、Tools>Device Repositoryを開きます。
Device Repository画面が表示され、Installボタンをクリックします。
先程キーエンスWeb SiteでDownloadしたEDS Fileを開きましょう。
Done!GC1000のEDS Fileがインストールされました。
Ethernet Adapter
Codesys プロジェクトにEthenret/IP Scannerを構築するために、まずはEtherne/IP Adapterを追加する必要があります。Deviceを右クリック>Add Deviceします。
Ethernet Adapter>Ethernetを追加します。
Ethernet/IP Scanner
次はEthernetを右クリック>Add Device> Ethernet/IP Scanner>Ethernet/IP Scannerを追加します。
Add GC1000
最後は先程追加したEthernet/IP Scanner>右クリック>Add Device>GC Seriesを追加しましょう。
Download Missing Library
もしあなたが初めてCodesysでWAGOのPFC200をEthernet/IP使用する場合、ライブラリをダウンロードする必要があります。
Library Managerをクリックし>Download Missing Librariesをクリックします。
LibraryをすべてCheck入れ、Downloadをクリックします。
Done!
Ethernet/IP ScannerのObejctはもう赤線のエラーがなくなりました。(もしそれでもエラー解除しない場合、現在構築したEthernet/IP Scannerを削除しもう一回を追加してみてください)
Configure Ethernet
Etherentをダブルクリックします。
Browseボタンをクリックし、このEthernet Interface実際WagoのPFC200のどっちのPortを使用するかを設定します。
br0 192.168.5.123を選び>Okします。
Configure GC1000
次はKeyence GC1000のEthernet/IP Adapter設定を行います。
IP addressのFieldにGC1000のIPを入れてください。
Program
次はプログラムを組みます。
DUT
u2ByteToWord
こちらは2BytesとWord共同体になります。
TYPE u2ByteToWord : UNION _data:ARRAY[0..1]OF BYTE; OperationTime:WORD; END_UNION END_TYPE |
DUT_GC1000_Status
こちらはGC1000の送受信データをまとめた構造体になります。
TYPE DUT_GC1000_Status : STRUCT iCommunicationInput :ARRAY[0..3]OF WORD; qCommunicationOutput :ARRAY[0..3]OF WORD; iNumberOfExpansionUnit :UINT; iNumberOfRemoteModule :UINT; OpertingTime :u2ByteToWord; OperationStatus :UINT; NumberOfErrors :UINT; GCLinkPortStatus :UINT; END_STRUCT END_TYPE |
GVL
Global Variable Listで先程作成したDUT_GC1000_Statusで変数を定義します。
{attribute ‘qualified_only’} VAR_GLOBAL GC1000:DUT_GC1000_Status; END_VAR |
MAIN
最後は非常停止・ドアロックの状態などを受け取ったり、リモートのロック・アンロック・リセットの操作するプログラムを作ります。
PROGRAM PLC_PRG VAR GC1000_SystemStatus ,GC1000_DoorLock ,GC1000_ESTOPStatus:BOOL; GC1000_Reset ,GC1000_DelayDisable ,GC1000_DoorUnlockCommand ,GC1000_DoorlockCommand ,GC1000_Remote :BOOL; END_VAR GC1000_SystemStatus:=GVL.GC1000.iCommunicationInput[0].0; GC1000_DoorLock:=GVL.GC1000.iCommunicationInput[0].1; GC1000_ESTOPStatus:=GVL.GC1000.iCommunicationInput[0].2; GVL.GC1000.qCommunicationOutput[0].0:=GC1000_Reset; GVL.GC1000.qCommunicationOutput[0].1:=GC1000_DelayDisable; GVL.GC1000.qCommunicationOutput[0].2:=GC1000_DoorUnlockCommand AND GC1000_Remote ; GVL.GC1000.qCommunicationOutput[0].3:=GC1000_DoorlockCommand AND GC1000_Remote ; GVL.GC1000.qCommunicationOutput[0].4:=GC1000_Remote; |
Mapping
GC1000>Ethernet/IP I/O Mappingでプログラムの変数とProcess IOをMappingしましょう。
Login
LoginボタンをクリックしプロジェクトをDownloadします。
Yesで進みます。
Start
Startボタンをクリックしプログラムを実行します。
Result
こちらはWAGO PFC200からEthenret/IP経由でGC1000をリセットする動画です。
Keyence.GC1000 ESTOP Staus Send to WAGO PLC with EtherentIP
こちらはWAGO GC1000からEthenret/IP経由でWAGO PFC200に正常状態を送信する動画です。
Keyence.GC1000 Normal Staus Send to WAGO PLC with EtherentIP
こちらはWAGO PFC200からEthenret/IP経由でD4SL-N2NDG-Dをロック・アンロックする動画です。
Keyence.GC1000 Door Lock Unlock Command Receive From WAGO PLC with EtherentIP
Download
こちらのLinkから記事のCodesysとGC1000プロジェクトをDownloadできます。
https://github.com/soup01Threes/Codesys/blob/main/Tutorial_GC1000_wagoPFC200_EIP.7z