今回の記事ではMURRELEKTRONIKの IMPACT67 Pro PN DIO8 IOL8 M12L 5Pを使用しSiemens S7‐1212FCとProfinet通信します。
IOLINKデバイスでは、今回はMURRELEKTRONIK社のIO-Link HUB・アナログ>IO‐Link変換機、TURCKのBN1F360V-QR20-IOLX3-H1141・OMRONのe3as-hl500lmnとCONTRINEX社のIDWE-M12MM-NMS-A0を使用します。
さ、始めよう!
IMPACT67 Pro PN DIO8 IOL8 M12L 5P?
今回使用するMURRELEKTRONIKのIO-LINK Master IMPACT67 Pro PN DIO8 IOL8 M12L 5Pは、
PROFINET Device対応・M12 L Code 5 Pinの電源供給・8PortのM12 Port(DI/DO/IOLINK設定可能)になります。
こちらはProfinet Fieldbusの仕様になります。
59719?
こちらはMURRELEKTRONIK製のIOLINK-Hubです。
- 50 mm プラスチック・ハウジング
- 1 x M12 IO-Link class A
- 8 x M12 I/O
- 16点の設定可能な入出力
こちらは今回記事では使用する59719 MURRELEKTRONIKIOLINK-HubのLayoutになります。XZ1はデバイスの電源供給とIOLINK Port(Class A)で、X0からX7は入力もしくは出力Portです。
Process Data
こちらは59719 IO-Link Hubの入力Process Dataになります。
Byte2とByte3はE0タイプのみで今回記事で使用した59719では適用しません。
こちらは59719 IO-Link Hubの出力Process Dataになります。
EUROSWITCH?
4-20mAアナログレベルセンサー+2つのプログラム可能なデジタルしきい値付きのデバイスで、水 – 鉱物油 – ディーゼル燃料 – ガソリンでも使用可能です。
こちらのLinkから詳しい情報を確認してください。
Pin Assignment
こちらはレベルセンサーのPin配置になります。
IO-Link converter with analog input
こちらはMURRELEKTRONIK製のアナログ入力からIOLINKデータに変換するConverterになります。
- アナログ入力側はM12メス A-Code Connector
- IOLINK側はM12 オス A-Code Connector
- Resolution 16 bits
- 偏差 45 ppm
- Sampling rate ≤200 Hz
実際MURRELEKTRONIK社は様々なConverterも提供しており、いろんなアプリケーションに合わせて使用できます。ちなみに今回使用するのは5000-00501-1300001です。
5000-00501-1300001は以下の4つのアナログ入力タイプを変換できます。
Pin Assignment-Analog Side
こちらはアナログ入力側のPin配置図になります。
Pin Assignment-IO LINK Side
こちらはIOLINK側のPin配置図になります。
LED
MURRELEKTRONIK社のアナログ入力>IOLINK変換機にはLED1とLED2があり、デバイスの状態を示しています。LEDに関するの詳しい情報はMANUALに参照してください。
Range
こちらはアナログ入力4…20mAに設定した場合のRangeになります。
Wiring
こちらはMURRELEKTRONIK社のアナログ入力>IO-Link変換機とEUROSWITCHのレベルセンサーの配線になります。
TURCK BN1F360V-QR20-IOLX3-H1141?
こちらはTURCK社の角度検出IOLINKセンサーになります。
- LEDによる状態表示
- 1本軸による角度検出(測定範囲360 °)
- 温度検出:-40 °C~85 °C(非周期通信、精度±3 °C)
- 保護等級IP68/IP69K
- DC 18~30 V
- M12 × 1オスコネクタ、4ピン
- IO-Link通信対応
こちらは今回使用するBN1F360V-QR20-IOLX3-H1141の仕様になります。
Process Data
こちらはTURCK BN1F360V-QR20-IOLX3-H1141のProcess Dataになります。
Pin Assignment
こちらはTURCK BN1F360V-QR20-IOLX3-H1141のPin配置図です。
Implementation
Siemens Side
Hardware Configuration
Add new device
S7-1212FCをプロジェクトに追加するため、Add new deviceを追加します。
Add new deviceの画面が表示されます。
CPU1212FC DC/DC/DCを選び>OKで進みます。
新しいTIAではセキュリティ設定が強化され、アプリケーションによってPasswordの設定を追加できます。こちらの画面ではTIAプロジェクトにPasswordを追加するかを設定できます。
こちらはSiemensのエンジニアリングツールやHMI以外でもPLCにアクセスできるかを設定できます。
次はアクセスレベルを設定します。
すべての設定を再確認し、Finishで完了します。
Download and Install GSDML
Profinetネットワークを構築するにはGSDML Fileの入手が必要です。下記のLinkからGSDML FileをDownloadしてください。
Options>Manage general Station description files(GSD)をクリックします。
GSDMLの管理画面が表示され、…ボタンをクリックします。
先程DownloadされたGSDML Folderを選びましょう。
Done!GSDML Fileが見つかりました。InstallでGSDML Fileをインストールします。
Done!
Add MURRELEKTRONIK IO LINK Device
次はMURRELEKTRONIKのIO-Linkデバイスを追加するためDevice & Networksをクリックします。
Other field devices>MURRELEKTRONIK>IMPACT67 Pro>V1.0>54630…をDropします。
MURRELEKTRONIKのIO-Link Masterが追加されました。
Configure Profinet Network
次はNot Assigned のところをクリックし、PLC_1.PROFINET interface_1を選択し、S71200とPROFINETで繋がります。
Done!
IP Address
Show address labelsをクリックします。
各デバイスのIPアドレスが表示され、アプリケーションに合わせて設定しましょう。
Device Name
PROFINETネットワークではDevice nameが大事で、MURRELEKTRONIKのIO−Link Masterをクリックします。
Properties>PROFINET>Ethernet address>PROFINETでDevice nameを設定しましょう。
Assign Device Name
もし実機とすでに接続されている場合、いまから直接MURRELEKTRONIKのIO-Link MasterのDevice nameを割り付けることができます。デバイスを右クリック>Assign device nameをクリックします。
Assign PROFINET device nameの画面が表示されます。
Update listで現在ネットワークにあるPROFINETデバイスを検索でき、”Assign name”でデバイス名を振り分けましょう。
Configure Port
次はMURRELEKTRONIKデバイスの各PORTを構築するため、デバイスをダブルクリックします。
こちらはPortの構築画面になります。
Port X0
PortX0はMURRELEKTRONIK社の設定可能な16入出力IOLINK HUB 59719と接続しています。
Slot1 X0に、CatalogからSubmodule>MURRELEKTRONIK IO-Link devices>Digital hubs+PQI>59719を追加し、I address とQ addressを設定してください。
Port X1
PortX1のPin2・Pin4にもデジタル入力と接続しています。
Slot1 X1に、CatalogからSubmodule>Generic IO-Link Deviecs>SIO Module>Standard digitial Inputを追加し、I address を設定してください。
Port X2
PortX2は空きPortになっています。
Slot1 X2に、CatalogからSubmodule>Generic IO-Link Deviecs>Deactivatedを追加してください。
Port X3
PortX3はMURRELEKTRONIK社の設定可能なアナログ入力>IOLINK変換器と接続し、アナログ入力はEUROSWITC社のESL0120200E1 4-20mAのレベルセンサーになります。
Slot1 X3に、CatalogからSubmodule>MURRELEKTRONIK IO-Link devices>Analog Input Converter+PQI>500x-00501-1300001 …を追加し、I address を設定してください。
Process data lower limit・Upper LimitとDevice Functionを設定しましょう。今回は4…20mAの変換機能に設定します。
Port X4
PortX4はCONTRINEX社のIOLINKセンサー IDWE-M12MM-NMS-A0と接続します。
Slot1 X4に、CatalogからSubmodule>Generic IO-Link Deviecs>Generic Input and output devices+PQI>IO-Link In/Out 04/02 Bytes+PQIを追加し、I address とQ Address を設定してください。
Generic Input and output devices+PQI>IO-Link In/Out 04/02 Bytes+PQIを設定する理由は、CONTRINEX社のIDWE-M12MM-NMS-A0は4Bytesの入力と1Bytesの出力 IO-Linkデータがあるからです。
Port X5
PortX5はデジタル出力と接続します。
Slot1 X5に、CatalogからSubmodule>Generic IO-Link Deviecs>SIO Module>Standard digitial Outputを追加し、Q address を設定してください。
Port X6
PortX6はOMRON社のIOLINKセンサー E3AS-HL500L-MNと接続します。
Slot1 X6に、CatalogからSubmodule>Generic IO-Link Deviecs>Generic Input and output devices+PQI>IO-Link In/Out 04/02 Bytes+PQIを追加し、I address とQ Address を設定してください。
Generic Input and output devices+PQI>IO-Link In/Out 04/02 Bytes+PQIを設定する理由は、OMRON社のE3AS-HL500L-MNは4Bytesの入力と1Bytesの出力 IO-Linkデータがあるからです。
Port X7
PortX4はTURCK社のIOLINKセンサー BN1F360V-QR20-IOLX3-H1141と接続します。
Slot1 X7に、CatalogからSubmodule>Generic IO-Link Deviecs>Generic Input and output devices+PQI>IO-Link In/Out 08/02 Bytes+PQIを追加し、I address とQ Address を設定してください。
Generic Input and output devices+PQI>IO-Link In/Out 04/02 Bytes+PQIを設定する理由は、TURCK社のBNF-360V-QR2-IOLX3-H1141は8Bytesの入力と1Bytesの出力 IO-Linkデータがあるからです。
Option Slot
Option SlotにWeb server機能を追加します。
Clock Tags
PLC>System and clock memoryでSystem Memory BitやClock Memory Bitを追加します。
Tags
アドレスに合わせてIQ Tagsを定義します。
Program
Data Unit Type
DUT_Contrinex _IDWE_M12MM-NMS_A0_IN_Byte0
こちらはContrinex社のIDWE_M12MM-NMS_A0センサー Byte0の構造体です。
DUT_Contrinex _IDWE_M12MM-NMS_A0
こちらはContrinex社のIDWE_M12MM-NMS_A0センサー の構造体で、Byte0のBool StatusだけではなくScale Value・Measure Valueも含まれています。
DUT_EUROSwitch_LevelSeneor
こちらはEUROSwitch のレベルセンサーの構造体になります。
MURRELEKTRONIK社でアナログ入力からIOLINK変換されたデータを4-20mAのアナログ入力値とレベル値をまとめる構造体になります。
DUT_Murr_IOLinkMaster_PQI
こちらはMURRELEKTRONIK社のProfinet IOLINK MasterでPortをIOLINK Portとして使用するとき、最後の1BytesのPQI構造体になります。(2Bytesがありますが、2Byte目は1Byte目の反転データだけなので、ここで定義はしません)
DUT_Murr_IOLINKHUB_59719_IN_Bytes2_3
こちらはMURRELEKTRONIKのIO-Link HUB Byte2/Byte3のデータです。Byte2/3はE0タイプのみで、今回使用した59719は適用しません。
DUT_Murr_IOLINKHUB_59719_IN
こちらはMURRELEKTRONIKのIO-Link HUBデータをまとめた構造体になります。
DUT_Murr_Submodule 1_SIO_PortBase_Pin
こちらはMURRELEKTRONIK社のProfinet IOLINK MasterでPORTがSIO(Standard Input/Output)として設定した場合に使用する構造体になります。
DUT_OMRON_E3AS_HL500LMN_IN_Status
こちらはオムロンのIOLINKデバイス E3AS_HL500LMN 3Byte目のStatusをまとめる構造体になります。
DUT_OMRON_E3AS_HL5000LMN_IN
こちらはオムロン社のE3AS_HL500LMNセンサー の構造体で、Byte3のBool StatusだけではなくDetectValue Output ・LightIntensityLevelも含まれています。
DUT_RawArray_Length2
こちらは2Btyesの配列構造体でProcess Inputデータ(%I)をまとめて定義します。
DUT_RawArray_Length4
こちらは4Btyesの配列構造体でProcess Inputデータ(%I)をまとめて定義します。
DUT_RawArray_Length8
こちらは8Btyesの配列構造体でProcess Inputデータ(%I)をまとめて定義します。
DUT_TURCK_BN1F360V_QR20_IOLX3-H1141_IN
こちらはTURCKのBN1F360V-QR20-IOL3-H1141の入力データを纏めた構造体です。
DUT_TURCK_BN1F360V_QR20_IOLX3-H1141_OUT
こちらはTURCKのBN1F360V-QR20-IOL3-H1141の出力データを纏めた構造体です。
Function Block
FB_Contrinex _IDWE_M12MM-NMS_A0
こちらはContrinex社のIOLink デバイス IDWE-M12MM-NMS-A0の生データを変換するFunction Blockになります。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Byte3のBit0はContrinex社の IDWE-M12MM-NMS-A0 のOSS1出力になります。
Network2
Byte3のBit1はContrinex社の IDWE-M12MM-NMS-A0 のOSS2出力になります。
Network3
Byte3のBit2はContrinex社の IDWE-M12MM-NMS-A0 のTSS1出力になります。
Network4
Byte3のBit3はContrinex社の IDWE-M12MM-NMS-A0 のSSC1出力になります。
Network5
Byte3のBit4はContrinex社の IDWE-M12MM-NMS-A0 のSSC2出力になります。
Network6
Byte3のBit5はContrinex社の IDWE-M12MM-NMS-A0 のALR2出力になります。
Network7
Byte3のBit6はContrinex社の IDWE-M12MM-NMS-A0 のALR3出力になります。
Network8
Byte3のBit7はContrinex社の IDWE-M12MM-NMS-A0 のALR1出力になります。
Network9
Byte2はContrinex社の IDWE-M12MM-NMS-A0 のScaleValueになります。
Network10
Byte0とByte1はContrinex社の IDWE-M12MM-NMS-A0 のMeasure Valueになります。
FB_EUROSwitch_LevelSeneor
こちらのEUROSWITCH社のレベルセンサーは、MURRELEKTRONIK社と接続してるアナログ入力>IOLINK変換機から取得したIOデバイスの生データを変換するFunction Blockになります。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Network1ではMURRELEKTRONIK社から取得した4-20mAに変換した値をSWAPします。
Network2
Network2は先ほど変換した値を4-20mAと0-100%のレベル値に変換します。
Network3
Network3は先程演算した結果をFunction Blockに出力します。
FB_Murr_IOLINKDevices_PQI
こちらはMURRELEKTRONIK社のIOLink Masterに付属してる(最後の2Bytes)Port診断情報です。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Network1はSCATTER関数を使用し、Byteデータを構造体に一括転送します。
Network2
Network2はBit0値をNewParに出力します。
Network3
Network3はBit3値をSubstDevに出力します。
Network4
Network4はBit4値をPortActiveに出力します。
Network5
Network5はBit5値をDevComに出力します。
Network6
Network6はBit6値をDevErrに出力します。
Network7
Network7はBit7値をPQに出力します。
FB_Murr_IOLINKHUB_59719
こちらはMURRELEKTRONIK社のIOLink HubデータやPQI情報を取り出します(59719はE0タイプでないので適用できませんが、一応作りました)。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Network1は0Byte目と1Byte目のデータを内部変数Wordにまとめて転送します。
Network2
Network2はSCATTER関数を使用しWordデータを構造体に一括転送します。
Network3
Network3はByte3のBit0値をErrorAtPowerSupplyに転送します。
Network4
Network4はByte3のBit1値をErrorAtTempatureに転送します。
Network5
Network5はByte3のBit2値をErrorAtInOutyに転送します。
Network6
Network6はByte3のBit3・Bit4・Bit5・Bit6値をまとめてDIAに転送します。
Network7
Network7はByte3のBit7値をGlobalStatusに転送します。
Network8
Network8はByte4値をDeviceIdentificationに転送します。
Network9
Network9はGATHER関数を使用し構造体のデータをまとめてWordに転送します。
Network10
Network11はWordのByte0・Byte1値を出力データに再転送します。
FB_TURCK_BN1F360V_QR20_IOLX3_H1141
こちらはTURCK社のIOLink デバイス BN1F360V-QR20-IOLX3-H1141の生データを変換するFunction Blockになります。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Network1ではByte0とByte1 SWAPを反転Process Dataに転送します。
Network2
Network2ではByte2とByte3 SWAPしProcess Dataに転送します。
Network3
Network3ではByte4をScale変数に転送します。
Network4
Network4ではByte5をVendorSpecific変数に転送します。
FB_OMRON_E3AS_HL5000LMN
こちらはOMRON社のE3AS-3AS-HL500-MN IOデバイスの生データを変換するFunction Blockになります。
Interface
こちらはFunction BlockのInterfaceになります。
Network1
Byte0とByte1をSWAPしDetectValueOutput値として出力します。
Network2
Btye2はIntensityLevel値になります。
Network3
Byte3のBit0はOMRON社のE3AS-3AS-HL500-MN のControlOutput1になります。
Network4
Byte3のBit1はOMRON社のE3AS-3AS-HL500-MN のControlOutput2になります。
Network5
Byte3のBit2はOMRON社のE3AS-3AS-HL500-MN のInstablilityAlarmになります。
Network6
Byte3のBit4はOMRON社のE3AS-3AS-HL500-MN のInsufficinetErrorになります。
Network7
Byte3のBit6はOMRON社のE3AS-3AS-HL500-MN のWarningになります。
Network8
Byte3のBit7はOMRON社のE3AS-3AS-HL500-MN のErrorになります。
FB_Murr
Interface
こちらはFB_MurrのFunction Blockになります。MURRELEKTRONIKのIOLINK Masterと接続8つのPortのデバイスや各PortのPQIを取得します。
Network1
Network1ではMURRELEKTRONIKのSIO(標準IO)として設定されたPortの入力(X1Pin4)を読み、その入力がTrueになると出力(X5Pin4)をTrueにします。
Network2
Network2ではMURRELEKTRONIK社の16点設定可能のIOLink Hub 59719と接続されている入力(X2Pin4・X2Pin2)を読み取り、X2Pin4がTrueであれば1Hzで出力をON/OFF(X3Pin2繰り返します。X2Pin2Trueの場合は出力をずっとONにします(X3Pin2)。
Network3
Network3ではMURRELEKTRONIK社のアナログ>IOLINK変換機を使用し、EUROSWITCHの4-20mAアナログ入力をIOLINKデータに変換し、DBに転送します。
Network4
Network4ではContrinex IDWE−M12MM-NMS-A0のIOLINKデータ変換し、DBに転送します。
Network5
Network5ではOMRON E3AS-HL500L-MNのIOLINKをデータ変換し、DBに転送します。
Network6
Network6ではTURCKの BN1F360V-QR20-IOLX3-H1141のIOLINKデータ変換し、DBに転送します。
DB
DB_MurrIOLINK_Data
こちらのDBでは各PortのデータをStructとして纏めます。
OB1
最後はOB1でFB_Murrを呼び出せばOkです。
Result
From IOLINK Tools
MURRELEKTRONIKのIO-Link ToolsからIO-Link Masterを確認します。”Search Master”をクリックします。
Done!
IO-Link Masterを右クリックし、Assignボタンをクリックします。
IO-Link Masterがプロジェクトに追加されました。
次はIODD FileをツールにImportします。
PathのFieldでIODD Fileが格納されたFolderを設定しましょう。
必要なIODD Fileを選び>Importします。
今度はGo OnlineでIO-Link Masterと接続します。
Yesで進みます。
次はCheck DeviceボタンをクリックしOnline プロジェクトと比較します。
Takeover devices into engineering をクリックし、データをOffline プロジェクトにDownloadします。
Done!
場合によっては、IO-LinkデバイスのパラメータをUploadする必要もあります。
”Upload from device”をクリックします。
Done!
今回の記事ではContrinex社のSensorのパラメータをもう少し深く見てみます。
ALR1/ALR2/ALR3ではIOLINKの出力Bit ALR1/ALR2/ALR3に対応しています。
SSC1とSSC2はSSC1とSSC2の出力に対応します。
SSC1が10より高いであればSSC1がTrueに出力します。
SSC2が5より高いであればSSC2がTrueに出力します。
Process Data Tabで各IO-Link デバイスの入力・出力を確認できます。
From TIA
次はSiemensのTIAツールからIO-Link Masterの状態を確認します。
現在MURRELEKTRONIKのIO-LINK Masterには緑CHECK MARKがついており、S7-1200とMURRELEKTRONIKのIO-Link Masterが通信しています。
各Slotにも問題ありません。
こちらの動画はContrinex社のIDWE‐M12MM‐NMS‐A0と連携する動画です。
Siemens.Connect with murrelektronik PN And Contrinex IOLINK Devices IDWE‐M12MM‐NMS‐A0
こちらの動画はMURRELEKTRONIK 社のアナログ>IOLINK変換機と連携する動画です。
Siemens.Connect with murrelektronik PN And murrelektronik IOLINK Analog Converter
こちらの動画はmurrelektronik 社のIOLink HUB 59719入力と連携する動画です。
Siemens.Connect with murrelektronik PN And murrelektronik IOLINK HUB 59719 INPUT
こちらの動画はMURRELEKTRONIK社のIOLink HUB 59719出力と連携する動画です。
Siemens.Connect with murrelektronik PN And murrelektronik IOLINK HUB 59719 OUTPUT
こちらの動画はMURRELEKTRONIK社のIOLink Master SIOと連携する動画です。
Siemens.Connect with murrelektronik PN And murrelektronik IOLINK SIO
こちらの動画はTURCK社のBN1F360V‐QR20‐IOLX3 H1141と連携する動画です。
Siemens.Connect with murrelektronik PN And TURCK IOLINK Device BN1F360V‐QR20‐IOLX3 H1141
こちらの動画はOMRON のE3AS‐HL500LMNと連携する動画です。
Siemens.Connect with murrelektronik PN And OMRON IOLINK Device E3AS‐HL500LMN
Download
こちらのLinkから今回のプロジェクトをDownloadできます。
https://github.com/soup01Threes/Siemens/blob/main/TestingMurr.zap18