Beckhoff#TwinCAT3 Integrate with Murrelektronik EtherCAT IO‐Link Master

こちらの記事はBeckhoff TwinCAT3とMurrelektronik IO-LINKを接続するためのガイドラインになります。EtherCATはBeckhoffのC6920で、IO-LINK デバイスはKeyenceのLR-TB2000・OMRONのE3AS-HL500MNとEUROSwitchのLevel Sernsorになります。

さ、始めよう!

Thanks!

この記事はMurrelektronikトルコからの機器提供のおかけで作られました。本当にありがとうございます。

Murrelektronikは、オートメーションソリューションの開発、製造、販売におけるグローバル企業で、 電源と制御、インターフェース、ケーブル/コネクタ、IOシステムの4つのコア分野に分けられます。Murrelektronikの高品質で革新的な製品を常に提供し、お客様のアプリケーションをより良い提案をしています。

Office

Murrelektronik San. ve Tic Ltd Şti

Perpa Ticaret Merkezi A Blok Kat 11 No.1403

34384 Okmeydani/Istanbul/TR

Telephone

+90 212 2222298

EMAIL

E-Posta: info@murrelektronik.com.tr

About IO-Link

IO-Linkは、あらゆる種類の信号を素早く簡単に統合できる理想的なシステムで、アナログ、デジタル I/O または IO-Link、そして異なるメーカーのものにも接続するだけですぐに立ち上げられるのがIO-LINKです。

Murrelektroniは制御盤を使用せずに分散化された接続を構築することが目標で、IO-Linkを使用してControllerをデバイスレベルまでネットワーク化し、必要に応じてクラウドに直接接続してもできるように目指しています。

事前に設定済みのIO-Linkデバイスであれば、IODDをインポートしたり、設定ツールを使用したりすることなく素早く機器を立ち上げます。

そしてIO-Link は、センサとアクチュエータのインテリジェントデバイスをオートメーションシステムに接続するための標準化されたプロトコルです。

通信は IO-Link マスタと 1 つ以上の IO- Link デバイスの間で行われます。マスタモジュールには 1 つ以上のポートがあり、各ポートに 1 つのデバイスを接続できます。IO-Link はPoint to Point通信システムであり、フィールドバスではありません。

そして、IO-Link マスタモジュールはコントローラと IO- Link システム間のインタフェースです。

Compact IO-Link master With MURRelektronik

8つの多機能マスターポートを備えたコンパクトな IO-Link Masterは、IO-Link デバイスを接続する最も簡単・便利・素早いアプローチです。そしてIP67 準拠のモジュールは、複雑な配線と高価なターミナルボックスを置き換えることができます。

Flexible DIO-Link Ports

8つの多機能ポートにより、あらゆる種類の信号を接続でき、接続された機器には1ポートあたり最大4Aを供給できます。(または1Pin最大2Aを供給できます)

各Portはデジタル入力・デジタル出力またはIO−LINK Portとして設定できます。

(また、これらのモジュールをIO-Linkハブ・アナログコンバータと組み合わせることで、ハードウェアコストを最小限に抑えながら柔軟性を高めることができます。)

Protocol Support In OT Level

モジュールには2つのM12 D-Coded 100Mbpsポートがついており、型式によって、現場で最もシェア高いIndustrial Protocolのどれかに(PROFINET・Ethernet/IP・EtherCAT)対応できます。そしてすべてのIO-Link MasterモジュールにもOPC UA Serverが内蔵しており、3rd Partyからのアクセスも可能です。

Ready for IIOT

IO-Link Masterに統合されたSMI(Standardized Master Interface)により、OPC UA、JSON REST API、MQTTなどのIIoTプロトコル経由でデータにアクセスできます。

モジュールの設定は、Webserver・、ツール、OPC UAサーバー、JSON REST API、MQTT経由で行うことができます。またそれらのIIOT Protocolを利用することにより、、すぐにデータの可視化ができます。


IMPACT67 Pro EC DIO8 IOL8 M12L 5P

