Pilz#PNOZmulti 2_Part2_EtherCAT FSoEでFSoE Masterを立ち上げよう

今回の記事ではPilzの最新PNOZ 通信モジュールEtherCAT FSoEを使ってFSoE Masterを立ち上げ、Weidmullder・BechoffのFSoE SlaveとFSoE・非安全EtherCAT通信を確立させます。

さ、はじめよう!

Thanks!

この記事で使用するRevPI ConnectはPILZ JAPANが貸してくださった機材です。

PILZ

PILZは安全およびオートメーション技術のソリューションでトータルソリューションサプライヤとしてのFA現場を支え、人の安全だけではなく、機械、および環境の安全を保証し、機械や設備をいかに安全に稼働させます。ピルツは全世界に42の現地法人や支社を設置し、包装、自動車産業、ロボットアプリケーション、さらに風力発電、鉄道技術など様々な分野で活躍しています。

Office:

ピルツジャパン株式会社

〒222-0033

横浜市港北区新横浜3-17-5

いちご新横浜ビル 4階

HP

https://www.pilz.com/ja-JP

Reference Link

Beckhoff#WeidmuellerのUR20-FBC-EC-ECOとFSOEモジュールを繋がってみよう
Codesys#Beckhoff のEL6910でFSoE,TwinSAFEを使ってみよう
OMRON#SL5700 x ECC203でEtherCAT/FSoEネットワークを構築してみよう
Pilz#PNOZmulti 2_Part1_小型Safety Controller使ってみよう
Beckhoff#TwinSAFE EL6910 Safety Program Tutorial_Part1
Beckhoff#TwinSAFE EL6910 Safety Program Tutorial_Part2

Reference Video

Pilz.PNOZ m EF EtherCAT FSoE 簡単紹介 Pilz.PNOZ m EF EtherCAT FSoEでFSOE Masterを立ち上げよう(TwinCAT3と組み合わせ)

FSoE?

EtherCAT NetworkはEtherCATマスタと1つまたは複数のスレーブで構成され、EtherCAT Telegramには標準データを含み、安全データ (FSoE データ) も転送できます。

そして今回記事で使用するPNOZ m EF EtherCAT FSoEはFSoEマスタおよびFSoEスレーブとして使用できます。それはPNOZ m EF EtherCAT FSoEがFSoE経由で安全関連以外のデータと非安全関連データをEtherCAT経由で送受信することができるからです。

FSoEログは国際規格IEC 61784-3で標準化されており、FSoEモジュール間で安全なプロセスデータを転送する安全な通信システムです。

EtherCATネットワーク経由でFSoE通信を行うには、EtherCATマスターでEtherCATネットワークが機能していることが前提条件となり、標準EtherCATテレグラム内でFSoEデータは安全なデータコンテナ (FSoE Frame) で伝送されます。

FSoE マスターはRequest telegramで通信を開始します。FSoE マスターは FSoE スレーブから FSoE データを受信し、安全関連の評価を行います。それらの安全データはPNOZmultiモジュールプログラムで使用できます。

注意するのはPNOZ m EF EtherCAT FSoEのFSoEサイクルタイムは最大10msです。

FSoE ConnectionはWatchdogを使って監視され、通信中断を検出します。

PNOZ m EF EtherCAT FSoE?

EtherCATネットワークにはEtherCATマスタが必要であり、EtherCATマスタはEtherCATスレーブと通信します。Fail-Safe DataをFSoE経由で交換する場合、FSoEマスタ(モジュールPNOZ m EF EtherCAT FSoEなど)と少なくとも1台のFSoEスレーブが必要です。

ここで注意するのは、EtherCAT ネットワークではFSoEマスターはEtherCATスレーブの1つでもあります。今回の記事で使用するPNOZ m EF EtherCAT FSoEは、FSoEマスタまたはFSoEスレーブとして構成できます。

