Turck#TBEN-L5-PLC-11 Part2_Profinet IO Controllerを立ち上げよう

こちらはTURCK社のTBEN-L5-PLC-11を使用し様々なCodesys記事を展開する第2話です。今回はTBEN-L5-PLC-11にProfinet IO Controllerを立ち上げ、同じくTURCK社のTBEN-L4‐8IOLと接続します。さ、FAを楽しもう。

Reference Link

Turck#TBEN-L5-PLC-11 Part1_Let’s Start it up!

PROFINET IO device model…

PROFINET IO デバイスの技術的なプロパティは、デバイス記述ファイルである GSDML ファイルによって定義されます。

PROFINET IO デバイスは 1 ~ n 個のスロットで構成され、1 ~ n 個のサブスロットを含むこともできます。サブスロットはサブモジュールのプレースホルダで、プロセスとのインタフェースを確立します。サブモジュールにはパラメータ、データ、診断を含めることができます。スロット0は常にデバイス・アクセス・ポイント(DAP)として予約されています。DAPはイーサネット・ネットワークへの物理インターフェースを持ち、デバイスを表します。

その他のスロットとサブスロットは、その他のデバイス機能を表す。この構造はフィールド機器の製造者によって定義される。すべてのスロットやサブスロットが物理的な機能に関連している必要はありません。スロットとサブスロッ トの割り当て、そして機能(動作モー ド、診断など)の割り当ては PROFINET コントローラのコンフィギュレーショ ンソフトウェアで行われます。

このデバイス・モデルにより、メーカーはモジュール式で柔軟な分散型フィールド・デバイスを設計できる。ユーザーは、分散型フィールドデバイスを柔軟に構成することができます。

Implemenation

Cofigure Mode

TBEN-L4‐8IOLにProfinet ControllerからIPを振り分けるにはAddressing ModeをPGM-DHCPモードに設定しましょう。

PGM-DHCP モード 600 PGM-DHCP モードでは、ゲートウェイは固定 IP アドレスが割り当てられるまで DHCP 要求を送信します。DHCP クライアントは、IP アドレスが DTM または Web サーバー経由でゲートウェイに割り当てられると、自動的に非アクティブになります。

PGM-DHCPモードを設定するにはRotaryスイッチを600に設定してください。

Download GSDML File

Profinetデバイスは同じくTurck社のTBEN-L4‐8IOLを使用しますので、HPからTBEN-L4‐8IOLのGSDML FileをDownloadしてください。

https://www.turck.us/en/product/6814082

Install the GSDML File

Codesys IDEからGSDML Fileをインストールするため、Tools>Device Repositoryをクリックします。

Installボタンをクリックします。

先ほどDownloadしたTBEN-L4‐8IOL GDSML Fileを選びましょう。

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

Configure Profinet Network

次はProfinet ネットワークを構築します。

Add Ethernet Driver

Ethernet Adapterを追加します。Deviec>右クリック>Add Deviceします。

Ethernet Adapter>Ethernetを選び、Add Deviceで進みます。

Setup Adapter

Ethernet Adapterが追加されましたが、Turck社のTBEN-L5-PLC-11にはEthernet Portが2つありますので、CodesysのProfinet IO Controllerとして使用するAdpaterを設定します。

Ethernet>General>Browseをクリックします。

アプリケーションに合わせてEthernet Adapterを設定しましょう。

Done!

Configure Profinet IO Controller

次はProfinet IO Controllerを追加します。先程追加したEthernet Adapterを右クリック>Add Deviceします。

Fieldbus>PROFINET IO>PROFINET IO Master>PN-Controllerを選び、Add Deviceで追加しましょう。

Done!PROFINET IO Controllerが追加され、General>Default Slave IP ParameterでProfinet IO デバイスの自動割り付けを設定しましょう。

下図では初めのProfinet IOデバイスのIPアドレスは192.168.13.200、そして192.168.13.254まで55ノードあります。

Configure Profinet IO Devices

今度はTBEN-L4‐8IOLを追加します。先程追加したProfinet IO Controller>右クリック>Add Deviceします。

TBEN-L4‐8IOLを追加しましょう。

Done!Station NameでProfinetのデバイス名とIPアドレスをアプリケーションに合わせて設定してください。

Login

Codesys IDEでProfinetデバイスのDevice 名やIPアドレスを設定できます。そのために、まず一回CodesysのProfinet StackをRuntimeにDownloadしましょう。

Yesで進みます。

Done!

Scan for Devices

次はProfinet Controller>右クリック>Scan for Devicesをクリックします。

TBEN-L4‐8IOLが検索できるはずなので、Station Nameでプロジェクトに設定したものと一致するようにしましょう。

Change the Profinet Devices Slot

今度は各Portの設定を変更するため、該当するSlotを右クリック>Plug Deviceします。

IN 8 BYTE/ OUT 8 BYTE(Octet)を選び>Plug Deviceをクリックします。