今回の記事で使用するIMPACT67 Pro EC DIO8 IOL8 M12L 5Pは保護等級IP67のプラスチックハウジングに収められたEtherCatデバイスで、EtherCATへの接続には2つのM12ポート(Dコード)になります。

EtherCATはAoE、 EoE、 FoEに対応しています。

Layout

こちらは実際IO-Link MasterのLayoutになります。

X0..X7

X0からX7は設定可能なIO-LIINK・INPUT・OUTPUT Portで、M12メス A-Coded Connector になります。

そして各入出力に個別のステータス表示が割り当てられています。下図では0のLEDは該当するPortのピン 4 に相当し、1の LED はピン 2 の状態を示しています。こちらはPin2のLEDの意味です。

こちらはPin4のLEDの意味です。

XD1/XD2

XD1・XD2はモジュールの電源IN/OUT Portで、M12 L-Codeを使用しています。

XF1/XF2

XF1/XF2はEtherCATのネットワークPortで、使用するのはM12メス D-Code Connectorになります。

LED

モジュールにいくつかのLEDがあり、現在の運転状態・電源供給などの情報を示しています。

RUN

RUN LEDは現在モジュールのEtherCAT State Machine状態を示しています。

ERR

ERR LEDは現在モジュールの故障状態を示しています。

L/A1 L/A2

こちらのLEDはEtherCATネットワークの状態を示しています。

US/UA

こちらのLEDはモジュールのSensor電源・Actuator電源を示しています。US=Sensor電源、UA=Actuator電源になります。

DIP Switch

MurrelektronikのIO-LINK MasterではDIPスイッチがあり、モジュールのIIOT機能を設定できます。

Process Data Mapping

IO-Link

Process data assignment for digital channels or IO-Link device to pin 4.

If a slot is set to Digital IN or Digital OUT, one byte of process data is al- ways assigned to this slot.

DI

Process data assignment for digital inputs to pin 4 and pin 2

Pin4 (C/Q) + Pin2 (I/Q) – Port-based data layout

Pin4 (C/Q) + Pin2 (I/Q) – Pin-based data layout

DO

Process data assignment for digital outputs to pin 4 and pin 2.

PD (I/Q Pin2 + C/Q Pin4)– Port-based data layout

PD (I/Q Pin2 + C/Q Pin4) – Pin-based data layout

Implementation

Install IO-Link Device Tool

次は下記のLinkからIO-Link Device ToolのSetup FileをDownloadしインストールしましょう。

https://shop.murrelektronik.com/en/I-O-Systems/Impact67/IMPACT67-Pro-EC-DIO8-IOL8-M12L-5P-54632.html?listtype=search&searchparam=%2A&src=search&srchPage=1&perPage=10&pos=1

セットアップ言語を選ぶ>Okで進みます。

ライセンス同意し、Next>で進みます。

InstallするPathを設定しNext>で進みます。

Next>で進みます。

Installで始めましょう。

しばらくまちます…

場合によってFirewall Linkを変更する必要があります。

Done!

Murrelektronik IO-LINK Device Toolがインストールされました。

OMRON e3as-hl500lmn

こちらは今回使用するIO-LINKデバイスe3as-hl500lmnになります。

Process Input Dataは4 Bytes・Process Output Dataは1 Byteになります。

こちらはOMRON E3A3-HL500lMNのProcess Dataになります。

Keyence LR-TB2000

こちらは今回使用するIO-LINKデバイスLR-TB2000になります。

デバイスには2BytesのProcess Inputがあります。

今回使用するのは2Bytesの距離測定になります。

Murrelektronik Side

DIP Switch

今回は914に設定し、Web server・JSON・OPC UA ・MQTTを有効にします。

TwinCAT3 Side

Download ESI File

下記のLinkからIMPACT67 Pro EC DIO8 IOL8 M12L 5PのESI FileをDownloadします。

https://shop.murrelektronik.com/en/I-O-Systems/Impact67/IMPACT67-Pro-EC-DIO8-IOL8-M12L-5P-54632.html?listtype=search&searchparam=%2A&src=search&srchPage=1&perPage=10&pos=1

Install ESI File

ESI Fileを下記のPathに貼り付けてください。

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