EtherCATスレーブ からの全データはEtherCATマスタ経由で転送されます。FSoEスレーブへの接続は、PNOZmulti Configuratorで作成し、FSoEスレーブの対応するデータがFSoEマスターで利用できるように、対応するデータをEtherCATマスターにコピーまたはマッピングする必要があります。

また、PNOZmultiはマスターまたはスレーブとして、あるいはマスターとスレーブを同時に動作させることができます。

注意するのは接続が切れると、システムは自動的に再起動する。再起動インターロックはありません。そしてEtherCATへの接続は2つのRJ45ソケットを介して確立されます。LEDはEtherCAT FSoE上の拡張モジュールの状態を示します。

Layout

ベースユニットと拡張モジュールPNOZ m EF EtherCAT FSoEはジャンパを介して接続されます。電源電圧が投入されるか、PNOZmulti制御システムがリセットされますので、拡張モジュールPNOZ m EF EtherCAT FSoEは自動的に構成され、起動します。

Unit features

この製品には次のような特徴があります。

  • PNOZmulti Configuratorで設定可能
  • FSoEマスターとして動作:最大 60コネクション
  • FSoEスレーブとして動作:最大 4接続
  • 最大 1接続あたり16バイトの入力データと16バイトの出力データ
  • 512 Bit Failsafe入力プロセスデータと512ビットのFailsafe出力プロセスデータをFSoEマスターごとに転送可能
  • PNOZmulti Configuratorでは、PNOZmultiの128の仮想入出力をEtherCATとの通信用に定義でき可能
  • Network protocols: EtherCAT, FSoE
  • EtherCATやFSoEとの通信やエラーのStatu LED
  • 最大 1 PNOZ m EF EtherCAT FSoEをベースユニットに接続可能

Network planning

ネットワークが設定され、インストールされる前に、FSoE Networkを構築しましょう。

  • ネットワークで使用するEtherCAT Masterを選定する
  • ネットワークで使用するFSoE Masterを選定する
  • ネットワークで使用するFSoE Slavesを選定する
  • FSoEネットワークの構造を構築する
  • EtherCATサイクルタイム (ネットワーク内で最も遅いモジュールに対応)
  • FSoE安全パラメータの定義
    • FSoE address
      • 各 FSoE 機器にある一意の FSoE アドレスを割り当て
    •  Connection ID
      • 各FSoE 機器にはある一意のConnection IDを割り当て
    • Watchdog timeout [ms]
      • 接続のデータ転送はWatchingdog Timerを使って監視される。各FSOE機器は、通信パートナーがWatchingdog Timeout内に新しい FSoE フレームを送信することを監視します。Watchingdog Timeout地各Connectionにも適切な値を割り当てる必要があります。

EtherCAT and FSoE application example

では実際にFSoEアプリケーションの計画と設定方法について説明します。

この例では、4つのFSoE機器を持つ工場が計画されています。

EtherCAT Master?

Beckhoff TwinCAT 3 Runtimeを使用します。

FSoE Master?

PNOZmulti 2 FSoE Masterを使用します。

FSoE Slave?

この例で使用するFSoE Slaveは3つあります。下図の赤枠に示しています。

  • PNOZmulti 2 – FSoE Slave
  • 入力モジュール Beckhoff EL1904 – FSoE Slave
  • 出力モジュール Beckhoff EL2904 – FSoE Slave

Network Parameters?

次はFSoEネットワークのパラメータを設定しましょう。

FSoE Address

各SlaveのFSoEアドレスを被らないように設定します。

Connection ID

Connection IDも同じく被らないように設定してください。

Watch Dog Timer

Watch DogのTimeout時間はアプリケーションに合わせて設定しましょう。

Result

下図のようにFSoE Masterは異なるエリアにあるFSoE Slaveをアクセスすることが可能です。

Reaction times

最大EtherCAT FSoE反応時間は通信を含む関係する部品の遅延時間で左右されます。

以下の時間は計算的に考える必要があります。

  • EtherCAT サイクルタイム
  • PNOZ m EF EtherCAT FSoEの遅延時間 
  • FSoE Slaveの遅延時間 
  • FSoE Master watchdog 時間