Done!Slot1のPort設定が変更されました。

TBEN-L4‐8IOLはIO-Linkだけじゃなく、DIDOとして構築するも可能です。

診断情報などもProfinet経由で取得可能なので、アプリケーションに合わせてDiagnosticsのSlotなどでデバイスを追加しましょう。

Result

こちらは今回記事で使用するConfigurationになります。

Program

Codesysのプログラムを組みます。

Add Library

ライブラリを追加します。

今回使用するのはCAA Memoryのライブラリです。

DUT

構造体を定義します。

DUT_Contrinex_SmartSensor_IN 

こちらはContrinex社のIO-Link Sensorの入力データに合わせて作成した構造体です。

TYPE DUT_Contrinex_SmartSensor_IN :
STRUCT
OSS1
,OSS2
,TSS
,SSC1
,SSC2
,ALR1
,ALR2
,ALR3 :BIT;
ScaleValue :BYTE;
MeasureValue:LREAL;
END_STRUCT
END_TYPE

DUT_Molex_IOLINKHub_IN 

こちらはMolex社のIO-Link Hubの入力データに合わせて作成した構造体です。

TYPE DUT_Molex_IOLINKHub_IN :
STRUCT
i00
,i01
,i02
,i03
,i04
,i05
,i06
,i07
,i08
,i09
,i10
,i11
,i12
,i13
,i14
,i15 :BIT;
END_STRUCT
END_TYPE

DUT_Murr_59607_IN 

こちらはMurrelektronik社のIO-Link Hub 59607の入力データに合わせて作成した構造体です。

TYPE DUT_Murr_59607_IN :
STRUCT
Pin4_X0
,r0
,Pin4_X1
,r1
,Pin4_X2
,r2
,Pin4_X3
,r3
,Pin4_X4
,r4
,Pin4_X5
,r5
,Pin4_X6
,r6
,Pin4_X7
,r7 :BIT;
DIA :WORD;
ErrroPowerSupply
,ErrorTempature
,ErrorInputOutput
,GlobalStatus:BIT;
END_STRUCT
END_TYPE

DUT_Murr_59607_OUT 

こちらはMurrelektronik社のIO-Link Hub 59607の出力データに合わせて作成した構造体です。

TYPE DUT_Murr_59607_OUT :
STRUCT
Pin4_X0
,r0
,Pin4_X1
,r1
,Pin4_X2
,r2
,Pin4_X3
,r3
,Pin4_X4
,r4
,Pin4_X5
,r5
,Pin4_X6
,r6
,Pin4_X7
,r7 :BIT;
END_STRUCT
END_TYPE

DUT_Nassmagnet_SmartConnector_IN 

こちらはNassmagnet社のSmart Connectorの入力データに合わせて作成した構造体です。

TYPE DUT_Nassmagnet_SmartConnector_IN :
STRUCT
ValveState
,ShortCircuitDetection
,OpenCircuitDetection
,OverHeat
,OverCurrent
,Counter1Overun
,Counter2Overrun :BIT;
END_STRUCT
END_TYPE

DUT_Nassmagnet_SmartConnector_OUT 

こちらはNassmagnet社のSmart Connectorの出力データに合わせて作成した構造体です。

TYPE DUT_Nassmagnet_SmartConnector_OUT :
STRUCT
CMD:BIT;
PWM:BYTE;
END_STRUCT
END_TYPE

DUT_OMRON_E2E_X3B4_IL3_2M_IN

TYPE DUT_OMRON_E2E_X3B4_IL3_2M_IN :
STRUCT
MonitorData:BYTE;
ControlOutput
,r0
,r1
,r2
,Unstable
,TooClose
,r3
,ERROR :BIT;
END_STRUCT
END_TYPE

DUT_OMRON_E3ASHL500MN_IN

こちらはOMRON社のE3ASHL500MNの入力データに合わせて作成した構造体です。

TYPE DUT_OMRON_E3ASHL500MN_IN :
STRUCT
DelectValue:WORD;
LightLevel:BYTE;
ControlOutput1
,ControlOutput2
,InstabliltyAlarm
,r0
,InsufficientAlarm
,r1
,Warning
,ERROR :BIT;
END_STRUCT
END_TYPE

DUT_OMRON_E2E_X3B4_IL3_2M_IN

こちらはOMRON社のE2E-X3B4-IL3-2Mの入力データに合わせて作成した構造体です。

TYPE DUT_OMRON_E2E_X3B4_IL3_2M_IN :
STRUCT
MonitorData:BYTE;
ControlOutput
,r0
,r1
,r2
,Unstable
,TooClose
,r3
,ERROR :BIT;
END_STRUCT
END_TYPE

GVL

TurckのIO-Link MasterとMappingするための変数をGVL内に定義します。