TwinCAT>EtherCAT Devices>Reload Device DescriptionでESI Fileを再ロードします。

Add New Project

File>New>Projectで新規プロジェクトを作成します。

TwinCAT XAE Project(XML Format)を選択し、Okで進みます。

Done!新しいプロジェクトを作成しました。

Add EtherCAT Master

TwinCATプロジェクトにEtherCAT Masterを追加するため、I/O>Devices>Add New Itemします。

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

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

Configure Network Adapter

EtherCAT ネットワークとして使用するNetwork Adapterを設定します。

EtherCAT Masterをクリック>Adapter Tabを開きます。

SearchでIPCのNetwork Interfaceを検索します。

IPC内でEtherCAT Masterとして使用できるNetwork Interfaceが表示され、適切のInterfaceを選びましょう。

Done!

Add Murr EtherCAT Master

次はIMPACT67 Pro EC DIO8 IOL8 M12L 5PをEtherCAT Network内に追加するため、EtherCAT>右クリック>Add New Itemします。

Murrelektronik GmbHからIMPACT67 Pro EC DIO8 IOL8 M12L 5Pを追加しましょう。

Done!

Configure IP

IMPACT67 Pro EC DIO8 IOL8 M12L 5PはOPC UA Server・MQTT・REST APIがSupportできるのでモジュールを設定していきましょう。

Moduleをクリック>EtherCAT>Advnaced Settingsします。

Advanced Settings画面が表示されます。

Mailbox>EoEからIP portの項目からIPアドレスを設定することができます。

EoE?

EOE(Ethernet over EtherCAT)は、EtherCATプロトコルの一部で、特定のアプリケーションやデバイス間でEthernet通信をサポートするために使用されます。EOEは、EtherCATネットワーク上で通常のEthernet通信を可能にし、例えばTCP/IP通信などの一般的なEthernetプロトコルを使用して、エンドユーザーアプリケーションとEtherCATデバイスとの間でデータをやり取りできるようにします。

EOEを使用することで、エンドユーザーアプリケーションがEtherCATネットワーク内のデバイスと通信でき、これによりさまざまなデバイスやアプリケーションがシームレスに統合できるようになります。EOEは、EtherCATの柔軟性と拡張性を高め、異なる通信要件を満たすために使用される一つのツールとして役立ちます。

Configure Ports

次はIMPACT67 Pro EC DIO8 IOL8 M12L 5Pの各Portを設定します。

先程追加したBox1をクリックします。

Slots画面でX0-X7、各Portの設定を行うことができます。

Port X0

PortX0はデジタル入力として設定していきます。

Slots画面ではDefault各PortもEmptyになっています。

IO-Link Port X0を選ぶ、そして右にあるModuleをDigital_INを選択した状態で<ボタンをクリックします。

Done!Port X0はいまデジタル入力として設定され、Boxの中にデジタル入力用のProcess Dataも同時に追加されました。

Por tX1

Port1はデジタル出力になります。

先と同じ操作でIO-Link Port X1を選び、そして右にあるModuleをDigital_OUTを選択した状態で<ボタンをクリックし、Port1をデジタル出力として設定しましょう。

Port X2

Port2はIO-LINK Portになります。

先と同じ操作でIO-Link Port X2を選び、そして右にあるModuleをIOL_8/8_I/O-Bytesを選択した状態で<ボタンをクリックし、Port2をIO-LINK Portとして設定しましょう。

Port X3

Port3はIO-LINK Portになります。

先と同じ操作でIO-Link Port X3を選び、そして右にあるModuleをIOL_2/2_I/O-Bytesを選択した状態で<ボタンをクリックし、Port3をIO-LINK Portとして設定しましょう。

Port X7

Port7はIO-LINK Portになります。

先と同じ操作でIO-Link Port X3を選び、そして右にあるModuleをIOL_4/4_I/O-Bytesを選択した状態で<ボタンをクリックし、Port4をIO-LINK Portとして設定しましょう。

Process Data

PortX0/X1/X2/X3/X7にもProcess Data自動的に追加されました。

Program

次はプログラムを作成します。

DUT