注意するのは、FSoEの反応時間はEtherCATサイクルタイムの変化に影響されます。

Implemetation

Pilz Side

FSoE Configuration

PNOZmulti ConfiguratorからEtherCAT/FSoEのTabを開きます。

Import ESI File

右にあるEtherCAT/FSoE Slave Libraryから”Import ESI Files”をクリックしESI Fileを追加します。

BeckhoffとweidmüllerのESI FileをImportしましょう。

Done!

Configure ESI Connection

LibraryからFSOE ネットワークにあるSlaveをSlotに追加します。

Done!Slot1にweidmüllerのUR20-4DI-4DO-PN-FSOE-V2 Slaveが追加されました。

FSoE Address

FSoE AddressはweidmüllerのUR20-4DI-4DO-PN-FSOE-V2にあるDIP スイッチに合わせて設定しましょう。

Watchdog Time

Watchdog Timeはアプリケーションに合わせて設定してください。

Connection ID

Connection IDはネットワーク内に一意するIDを設定しましょう。

Safety Parameters

FSoE Slaveによって設定できるパラメータが変わります。

今回は1対2の非常停止入力を使用し、AUX0とAUX1でTest Inputを使用します。

Result

こちらは今回のFSoE Configurationになります。

  • Slot1‐weidmüller UR20-4DI-4DO-PN-FSOE-V2
    • FSOE Address=2
    • Connection ID=2
  • Slot2-EL1904
    • FSOE Address=10
    • Connection ID=10
  • Slot3-EL1904
    • FSOE Address=11
    • Connection ID=11
  • Slo4-EL2904
    • ​​FSOE Address=15
    • Connection ID=15

User Program

次は安全プログラムを構築するため、User Program Tabを開きます。

こちらはPNOZ 2のプログラム構築画面で、EtherCAT FSOEのプログラムシートを開きましょう。

Insert ESTOP Block

右にあるFunction ElementsからESTOP Blockを追加します。

E-STOP Blockの設定画面が表示されます。

Switch Type

Swtich TypeにDrop-Listがあり、アプリケーションと配線に合わせて設定します。

今回の記事では1:2で設定します。

Connections

ConnectionsはE-STOPのBlockで使用する入力信号を設定します。先程Switch TypeはType3に設定しましたので、Input1/Input2が表示され2つの入力信号にも設定可能です。

実際のアプリケーションに合わせて設定しましょう。今回の記事では、UR20-4DI-4DO-PN-FSOE-V2の入力1と入力2を使用します。

Input1 Equipment ID

Equipment IDには該当する入力と接続するモジュールを設定できます。

今回はUR20-4DI-4DO-PN-FSOE-V2に設定します。

Input1 I/O

I/Oは該当するモジュールの入力Pointを設定できます。

今回はDI1_Iに設定します。

Result

Done!E−STOP Function Elementが追加されました。

Insert Semiconductor Output

次は半導体出力をシートに追加しましょう。

半導体出力 Function Elementの設定画面が表示されます。

Number of outputs

Number of outputsを”Single output”に設定し、出力の点数を1に変更します。

Done!

Connections

次は該当するBlockの出力設定を行います。

Output1 :Equipment ID

Equipment IDには該当する出力と接続するモジュールを設定できます。

今回はUR20-4DI-4DO-PN-FSOE-V2に設定します。

Output2  :I/O

I/Oは該当するモジュールの入力Pointを設定できます。

今回はDO1_Oに設定します。

Result

Done!

最後はESTOP Function Elementの出力をSemiconudctor Outputの入力と繋がりましょう。

Done!これでESTOPの状態によって出力のOn/OFFを制御することができます。

Delay ON Program

今度は入力にTimerを入れ、2sを遅延させてから出力するような簡単なプログラムを作ります。

Activate Input

Function Sheetに使われていないの入力点をダブルクリックします。

Function Sheetに使用するPointの設定画面が表示されます。

Centrailsed I/O Configration

