記事「AXC F 2152を使用したコントローラ冗長 – Applicative System Redundancy」で作成したプロジェクトの詳細について説明します。
Applicative System Redundancy(ASR) 、使用機器、構成等の概要については記事「AXC F 2152を使用したコントローラ冗長 – Applicative System Redundancy」をご参照下さい。
コントローラファームウェア・PLCnext Engneerバージョン
AXC F 2152のファームウェアバージョンは2023.0.0 LTS、PLCnext Engineerはバージョン2023.0.1を使用しています。
PLCnext Storeライブラリ「ASR AXC F 2152」
PLCnext Storeのライブラリ「ASR AXC F 2152」に同梱されているサンプルプロジェクトをベースに今回用意した機材に合わせる形でプロジェクトの編集を行います。
ライブラリのダウンロードとサンプルプロジェクトのロード
PLCnext Storeよりライブラリ「ASR AXC F 2152」をダウンロードします。
PLCnext Store LIBRARY ASR AXC F 2152
Documents->Englishフォルダ内にマニュアル(AN_ASR2152_rev06.pdf)
Filesフォルダにライブラリ
Files -> Exampleフォルダにサンプルプロジェクト(ASR2152_16_HF1_Demo__2023-01-18__16-23.pcweax)があります。
サンプルプロジェクト「ASR2152_16_HF1_Demo__2023-01-18__16-23.pcweax」をPLCnext Engineerで開きます。
冗長設定の確認
既に設定されているコントローラ設定を確認します。
プロジェクト構成の変更
今回使用しているコントローラおよびIO機器は以下の通りです。
- コントローラ:AXC F 2152 – 2404267(2台)
- PROFINETバスカプラ:AXL F BK PN TPS – 2403869
- IOモジュール:AXL F DI8/1 DO8/1 – 2701916(2台)
サンプルプロジェクトと今回用意したハードウェア構成は異なっているので、その部分を修正していきます。
PLANT(プロジェクトツリー)内の、今回使用しないバスカプラ及びDIOモジュールを削除します。
IOモジュール AXL F DI8/1 DO8/1を追加します。
プログラム修正(リダンダンシー動作部)
まずは、基本動作に関わる部分のプログラムを修正します。サンプルプロジェクトには
・MainRedundancy
・MainApplication
・MainSystem
・Simulation
というプログラムが存在します。
arrAR_DevListに2台目のバスカプラ’bk2’をセットする部分を削除します。
Signal1を作成する部分のBK2ステータスをTRUEに置き換えます
Signal2を作成する部分のBK2ステータスとORを削除します。
シート右上に存在するローカルIOへの出力部は削除します。
Application program先頭の3つのブロックは不要なので削除します。
サンプルプロジェクトでは以下のような形でリモートIOに運転状態を表示していましたが、この部分を作り替えます。
1st PLCがプライマリとして運転中は、PROFINETバスカプラに接続されている1台目のIOモジュール出力左列の上位3ビットが点灯。最下位ビットはデータ同期が取れている場合に点灯します。
2nd PLCがプライマリとして運転中は、同じIOモジュール出力右側の上位3ビットが点灯。最下位ビットはデータ同期が取れている場合に点灯します。
2台目のIOモジュール出力最下位の2ビットは常時点灯させます。
機器やネットワークの構成に合わせてプログラムを修正します。
2台目のPROFINETバスカプラに関わる部分を削除します。
BK2だけでなくMRPリングポートも併せて修正します。
Line Status部分も修正します
使用しないプログラム(MainSimValues)及びプログラムインスタンスを削除します。
プログラム追加(LED表示部)
PROFINETバスカプラに接続されている2台目のIOモジュール出力上側6ビットを使い、LED点灯位置を回転させるプログラムを作成します。
新規にプログラムを追加します。ここではST言語を使用します。
以下がプログラムです。
新規にタスクを作成しプログラムを割り当てます。
このタスクの動作周期は1000mSec(1秒)なので、このプログラムによるLEDの動作は1秒ごととなります。
HMI画面の作成
本プロジェクトではこのようなHMI画面を作成しており、2台のコントローラの運転状態やデータ同期、ネットワークの接続状況がWeb画面から確認出来るようになっています。この画面作成についても説明します。
xPrimaryがTRUEになっている場合は、このコントローラがプライマリコントローラとして制御を行っている事を示しています。
DO出力に直接HMI Tagを割り付ける事も可能ですが、念のため用意した変数「out_1stPrimary」にコピーします①。その変数「out_1stPrimary」にHMI Tagを追加した上でPLCnext Engineer HMIエディタ画面にセットしたパーツ(画像)②にVisibility ③というDynamicを付与し、そのValiableに先程の変数「out_1stPrimary」をセット。Hide whenに「False」をセットします。この場合、変数「out_1stPrimary」が「False」になった時に②のパーツが消える、という挙動になります。
②のパーツの下にはxBackup側がTRUEとなったパーツ⑤が配置されているので、out_1stPrimaryがFalseになるとこの画像が表示される事になります。このパーツ⑤にDynamicはありません。
xDataSyncOKがFALSEの場合、2台のコントローラ間のデータ同期が取れていない事を示しています。
先程同様パーツに対してDynamicを付与する事で、画面上に同期状態を表現します。ここで参照している変数「xDataSyncOK」は元々プロジェクトに存在しているものを使用しています。
2台目のコントローラと右側スイッチ間に「!」マークがありますが、これはこの間での通信に障害が発生している事を示しています。
ここでもパーツに対してDynamicを付与する事で、画面上にLine statusを表現します。
ここで参照する変数は、先程編集したプログラムMainSystem内Line statusのwLineStatusです。
プロジェクトのダウンロード
PLCnext Engineerを使用しているPCをコントローラに接続し、作成したプロジェクトをコントローラにダウンロードします。今回のシステムでは接続するコントローラが2台存在しますので、接続にあたってコントローラの選択を行います。
TCP/IPが1台目のPLC、TCP/IP Backupが2台目のPLCです。
記事「AXC F 2152を使用したコントローラ冗長 – Applicative System Redundancy」でも触れましたが、接続先コントローラを切り替えた場合、プロジェクトのリビルドを必ず行う必要があります。リビルド後のダウンロードは通常の場合と同様に行っていただけます。
ASRデモシステム用プロジェクト
今回のデモ璣用に修正・作成したプロジェクトファイルは以下のリンクよりダウンロード可能です。
以上です。