DUT_E3ASHL500

こちらの構造体はOmronのEASHL500MN IO-LINK Sensorに該当します。

TYPE DUT_E3ASHL500 :
STRUCT

_raw AT %I*:ARRAY[0..3]OF BYTE;

END_STRUCT
END_TYPE

Function Block

FB_E3ASHL500

こちらのFunctionはOmronのEASHL500MN IO-LINK Sensorに該当します。

VAR

_data変数は先程定義された構造体で、中にEASHL500MN IO-LINK SensorとMappingするProcess Input Dataがあります。

FUNCTION_BLOCK FB_E3ASHL500
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
_data:DUT_E3ASHL500;
END_VAR
Method_DetecedValue

こちらのMethodはEASHL500MNのIO-LINKデータ、最初の2Bytesは測定距離を取得できます。LSBとHSBをSWAPしTwinCAT IPCのFormatに合わせます。

METHOD Method_DetecedValue : UINT
VAR_INPUT
END_VAR
VAR
_temp:ARRAY[0..1]OF BYTE;
_value:UINT;
END_VAR

_temp[0]:=_data._raw[1];
_temp[1]:=_data._raw[0];

MEMMOVE(
destAddr:=ADR(_value)
,srcAddr:=ADR(_temp)
,n:=2
);


Method_DetecedValue:=_value;
Method_LightingIntensityLevel

こちらのMethodはEASHL500MNのIO-LINKデータ、0、1目の光量を取得できます。

METHOD Method_LightingIntensityLevel : USINT
VAR_INPUT
END_VAR

Method_LightingIntensityLevel:=BYTE_TO_USINT(_data._raw[2]);
PROPERTY Prop_Error : bool GET

こちらのMethodはEASHL500MNのIO-LINKデータ、3Byte目のStatusデータからエラー状態を取得できます。

Prop_Error:=_data._raw[3].2 OR _data._raw[3].4 OR _data._raw[3].6 OR _data._raw[3].7;
PROPERTY Prop_OutputStatus1 : bool GET

こちらのPropertyはEASHL500MNの出力1を返します。

Prop_OutputStatus1:=_data._raw[3].0;
PROPERTY Prop_OutputStatus2 : bool GET

こちらのPropertyはEASHL500MNの出力2を返します。

Prop_OutputStatus2:=_data._raw[3].1
FB_LRT2000

こちらのFunctionはKeyenceのLRT2000 IO-LINK Sensorに該当します。

VAR

_data変数はEKeyenceのLRT2000 IO-LINK SensorとMappingするProcess Input Dataになります。

FUNCTION_BLOCK FB_LRT2000
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
_data AT %i*:ARRAY[0..1]OF BYTE;
END_VAR
Method_Distance : UINT GET

こちらのMethodはLRT2000のIO-LINKデータ、2Bytesは測定距離を取得できます。LSBとHSBをSWAPしTwinCAT IPCのFormatに合わせます。

METHOD Method_Distance : UINT
VAR_INPUT
END_VAR
VAR
_temp:ARRAY[0..1]OF BYTE;
_value:UINT;
END_VAR


_temp[0]:=_data[1];
_temp[1]:=_data[0];


MEMMOVE(
destAddr:=ADR(_value)
,srcAddr:=ADR(_temp)
,n:=2
);

Method_Distance:=_value;

MAIN

こちらのプログラムは各IO-LINKデバイスからデータを取ります。

PROGRAM MAIN
VAR

E3ASHL5001:FB_E3ASHL500;

DetectionValue:UINT;
LightingLevel:USINT;
Error:BOOL;
Output1,Output2:BOOL;

LRT2000 :FB_LRT2000;
Distance:UINT;

DI_PortX0,DO_PortX1:BOOL;
DI_Mapping AT %I*:UINT;
DO_Mapping AT %Q*:UINT;

END_VAR



DetectionValue:=E3ASHL5001.Method_DetecedValue();
LightingLevel:=E3ASHL5001.Method_LightingIntensityLevel();
Error:=E3ASHL5001.Prop_Error;
Output1:=E3ASHL5001.Prop_OutputStatus1;
Output2:=E3ASHL5001.Prop_OutputStatus2;