こちらはFunction Sheetの変数使用するか、他のモジュールのデータを使うかを設定できます。

今回はBeckhoffのFSoE Address=10のEL1904を使用します。

Done!

I/O

I/Oは該当するモジュールの入力Pointを設定できます。

今回はEL1904のChannel1に設定します。

Add AND Gate Block

次はLogic ElementsにAND Gateを追加します。

こちらはAND Gateの設定画面になります。

Done!ANG Gateが追加されました。

Connect Inputs->AND Block

先程追加した2つの入力をAND GATEの入力と繋がりましょう。

Done!

Add Time Element

Timer ElementをFunction Sheetに追加します。

Time Elementsの設定画面が表示されます。

Delay Time

Delay Timeに遅延ON・遅延OFFを設定できます。

今回の記事ではSwitch-on delay(遅延ON)に設定します。

Period

Periodは該当するTime Elementsの遅延時間や単位を設定できます。

今回の記事では2000ms(2秒)を設定します。

隣のDrop-Listで遅延する単位を変更できます。

Done!Time Elementが追加されました。

Connect AND Blocks to Timer Input

今度はANG Gateの出力とTime Elementの入力と繋がります。

これでOkです。

Connect to Safety Output

最後はEL2904のChannel1出力と繋がりましょう。

Equipment IDをEL2904を設定します。

I/OをChannel1_Oに設定すればOkです。

Add EtherCAT Inputs

非安全のEtherCAT通信を追加します。EtherCAT Fieldbus経由の入力データをESTOPのリセットとして処理します。

では、まずE-STOP Function Elementをダブルクリックします。

Start Tabを開き、Start TypeをManual Startに設定します。

これでOkです。

Equipment IDにはE-STOP Function Elementのリセット信号と接続するモジュールを設定できます。今回はa2(EtherCAT FSOE モジュール名)に設定します。

I/Oは該当するモジュールの入力Pointを設定できます。

今回はI2に設定し、非安全EtherCAT通信の0Byte目・2Bit目を使用します。

Done!

Add EtherCAT Outputs

最後は非安全EtherCATの出力データを設定します。

Function Sheetに使用してない出力点を右クリック>Activateクリックします。

またI/Oの設定画面が表示されます。

Equipment IDには出力信号と接続するモジュールを設定できます。今回はa2(EtherCAT FSOE モジュール名)に設定します。

I/Oは該当するモジュールの出力Pointを設定できます。

今回はo3に設定し、非安全EtherCAT通信の0Byte目・3Bit目を使用します。

最後はTime Elementの出力をEtherCATの出力点と繋がりましょう。

Done!

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で進みます。

TwinCAT3 Side

Install ESI File

weidmuellerとPilzHPからDownloadしたESI Fileを下記のDirectoryに格納してください。

C:\TwinCAT\3.1\Config\Io\EtherCAT

Add EtherCAT Master

EthernetCAT Masterを追加するため、I/O>Devices>右クリック>Add New Itemします。

EtherCAT>EtherCAT Masterを選び、Okで進みます。

EtherCAT Masterとして使用するEthernet Interfaceを選び、OKで進みます。

Done!

Auto Scan

Auto Scan機能を使用し、ネットワーク内にあるEtherCAT Slaveを検索します。

PNOZ m EF EtherCAT FSoEモジュールが検索され、EtherCATネットワークに追加されました。

PNOZ m EF EtherCAT FSoEの中に先ほど設定した4つのSlotにも自動的に追加されました。

ManualでSlotを追加したい場合、SlotsのTabを開きアプリケーションに合わせて設定しましょう。

Program

PLC プログラムを追加します。

DUT_FSoE 

FSoE 1Byte 入力のメッセージ用の構造体を定義します。

TYPE DUT_FSoE :
STRUCT
MasterCMD :USINT;
SafetyOut0 :BYTE;
MasterCRC0 :UINT;
MasterConnID:UINT;

END_STRUCT
END_TYPE

GVL_Pilz

