この記事ではPhoenxic Contact社が最近発売を開始したAXL E IOL SDI8 SDO4 2A M12 のIO-Link Over Profisafe モジュールとSiemens PLCのセットアップや特徴を1から説明します。
さ、はじめよう!
AXL E IOL SDI8 SDO4 2A M12 L?
Phoenix Contact社のAXL E IOL SDI8 SDO4 2A M12 L モジュールは、Axioline E 製品の安全な入出力デバイスで、保護等級IP65/IP67に準拠したフィールドでの使用ができます。このモジュールは PROFIsafe システムでの使用でき、なおかつ
このモジュールは 8 つの安全なデジタル入力と 4 つの安全デジタル出力を備えています。
Layout
こちらはAXL E IOL SDI8 SDO4 2A M12 LのLayoutです。
X31 PWR Port
X31は電源PortでM12オスのL Codeになります。
X21 IO-Link port
X31はIO-Link PortでM12オスのA Codeになります。
X01..X04 Safe Inputs Port
X01…X04は安全入力PortでM12メスのA Codeになります。
X05..X08 Safe Inputs Port
X05…X08は安全出力PortでM12メスのA Codeになります。
Setting the safety address
AXL E IOL SDI8 SDO4 2A M12 Lのセーフティアドレス設定方法は2つあります。
- ControllerのFBを経由してセーフティアドレス割り当て
- AXL E ADDRESSPLUGのアドレスプラグを使用したアドレスの割り当てます。それはFBから使用してセーフティアドレスを書き込んだ後に可能です。
Via FB
FB経由の場合、Siemens S7 ControllerからPhoenix Contactが提供しているライブラリをImportし、F-Addressに書き込みます。
注意するのは、Address plugがインストールされてない場合は、アドレスは不揮発性としてモジュールに保存されます。
Address plugがインストールされている場合は、アドレスはモジュールに保存されません。
Via the address plug
AXL E ADDRESSPLUG を使用したデバイスを交換するときは簡単ですが、Address Plugを使用する前、FB経由でAddressを書き込む必要がありますので。
Safe digital inputs
- 2チャンネル割り当ての場合:4つの2チャンネル入力
- For 1-channel assignment: eight 1-channel inputs
Safe digital outputs
- 2チャンネル割り当ての場合:4つの2チャンネル出力
- 1チャンネル割り当ての場合:4つの1チャンネル力
LED
詳しくは取説を参考してください。
- COM=IO-LINK通信状態
- RDY=モジュールの電源状態
- FS=モジュールのFail Safety状態
- P=安全通信状態
- SD=安全アプリケーションの診断状態
Safe state
モジュールの視点では、安全状態というのは
- セーフコントローラへのProcess Inputデータを0に送信
- 出力の無電圧状態
になります。
Why?
安全状態は以下の場合に遷移します。
Operating state
モジュールが正常に動作してる状態で、入出力は “1 “または “0 “の状態になる。ちなみに状態 “0 “は安全状態です。
Error detection in I/O devices
エラー検知は入力・出力にわかれています。
Inputs
入力でエラーが検出された場合、その入力が安全状態に切り替え(つまり0)になります。
Outputs
出力でエラーが検出されると、この出力は無効の安全状態(つまり0)になります。
What kind of Error?
モジュールのパラメータ設定により下記のエラーを検知することができます。
- 入出力の短絡および交差回路
- 出力の過負荷
- クロック出力の過負荷または短絡
Device Error
エラー時の動作時間に左右されます。注意するのは、エラー状態では、内部モジュールテストは実行されなくなり、エラーの蓄積時間によって安全な状態が終了する可能性がある。
(モジュールがエラー状態になった場合は、72時間以内に評価、承認、またはエラーを取り除くことが必要です。)
Serious errors
安全機能を失うもしくは悪影響を及ぼす重大なエラーは、次のような場合に発生します。
- モジュール全体が安全状態になる。
- モジュールの FS LED が常時点灯する。
エラー時の動作時間に左右されます。注意するのは、エラー状態では、内部モジュールテストは実行されなくなり、エラーの蓄積時間によって安全な状態が終了する可能性がある。
(モジュールがエラー状態になった場合は、72時間以内に評価、承認、またはエラーを取り除くことが必要です。)
Parameterization errors
モジュールに受け入れないパラメータが設定する場合になります。
Safety-related system time
Input
安全要求時の入力の処理時間 tIN は、パラメータのフィルタ時間 tFilter とファームウェアの処理時間 tFW からの和になります。
Output
安全要求時の出力 tOUT のシャットダウン時間は、内部処理時間 3.5 ms とパラメータのスイッチオフ遅延時間 tdelay からの和になります。
Process data words
Input
Output
Function Block
PRSF_AXL_E
このFunction Blockは、AXL E IOL PROFIsafe モジュールに新しい F-Address を設定し、接続されたモジュールにエラーが発生した場合に診断情報を収集できます。
VAR_INPUT
Variable Name | Type | Descritpion |
xActivate | BOOL | True=Function Blockを有効します |
iPort | INT | IO Link MasterのPort番号 |
IOLD_HWAddr | HW_ANY | モジュールのHardware-identifier(後ほどで説明します) |
IOLM_HWAddr | HW_ANY | IO-Link MasterのHardware-identifier(後ほどで説明します) |
diCAP | DINT | Client Access Point(AXL F IOL8 2H・AXL SE IOL4 iの場合は0にしてください) |
wFAddr | WORD | IO-Link デバイスに書き込む Profisafe F Address |
xAccept | BOOL | 立ち上げでProfisafe IO-LinkデバイスにProfisafe F Addressを書き込む |
xErrorAck | BOOL | 立ち上げで保留された診断メッセージをクリアする |
VAR_OUTPUT
Variable Name | Type | Descritpion |
wDevFAddr | WORD | 接続されたモジュールの現在のF Address |
strDevSerial | STRING | 接続されたモジュールのシリアル番号 |
xDiagAvailable | BOOL | True= 診断情報あり |
stDiagState | Structure | FBに関する詳細の診断データ |
stDiagState.iLfd | UINT | Fault番号 |
stDiagState.iPrio | UINT | 故障の優先順位 |
stDiagState.bChannel | BYTE | チャンネル |
stDiagState.wCode | WORD | エラーコード |
stDiagState.FunctionGroup | STRING[8] | 診断情報のFunction Group |
stDiagState.dwAddValue | DWORD | 詳細な診断情報のためのエラーコード |
stDiagState.TextLength | UINT | 診断テキストのバイト数 |
stDiagState.Text | STRING[100] | 診断テキスト |
udtDiag | UDT | FB自体の診断データが格納 |
udtDiag.wDiagCode | WORD | FB自体の診断データコード |
udtDiag.wAddDiagCode | WORD | wDiagCodeの診断追加情報 |
udtDiag.xError | BOOL | 1=FB内部エラー |
udtDiag.iState | INT | FBの現在内部状態 |
udtDiag.IOL_CallDiag | PRSF_UDT_IOCALL | IO_LINK_DEVICE の入出力に関する情報が格納されています |
VAR_INOUT
Variable Name | Type | Descritpion |
udtCom | UDT | Profinetアラームに関する情報が格納されます(ハードウェアアドレスやIO-LINKデバイスの通信管理) |
udtCom.arr_i_Com Array | Array [0..255] of UINT | 保留中の通信要求があるモジュールのハードウェアアドレスの格納場所 |
udtCom.arr_HW | Array [0..8] ofHW_ANY | 接続されたモジュールのハードウェアアドレスの格納場所で、各要素は IO-Link マスタの接続ポートを表しています |
udtCom.arr_HW_Diag | Array [0..8] of Bool | 特定のポートで認識されたProfinetアラームに関する情報の格納場所 |
Error
DiagCode | Description |
0000hex | FB無効に中 |
8000hex | FBが有効中、コマンドまたはアラームイベントを待ち |
8100hex | FB初期化中 |
8200hex | FBが新しいF Addressを書き込み中 |
8300hex | FBが診断情報を読み込み中 |
8300hex | FBが診断情報をAckする |
C301hex | 複数の通信エラーが発生し、HW-Addressや配線のチエックが必要です |
Implementation
今回使用するのはS71212FC・AXL F BK PN TPS とAXL SE IOL4の組わせてAXL E IOL SDI8 SDO4 2A M12 をアプリケーションに統合します。
Siemens Side
Add New Project
TIAを起動し、New Projectで新規プロジェクトを作成します。
Project Nameを入力しCreateで進みます。
Done!新しいPLCが追加されました。
Add New PLC
次はS71212FCを追加するためAdd New Deviceをクリックします。
今回の記事で使用するCPU1212FCを選び>OkでCPUを追加しましょう。
Done!S71212FCが追加されました。
Security Settings
TIAはCPUに関するセキュリティ設定画面が自動的に表示されます。
Passwordが必要でなければ”Protects the PLC Configuration data from the TIA Protal project and the PLC”のCheckboxを外し、Next>>で進みます。
S71200をアクセスできるデバイスを制限したくないなら”Only allow securce PG/PC and HMI Communication”のCheck外し、Next>>で進みましょう。
パスワードなしのアクセス権限を設定し、Next>>で進みます。
Done!
Change PLC IP
S71212のIPアドレスを変更するためDevices & NetworksをクリックしNetwork Viewに切り替えます。
Show address labelsのボタンをクリックします。
各デバイスのIPアドレスが表示され、直接クリックしIPを変更しましょう。
Install GSDML
次はAXL F BK PN TPSのPROFINET Coupler GSDML Fileを下記のLinkからDownloadします。
https://www.phoenixcontact.com/en-pc/products/bus-coupler-axl-f-bk-pn-tps-2403869
ライセンスに同意しDownloadします。
このようなZIP FileがDownloadされました。
Zipを解凍してください。
GSDML FileをTIA にインストールします。
Options>Manage general station description file(GSD)をクリックします。
GSD Fileのインストール画面が表示されます。
…のボタンをクリックします。
さきほどPhoenix Contact HPからDownloadしたGSDML Fileを選択します。
GSDML Fileを選び>InstallでGSDML FileをTIAにインストールしましょう。
Configure Coupler
次はPROFINET ネットワークを構築します。
Add New
Hardware catalogからAXL F BK PN TPSのPhoenix Contact PROFINET カプラーをネットワークに追加しましょう。
InformationにあるVersion Fieldから別VersionのGSDMLを変更できます。
Done!
Connect to Profinet Network
Phoenix ContactのAXL F BK PN TPSをS71200とPROFINET 接続を設定するため、Not assignedのところをクリックします。
Done!S71200とAXL F BK PN TPSがPROFINETで繋がりました。
Change IP
実際のアプリケーションに合わせてIPアドレスを設定しましょう。
Add Slot
次はAXL F BK PN TPS PROFINET カプラーのSlotを構築します。
TIAがDevice viewに切り替わります。
AXL SEのCatalogからSmart Elementをカプラーの各Slotに追加できます。
Add AOL4
今回の記事で使用する主役の一つ AXL SE IOL4をSlotに追加します。
Done!
Configure SubSlot
今度はAXL SE IOL4のSubslotを編集します。AXL E IOL SDI8 SDO4 2A M12 LがAXL SE IOL4のPort1にインストールされていますので、2つ目のSubSlotを編集します。
2つ目のSubSlotを削除します。
次はCatalog>Submodules>Phoenix Contact>IOL PROFIsafeからAXL E IOL SDI8 SDO4 2A M12 Lを追加しましょう。
Done!
Module Parameters
実際のアプリエンジニアに合わせて各Portの設定をしてください。
Profisafe Parameters
AXL E IOL SDI8 SDO4 2A M12 LのPROFIsafeパラメータを設定します。
PROFIsafeの設定画面が表示され、F_Dest_AddとF_iPar_CRCを設定していただければOkです。
F_Dest_Add
F_Dest_Addは同じのPROFIsafe ネットワークにかぶらなければOkです。今回はF_Dest_Add=9に設定します。
F_iParCRC
次はF_iParCRCを設定します。そのF_iParCRCは該当するSafetyモジュールのパラメータが変更されていないことを証明するときのCRC値です。
Installation Tools
iParCRC値を計算するためPhoenix Contact HPからCRCの計算ツールをDownloadします。
https://www.phoenixcontact.com/en-pc/products/safety-module-axl-e-iol-sdi8-sdo4-2a-m12-l-1185380
インストールFileを起動し、言語を選択し>Okで進みます。
しばらくまちます…
Nextで進みます。
ライセンスを同意し、Nextで進みます。
インストール Locationを設定し、Nextで進みます。
Installボタンをクリックし進みます。
しばらくまちます…
Done!
Get CRC
AXL E IOL SDI8 SDO4 2A M12 Lを右クリック>Start device toolで先程InstallしたiCRC計算ツールを起動します。
Startでツールを起動します。
いまAXL E IOL SDI8 SDO4 2A M12 Lに設定された安全パラメータが表示され、それらのパラメータが正しいかを再Checkしましょう。
I have checked all device parameters They are correctly set!のCheckboxを入れます。
F_iPar_CRCのHex値とDec値が表示されます。
TIAではHEX値を入力する必要がありますので、Hex値のとなりにあるCopy to clipboardをクリックしHex値をCopyします。
Fill in CRC
F_iPar_CRCのFieldに先程CopyしたCRC値を貼り付けましょう。
Program
次はF-Addressの書き込みプログラムを作成します。
Download library
Phoenix ContactのHPからAXL E IOL SDI8 SDO4 2A M12 LのライブラリをDownloadします。
ライセンスを同意しライブラリをDownloadします。
7z FileがDownloadされました。
ライブラリを解凍してください。
Add Library
TIAでPhoenix ContactからDownloadされたライブラリをImportするため、Libaries>Global libraries>Open libraryします。
Open global libraryの画面でFile of TypeをCompressed libraryに選択します。
zal13を選び>Openします。
ライブラリの解凍先を設定します。
zal13はTIA V13 SP1から作られ、いま私が持ってるのはTIA V18なので、ライブラリのアップグレードが必要で、Upgradeをクリックしましょう。
Done!ライブラリがImportされました。
Import to Project
ライブラリの中にあるMaster copiesをプロジェクトに追加しましょう。
まずDatatypesをPLC data types Folderに追加します。
次はAXL E FB・Dependencies・UserDBのFolderにあるFBとDBをProgram Blocks Folderを追加しましょう。
Done!ライブラリが追加されました。
Add OB30
Program Blocks >Add New blockで定周期OBを追加します。
OB>Cyclice interruptをセラビ、Cyclice time(ms)を100に設定します(つまり定周期100msで実行するようになります)。
次はOB30を開きます。
先程追加したFB PRSF_AXL_Eを追加します。
IOLD_HWAddr
IOLD_HWAddr値は下図のように参考にしてください。
IOLM_HWAddr
IOLM_HWAddr値は下図のように参考にしてください。
Port
Port番号は実際のAXL E IOL SDI8 SDO4 2A M12 Lモジュールと接続されているPort番号に合わせてください。
Safety Program
AXL E IOL SDI8 SDO4 2A M12 LはPROFIsafeモジュールなので、Main_Safety_RTG1に安全プログラムを作成します。
Network1
デバイスをFail-Safe状態か復旧するのFunction Block ACK_GLを追加します。
Network2
AXL E IOL SDI8 SDO4 2A M12 のFail Safe状態から復旧するためのACKなしでもOKと設定します。
Network3
Safety Function Block ESTOP1を追加し、AXL E IOL SDI8 SDO4 2A M12のPortと接続されている緊急停止 安全入力と紐付け、安全出力は緊急停止のLAMPと紐つけます。
Assign Devices Name
PROFINET通信なので、AXL FBK PN TPS PROFINETカプラーのDevice name設定も忘れずに。AXL FBK PN TPSを右クリック>Assign device Nameします。
PG/PC Interfaceを選び>Update Listでデバイスを検索し、Assign nameボタンからDevice nameをAssignしてください。
Download
最後はプロジェクトをCPUにDownloadします。
Result
Set F_Dest_Add
最初はAXL E IOL SDI8 SDO4 2A M12 のF-Addressを設定するため、xActivateをTrueにします。
Function BlockとAXL E IOL SDI8 SDO4 2A M12 が通信成功であれば、現在AXL E IOL SDI8 SDO4 2A M12 のF-Address・シリアル番号と診断情報などが返してくれます。
次はxSetFAddrをTrueにしてF_Dest_Addrを書き込みます。
View in TIA
TIAのNetwork ViewからもPROFINETネットワークエラーなしです。
各Slotにも認識しエラーなしです!
LED Status
こちらは正常のとき、AXL E IOL SDI8 SDO4 2A M12 LのLED Statusです。
こちらの動画からも確認できます。
Operation
下記のLinkから実際の操作を確認できます。
Download Project
こちらのLinkからプロジェクトをDownloadしてください。
https://github.com/soup01Threes/Siemens/blob/main/Project_IOLINKSafety.zap18