BERGHOF#MC-Pi コントローラー_Part04_EtherCAT Masterを使ってみよう

こちらでBERGHOF社のRaspberry Piベースのモジュール型CODESYS PLCの紹介の第4話です。今回はEtherCAT Masterを立ち上げ、ローカルのEBUS通信 のE-IO XR02、またOMRONとBeckhoff のCouplerと通信します。

BERGHOFからの機器のご提供、ありがとうございます。

さ、FAを楽しもう。

Reference Link

BERGHOF#MC-Pi コントローラー_Part01_デバイスを立ち上げよう
BERGHOF#MC-Pi コントローラー_Part02_Visualizationを使ってみよう
BERGHOF#MC-Pi コントローラー_Part03_CAN Masterを使ってみよう
OMRON#SL5700 x ECC203でEtherCAT/FSoEネットワークを構築してみよう

Implementation1

BERGHOFのMC-PIコントローラーには3つのEthernet Interfaceがあります。注意するのは2番目はEBUSになります。

このような保護COVERがあります。

BERGHOF Side

最初にBERGHOF社のMC-Piコントローラーと隣にインストールされたMC-I/O XRシリーズとE-BUSで通信します。

Configure Network via Web server

BERGHOF社のMC-PiコントローラーのWeb Serverにアクセスし、Configuration>Networkをクリックします。

ETH1のModeをEtherCATモードに設定します。

MC-I/O XR?

MC-I/Oはプロセス信号を任意のEtherCATネットワークステーションに接続するためのI/Oモジュールシステムです。そして、MC-I/OはMC-I/Oバス・カプラと各種MC-I/Oモジュールで構成されています。MC-I/Oバス・カプラは、物理的転送技術(ツイストペア)をLVDS(Eバス)に変換し、LVDSモジュールに必要なシステム電圧を生成します。

Type B-Nimis MC-I/O XR 多機能I/Oモジュールはデジタルとアナログの入出力を1つのモジュールにまとめたものです。 デジタル入力にはカウンタ機能もあり、エンコーダにも適しています。

Digital I/O

デジタルシグナルミックスは8入力8出力で構成されています。 出力はデジタル入力としても使用できます。 各入力は10 kHzの周波数までカウントできます。 24Vエンコーダー信号の処理だけでなく、前後方向のカウントも可能です。

Analog I/O

モジュールの構成によっては、さらに4つの接続が入力または出力として機能します。 アナログI/O機能には、+/- 10 Vと+/- 20 mAがあり、最大22ビットの高分解能を備えています。

こちらは今回使用するモジュール(MC-I/O XR02 ENC/C DIO 8/8)です。

コントローラーとEBUSで接続するにはこちらのIO Connectorを使用しましょう。

Wiring

こちらはMC-I/O XR02 ENC/C DIO 8/8の配線です。

Codesys Side

次はCodesysプロジェクトを設定します。

Install ESI File

BERGHOFからMC-I/O XRのESI Fileをもらい、Tools>Device Repositoryをクリックします。

MC-I/O XR のESI Fileを選択します。

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

Add EtherCAT Master

EtherCAT Masterを追加するため、Device>右クリック>Add Deviceします。

Fieldbus>EtherCAT>Master>EtherCAT Masterを選択し、EtherCAT Masterを追加しましょう。

Select Interface

EtherCAT Masterを開き、General>SelectでEtherCAT Masterとして使用するInterfaceを設定します。

EBUSはEther1なので、Eth1を設定しましょう。

Scan for Devices

Auto Scanを使用する前に、一回EtherCAT StackをCPUにDownloadしましょう。

次はEtherCAT Master>右クリック>Scan for Devicesをクリックします。

Done!MC-I/O XR02が検索されましたので、Copy to projectでConfigurationをプロジェクトに複製します。

Result

Done!これでEtherCAT Configurationが完成です。

Configure EtherCAT Task

次はEtherCAT Taskを構築します。

Intervalを500usに設定します。

Program

Codesysのプログラムを作成します。

DUT_8BIT

こちらは8BITの変数をまとめた構造体です。

TYPE DUT_8BIT :
STRUCT
b00
,b01
,b02
,b03
,b04
,b05
,b06
,b07 :BIT;
END_STRUCT
END_TYPE

DUT_IO 

こちらはMC-I/O XRデータをまとめた構造体です。

TYPE DUT_IO :
STRUCT
DigitalIN:DUT_8BIT;
DigitalOut:DUT_8BIT;
PLD_Veersion:USINT;
STATUS:USINT;
END_STRUCT
END_TYPE

GVL

こちらはMC-I/O XR I/Oの変数を定義したGlobal Variable Listです。

{attribute ‘qualified_only’}
VAR_GLOBAL
IO1:DUT_IO;
END_VAR

pLocalIO

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

Network1

ネットワーク1はTemp変数を初期化します。

Network2

ネットワーク2は0.2秒ごとにONするタイマーです。

Network3

ネットワーク3はタイマの出力の立ち上げを検知します。

Network4

ネットワーク4はTemp変数をSHL関数で現在値を右にソフトします。

Network5

ネットワーク5はTemp変数をProcess Outputに転送します。

Mapping

GVL変数をEtherCAT I/OとMappingします。

Downlaod

CodesysプロジェクトをCPUにDownloadします。

Result

Done!EtherCAT通信が成立しました。

CPUにあるRUN/STOP LEDが緑点灯で(RUN MODE)、E-IO XR02のEtherCAT/IO/Power LEDも緑の点灯になります。

こちらの動画から動作確認できます。

Implementation2

次はBERGHOFのMC-PiコントローラーとBeckhoffやOMRONのEtherCAT CouplerとEtherCATネットワークを構築します。

