Beckhoff#PilzのPSEN rd1.xとFSoE通信しよう

今回の記事ではBeckhoff TwinCAT 4026とEL6910を使用し、EtherCATとFSoEネットワークを立ち上げ、PilzのPSEN rd1.xと安全通信を行います。また記事の中でRadarの検知エリアなどについても説明します。

さ、FAを楽しもう。

Reference Link

Codesys#PNOZmultiとPSEN rd1.xでEtherCAT/FSoEネットワークを構築しよう

Detection Area of PSEN rd1.x SD I

PSEN rd1.x SD Iの各センサーの視野は、最大4つの検出フィールドで構成でき、 4つの検出フィールドにはそれぞれ専用の検出信号があります。

Angular coverage

Angular coverageには以下の値があります。

  • 視野の最初の5メートル(16.4フィート)で10°から100°の範囲で
  • 視野の5~9m(16.4~29.5フィート)において、10°~40°の範囲。

検出フィールドの角度範囲は、以下の検出フィールドの角度範囲よりも広いかまたは同じである必要があります。

Detection distance

最初の検出フィールドの検出距離はセンサーからです。 あるフィールドの検出距離は、前のフィールドの検出距離が終了したところから始まります。

1つ以上のフィールドの検出距離を0にすることができます(例えば、下図の例では検出フィールド3を0にセットしました)。 0以外の検出距離を持つ最初の検出フィールド(例えば、検出フィールド1)は、最小検出距離が200mmになります。

Safety working modes

PSEN rd1 Configuratorにより、各センサが各検出フィールドで採用する安全動作モードを選択できます:

  • restart prevention function(デフォルト):
    • センサーは通常動作時(アラームなし状態)にアクセス検出機能を実行します。
    • センサーがアラーム状態(Alarm status)の場合、再起動防止機能(restart prevention function )を実行します。
  • Always-on access detection:
    • センサーは常にアクセス検出機能(アラーム状態なし+アラーム状態)を実行します。

Detection fields dependency and detection signal generation

センサが検出フィールド内の動きを検出すると、その検出信号のステータスが変化し、設定されている場合は、関連する安全出力が非アクティブになります。 以下の検出フィールドに関連する出力の動作は、検出フィールドの従属性(dependency )セッ トによって異なります:

IF Dependent mode is set…

Dependent modeが設定され、検出フィールドが互いに依存している場合、センサーが検出フィールド内で動きを検出すると、その次の検出フィールドに関連するすべての出力も非アクティブになります。 こちらは検出の例になります。

  • 設定されている検出フィールド:1、2、3
  • ターゲットが検出された検出フィールド:2
  • アラーム状態の検出フィールド: 2, 3

IF Independent mode is set…

Independent modeが設定されているため、センサーが検出フィールド内で動きを検出した場合、検出フィールドは互いに独立しており、その検出フィールドに関連する出力のみが非アクティブになります。 こちらは検出の例になります。

  • 設定されている検出フィールド:1、2、3
  • ターゲットが検出された検出フィールド:2
  • アラーム状態の検出フィールド: 2

注意するのは、検出フィールドが独立している場合は、リスクアセスメントの際に監視エリアの安全性を評価する必要があります。 ターゲットによって生じる不感領域は、センサーが以下の検出フィールドのターゲットを検出することを妨げる可能性があります。

Example

この例では、ターゲット[A]と[B]に対して、検出フィールド1と2はそれぞれ検出信号を生成します。

この例では、検出フィールド1はターゲット[A]の検出信号を生成するが、ターゲット[B]は検出できなくなります。

use case

Independent modeの使用例としては、検出フィールド内で物体の一時的な動きが予定されている場合など、検出フィールドを独立したものとして設定すると便利です。 下図のように、ロボットアームが、動作サイクルの特定の段階においてのみ、検出フィールド1内を右から左へ移動するような場合です。

その設定により、検出フィールド1での検出信号を無視することができ、不必要なダウンタイムを避けることができます。

注意するのは、検出フィールド1の検出信号を無視すると決定する前に、リスクアセスメントで監視エリアの安全性を評価してください。

また、移動するロボットアームによって発生する死角領域は、センサーが他の検出フィールドでターゲットを検出するのを時間間隔をおいて妨げることになります。 この時間は、検出フィールド2の検出距離を定義する際に考慮する必要があります。

SafeCounter

SafeCounterは、アップ/ダウン・カウンタを実現するために使用されます。 入力Reset、CountUp、CountDownのデータ型はBOOLであり、 出力Error、CounterOut、CounterZeroもデータ型はBOOLです。 

そして出力 ActValue は現在の内部カウンタ値を示し、データ型は INT16、UINT16、INT32 または UINT32 です。