Distance:=LRT2000.Method_Distance();

DI_PortX0:=DI_Mapping.0;
DO_Mapping.2:=DO_PortX1;

Build

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

Link the Variables

最後は各PortのProcess InputとProcess Output変数をプログラムと紐つけましょう。

Mappingしたい変数を全部選び>右クリック>Change Linkします。

デジタル入力のMappingはTxPDO Mapping of Digital Inputs>PD (I/Q Pin2 +C/Q Pin4)に紐つけましょう。

デジタル出力のMappingはTxPDO Mapping of Digital Outputs>PD (I/Q Pin2 +C/Q Pin4)に紐つけましょう。

User Programに同じデータBytesのProcess dataが表示されるので、変数を適切にMappingしましょう。

Activate

Activate ConfigurationでHardware ConfigurationをTwinCAT RuntimeにDownloadしましょう。

Login

User ProgramをTwinCAT RuntimeにDownload するためLoginをクリックしましょう。

Result

From IO-LINK Device Tool

最初はMurrelektronik IO-Link Device ToolからIMPACT67 Pro EC DIO8 IOL8 M12L 5Pの状態を確認しましょう。

しばらくまちます…

Search

Murrelektronik IO-Link Device Toolを立ち上げ、右にあるTopology>Search MastersでIMPACT67 Pro EC DIO8 IOL8 M12L 5Pを検索します。

もし検索できなければ、Search IP Address機能からIMPACT67 Pro EC DIO8 IOL8 M12L 5Pを検索しましょう。

IMPACT67 Pro EC DIO8 IOL8 M12L 5PのIPアドレスを入力し、Okで進みます。

Done!IMPACT67 Pro EC DIO8 IOL8 M12L 5Pが見つかりました。

検索されたIMPACT67 Pro EC DIO8 IOL8 M12L 5Pを右クリック>Assignでデバイスをプロジェクトに移動します。

Done!

Import IODD

IODD Finderから各社のIO-LINK デバイスをツールにImportするため、Options>Import IODDします。

Import IODD画面が表示されました。

次は…ボタンからImport IODDのFolder Pathを設定します。

IODD Folderの格納場所を設定します。

Include subdirectoriesのCheckboxを入れます。

ImportするIODD FileをCheck入れて、Importします。

Go Ooline

Go OfflineのボタンをクリックしIMPACT67 Pro EC DIO8 IOL8 M12L 5Pとツールを接続します。

Done!Go Offlineのボタンがいま緑になり、つまりToolとIMPACT67 Pro EC DIO8 IOL8 M12L 5Pが接続しています。YesをクリックしデバイスConfigurationをデバイスからUploadします。

Done!

Check Devices

Check Devicesボタンをクリックし各のPortのIO-LINKデバイス情報を取ります。

黄色がついてるのはIO-LINK デバイスと接続されているPortです。

Takeover devices info engineeringで情報をプロジェクトにLoadします。

Done!

LR-TB5000CのIODD FileがツールにImportされたので、Port4の情報を確認するためPort4をダブルクリックします。

Done!キーエンスのLR-TB5000Cの情報を一覧できました。

Process Data TabからIO-LINKデバイスのProcess Dataを確認できます。

From Web

次はBrowserからIMPACT67 Pro EC DIO8 IOL8 M12L 5PのIPアドレスを入力するとWeb Serverが表示され、各Portもしくはモジュール本体の情報を確認できます。

もちろんWeb serverからモジュールやPortの設定もできますが、これらの操作はまた次の記事で紹介します。

例えばPortX3を開いていみます。

該当するPortの情報を確認できます。

PROCESS DATAのTabで該当するデバイスの生データを確認できます。

From TwinCAT

もちろん、TwinCATプログラムからにもすべてのIO-LINKデバイス・デジタル入力・デジタル出力を確認できます。

Download

こちらのGithubから今回の記事のSampleプロジェクトをDownloadできます。

https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCAT_Murrelektronik_Ethercat%20Master%20Sample.tnzip

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

シェアする

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

フォローする