Download ESI File

各社のWebサイトからESI FileをDownloadします。

Beckhoff

こちらはBeckhoff EK1xxxのESI FileのDownload先です。

https://www.beckhoff.com/en-en/products/i-o/ethercat-terminals/ek1xxx-bk1xx0-ethercat-coupler/ek1101.html?

OMRON

こちらはOMRON NX-ECC20xのESI FileのDownload先です。

https://industrial.omron.eu/en/products/NX-ECC203

BERGHOF Side

BERGHOF社のEth2を使用しEtherCAT ネットワークを構築しましょう。

Configure Network via Web server

BERGHOF社のEth2を有効にするには、Configuration>Network>ETH2のModeをStaticに設定し、IP アドレス・NetMaskを設定します。

Codesys Side

Codesysプロジェクトを作成します。

Add EtherCAT Master

EtherCAT Masterを追加するため、Device>右クリック>Add Deviceします。

EtherCAT Masterを追加します。

Done!

Select Interface

EtherCAT Masterを開き、General>SelectでEtherCAT Masterとして使用するInterfaceを設定します。

Eth2を選択します。

Auto reset

EtherCAT MasterがSlaveを自動リセットできるように、General>Options>Automatically restart slavesのCheckboxを入れてください。

Scan for Devices

Auto Scanを使用する前に、一回EtherCAT StackをCPUにDownloadしましょう。

次はEtherCAT Master>右クリック>Scan for Devicesをクリックします。

Done!OMRONとBeckhoffのEtherCAT Slaveが検索されました。

Result

BeckhoffとOMRONのSlaveがプロジェクトで複製されました。

Mapping

今回はプログラム変数とモジュール間は絶対アドレスでMappingを行います。下図はEL1088を例として説明します。

EtherCAT I/O Mapping>Channelの先頭にアドレスを設定してください。

Program

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

GVL

Global Variable Listには先程Mappingに設定した絶対アドレスに合わせて宣言してください。

{attribute ‘qualified_only’}
VAR_GLOBAL
EL1088_IN AT %IB300 :DUT_8BIT;
EL2088_OUT AT %QB301: DUT_8BIT;
EL2004_OUT AT %QB302:DUT_8BIT;
NXID5422 AT %IW100:UINT;
NXOD5256 AT %QW100:UINT;
END_VAR

FieldbuStatus

こちらはEtherCAT Masterの状態を取得するプログラムです。

PROGRAM FieldbuStatus
VAR
EtherCAT1_xError:BOOL;
EtherCAT1_xConfigfinished:BOOL;
EtherCAT1_DEDStatus:DED.DEVICE_STATE;
EtherCAT1_DEDBusInfo:DED.BUS_INFO;
_Frames:ARRAY[0..5]OF UDINT;
_Times:ARRAY[0..3]OF LTIME;

END_VAR
EtherCAT1_xError:= EtherCAT_Master.xError;
EtherCAT1_xConfigfinished:= EtherCAT_Master.xConfigFinished;

EtherCAT1_DEDStatus:=
EtherCAT_Master.GetDeviceState();

EtherCAT_Master.GetBusInfo(
EtherCAT1_DEDBusInfo);

EtherCAT_Master.GetStatistics
(
udiFramesPerSecond=>_Frames[0]
,udiLostCyclesCount=>_Frames[1]
,udiLostFrameCount=>_Frames[2]
,udiRxErrorCount=>_Frames[3]
,udiSendFrameCount=>_Frames[4]
,udiTxErrorCount=>_Frames[5]
,ltRecvAvg=>_Times[0]
,ltRecvMax=>_Times[1]
,ltSendAvg=>_Times[2]
,ltSendMax=>_Times[3]
);

pCATIO

こちらはOMRONのEtherCAT CouplerにインストールしたDOモジュールの16Channelを順番にソフトし、またOMRONのDIモジュール(Channel3)がONする度に、BeckhoffのEL2004の出力をソフトするような簡単なプログラムを組みます。

PROGRAM pCATIO
VAR
temp:UINT;
temp2:USINT;
TON:TON;
R_TRIG:R_TRIG;
R_TRIG2:R_TRIG;
END_VAR
IF temp=0 THEN
temp.15:=TRUE;
END_IF
IF temp2 =0 THEN
temp2.3:=TRUE;
END_IF

R_TRIG(CLK:=TON.Q);

TON(IN:=NOT TON.Q,PT:=T#0.2S);

IF TON.Q THEN
temp:=SHR(temp,1);
END_IF;


MEM.MemMove(ADR(temp),ADR(GVL_CAT.NXOD5256),SIZEOF(temp));

GVL_CAT.EL2088_OUT:=GVL_CAT.EL1088_IN;

R_TRIG2(CLK:=GVL_CAT.NXID5422.3);

IF R_TRIG2.Q THEN
IF temp2.3 THEN
temp2.3:=FALSE;
temp2.0:=TRUE;
ELSE
temp2:=SHL(temp2,1);
END_IF
END_IF

MEM.MemMove(ADR(temp2),ADR(GVL_CAT.EL2004_OUT),SIZEOF(temp2));

Downlaod

CodesysプロジェクトをCPUにDownloadします。

Result

Done!BERGHOFのCPUとOMRON/BeckhoffのEtherCAT Couplerと通信が成立しました。

こちらの動画でBERGHOFのMC-PIコントローラーからOMRON ECC-203のOD5256の出力をソフトする動作を確認できます。

こちらの動画でBERGHOFのMC-PIコントローラーからOMRON ECC-203とBeckhoffのEK1101の連携動作を確認できます。

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

シェアする

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

フォローする