カウンタのパラメータ設定には、パラメータ Preset Value と Counter Limit を使用します。 入力Resetに論理1信号が入力されると、内部カウンタ値がPreset Valueでパラメータ化された値に設定されます。 入力CountUpの立ち上がりエッジは、内部カウンタ値を1インクリメントします。 

CounterLimitで指定されたカウンタ値に達すると、出力CounterOutが設定される。 カウンタ値が0に達すると、出力CounterZeroが設定される。

TwinSAFEグループが開始され(Run=1)、リセット入力がTRUEである場合、出力ActValueはPresetValueに設定されます。 グループが停止すると、ActValue は 0 に設定されます。

FB Counter inputs

VariablePermittedtype Data TypeDescription
Reset TwinSAFE-InFB-OutStandard-InTwinSAFE SCBOOL カウンタをプリセット値にリセットするためのリセット入力
CountUp TwinSAFE-InFB-OutStandard-InTwinSAFE SCBOOL 内部カウンタをインクリメントするためのCountUp入力です。
CountDown TwinSAFE-InFB-OutStandard-InTwinSAFE SCBOOL 内部カウンタ値を1デクリメントするためのCountDown入力

FB Counter outputs

VariablePermittedtype Data TypeDescription
Error TwinSAFE-OutFB-InStandard-OutBOOL エラー出力
CounterOut TwinSAFE-OutFB-InStandard-OutBOOL カウンターの上限に達すると出力がセットされる
CounterZero TwinSAFE-OutFB-InStandard-OutBOOL 内部カウンタ値が0の時に出力がセットされる
ActValue TwinSAFE-OutFB-InStandard-OutINT16UINT16INT32UINT32現在の内部カウンタ値

Implementation

Pilz PSEN rd1.x Side

PSEN rd1.xシステムを設定します。

Download Tools

PilzのHPからPSEN rd1.x Configurator ToolsをDownloadしてください。そのツールには以下の機能があります。

  • システムを構成する
  • 設定レポートの作成
  • システム機能のチェック
  • システムログのダウンロード

コンフィギュレーターを使用するには、PSEN rd1.xをデータUSBケーブル、またはイーサネットポートがある場合はイーサネットケーブルでコンピューターに接続する必要があります。

https://www.pilz.com/en-JP/eshop/Sensor-technology/Safe-radar-systems/PSENradar-Safe-radar-system/PSENradar/PSEN-rd1-x-SD-I-O-FSoE-analysing-unit/p/6B000007

Factory Reset

下記のボタンを長押し、PSEN rd1.xを出荷設定に戻します。

Start

Pilz HPからDownloadしたツールではインストールバージョンもしくはPortableバージョンがあり、運用によって使ってください。

Connect via USB/Ethernet

下図に示したUSB PortもしくはEthernetをPCと接続してください。

Start Tool

Ethernet connectionを選択し、PSEN rd1.xのIPをアドレスを入力し、CONTINUEで進みます。(Default IPアドレスは192.168.0.20)

Setup Password

出荷設定に戻ったPSEN rd1.xにPasswordを設定してください。

Hardware Configuration

Hardwareに使用するHardwareを設定し、PROCEEDで進みます。

Country

PSEN rd1.xを実際使用する国を選び、PROCEEDで進みます。

Stationary

PSEN rd1.xのアプリケーションを設定し、END CONFIGURATIONで設定を適用しましょう。

少々お待ち下さい…

Result

Done!

Node ID Assignment

Settings>Node ID AssignmentでRader センサーのCAN IDを設定やリセットしてください。

Factory Reset

また、Administrator>FACTORY RESETでデバイスを出荷設定に戻すことが可能です。

Network parameters

Network ParametersでデバイスのIPアドレスを変更できます。

MODBUS Parameters

MODBUS ParametersでデバイスのModbus TCP Serverを有効化できます。

Fieldbus Parameters

Fieldbus ParametersでPSEN rd1のFSoEアドレスを設定します。

Configuration

今度はConfiguration Tabを開き、PilzのPSEN rd1.xの検知設定を行います。

Radarをクリックし、DF #で設定したいDetection Areaを選択できます。

Detection Fields

こちらは該当するD.F#の検知距離を設定します。

Angular coverage

こちらは各Detection Areaの検知角度を設定します。

Restart timeout

こちらは正常に復旧するまでに必要な遅延時間です。

DF1/DF2/DF3/DF4

他のDetection Areaも設定しましょう。

TwinCAT Side

次はTwinCAT側を設定します。

Download ESI File

下記のLinkからSchmersalのSFB-EC-8M12‐IOPのESI FileをDownloadしてください。

https://www.pilz.com/en-JP/eshop/Sensor-technology/Safe-radar-systems/PSENradar-Safe-radar-system/PSENradar/PSEN-rd1-x-SD-I-O-FSoE-analysing-unit/p/6B000007

Install ESI File

先ほどDownloadしたESI Fileを下記のDirectoryに格納してください。