こちらはPilzモジュールにMappingする変数になります。

{attribute ‘qualified_only’}
VAR_GLOBAL
Slot1_i AT %I*:DUT_FSoE;
Slot1_q AT %Q*:DUT_FSoE;
Slot2_i AT %I*:DUT_FSoE;
Slot2_q AT %Q*:DUT_FSoE;
Slot3_i AT %I*:DUT_FSoE;
Slot3_q AT %Q*:DUT_FSoE;
Slot4_i AT %I*:DUT_FSoE;
Slot4_q AT %Q*:DUT_FSoE;
VirtualOutputs AT %I*:ARRAY[0..15]OF USINT;
VirtualInputs  AT %Q*:ARRAY[0..15]OF USINT;
END_VAR

GVL_SafetyIO

こちらは各FSoE SlaveにMappingする変数になります。

{attribute ‘qualified_only’}
VAR_GLOBAL
Slot1_i AT %I*:DUT_FSoE;
Slot1_q AT %Q*:DUT_FSoE;
Slot2_i AT %I*:DUT_FSoE;
Slot2_q AT %Q*:DUT_FSoE;
Slot3_i AT %I*:DUT_FSoE;
Slot3_q AT %Q*:DUT_FSoE;
Slot4_i AT %I*:DUT_FSoE;
Slot4_q AT %Q*:DUT_FSoE;
END_VAR

MAIN

FSoEスレーブからのPDOは、FSoEマスターからのPDOにLoopbackする必要があり、各 FSoE Connectionsには TxPDO と RxPDO があります。また、PDOは双方向に接続することで、FSoEマスターからFSoEスレーブにデータを送信します。

なので、下記のプログラムではPilzのRxPDOを各Safety IOの TxPDOにLoop Backすることになり、Safety IOのRxPDOも同じ操作になります。

ESTOPStatus:BOOL;
bReset:BOOL;
TON:TON;

GVL_SafetyIO.Slot1_q:=GVL_Pilz.Slot1_i;
GVL_Pilz.Slot1_q:=GVL_SafetyIO.Slot1_i;

GVL_SafetyIO.Slot2_q:=GVL_Pilz.Slot2_i;
GVL_Pilz.Slot2_q:=GVL_SafetyIO.Slot2_i;

GVL_SafetyIO.Slot3_q:=GVL_Pilz.Slot3_i;
GVL_Pilz.Slot3_q:=GVL_SafetyIO.Slot3_i;

GVL_SafetyIO.Slot4_q:=GVL_Pilz.Slot4_i;
GVL_Pilz.Slot4_q:=GVL_SafetyIO.Slot4_i;

ESTOPStatus:=GVL_Pilz.VirtualOutputs[0].3;

TON(IN:=bReset,PT:=T#1S);
GVL_Pilz.VirtualInputs[0].2:=bReset;
IF TON.Q THEN
bReset:=FALSE;
END_IF

Build

Build>Build Solutionでプロジェクトをコンパイルします。

Link Inputs/Outputs

最後は各Moduleと変数をMappingしましょう。

基本は構造体とデータサイズが同じのであれば、そのままMappingできます。

Pilzモジュール側のModule1、RxPDOにも同じようにMappingします。

残りのモジュールもプログラム変数と紐つけましょう。

  • Module 2(EL1904,FSOE Address=10)
  • Module 3(EL1904,FSOE Address=11)
  • Module 4(EL2904,FSOE Address=15)

UR20-4DI-4DO-PN-FSOE-2側のFSOE MessgeにもMappingしましょう。

Activate Configuration

最後はActivate ConfigurationをクリックしHardware ConfigurationなどをDownloadします。

OKで進みます。

Run Modeにシフトします。

Result

Done!PilzのFSoE MasterはすべてのFSoE Slaveと接続できます。

安全プログラムも正常に稼働しています。

こちらの動画から実際の稼働状態を確認できます。

Pilz.PNOZ m EF EtherCAT FSoE Master Operation with TwinCAT

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする