ctrlX#EtherCAT Master AppでBELDEN IOLINK Masterと繋げよう

こちらの記事ではBosch RexrochのctrlX X3を使用しBELDENのIO Link Master 0980 XSL 3912-121-007D-00F – LioN-X 8xIO-Linkと接続するガイドラインになります。

さ、始めよう!

EtherCAT Master App?

EtherCAT Master AppはリアルタイムEthernetシステムEtherCATのマスターインターフェースをアクティブにし、ctrlX COREをctrlX DRIVEやEtherCATエコシステム内の幅広いデバイスと接続します。EtherCATマスタのデータは、real-time data layerを介してctrlX CORE上のすべてのアプリで利用可能です。

EtherCAT Bus Systemの設定はctrlX IO Engineeringソフトウエアで行います。EtherCAT Master Appには “Automation Core “アプリが必要です。

EtherCAT Masterは以下の機能を対応してます:

  • SoEを介したctrlX DRIVEへの通信
  • CoEを介したIOおよび他のオートメーション機器との通信
  • distributed clockによる同期通信
  • EoE経由でのEtherCAT Slaveのエンジニアリング

Slave

EtherCATネットワークはマスタと最大65535のスレーブで構成できます。

トポロジーは、 junction terminalsを使用するなどして、任意に実装することも可能で、実際に配線するとき、EtherCAT Slaveには定義された入力ポートが1つしかないことに注意してください。これは通常ポート0であり”IN”と表示される。

また、ほとんどのEtherCAT Slaveは1つの”INポート “と “OUTポート”があります。

他にはE-BUSをバックプレーン・バスとして使用するバス・カプラの場合、イーサネット・テレグラムはこのバックプレーン・バス(E-BUS)を介してルーティングされるEtherCAT Slaveになります。この場合、各モジュール(端子)はINポートとOUTポートを持つスレーブで、E-BUSバスカプラーや junction terminalsは、3つまたは4つのポート(=複数の出力ポート)を備えています。

SlaveA – modular bus coupler

これは “Modular Device Profile “に従ったmodular bus coupler で、すべての 拡張モジュールは、バスカプラでデバイス固有のバックプレーンバスに接続されます。そういうタイプのmodular bus coupler はネットワークのスレーブデバイスであり、モジュールのすべてのI/Oデータを格納します。

SlaveB – modular System with E-BUS

これはE-BUS(ベッコフEK1100など)を使用したモジュラーシステムで、 各モジュール

モジュール、バスカプラ、ジャンクションターミナル、拡張ターミナルはそれぞれEtherCATネットワーク上のスレーブデバイスを表します。

SlaveC Drive

こちらはドライブのEtherCAT Slaveになります。

Telegram

EtherCATテレグラムはマスターから送信され、全てのスレーブデバイスを経由します。EtherCATスレーブコントローラ (ESC) では、入出力データは順方向でのみ処理され、最後のスレーブ・デバイスがテレグラムをマスターに送り返すだけで、処理はしません。

下図はスレーブデバイスを通過するEtherCATテレグラムの論理シーケンスにおける(1)から(16)までの番号を示しています。

Structure

EtherCATはEtherType 0x88A4の標準イーサネットフレーム (IEEE 802.3) を使用します。注意するのは、他のタイプのイーサネットテレグラムはEtherCAT Slave Controllerでは基本的にはサポートされず、EtherCATでトンネリングする必要があります (例えば、EoE)。

Working Counter

イーサネット・フレームのChecksum(FCS : Frame Check Sequence)は、Busへの正しいデータ転送を保証しますが、スレーブ機器の正しいコマンド実行をチェックするため、各データグラムにはWorkingCounter(WKC)があります。WKCはマスターから値0で送られる。アドレス指定された各スレーブは、コマンドを基準にWKCをインクリメントする。

フレームがすべてのスレーブを通過し、再びマスターに到達した後、マスターはWKCの期待値(コマンド値)と実際の値を比較することで、正しいコマンド処理を確認することが可能です。

Cable redundancy In ctrlX CORE

EtherCATでは冗長性はリング・トポロジーでしかなく、理論上で最後のスレーブデバイスは、2番目のイーサネットポートでマスターに接続する配線です。でも、Rexroth EtherCATマスタはケーブルの冗長性をサポートしていません。

IO-Link basics

IO-Link は世界的に標準化された技術で、複雑でインテリジェントなセンサから中央制御ユニットまでのデバイス間の通信を可能にします。IO-Link 規格は、IEC 61131-9 規格に従って規定されています。

IO-Link システムは IO-Link マスタと IO-Link デバイス(センサ、アクチュエータ、バルブ、I/O モジュールなど)で構成されます。

IO-Link Masterは、上位コントローラとのインターフェースを提供し、接続された IO-Link デバイスとの通信を制御します。そしてMasterとDevice間の接続は、標準的な非シールド接続ケーブルで実現できます。

IO-Link Masterは複数の IO-Link ポートを持つことができ、IO-Link デバイスはそれぞれのポートに接続できます。また、この接続はPoint-to-Point通信と呼ばれます。

0980 XSL 3912-121-007D-00F – LioN-X 8xIO-Link?

LioN-XとLioN-Xlightは、センサやアクチュエータからの標準入力、標準出力、またはIO-Link信号を産業用Ethernetプロトコル(PROFINET、EtherNet/IP、EtherCAT®、Modbus TCP、CC-Link IE Field Basic)やクラウドプロトコル(REST API、OPC UA、MQTT)に変換できる総合的デバイスになります。

LioN-XとLioN-Xlighは堅牢な8ポートの筐体設計により、耐溶接性、高温度範囲、保護等級IP67、IP69Kなど、過酷な環境下での使用が可能です。

I/O port overview

LioN-X は IO-Link 仕様 v1.1.3 に対応し、下図は今回使用する0980 XSL 3×12…のMappingになります。

Port Assign

X01/X02はEthernet ports、M12 socketの 4-pin、D-codedになります。

X03/X04はPower supply、M12 Powerの L-codedになります。

X01‐X08はIO-Link Port、M12 Powerの A-codedになります。

Rotary encoding switches

0980 XSL 3912-121-007D-00Fは以下のIndustrialプロトコルに対応し、LioN-Xマルチプロトコルバリアントは、産業用イーサネットシステム内の通信に異なるプロトコルを選択することができます。

  • EtherNet/IP (E/IP)
  • PROFINET (P)
  • EtherCAT® (EC)
  • Modbus TCP (MB)

マルチプロトコル機能を持つマスターは、各プロトコル専用の製品を購入することなく、異なるネットワークに統合することができます。この技術により、同じIOL-Masterを異なる環境でも使用することができます。

デバイスの前面下部にあるロータリーエンコードスイッチを使用して、デバイスのプロトコルとアドレスの両方を簡単かつ便利に設定できます。

注意するのは変更されたロータリー・エンコーディング・スイッチの設定(プロトコル設定)を適用するには、電源の再投入またはWebインタフェースからのリセットが必要です。

Factory reset

工場出荷時の設定を復元するには、それまでの変更や設定をリセットします。Rotary encoding Switchをx100=9、x10=7、x3=9に設定してください。その後、電源を入れ直し、内部メモリーの書き込み処理のため10秒間待ちましょう。

0960 IOL 381-001 – LioN-P,IO-Link I/O Hub,16DI ?

16 個のデジタル入力を備えた IO-Link モジュール 0960 IOL 381-001 は、プロセスレベルからバイナリセンサ信号を受信し、IO-Link マスタと上位レベルのField busを介して PLC 制御システムに転送します。

各センサは IO-Link マスタから供給される電源電圧 (L+) から供給され、別途電源電圧の接続を必要としません。

Port Ovweview

X1はIOLink ports、M12 の 5-pin、D-codedになります。

Download ESI File

下記のLinkからEthereCATネットワークを構築するに必要なESI FileをDownloadしてください。

https://catalog.belden.com/index.cfm?event=pd&p=PF_0980XSL3911121007D00F

Implementation

BELDEN Side

0980 XSL 3912-121-007D-00F – LioN-X 8xIO-Linkの本体にあるRotaryスイッチを”EC”に設定してください。

ctrlX Side

EtherCAT Master

EtherCAT Master AppsからEtherCATネットワークを構築していくので、ctrlX PLCのWeb ServerにアクセスしEtherCAT Masterをクリックしてください。

Add EtherCAT MasterをクリックしEtherCAT Masterを追加しましょう。

EtherCAT Master名と使用するPortを設定しましょう。

Done!EtherCAT Masterが追加されました。

Start ctrlX I/O Engineering

ctrlXでEtherCAT Masterを構築するにはctrlX I/O Engineeringが必要です。先程追加されたEtherCAT Masterをクリックします。