{attribute ‘qualified_only’}
VAR_GLOBAL
Port00_IN:ARRAY[0..7]OF BYTE;
Port02_IN:ARRAY[0..7]OF BYTE;
Port04_IN:ARRAY[0..7]OF BYTE;
Port08_IN:ARRAY[0..7]OF BYTE;
Port12_IN:ARRAY[0..7]OF BYTE;
Port12_Out:ARRAY[0..7]OF BYTE;
Port14_IN:ARRAY[0..7]OF BYTE;
Port14_Out:ARRAY[0..7]OF BYTE;
Baisc:ARRAY[0..3]OF USINT;
Port00_Diagnostics:ARRAY[0..1]OF USINT;
Port02_Diagnostics:ARRAY[0..1]OF USINT;
Port04_Diagnostics:ARRAY[0..1]OF USINT;
Port06_Diagnostics:ARRAY[0..1]OF USINT;
Port08_Diagnostics:ARRAY[0..1]OF USINT;
Port10_Diagnostics:ARRAY[0..1]OF USINT;
Port12_Diagnostics:ARRAY[0..1]OF USINT;
Port14_Diagnostics:ARRAY[0..1]OF USINT;
Port012_Diagnostics: POINTER TO BYTE;
END_VAR

POU

今回の記事ではLD2を使用しますので、Application>Add Object>POUをクリックします。

Implementation LanguageをLD2に選び>Addで進みます。

p

POUで必要な変数を定義します。

PROGRAM p
VAR
_TempBytes:ARRAY[0..7]OF BYTE;
_TempWORD:WORD;
_TempReal:REAL;
_IOPortOK:ARRAY[0..15]OF BOOL;
_Port1INPUTData:DUT_Contrinex_SmartSensor_IN;
_Port2INPUTData:DUT_OMRON_E3ASHL500MN_IN;
_Port3INPUTData:DUT_OMRON_E2E_X3B4_IL3_2M_IN;
_Port5INPUTData:DUT_Molex_IOLINKHub_IN;
_Port7INPUTData:DUT_Murr_59607_IN;
_Port7OUTPUTData:DUT_Murr_59607_OUT;
_Port8INPUTData:DUT_Nassmagnet_SmartConnector_IN;
_Port8OUTPUTData:DUT_Nassmagnet_SmartConnector_OUT;
TONs:ARRAY[0..1]OF TON;
END_VAR

POUにActionを追加します。

そして追加されたActionをプログラム内に呼び出します。

Action:Unity

こちらのAction Blockは1秒ON・OFFの繰り返しBitを生成します。

Action:Port00

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort00と接続する、Contrinex社のIO-Link Sensorのデータを処理します。

Action:Port02

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort02と接続する、OMRON社のE3ASHL500MNのデータを処理します。

Action:Port04

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort04と接続する、OMRON社のE2E-X3B4-IL3-2Mのデータを処理します。

Action:Port08

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort08と接続する、Molex社のIO-Link Hubのデータを処理します。

Action:Port12

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort12と接続する、Murrelektronik社のIO-Link Hub 59607データを処理します。

Action:Port14

こちらのAction BlockはTurck のIO-Link Master TBEN-L4‐8IOLのPort12と接続する、Nassmagnet社のSmart Connectorデータを処理します。

PLC_PRG

最後は先程作成したPOUをMAINプログラムに呼び出しましょう。

p();

Generate SFC/LD Visualizations

SFC/LDのプログラム監視画面を生成します。Project>Generate SFC/LD Visualizationをクリックします。

Visualization

次はVisualizationを追加するため、Add Object>Visualizationをクリックします。

VisuSymbols(System)を選び、Addで画面を追加します。

Add WebVisu

Webページの画面表示が必要な方は、Add Object>WebVisuでWeb画面を追加しましょう。

Screen

最後はプログラム監視用の画面を作成しましょう。

Mapping

プログラムで定義した変数を入出力データ(三菱のXY)とMappingする必要があります。

例えばPort1では、Input DataのVariable列では…のボタンがあります。

プログラム内にある適切な変数を設定しましょう。

Done!

Download

最後はプログラムをPLCにDownloadしましょう。

Start

StartボタンをクリックしRuntimeをRun Modeに変更します。

Result

TBEN-L5-PLC-11 PLCはRUN Modeになっています。

TBEN-L5-PLC-11とTBEN-L4‐8IOLのProfinet通信ができました。

Profinet Controllerは現在Runの状態になっています。

TBEN-L4‐8IOLの状態もOKになっています。

SFC/LD Visualizationも正常に動いています。
また、Browserの場合は下記のLinkでアクセスしましょう。

http://IP Address:8080/webvisu.htm

各PortのIO-Linkデバイスのデータの取得できました。

Project

下記のGithubから今回の記事のプロジェクトをDownloadしてください。

https://github.com/soup01Threes/Codesys/blob/main/Turck_TBEN_Lx_PLC_1x_Tutorial01.projectarchive

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

シェアする

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

フォローする