今回の記事ではBeckhoff のEP1957-0022を利用し、EtherCATとFSoEネットワークを立ち上げる同時、Phoenix ContactのAXL F BK EC EtherCATCouplerと安全入出力モジュールと接続します。ドアロックはPilzだけではなくKeyenceのGS Lockも使います。
さ、FAを楽しもう。
Reference Link
AXL F BK EC – Bus coupler?
AXL F BK ECバスカプラは EtherCAT® ネットワーク内で使用でき、Axioline F I/O システムへのリンク可能なデバイスです。そして最大 63 台の Axioline F デバイスをバスカプラに接続できます。
Features
AXL F BK EC – Bus couplerは以下の特徴があります。
- イーサネットポート×2(スイッチ内蔵)
- ロータリーエンコードスイッチ
- 自動アドレッシング
- モジュラーEtherCAT®デバイスとしてマッピングされたステーション
- ステーションをブロックデバイスとしてマッピング可能
- 非周期的データ通信(mailbox protocols)
- サイクリック・データ通信
- Axioline F ローカルバスの標準サイクルタイムは約10 μs
- バスカプラのランタイムはごくわずか(ほぼ0 µs)
- IOL-CONFをサポート(ファームウェア・バージョン1.30以降)
- FSoEシステムで使用するスマート・エレメントをサポート
(ファームウェア・バージョン1.31以降)
Internal circuit diagram
こちらはAXL F BK EC – Bus couplerのBlock図です。
Connection Example
こちらはAXL F BK EC – Bus couplerの接続例です。
Rotary encoding switch
ロータリーコードスイッチでDevice Identification Valueを割り当てることができます。
スイッチ位置を変更する度にバスカプラを再起動してください。注意するのは運転中にスイッチ位置を変更しても影響はありません。
このスイッチを使用し、Device Identification Valueを1-159まで設定できます。
Synchronizing the application in EtherCAT
EtherCATではアプリケーションの同期には2つのモードがあり、エンジニアリング・システムで選択できます。
- SM Synchronous
- DC Synchronous
SM Synchronous
このモードではEtherCAT®通信システムとローカルバスは非同期で動作します。ローカルバスはオートランモードとなり、現在のモジュール構成で可能な最小サイクルタイムで動作します。
DC Synchronous
このモードではローカルバスのバスサイクルはEtherCAT®サイクルに同期し、
実装された分散クロックユニットを使用してプロセスを時間的に同期させます。
注意するのはDC Synchronousを設定し、ローカル・バス同期をサポートするモジュールが Axioline F ステーションにない場合、バス・カプラは「AL ステータス・コード」0028hex(SyncMode not supported)で PREOP から SAFE-OP への状態の変更を拒否します。
なので、バス・カプラの DC 同期モードを使用する場合は、ローカル・バス同期をサポートするモジュールが Axioline F ス テーションに少なくとも 1 つあることを確認してください。
AXL SE FSDI8/3 ?
AXL SE FSDI8/3スマートエレメントは、Axioline SE製品ファミリの安全入力モジュールで、FSoEシステム(Failsafe over EtherCAT®)で使用します。スマート・エレメントは Axioline F バックプレーンでの使用に適し、スマート・エレメントはバックプレーンを介して Axioline F システムに統合されます。
スマート・エレメントには、2 チャンネル割り当て用の安全なデジタル入力が 4 つ、または 1 チャンネル割り当て用の安全なデジタル入力が 8 つあり、入力はアプリケーションに応じてパラメータ化できます。これにより、センサを安全システムに統合することができます。
スマートエレメントは、使用するセーフティコントローラに対応するエンジニアリングツールを使用し(今回の記事ではTwinSAFE)、FSoEシステムで設定します。
Supply voltage
スマート・エレメントには以下の電源電圧が必要です:
- スマート・エレメントの通信電源USE
- I/O電源電圧
Safe digital inputs
スマート・エレメントには安全なデジタル入力を以下のように使用できます。
- 2チャンネル割り当ての場合:4つの2チャンネル入力
- 1チャンネル割り当ての場合:8つの1チャンネル入力
Processing time of the input in the event of a safety demand
安全要求時の入力 tIN の処理時間は、パラメータ化されたフィルタ時間 tFilter とファームウェア処理時間 tFW から構成されます。
- tIN=入力の処理時間
- tFilter=パラメータ化されたフィルター時間
- tFW=ファームウェア処理時間:7.5ms
Response time of the FSoE system
FSoEシステムの応答時間を決定する際は、コントローラメーカーの仕様を遵守する必要があります(今回の記事ではBeckhoff)。
Single-channel assignment
セーフ入力の1チャンネル割り当ての場合、入力は互いに独立して動作します。1チャンネル割り当ての電源には、関連するクロック出力または外部電源(外部+24 VまたはOSSD)を使用できます。
State evaluation
スマートエレメントは入力の状態を評価し、その結果をコントローラに送信します。セーフ入力のプロセスデータでは、以下の値が送信される:
- 入力に 「0 」信号があるか、エラーが検出された場合は 「0」になります。
- 入力に 「1 」信号が存在し、エラーが検出されなければ 「1」になります。
Two-channel equivalent assignment
入力の2チャンネル操作では、チャンネルは下記のように割り当てられます:
- IN0_CH1 to IN0_CH2
- IN1_CH1 to IN1_CH2
- IN2_CH1 to IN2_CH2
- IN3_CH1 to IN3_CH2
State evaluation
スマートエレメントは入力の状態を評価し、その結果をコントローラに送信します。セーフ入力のプロセスデータでは、以下の値が送信される:
- 2つの入力の少なくとも一方に 「0 」信号が存在するか、またエラーが検出された場合、「0」 になります。
- 両入力に 「1 」信号があり、エラーが検出されず、以下の状態変化条件が満たされていれば 「1」になります。
Two-channel non-equivalent assignment
入力の2チャンネル操作では、チャンネルは以下のように割り当てられます:
- IN0_CH1 to IN0_CH2
- IN1_CH1 to IN1_CH2
- IN2_CH1 to IN2_CH2
- IN3_CH1 to IN3_CH2
State evaluation
スマートエレメントは入力の状態を評価し、その結果をコントローラに送信します。セーフ入力のプロセスデータでは、以下の値が送信されます。
- 入力のチャンネル1に 「1 」信号があり、入力のチャンネル2に 「0 」信号があり、エラーが検出されず、状態変更の条件が満たされている場合、「1」になります。
- その他の場合は「0」になります。
Symmetry and start inhibit
Symmetry monitoringは、関連する(フィルターされた)入力が同時に異なる状態になる程度をチェックします。
入力が異なる状態を示す時間が、「symmetry 」でパラメータ化された値より長い場合、対称性は破られる。これは立ち上がりエッジと立ち下がりエッジに適用される。
Symmetry違反の診断メッセージは、影響を受ける入力のパラメータ設定時に有効になっている場合にのみ表示されます。
IF Disable..
- Symmetry monitoringの破れのメッセージは、セーフ・ステートのシフトと関係なくなります。
- メッセージを承認する必要があります
- ただし、入力の現在のステータスは常に入力のプロセスデータに表示される。
IF Enable..
- Symmetry monitoringの破れのメッセージの結果、安全な状態が送信される。
- メッセージを承認する必要があります
- 確認応答後、入力の現在のステータスが入力のプロセスデータに表示されます。
Example
下図ではsymmetry monitoringの説明になります。
- S=対称モニタリングの時間設定
- Diag=診断
- Bit=入力の送信状態
- Q=診断メッセージの確認。診断メッセージを確認した後、現在の状態が読み込まれます。
こちらはSymmetry monitoringを無効にした場合のTime chatです。
IN0_CH0とIN0_CH1が同時の信号入力になっていない場合でも、Bit(入力状態)が1になり、診断メッセージも上がっていません。
こちらはSymmetry monitoringを有効にした場合のTime chatです。
IN0_CH0とIN0_CH1が同時の信号入力になっていない場合、Bit(入力状態)が0になり、診断メッセージを確認してから始めてBit=1になります。逆に、IN0_CH0とIN0_CH1が片方0になった場合、Bit=0になり、診断メッセージが上がります。
Clock outputs OUT_T1 and OUT_T2
スマート・エレメントには2つの独立したクロック出力があり、クロック出力は安全入力に供給されます。少なくとも1つの入力ペアに対してクロスサーキット監視が有効になっている場合、両方のクロック出力はパルスパターンを提供します。このパルスパターンは、入力の外部配線のクロスサーキットを検出するために使用されます。
- T=試験パルス幅
- P=周期
Cross-circuit detection
Cross-circuit detectionは、この設定がパラメータ化されている場合、クロック出力はクロックパルスなしでDC電圧を供給する。少なくとも1つの入力ペアに対してクロスサーキット監視がパラメータ化されるとすぐに、クロック出力OUT_T1とOUT_T2にパルスが出力されます。
Cross-circuit detectionでパラメータ化された入力の場合、割り当ては以下のようになる:
- チャンネル1の入力(INx_CH1)はクロック出力OUT_T1に割り当てられる。
- チャンネル 2 (INx_CH2) の入力はクロック出力 OUT_T2 に割り当てられる。
Cross-circuitエラーにより、影響を受けた入力のプロセスデータに安全状態が送信されます。
Safe state
スマートエレメントの安全状態は、セーフコントローラへの入力画像において値”0”を送信することです。安全状態は下記の原因にもあります:
- 動作状態
- I/Oデバイスのエラー検出
- デバイスエラー
- パラメータ化エラーまたはパラメータ化されていない状態
- 安全通信中のエラー検出
Error detection in I/O devices
入力でエラーが検出された場合、その入力は安全状態に設定されます。その入力のプロセス・イメージには ”0 ”が表示される。Cross-circuit 監視がパラメータ化し、検出された場合、すべての入力は安全状態になります。
パラメータ設定によっては、例えば以下のようなエラーが入力で検出されることがあります。
- 短絡回路
- Cross-circuit
- クロック出力の過負荷または短絡
Process data
こちらはAXL SE FSDI8/3 のProcess Data Mappingになります。
F-Address
スマートエレメントの側面に10個のDIPスイッチがあり、ディップスイッチはFSoEアドレスの設定に使用します。ネットワークの実装前にディップスイッチでアドレスを設定してください。
- FSoEアドレス1~1022(1hex~3FE hex )が許可される。
- アドレス 0 と 1023(3FFhex )は無効なアドレスである。
- デフォルトでは、アドレスは0(無効なアドレス)に設定されている。
注意するのは設定されたアドレスは電源投入時のみ適用されます。運転中にアドレスを調整すると、スマート・エレメントはエラー・メッセージで応答します。
AXL SE FSDO4/2 2A ?
AXL SE FSDO4/2 2Aスマートエレメントは、FSoEシステム(FailSafe over EtherCAT®)で使用するAxioline SE製品ファミリの安全出力モジュールです。
スマート・エレメントには、2チャンネル割り当て用の2つの安全なデジタル出力、または1チャンネル割り当て用の4つの安全なデジタル出力があります。出力はすべて正スイッチングです。出力は特定のアプリケーションに応じてパラメータ化できます。これにより、アクチュエータを安全システムに組み込むことができます。
スマートエレメントは、使用するセーフティコントローラに対応するエンジニアリングツールを使用して、FSoEシステムで設定します。
Supply voltage
スマート・エレメントには以下の電源電圧が必要です:
- スマート・エレメントの通信電源USE
- I/O電源電圧
Safe digital outputs
スマート・エレメントには、以下のように使用できる安全なデジタル出力があります:
- 2チャンネル割り当ての場合:2つの2チャンネル出力
- 1チャンネル割り当ての場合:4つの1チャンネル出力
Shutdown time of the safe output module
安全要求時の出力のシャットダウン時間tOUTは、内部処理時間7.5msとパラメータ化されたスイッチオフ遅延時間tdelayで構成されます。
- tOUT 出力のシャットダウン時間
- tdelay パラメータ化されたスイッチオフ遅延時間
7.5 ms 内部処理時間(=ファームウェア処理時間+信号ランタイム)
Error detection time
1チャンネル割り当ての場合、エラー検出時間は20msである。この幅の高いパルスは、エラー時に発生する可能性がある。
Process data
こちらはAXL SE FSDO4/2 2A のProcess Data Mappingになります。
F-Address
スマートエレメントの側面に10個のDIPスイッチがあり、ディップスイッチはFSoEアドレスの設定に使用します。ネットワークの実装前にディップスイッチでアドレスを設定してください。
- FSoEアドレス1~1022(1hex~3FE hex )が許可される。
- アドレス 0 と 1023(3FFhex )は無効なアドレスである。
- デフォルトでは、アドレスは0(無効なアドレス)に設定されている。
注意するのは設定されたアドレスは電源投入時のみ適用されます。運転中にアドレスを調整すると、スマート・エレメントはエラー・メッセージで応答します。
Keyence Safety Interlocking SwitchGS (Lock)
セーフティ・インターロック・スイッチは、ドア、フェンス、カバーなどの可動式機械警備の開閉をチェックするための安全装置であり、KEYENCEのセーフティインターロックスイッチGSシリーズには以下のシリーズがあります。
- ロックタイプ(パワー・ツー・リリース(GS-50)
- パワー・ツー・ロック(GS-70)モデル)
- 非接触タイプ(GS-10)
Wiring
今回使用するのはGS-51P10の配線図です。実際TwinSAFEを使用しプログラムを作成する前に、それらの配線の役割だけ説明させてください。
OSSD
OSSD1 と OSSD2 は、同じステータスを出力する安全出力のペアで、OSSDは安全関連制御システムに接続されています。フォースガイドリレー、マグネットコンタクト、またはセーフティコントローラに配線されます。
OSSD出力は、機械制御システムの安全関連部分の安全出力であり、ロックは内部制御回路で自己診断信号を生成し、OSSDの診断を行います。これらの信号は、OSSDがON状態のとき、OSSDを周期的に一時的にOFF状態にする。
自己診断により内部制御回路にフィードバック信号(OFF信号)が入力されると、ロックはOSSDが正常に動作していると判断できます。内部制御回路にOFF信号が戻らない場合は、ロックはOSSDか配線に問題があると判断し、エラー状態になる。
Safety Input
これは別の GS/GS-M の OSSD に接続でき、カスケードが可能です。安全入力1と安全入力2は、安全入力のペアになります。カスケード接続しない場合は、PNPタイプは24Vに、NPNタイプは0Vに短絡してください。
異なるGS(Lock)またはGS(Non-contact)のOSSDをセーフティ入力に接続することで、複数のGSユニットを拡張システム(カスケード接続)に接続して使用することができます。GS(ロック)の場合、最大25台までシステムを拡張できます。
下図の配線例では、非常停止スイッチ/ボタンを安全入力に配線すると、非常停止スイッチ/ボタンを押すことで機械の非常停止が可能になります。
AUX Output
GS-Mの動作状態を確認するための情報出力であり、非安全機能であるため、安全関連の制御には使用しません。
Lock
ロック機能は、GS(ロック)アクチュエータを取り付けたドアなどを、型式とアクチュエータの物理的な接続を維持することで閉じた状態にすることができます。
ロック機能の動作は、GS(ロック)本体の型式(パワートゥリリースタイプ、パワートゥロックタイプ)によって異なります。
Auxiliary release
GS(ロック)のロックを手動で解除する機構です。誤作動時などに手動でロックを解除する際に使用します。
補助リリース機構には2つの状態がある。
- 通常の状態: ロック制御入力によってロックをかけることができる。
- 解除状態: 解除状態:ロック制御入力の状態に関わらず、ロックをかけることができなく、ロック可能な状態でもロック動作は実行されない。
Implementation
Phonex Contact Side
安全入出力のモジュール配線を説明します。
Wiring‐FSDO4/2
こちらはFSDO4/2安全出力の配線図になります。
Wiring‐FSDI8/3
こちらはFSDI8/3安全入力の配線図になります。
Setup F-Address
FSDO4/2とWiring‐FSDI8/3のFSOE アドレスを設定してください。
Beckhoff Side
Download ESI File
Phoenix ContactのHPからAXL F BK EC EtherCAT CouplerのESI FileをDownloadしてください。
https://www.phoenixcontact.com/en-pc/products/bus-coupler-axl-f-bk-ec-2688899
Install ESI File
先ほどDownloadしたESI Fileを下記のDirectoryに格納してください。
C:\TwinCAT\3.1\Config\Io\EtherCAT
Reload Configuration
TwinCATを再起動するか、もしくはTwinCAT>EtherCAT Devices>Reload Device DescriptionsでESI Libraryを再ロードします。
EtherCAT Configuration
次はEtherCAT ネットワークを構築します。
Configure via Scan Network
まずはTwinCATのScan機能を使用し、EtherCATネットワーク内のSlaveを検索します。
EtherCAT>右クリック>Scanします。
Copy All
Copy Allをクリックし検索したデバイスをプロジェクトに複製します。
Done!
OKをクリックし設定を適用します。
Result
Done!
Configure via Manual
実際にScanを使用し、EtherCATネットワークを構築する場合は少ないと思いますので、EtherCAT Masterを右クリック>Add New Itemします。
Phoenix ContactのEtherCAT Couplerを選び、Okで進みましょう。
次は先程追加したPhoenix Contact EtherCAT Couplerを選び>右クリック>Add New Itemします。
次はSlots画面を開きます。
次は実際のハードウェアに合わせて各スロットにSmart Elementを挿入してください。
Done!
Safety Project
今度はSafetyプロジェクトを作成します。
Add Alias Devices
Phoenix Contact EtherCAT CouplerにあるAXL SE FSDO4/2 2AとAXL SE FSDI8/3をEP1957-0022のAlias に追加します。
Add Folder
安全デバイスが多くなると管理が難しくなりますので、Folderを追加します。
Done!
Add Devices
次はAXL SE FSDO4/2 2AとAXL SE FSDI8/3を追加します。Folderを選択>右クリック>Add>New Itemします。
Safety>EtherCAT>Phoenix ContactにAXL SE FSDO4/2 2AとAXL SE FSDI8/3が表示されるようになりますので、1つずつを追加してください。
Result
Done!
AXL SE FSDI8/3 Parameters
AXL SE FSDI8/3安全入力モジュールのパラメータを設定します。
FSoE Address
Linking>FSoE AddressをDIPスイッチに合わせて設定しましょう。
Conn-Id
Connection>Conn-ldを他のFSoEデバイスに被らないように設定しましょう。
Safety Parameters
次はSafety Parameters Tabを開き、各Input pairの設定を行います。
Input pair00
Input00のCH1とCH2は非常停止と配線します。
8000:03をused,2-chnnel equivalent(2)を設定してください。
Input pair01
Input01のCH1とCH2はキーエンスのGS-51P10ロックのOSSD入力と配線します。
8000:08をused,2-chnnel equivalent(2)を設定し、8000:0CのCrocess-circuit Detectionを無効にします。
Input pair02
Input02のCH1はキーエンスのGS-51P10ロックのAUX output1(ドアが開いた信号)と配線し、CH2はPush-Buttonと配線します。
8000:0Dをused,both 1-channel(1)を設定します。
AXL SE FSDO4/2 2A Parameters
AXL SE FSDO4/2 2A安全入力モジュールのパラメータを設定します。
FSoE Address
Linking>FSoE AddressをDIPスイッチに合わせて設定しましょう。
Conn-Id
Connection>Conn-ldを他のFSoEデバイスに被らないように設定しましょう。
Safety Parameters
次はSafety Parameters Tabを開き、各Output pairの設定を行います。
Output pair00
Output00のCH1とCH2はキーエンスのドアロックのLock信号Safety Input1・Safety Input2と配線します。
8000:03をused,2-chnnelに設定してください。
Output pair01
Output01のCH1はキーエンスのドアロックのアンロック入力信号と配線し、CH2はランプ出力と配線します。
8000:08をused,1-chnnelに設定してください。
Safety GVL
次は安全入出力を安全プログラム内に使用できるように、安全変数を定義します。
- FIN_ESTOPCH1
- 安全停止入力1
- 安全入力モジュール1チャンネル1
- FIN_ESTOPCH2
- 安全停止入力2
- 安全入力モジュール1チャンネル2
- FIN_DoorLock_Signal
- ドアが閉めたの信号
- 安全入力モジュール3チャンネル1️
- FIN_DoorLock_InputChannel1
- ドアがロックした信号1
- 安全入力モジュール2チャンネル1️
- FIN_DoorLock_InputChannel2
- ドアがロックした信号2
- 安全入力モジュール3チャンネル2
- FIN_ReleaseLock
- ドアロックをリリースするPushボタン
- 安全入力モジュール2チャンネル2
- FIN_ETSOP2
- 2つ目の安全停止入力
- AXL F BK EC – Bus couplerのWiring‐FSDI8/3安全入力IN0、CH1とCH2
- FOUT_DOORLOCK2
- キーワードロックのSafety Input2、Safety Input1
- AXL F BK EC – Bus couplerのWiring‐AXL SE FSDO4/2 2A安全出力、CH1、CH2
- FOUT_Safety Channel2
- PilzドアロックのSafety Input2
- 安全出力モジュール3
- FOUT_Safety Channel1
- PilzドアロックのSafety Input1
- 安全出力モジュール4
- FOUT_LockUnlock
- キーワードロックのUnlock信号
- AXL F BK EC – Bus couplerのWiring‐AXL SE FSDO4/2 2A安全出力、CH3
- FOUT_OKLAMP
- ランプ出力
- AXL F BK EC – Bus couplerのWiring‐AXL SE FSDO4/2 2A安全出力、CH4
Safety Program
次はTwinSAFE安全プログラムを作成します。
Network1
前も言いましたが、TwinSAFEでは1つの安全変数は一ヶ所しかできませんので、safeDecouple を使用し、安全入力を複数のLocal安全変数に展開します。
Network2
こちらは2つの非常停止がリリースされた状態を確認するプログラムです。
Network3
Network3ではドアロックのリリース・ロック制御プログラムになります。
ドアのロックコマンドを実行するには非常停止がリリースされた状態、またドアが現在クロース位置にあることが条件です。
ドアロックが1sの確認を取れ、その演算結果をsafeRsのSet入力として使用します。
Set入力がONになった場合、RsOutがTrueになり、ドアロックのSafety Inputチャンネルに出力をTrueにします。
リリースボタンが押されたとき、ドアロックのSafety Inputチャンネルに出力をFalseにします。
次はsafetTonを利用し、ドアロック可能な状態を1秒遅延にします。
Network4
ネットワーク4はネットワーク3と同じ制御になります。
Network5
ロック信号をNormal PLCにFeedbackします。
Network6
最後は安全プログラムの内部変数を安全出力に転送します。
また、ロックがOKの状態でLAMPを出力します。
Verify Safety Project
TwinSAFE用のボタンを表示させるため、View>Toolbars>TwinCAT Safetyをクリックします。
次はVerify Safety Projectで安全プロジェクトをコンパイルします。
Done!コンパイル結果にはエラーがないんです。
Download
Download Safety Projectで安全プログラムをEP1957-0022にDownloadしましょう。
Default UsernameはAdministrator、Default PasswordはTwinSAFEです。
EP1957-0022のシリアル番号は実機の横になります。
Complete Project Dataを選択し、Nextで進みます。
Nextで進みます。
Check Boxを入れ、Nextで進みます。
最後にもう一度パスワードを入力しましょう。
Activate Configuration
Activate CofigurationでHardware ConfigurationをTwinCAT RuntimeにDownloadします。
OKで進みます。
TwinCAT RuntimeをRun Modeに切り替えます。
Login
LoginでプログラムをDownloadします。
Yesで進みます。
Start
最後あhStartボタンでTwinCAT Runtimeを起動しましょう。
Result
こちらの動画から動作確認できます。
Beckhoff.Play with EP1957-0022 and Pilz,Keyence Door Lock
Download
こちらで今回の記事のTwinCATプロジェクトをDownloadしてください。
https://github.com/soup01Threes/TwinCAT3/blob/main/TwinSAFE%20EP1957-0022-Part3-2DoorLocks.tnzip