Phoenix Contact SPLC1000を使用する第3話です。今回はSiemensのS71212FCをF-HOSTとして立ち上げ、SPLC1000をF-DevicesとしてProfisafe通信します。
SPLC1000は4Wordの安全データ入出力データを提供しています。
さ、始めよう!
Reference Link
Trips About Safety Program
Influence of the safety program’s cycle time
安全プログラムのサイクルタイムが長いと、安全機能の応答時間も遅くなり、標準ユーザプログラムの処理時間は長くなります。でも安全プログラムのサイクルタイムが短いと、安全機能の応答時間は早くなりますが、逆に標準ユーザプログラムの処理できる時間は短くなります。
下図のように、黄色は安全プログラムのサイクルタイムで、灰色なのは標準ユーザプログラムです。先程説明した通り、Case1の場合はF-Cycleは10msなので、標準ユーザプログラムの処理時間が少なくなります。逆にCase3の場合は、F-Cycleは30msなので、標準ユーザプログラムの処理時間が長くなります。
そして優先順位の高い編成ブロック ( 例えば、サイクリック割込み OB やモーションコントロール OB)に入ったり、安全プログラムを図のように中断できることに注意してください。安全プログラムが中断されないように注意しましょう。
PROFIsafe address types
Profisafe Addressは、F-I/O を一意にアドレスし、IP アドレスのような番号だとおもってください。そしてProfisafe AddressにはType1とType2があります。
そのPROFIsafe Addressは必ず一意でなければ なりません。工場セクションのネットワーク化が進むと、個別にPrROFIsafe Address設定する場合、正確に計画する必要がありま す。
Type1
- PROFIsafe Addressの一意性は Fdestination Addressによってのみ保証されます。
- Fdestination Addressは、ネットワークとCPU全体で一意でなければならない。
- Safety Summaryでは、すべてのF-CPUのFdestination範囲が重複しないことを確認する必要があります。
- Fdestination Addressと Fsource addressは、安全プログラムの CRC に含まれる。
Type2
- PROFIsafe Addressの一意性は、Fsource Addressと F-destination Addressを組み合わせることで保証されます。
- F destination Addressは CPU 全体でユニークで なければならず、同じネットワーク内の PROFIsafe Address Type1の他のすべてのF-destination Addressと異なる必要があります。
- F-CPUやF-I/Oに使用されるF-destinationは、ネットワーク全体で一意でなければならない。
- Fdestination Addressと Fsource addressは、安全プログラムの CRC に含まれる。
F-change history(Siemens TIA Only)
F-change Hostoryは、標準的なユーザープログラムの変更履歴と同様に機能し、プロジェクトツリーのCommon data>LogsからF-CPUごとに1つのF-change historyが作成されます。
F-change history機能では、下記の情報が記録されています。
- F-collective signature
- User name
- Compile time stamp
- Safety ProgramのTimeStamp
- Compiled F-blocks with signature and time stamp
この機能を使用することによって、
- CRCのオンラインとオフラインのステータスを比較することにより、最後の変更がDownloadされたことを確認できます。
- マルチユーザプロジェクトでは、どのユーザが安全プログラムを変更したか、またはダウンロードしたかを追跡できます。
- CPUとPG/PCがオンライン接続されていない状態でのオンライン/オフラインの対照
Call sequence of the blocks
次はSafety プログラムを作成するときBlocksの呼び出し順番です。以下の説明はあくまでも推奨だけで、CPUは常に最新の値を使用してると保証できます。
Sequence 1.RCVDP
F-CPU間のデータを受信します。
Sequence 2.ACK_GL
Fモジュール/Fチャンネルのエラー確認や再統合を制御する。
Sequence 3.Sensor
入力データを整理する。
Sequence 4.OperationMode
装置の操作モードを評価する。
Sequence 5.Logic
装置の制御プログラムや計算を行う。
Sequence 6.Actuators
安全出力を制御する。
Sequence 7.SENDDP
他のF-CPUにデータを送信する。
Jumps in the safety program
standard user programでは、あるNetworkから別のNetworkへのJump関数(またラベルへのJump関数)やブロックからのReturnは、単純なプログラム分岐でも、各Blockのサイクルで再計算され、なおかつCPUからなにも保護はありませんますね。
例えばEMCによるメモリ・エラーが原因で、”false “条件にもかかわらずジャンプが実行されるかどうかのチェックは行われません。
ですが、Safety Programではこのようなプログラム作法が禁止されます。Safey Programが正しいルートで実行されていることを常に保証しなければならない。
このため、Safety プログラムは論理計算の結果はTrue・Falseを完全に計算する必要があります。
安全プログラムで使用するジャンプの数が多ければ多いほど、コントローラの性能に与える影響は大きくなります。
Download GSD File
下記のLinkからAXCF3152のGSDML FileをDownloadします。
Implementation
Siemens Side
Enable Safety Function
S71200Fの安全機能を有効にするため、あなたのPLC>Device Configurationを開きます。
General>Fail-safeからF-activationのCheckboxを入れ、安全機能を有効にします。
CPUの安全機能が有効になると、F-parametersが設定できるようになります。
Install GSD File
Phoenxic Contact PLCNEXTのGSD Fileをインストールするため、Options>Manage general station description files(GSDをクリックします。
GSD Fileの管理画面が表示されました。
…ボタンをクリックします。
先程PhoenixContact HPからDownloadされたGSDML Fileを選択します。
Done!
InstallボタンでGSDML Fileをインストールします。
Done!
TIAがGSDML ライブラリを更新します。
Check the GSDML
ではGSDML FileがImportされたかをCheckしましょう。
Project>Devices & Networksをクリックします。
Hardware catalogからAXCF 3152が見えるはずです。
Add Device
CatalogからAXCF 3152をNetworkに追加しましょう。
Done!AXCF 3152が追加されました。
Assign Profinet
AXCF 3152を今回のTutorialで使用するCPU 1212FCと繋がりるため、Not assignedをクリックし、Profinet Interfaceを選択します。
Done!
Configure IP
次はAXC-F-3152のIPアドレスを設定するため、Network Viewから目ICONをクリックします。
Network上の各デバイスのIPが表示されています。
IPを直接クリックすると設定の変更が可能です。
Done!このIPアドレスは実機のPLCNEXT AXCF 3152に合わせてください。
Configure Slots
次はAXCF 3152の各Slot設定します。
SPLC1000の安全データをProfisafeで交換するためOptionsからFDEVを挿入しましょう。
Done!4 Wordの安全入出力データが追加されました。
実際FDEV のDescriptionからにも該当するSlotの情報を確認できます。
IQ Address
I address とQ Address FieldでIOアドレス番地を変更しましょう。
今回は600から使用します。
FEDV Slotが追加されたら、AXC-F-3152のICONにFail-Safeのマークが追加され、つまり、AXC-F-3152はProfisafe通信があると示しています。
Device Name
Profinet通信ではDevie Nameの正しい設定が必要で、TIAからAccessible Devicesをクリックします。
Type of the PG/PC interfaceをPN/IEを選択し、PG/PC Intefaceは同じネットワークで接続してるPCのNetwork カードを設定、”Start Search”ボタンでデバイスを検索します。
Done!AXCF 3152が見つかりました。DeviceのFieldでaxcf3152-pnd-lan3という文字が表示され、この文字列は実にAXCF 3152のデバイス名です。
念のため、PLCNEXT Engineeringからも確認していきましょう。
Project TreeにあるPLC Objectを開きます。
Name of stationで現在AXCF 3152のデバイス名を確認できます。
このデバイス名をTIAプロジェクトにあるAXCF 3152>PROFINET Interface>Ethernet address>PROFINETに入力します。
まず”Generate PROFINET device name automatically”のChecboxを外します。
PROFINET device name欄が入力できるようになります。
先程確認したデバイス名を入力しましょう。
Tags
Configurationが完成したら、今度はTagsを作成します。
PLC tags>Tag Tableを作ります。
先程FDEVで定義したIO番地に合わせて、入出力を定義しましょう。
Program
最後は検証用のSafetyプログラムを作成するため、Program blocks>Main_Safety_RTG1を開きます。
こちらは今回Siemens側の検証プログラムです。
Network1
QW600を周期で加算しProfisafe通信が成立してることを確認します。
Network2
PLCNEXT AXCF 3152の入力データIW602から受け取った数値をそのままQW602にFeedbackします。
Network3
PLCNEXT AXCF 3152の入力データIW604から受け取った数値をそのままQW604にFeedbackします。
Network4
PLCNEXT AXCF 3152の入力データIW606から受け取った数値をそのままQW606にFeedbackします。
Network5
AXCF 3152がリセット必要な場合は自動リセットを行います。
Download
最後はプロジェクトをS71212FCにDownloadするため、TIAから”Download to device”をクリックします。
Loadで進みます。
Done!Start ModuleでCPUをRun Modeにしましょう。
PLCNEXT Side
Siemens側の準備が終わったら今度はPLCNEXT側を構築します。
F-Devices Data
先程TIAから4 Wordの安全入力・出力データがありますね。実際PLCNEXTプロジェクトにどこあるかというと、Safety PLCの項目をクリックしてください。
Data ListにTabを開くと、FDEV_IN0…のTagsがありまして、こちらのTagsはSPLC1000がF-devicesとしてF-Hostと通信するとき、交換する安全データ領域です。
Safety Program
次は検証用のSafety プログラムを作成するため、S_Mainを開きます。
こちらはPLCNEXT側の検証プログラムです。
SAFEWORD_TO_SAFEBYTES
こちらのSafety Function Blockを使用すれば、SAFEWORDの変数を2つのSAFETBYESに変換することができます。
Network2
こちらは固定値を安全出力データByte2/Byte3に書き込みます。
Network3
こちらは固定値を安全出力データByte4/Byte5に書き込みます。
Network4
こちらは固定値を安全出力データByte6/Byte7に書き込みます。
Result
プロジェクトをAXCF 3152にDownloadしS71200をRun Modeにすると、SPLC1000のP/C LEDも緑点灯になります。
TIAからもAXCF 3152というF Deviceが認識できました。
AXCF 3152から送信した安全データはS71200が受信しました。
そしてSiemens側から送信したData FeedbackとCounterも受信できました。
Download
こちらのLinkからAXCF 3152のプロジェクトとSiemensのTIAプロジェクトを一括でDownloadできます。
https://github.com/soup01Threes/PLCNEXT/blob/main/SPLC1000_Project2_ConnectWithS71200.rar