SCADA/HMIコンテナ DDEは、DDE通信におけるサーバ機能を持ち、DDEクライアント機能を有するユーザーアプリケーション(DDEクライアント)に対するアクセシビリティをRTCDに展開します。
DDE通信では3つのパラメータ「アプリケーション名」「トピック名」「アイテム名」を使用して通信を行います。DDEコンテナではRT-edgeの「タグ名」をDDEの「アイテム名」として扱います。
DDEクライアントを実行する環境にRT-edgeを導入することで、システム内のサービスコンテナが提供する様々なタグデータを仮想的な入出力デバイスとして取り扱うことが可能となります。
構成要素
コンポーネント |
設定値 |
DDE Client Application |
DDEクライアント機能を有するユーザーアプリケーションです。 |
EgDDEsvr |
SCADA/HMIコンテナ DDE (DDEサーバ)に含まれるソフトウェアコンポーネントです。
Edgeコンテナ設定ファイル(XML)を読み込み、DDEクライアント機能を有するユーザーアプリケーションに対するアクセシビリティをRTCDに展開します。
|
Edgeコンテナ設定情報(ECI) |
EgDDEsvr動作パラメータを含む設定情報 |
Windowsのメリットを生かした通信
DDEはWindowsが提供するアプリケーションソフト間でデータ交換を提供する機能です。Windows上で動作するRT-edge DDEコンテナだからこそ、収集したデータや情報をそのままDDEに対応するアプリケーションや、Excelに送信することが可能です。
様々な接続方式対応
タグデータの読込タイミングはDDEクライアントとの接続方式により異なります。DDEコンテナでは、コールドリンク、ホットリンクに対応しています。
SCADA/HMIコンテナ DDEにおけるRTCD設定には、DDEクライアントアプリケーションとRTCDとの接続設定が含まれます。プロパティ設定にはアプリケーション名・トピック名の指定など、SCADA/HMIコンテナ DDE (DDEサーバ)に特化した設定が含まれます。
DDEクライアントのデータをRTCDに公開 |
ローカルタグ生成 |
DDEクライアントアプリケーションデータの入出力先として、RTCDにタグを定義する。 |
SCADA/HMIコンテナ DDE では、DDEクライアントからの要求によりタグデータの入出力方向を決定し、アクセスします。従ってローカルタグの生成のみで他の設定は必要ありません。
タグの生成
SCADA/HMIコンテナ DDE 用ECI(Edgeコンテナ設定情報)に、外部サービスコンテナが生成するタグ名称と重複しない、一意のタグを定義します。タグの名称(Tag Name="~”)がDDE通信における「アイテム名」となり、データ取得元、データ宛先を示す情報となります。
DDEクライアントアプリケーション側では、タグのデータ取得元または宛先のアイテム名に、上記で定義したタグ名を指定します。
これにより、DDEクライアントアプリケーションの該当データはタグを経由し、外部サービスコンテナ・Edgeアプリケーションに対して公開されます。
DDE通信では3つのパラメータ「アプリケーション名」「トピック名」「アイテム名」を使用して通信を行います。アイテム名は上記の通りタグ名称となり、アプリケーション名とトピック名はプロパティタグにて指定します。
プロパティタグ
設定 |
Tag名 |
デフォルト値 |
内容 |
アプリケーション名 |
SERVICE.{0}.AppName |
{0}※1 |
DDE通信接続時のアプリケーション名(サーバー名) |
トピック名 |
SERVICE.{0}.TopicName |
TagValue |
DDE通信接続時のトピック名 |
※1 未指定の場合は、実行ファイル名が適用されます。{0}にはサービス名の文字列が入ります。
1) アプリケーション名・トピック名の設定
DDEクライアントアプリケーションとデータ交換に使用するアプリケーション名・トピック名をプロパティタグで設定します。
上記ではアプリケーション名を「EgDDEsvr」、トピック名を「TEST」に設定しています。
インスタンス毎にユニークアプリケーション名、またはトピック名を設定してください。
2) DDEクライアントアプリケーションの設定
DDEクライアントアプリケーションにて、上記で設定したアプリケーション名、トピック名と、入出力先となるアイテム名を設定します。アイテム名は、タグ名を指定します。サンプルでは以下の2種類のタグを使用します。
設定方法はクライアントアプリケーションごとに異なります。
以下に例として、ExcelとFA-Panelを使用して設定するパターンを説明します。
ExcelをDDEクライアントとして使用する場合
Excel VBAによりDDE通信を扱うことが可能です。
以下にExcelファイルをDDEクライアントアプリケーションとして作成し、UI_INタグから読み込んだ値をセルに表示、またはセルに入力した値をUI_OUTタグに書き込む例を説明します。
本項目で作成するExcelシートでは以下の機能を実装します:
1) Requestボタン押下時、UI_INタグから読み込んだ値をB4セルに表示
2) Pokeボタン押下時、B10セルの値をUI_OUTに書き込み
各ボタン押下時に実行されるマクロは、VBAで以下のように実装されています:
<Requestボタン押下時の処理>
<Pokeボタン押下時の処理>
※DDEInitiateの引数で渡すアプリケーション名・トピック名を、ECI設定の内容と合わせる必要があります。
FA-panelをDDEクライアントとして使用する場合
下記の例では、Roboticsware社製「FA-panel」で開発する画面アプリケーションにて、タグ(UI_IN)から取得した値をラベルに表示する手順を説明します。
1) サーバファイルの編集
下記はFA-Panel Editorにて、新規にプロジェクト・クライアントファイル・サーバファイルを生成し、ラベルコントロールを配置した状態です。ツリーのサーバファイルを右クリックし「サーバを開く(エディットモード)」にて編集を行います。
2) DDEユニットの追加
開いたFA-Panel Server画面にて、ツリーのTag-Driverにユニットを追加します。
ドライバ一覧: ネットワーク-DDE-DDE(CF_TEXT)サーバ
3) DDEユニットの設定
追加したユニットのプロパティ-通信設定から、アプリケーション名・トピック名・接続方法(コールドリンク・ホットリンク)を設定します。
アプリケーション名・トピック名はEgDDEsvrの設定に合わせます。
4) フォルダの追加・設定
ユニットにフォルダを追加し、フォルダのプロパティから値の更新周期を設定します。
5) FA-Panelタグの追加・設定
フォルダにFA-Panelタグを追加し、プロパティ-通信設定-アイテム名を設定します。
アイテム名には、入出力を行うRT-edgeタグの名称を設定します。今回の例では、アイテム名はUI_INとします。
6) FA-Panelタグとコントロールの紐づけ
FA-Panel Editorにてラベルコントロールを右クリックし、プロパティ-基本設定-テキストの右側のリンクアイコンからバインドウィンドウを開きます。
タグ欄には5)で作成したFA-Panelタグを入力します。これにより、本ラベルにはUI_INタグから読み込まれた値が表示されるようになります。