ソフトウェアPLCコンテナ INplcは、INplcに対するアクセシビリティをRTCDに展開します。
INplcコントローラに対し、RT-edgeを導入することで、システム内のサービスコンテナが提供する様々なタグデータを仮想的な入出力デバイスとして取り扱い、ラダー言語などIEC-61135に準拠したプログラムロジックによるPLCシステム開発が可能となります。また既存のINplcコントローラシステムに対しRT-edge(ソフトウェアPLCコンテナ INplc)を導入することで、システム構造に影響を与えることなく、制御データを外部公開することもできます。
構成要素
コンポーネント |
設定値 |
INplc Software Package |
INplcソフトウェアパッケージ。
ユーザが開発する制御ロジックを実行するPLCエンジン(PLCカーネル)、および調達サービスを含むソフトウェアパッケージです。
|
egINplc |
ソフトウェアPLC コンテナに含まれるソフトウェアコンポーネントです。
ECI(RT-edgeコンテナ設定情報:XML形式ファイル)を読み込み、PLCカーネル上の各種入出力領域(I/Q/Mエリア)へのアクセシビリティをRTCDに展開します。
|
Edgeコンテナ設定情報(ECI) |
PLCカーネル上の各種入出力領域とRT-edge上のRTCD空間のマッピング情報やegINplc動作パラメータを含む設定情報。 |
ソフトウェアPLCコンテナ INplcが適用される実行環境は、主にPLCコントローラ上となります。ソフトウェアPLCコンテナ INplcを利用した開発のアプローチは、RT-edgeの適用段階により大きく二つの方法に分類されます。
1. INplcコントローラ構成と同時にRT-edgeを導入しシステム開発を行う
RT-edgeを同時に導入することで、RT-edgeの提供するRTCDに対するI/O制御を行うPLCコントローラを開発することができます。様々なサービスコンテナを組み合わせた仮想入出力レジスタ空間としてRTCDを構築後にPLC制御プログラムの構築ができるため、上位側からの指示トリガーや出力情報を仮想的デバイスとして取り扱うことも可能となります。
<RTCD仮想入出力デバイス設定>
RTCDを仮想的入出力デバイスとしてPLCカーネルの入出力領域にマッピングし、制御ロジックを開発する方法です。
本方法によりPLCカーネル上の入出力領域(I/Qエリア)にRTCDを割り当て、PLCプログラムの周期に同期した入出力を行うことが可能です。
ソフトウェアPLCコンテナINplcは、Edgeコンテナ設定情報を読み込み、RTCDにおけるタグと、PLCカーネルの持つ入力領域、出力領域にデータを展開するI/O Driver間でマッピング設定を行います。
INplcソフトウェア上では、IO Driver設定から、RTCD上のタグメモリ情報をINplc上のI/O空間に割り当てます。
例)
IIO-ECAT (I-I/OコンテナEtherCAT)入出力データをINplcの入出力領域に割り当てる
2. 既存のINplcシステムにRT-edgeを追加導入する
RT-edgeの導入により、INplc制御データをRTCD(Realtime Common Data)に展開できます。既存のシステム構成に影響を与えることなくRTCDのデータの蓄積、分析利用や、WEBサーバーを利用したデータ公開等が可能となります。
<PLC制御データRTCDマップ設定>
既に開発済みのPLCプログラムで利用されている制御データ(変数情報)を、外部システムに公開する準備として、RTCDに展開します。PLCプログラムで参照する変数データは、共有メモリ領域(Mエリア)に格納されています。PLCプログラム内で使用する変数情報から、RTCD上にタグデータコレクションを展開することで、他のRT-edgeサービスコンテナ、WEBサーバーや他のアプリケーションに制御データを公開することができます。
ソフトウェアPLCコンテナ INplcは、Edgeコンテナ設定情報を読み込み、PLCプログラム内で使用される内部変数(Mエリア:共有メモリ領域)と、ソフトウェアPLCコンテナINplcが生成するタグ・コレクションに展開します。
内部変数の共有メモリ領域割り当てのみでPLCロジックの修正は必要ありません。
例)
PLCカーネル内 MエリアのデータをRTCDに展開し、HMI等ユーザーインターフェースプログラムから読み出し、画面出力する。
ソフトウェアPLCコンテナINplcのタグ設定定義には二種類あり、ローカルタグ定義、リンクタグ定義があります。利用用途に応じて設定方法を選択します。
RTCDを仮想入出力 デバイスとする |
リンクタグ生成 + タグ参照 |
RTCDに入出力タグが既に定義されており、PLCソフトウェアの入出力領域に割り付ける。 |
PLC制御データを RTCDに公開 |
ローカルタグ生成 + タグ参照 |
PLC制御データを共有メモリ領域に割り当て、RTCDに定義するタグのデータ取得先として割り当てる。 |
リンクタグとは、RTCD内に存在し公開されているグローバルなタグと同名で構成されたタグで、かつ参照するサービスコンテナ上にもローカルデータをマップする仕組みをもったタグです
1. リンクタグ生成
SERVICE CONTAINER#1がタグTAG1を生成し、データ更新の設定を出力とします。
SERVICE CONTAINER#2は、同名のタグTAG1を生成し、データ更新の設定を入力とします。
二つのコンテナが起動することによりタグがリンクされます。
1) 外部公開タグの把握
RT-edgeオブジェクトブラウザを使用し、外部サービスコンテナがRTCD上に展開するタグ情報を参照します。もしくは、サービスコンテナのECI設定からタグ情報を入手し、リンクするタグ名を取得します。
2) データ取得元とデータ宛先設定
ECI(Edgeコンテナ設定情報:egINplc.xml)の編集
リンクタグに対するデータ取得元、データ宛先を設定します。外部サービスコンテナの提供するタグ情報を入出力情報としてリンクするためには、ソフトウェアPLCコンテナINplc用ECI(Edgeコンテナ設定情報:egINplc.xml)に、リンクするタグを定義し、データ取得元、データ宛先となる要素として、 PLCカーネル内入出力領域(I/Q/M)に割り当てます。
外部サービスコンテナの提供するタグを定義し、タグのデータ取得元、もしくはデータ宛先をPLCカーネル入出力領域に設定します。
これにより、PLCカーネル入出力領域のデータが、リンクタグを経由し、外部サービスコンテナの提供するタグを更新します。
2. ローカルタグ生成
ローカルタグ生成時は外部サービスコンテナの定義するタグを調査する必要はありません。ソフトウェアPLCコンテナINplc内で一意となるタグを定義し、データ取得元、データ宛先の設定を行います。
1) データ取得元とデータ宛先設定
ECI(Edgeコンテナ設定情報:egINplc.xml)の編集
ローカルタグとして定義したタグのデータ取得元、データ宛先を設定します。ソフトウェアPLCコンテナINplc用ECI(Edgeコンテナ設定情報:egINplc.xml)に、タグを定義し、データ取得元、データ宛先となる要素として、 PLCカーネル内入出力領域(I/Q/M)に割り当てます。
ローカルタグを生成し、タグのデータ取得元、もしくはデータ宛先をPLCカーネル入出力領域、もしくは共有メモリ領域に設定します。
3. タグ参照設定
ソフトウェアPLCコンテナINplcでは、生成したリンクタグ、ローカルタグに対する内部参照設定が必要です。本設定により生成したタグに対する入出力方向を定義し、PLCカーネルの入出力領域(I/Qエリア)、共有メモリ領域(Mエリア)とタグデータの更新が行われます。
ここではPLCプログラムを使用して、タグ上に入力データが反省されるまでのサンプルの確認手順を記載します。
サンプルプログラムは以下の動作仕様とします。
① Mエリアの先頭0バイト目の7bit目(%MX3.0.7)を、5秒間隔でON/OFFする
② Mエリアの先頭1バイト目(%MB3.1)の値を取得
タグ設定確認
1) RT-edge配置パスにあるEgINplc.xmlを開きます。
2) サンプルプログラムがON/OFFするメモリはタグ「EgINplc_TestTag_IN」に定義されております。
詳細な定義内容は以下の通りです。
Tagエレメントの定義 |
<Tag Name="EgINplc_TestTag_IN" Type="1" Size="1" Address="%MX3.0.7" Comment="Mエリアの入力"/>
|
解説 |
① Name: EgINplc_TestTag_IN
② Type: ビットのON/OFF確認のため、Boolean型の「1」を設定します。
③ Size: Boolean型の「1」を設定します。
④ Address: PLCプログラムのアドレス指定と同様に「%MX3.0.7」を指定します。
✓ サイズ接頭語: ビットアクセスの為「X」が指定されます。
✓ バイトオフセット: 0バイト目にアクセスする為「0」が指定されます。
✓ ビット指定: 7bit目にアクセスする為「7」を指定します。
⑤ Comment: 任意の文字列を設定します。
|
3) サンプルPLCプログラムが取得するメモリはタグ「EgINplc_TestTag_OUT」に定義されております。
詳細な定義内容は以下の通りです。
Tagエレメントの定義 |
<Tag Name="EgINplc_TestTag_OUT" Type="3" Size="1" Address="%MB3.1" Comment="Mエリアに出力"/>
|
解説 |
⑥ Name: EgINplc_TestTag_OUT
⑦ Type: バイト型変数に読み込まれる為、バイト型の「3」を設定します。
⑧ Size: バイト型の「1」を設定します。
⑨ Address: PLCプログラムのアドレス指定と同様に「%MB3.1」を指定します。
✓ サイズ接頭語: バイトアクセスの為「B」が指定されます。
✓ バイトオフセット: 1バイト目にアクセスする為「1」が指定されます。
✓ ビット指定: ビットアクセスでは無い為、省略されます。
⑩ Comment: 任意の文字列を設定します。
|
タグ参照設定確認
EgINplc_TestTag_IN」「EgINplc_TestTag_OUT」のタグ参照・更新設定が行われていることを確認します。
(RTedge > Services > Service Name=”EgINplc” > [TagRefs_IN] [TagRefs_OUT])
動作の確認
RT-Edge標準のオブジェクトブラウザツールを用いると、Edgeタグの値変化をダイナミックに参照できます。