(自分が使用してるのはTwinCAT3 4026です)

C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\Config\Io\EtherCAT

Add EtherCAT Master

Devices>右クリック>Add New Itemをクリックします。

EtherCAT>EtherCAT Masterを選びます。

EtherCAT Masterとして使用するEthernet Interfaceを設定します。

Scan network

先ほど追加したEtherCAT Masterを右クリック>ScanしEtherCAT Slaveを検知します。

Done!

Pilz社のPSEN rd1.xも検知できました。

Add PLC

次はPLCプロジェクトを追加するため、PLC>Add New Itemします。

Standard PLC Projectを選び>Addで進みます。

Done!PLCプロジェクトを追加されました。

Add GVL

今度はEL6910と交換する変数を定義するために、Global Variables Listを追加します。

こちらは今回記事で定義した変数になります。

{attribute ‘qualified_only’}
VAR_GLOBAL
Run AT %Q*:BOOL;
Ack AT %Q*:BOOL;

CounterError
,CounterOut
,CounterZero AT %I*:BOOL;

CounterValue AT %I*:INT;

END_VAR

Build Solution

次はBuild>Build Solutionでプロジェクトをコンパイルしましょう。

Active Configuration

TwinCAT プロジェクトをPLCにDonwloadします。

OKで進みます。

TwinCAT3をRun Modeに切り替えましょう。

Login

LoginでプログラムをDownloadします。

Yesで進みます。

最後はPlayボタンをクリックしPLCプログラムをスタートします。

Add Safety Project

今度はSafety プロジェクトを追加するためにSAFETY>Add New Itemします。

TwinCAT3のSafety プロジェクトTemplateを選び、Addで進みます。

Hardware Safety PLCを選び>Okで進みます。

Done!TwinSAFEプロジェクトを追加されました。

Configure Target System

Target Systemをクリックし、記事で使用するEL6910をTargetシステムとして設定しましょう。

Target Systemの項目から使用するFSoE Masterを設定します。

Drop-ListからEL6910を設定します。

Physical Deviceの隣にあるボタンをクリックし実際EtherCAT ネットワーク内に使用するEL6910を指定します。

Done!

Configure Alias Devices

今度はAlias DevicesのFolderを右クリック>Add >New Itemします。

今回記事で使用するPilz社のPSEN rd1.x 2 Bytesを追加します。

Done!

FSoE Address

Pilz社のPSEN rd1.xのFSoE アドレスを設定に合わせて設定します。

Physical Device

またPhysical Deviceの隣にあるボタンをクリックし、実際使用するPSEN rd1.x Safety Radarを設定します。

Done!

Watchdog

FSoE ネットワークの監視Watchdogをアプリケーションに合わせて設定しましょう。

Error Ack

次はErroAcknowledgementの変数をPLCプロジェクトの変数と繋がります。

Linkedin の隣にあるボタンをクリックします。

先ほどPLCプロジェクトに定義した変数を選択しましょう。

Add new Digital Output/Input

他の変数を追加したい場合は、先と同じ操作でAlias Devices>Add >New Itemします。

Standardを選び、PLCプロジェクトの変数のデータタイプに合わせて設定しましょう。

Result

Done!それらの変数をPLCプロジェクトに定義されたものとつながることも忘れずに。

GVL

安全変数を定義し、Pilz社のPSEN rd1.x FSoEデータと紐つけます。

Safety Program

最後は安全プログラムを作成します。

Network1

Network1ではすべての安全変数をSafetDecoupleFBを使用し内部の安全変数に転送します。

Network3

Network3ではPilz社のPSEN rd1.xのすべての検知エリアもOKの状態のみに、sDetectionFieldOKを出力します。

Network2

sDetectionFieldOKをONするたびにSafetCounterのCount値を+します。

Network4

SafeCounterの状態をPLCプロジェクトの変数に転送します。

Check Safety Program

安全プログラム作成が終わったので、赤枠のボタンで安全プロジェクトをコンパイルします。

Download Safety Program

コンパイル完了した安全プログラムをEL6910にDownloadします。

Login情報を入力し、Nextで進みます。

Complete Project Dataを選択し、Nextで進みましょう。

Download結果を確認し、Nextで進みます。

プロジェクトの状態を確認し、Nextで進めます。

もう一度Passwordを入力し、EL6910を再起動しましょう。

Result

こちらは今回のテスト環境です。

最初にDependenty Modeを無効化します。

次は物体1だけを置きます。

MonitorツールはDF3にものがあると検知しました。

次はDF2にもものを置きます。

MonitorツールはDF2にものがあると検知しました。

今度はDependency Modeを有効にします。

2つの物体をDFエリアに置きます。

DF2,DF3,DF4にもアラーム出力されます。

TwinSAFE側をみると、SafeCounterもちゃんと動いています。

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

シェアする

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

フォローする