<< Click to Display Table of Contents >> マニュアル > サーバ作成ガイド > インターフェース編 > DDEインターフェース > VisualBasic.NETからのDDE接続 |
概要
VisualBasic.Netによって開発した独自のDDEクライアントアプリケーションから、FA-ServerのDDEインターフェースに対して、DDE接続するための設定例及び、アプリケーションの作成例について解説します。
ここで紹介する手順としては、大きく分けて以下の3ステップです。
タグ登録設定を行います。 |
|
VB.NETからDDE接続などをする上で必要な定義を行います。 |
|
VB.NETから任意のタイミングでアイテム値の読み書きを行えるようにします。 |
この機能のサンプルは、以下からご利用頂けます。
なお、サンプル及び詳細の説明は、VB.Net2010で行います。
本サンプルはCF_TEXTのみの対応であり、CF_UNICODETEXTには対応していないため注意してください。 |
準備としてタグの登録を行います。ここでは、仮想デバイスのタグを作成します。
1.左側のツリーの「Driver」を右クリックし「ユニット追加」を選択します。
2.「メモリ」の「仮想通信」「仮想デバイス」を選択し、「OK」を押します。
3.「U01」を右クリックし「フォルダ追加」を選択します。
4.「F01」を右クリックし「タグ追加」を選択します。
5.左側のリストから「T01」を右クリックし、「プロパティ」を選択します。
6.「アドレス設定」タブから「04 - D データレジスタ」を選択し、「OK」を押します。
※ここでは、D0000(ワードレジスタ)を数値タグ(整数バイナリ)として設定しています。
7.同様の手順でT02を追加し、タイプに「07 - アスキー」を選択し、以下のように設定を行います。
※ここでは、D0001(自由指定)を文字タグ(アスキー)として設定しています。
VB.NET側の基本的な作成内容について説明します。概要のみの説明となっているため、詳細はサンプルと見比べながら確認してください。
サンプルでは、DDEに関する処理をCommonクラス(Common.vb)に定義しています。一通りの接続から値の読み書きの処理コードを含めております。これからの作成方法では、そのCommonクラスを利用する形での構築方法を記載しています。 |
1.DDEサーバーへのコネクション処理を定義します。
初期処理及びコネクションを行います。初期処理は「SuDdeInit」、コネクションは「FnDdeConnect」で行っています。
'------------------------------------------ ' DDE Start & Connect '------------------------------------------ Private Sub btStart_Click(sender As System.Object, e As System.EventArgs) Handles btStart.Click Dim vAppName As String = txAppName.Text Dim vTopiName As String = txTopiName.Text SuDdeInit(txAppName.Text, txTopiName.Text) mvConv = FnDdeConnect(vAppName, vTopiName) If mvConv = 0 Then MessageBox.Show(vAppName & "/" & vTopiName & vbCrLf & "Connect failure!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If btDisConnect.Enabled = True btRead.Enabled = True btWrite.Enabled = True btStart.Enabled = False End Sub
2.OPCサーバーへのディスコネクション処理を定義します。
ディスコネクションは「FnDdeConnectEnd」で行います。
'------------------------------------------ ' DDE DisConnect '------------------------------------------ Private Sub btDisConnect_Click(sender As System.Object, e As System.EventArgs) Handles btDisConnect.Click FnDdeConnectEnd(mvConv) btDisConnect.Enabled = False btRead.Enabled = False btWrite.Enabled = False btStart.Enabled = True End Sub
任意のタイミングでアイテム値の読み書きを行う方法を紹介します。
読み込み
任意のタイミングでアイテム値の読み込みを行います。読み込みは「FnDdeRequest」で行います。
サンプルではReadボタン押下で値の読み込みが行われます。
'------------------------------------------ ' DDE Read '------------------------------------------ Private Sub btRead_Click(sender As System.Object, e As System.EventArgs) Handles btRead.Click Dim vItemName As String = txItemName1.Text txRead.Text = FnDdeRequest(mvConv, vItemName) End Sub
書き込み
任意のタイミングでアイテム値の書き込みを行います。読み込みは「FnDdePoke」で行います。
サンプルではWriteボタン押下で値の書き込みが行われます。
'------------------------------------------ ' DDE Write '------------------------------------------ Private Sub btWrite_Click(sender As System.Object, e As System.EventArgs) Handles btWrite.Click Dim vItemName As String = txItemName2.Text FnDdePoke(mvConv, vItemName, txWrite.Text) End Sub
Commonクラス(Common.vb)に記述してあるソースコードの中で、重要となるメソッドは以下となります。
|