Start ctrlX I/O Engineeringをクリックします。

Open ctrlxworks launcherをクリックします。

Done!ctrlX I/O Engineeringが起動し、プロジェクト名を新規作成しましょう。

Done!

Device Repository

ctrlX I/O EngineeringにESI Fileをインストールするため、Tools>Device Respositoryを開きます。

Device Repositoryの管理画面が表示され、Installボタンをクリックします。

先程DownloadしたESI Fileを選びましょう。

しばらく待ちます…

Done!ESI Fileがインストールされました。

Add Device

次は0980 XSL 3912-121-007D-00Fを追加するため、ethercatmaster>右クリック>Add Deviceします。

Add Device画面が表示されます。

今回記事で使用する0980 XSL 3912-121-007D-00Fを選び>Add Deviceします。

Done!0980 XSL 3912-121-007D-00Fがetherecatmasterのネットワークに追加されました。

Plug Device

今度は各Slotに必要なデバイスを追加するため、各Slotに右クリックし>Plug Deviceしてください。

Plug Ch1

Channel1は0960 IOL 381-001 – LioN-P,IO-Link I/O Hub,16DIと接続されています。

Device ListからIO-Link 4 Byte Process Data Input/ 4 Byte Process Data Outputを追加してください。

Plug Ch3

Channel3のPin2とPin4はデジタル入力と接続されています。

IO_Link_Ch3で右クリック>Plug Deviceします。

Standard Inputを選び>Plug Deviceしてください。

ですが、Pin2のデータを取りたい場合、TxPDO_DI_IOL_statusにもデバイスをPlugする必要がありますので、TxPDO_DI_IOL_status>右クリック>Plug Deviceしてください。

TxPDO mapping for digital input and IO-Link Status dataのSlotを追加してください。このSlotはSlot3だけではなく他のSlotの入力状態も一括確認できます。

Plug Ch4

Channel4はデジタル出力と接続されています。

IO_Link_Ch4で右クリック>Plug Deviceします。

Standard Outputを選び>Plug Deviceしてください。

Plug Ch7

Channel7はOMRONのE3AS-HL5000LMN IO-Linkデバイスと接続されています。

IO_Link_Ch7で右クリック>Plug Deviceします。

Device ListからIO-Link 4 Byte Process Data Input/ 4 Byte Process Data Outputを追加してください。

Download

最後はConfigurationをCPUにDownloadしてください。

EtherCATネットワーク構成を変更するにはInit状態に切り替える必要があり、もしEtherCAT MasterがすでにOP状態である場合、Warningができてきますので、Yesで進みます。

Done!

Check On Web Server

ctrlXのWeb Serverにもう一度アクセスし、EtherCAT Masterの状態を確認します。

いまはEtherCAT State MachineはOP状態です。つまりEtherCAT Masterは問題なく稼働しています。

今回記事で使用した0980 XSL 3912-121-007D-00Fも問題なく通信しています。

0980 XSL 3912-121-007D-00Fにも認識されました。

PLC

PLC Enginneringをクリックします。

Open ctelxworks.launcherをクリックします。

ctrlX PLC Enginneringが起動中…

Done!

Data Layer

EtherCAT Master Appで0980 XSL 3912-121-007D-00Fと周期で更新してるデータをPLC Appsにも取り込みたいので、そのときはDataLayerの出番です。

DataLayer_RealTimeをクリックしてください。

DataLayerの設定画面に変わり、Refreshボタンをクリックしてください。

今回記事で使用したEtherCAT Master Appsのデータがありました!

EtherCAT Master AppのデータがData Layerにあることを確認できたら、次はそのデータをPLCプロジェクトに追加します。DataLayer_Realtime>右クリック>Select realtime data>Selectively from ctrlX COREをクリックしてください。

real-time dataの選択画面が表示されました。

右側にあるSouce:Controlからethercat_master_intances_ethercatmasterを選択してください。

Done!0980 XSL 3912-121-007D-00Fのデータもありました。

0980 XSL 3912-121-007D-00Fのデータをすべて選択します。

次は赤枠のボタンをクリックすれば選択されたデータがPLC Appsで使用できます。

Done!

Program

DUT
DUT_0960_IOL_381_001

こちらはIOLink Hubに合わせてたデータ・タイプになります。

TYPE DUT_0960_IOL_381_001 :
STRUCT
X1A,X1B,X2A,X2B,X3A,X3B,X4A,X4B
,X5A,X5B,X6A,X6B,X7A,X7B,X8A,X8B:BIT;
END_STRUCT
END_TYPE
DUT_E3ASHL500MN 

こちらはオムロンのE3ASHL500MN IOLinkデバイスに合わせたデータ・タイプになります。

TYPE DUT_E3ASHL500MN :
STRUCT
DetectValueOutput : INT;
LightIntensityLevel : USINT;
ControlOutput1 :BIT;
ControlOutput2 : BIT;
InstabilityAlarm:BIT;
InsufficinetError:BIT;
Warning:BIT;
Error :BIT;
END_STRUCT
END_TYPE
FunctionBlock
FB_E3ASHL500MN

こちらのFunctionBlockはオムロンのE3ASHL500MN IOLink デバイスのデータを取り出すためのプログラムです。

FUNCTION_BLOCK FB_E3ASHL500MN
VAR_INPUT

END_VAR
VAR_OUTPUT
data:DUT_E3ASHL500MN;
END_VAR
VAR
_raw:ARRAY[0..3]OF BYTE;
END_VAR
VAR_IN_OUT
raw:ARRAY[0..3]OF BYTE;
END_VAR

_raw:=raw;
_raw[0]:=raw[1];
_raw[1]:=raw[0];
MEM.MemMove(
pSource:=ADR(_raw)
,pDestination:=ADR(data)
,uiNumberOfBytes:=SIZEOF(raw)
);
GVL

こちらのGVLは直接Process INPUT/OUTPUTデータとMappingするデータです。

{attribute ‘qualified_only’}
VAR_GLOBAL
d1 AT %IB12 :ARRAY[0..3]OF BYTE;
IOLINK_Hub_1 AT %IB8:DUT_0960_IOL_381_001;
IOLINK_Master_DI AT %IB17 :DUT_0960_IOL_381_001;
IOLINK_Master_DO AT %QB4 :BYTE;

END_VAR
MAIN

こちらはMAINプログラムで、0980 XSL 3912-121-007D-00Fに接続されたデジタル入出力やIOLINK デバイスを読み書きできます。

PROGRAM PLC_PRG
VAR
E3ASHL500MN_1:FB_E3ASHL500MN;
X03A,X03B:BOOL;
X00_X01A_,X00_X07A,X00_X07B:BOOL;

DetectValueOutput:INT;
LightIntensityLevel : USINT;
TON1,TON2:TON;
END_VAR


E3ASHL500MN_1(
raw:=GVL_Mapping.d1
);
X00_X01A_:=GVL_Mapping.IOLINK_Hub_1.X1A;
X03A:=GVL_Mapping.IOLINK_Master_DI.X3A;
X03B:=GVL_Mapping.IOLINK_Master_DI.X3B;
X00_X07A:=GVL_Mapping.IOLINK_Hub_1.X7A;
X00_X07B:=GVL_Mapping.IOLINK_Hub_1.X7B;

TON1.PT:=T#1S;
TON2.PT:=T#1S;
TON1.IN:=NOT TON2.Q;
TON2.IN:=TON1.Q;
TON1();TON2();
GVL_Mapping.IOLINK_Master_DO :=0;
IF TON1.Q THEN
GVL_Mapping.IOLINK_Master_DO :=1;
END_IF



DetectValueOutput:=E3ASHL500MN_1.data.DetectValueOutput;
LightIntensityLevel:=E3ASHL500MN_1.data.LightIntensityLevel;

Download

LoginボタンをクリックしプロジェクトをDonwloadしてください。

Okで進みます。

Result

Done!ctrlX_CROEが緑の状態になり、現在PLC Appsが稼働してる状態です。

DataLayerのObjectにも緑のICONがついており、DataLayerのNodeも正常にアクセスできます。

0980 XSL 3912-121-007D-00Fのデジタル入出力やIOLINKデバイスのデータも取りました。

こちらの動画でctrlXからBelden IO Link Masterに出力コマンドを発行する操作です。

ctrlX.Output DO Signal to Belden IOLink Master via EtherCAT App

こちらの動画でctrlXからBelden IO Link Masterの入力信号を取得する操作です。

ctrlX.Getting DI Signal From Belden IOLink Master via EtherCAT App

こちらの動画でctrlXからBelden IO Link MasterにIOLink デバイスのデータを取得する操作です。

ctrlX.Getting IOLINK Deivce Data From Belden IOLink Master via EtherCAT App

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

シェアする

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

フォローする