<< Click to Display Table of Contents >> マニュアル > サーバ作成ガイド > インターフェース編 > OPCインターフェース > VisualBasic.NETからのOPC接続 > 手順2VB.NETの基本構築 |
手順2 VB.NETの基本構築
VB.NET側の基本的な構築内容について説明します。
尚、以下は概要のみの説明となっているため、詳細はサンプルと見比べながら確認してください。
本項目で利用する「OPCDAAuto.dll」は、Panel Serverをインストールすることによって、VB.NETなどから参照できるようになります。 |
ライブラリの参照設定
OPCサーバとの接続は「OPCDAAuto.dll」を使用するため、ライブラリの参照設定を行う必要があります。
1.「プロジェクト」-「参照の追加」を選択する
2.「COM」から「OPC DA Automation Wrapper」を選択する
リストにない場合は、「参照」から以下のDLLを直接参照してください。
C:\Program Files (x86)\Common Files\Roboticsware\Ver6\opc\OPCDAAuto.dll
3.「表示」-「オブジェクトブラウザ」を選択する
4.OPCAutomationのライブラリが参照され、公開されているインターフェイスの一覧が表示されることを確認する
OPCオブジェクトの作成
Visual BasicからOPCサーバにアクセスするためにはOPCオートメーションインターフェイスを使用します。
主なインターフェイスは、以下の4つです。
•サーバーインターフェイス
•グループコレクションインターフェイス
•アイテムコレクションインターフェイス
•ブラウザーインターフェイス
ここでは、サーバー、グループ、アイテムのオプジェクトを取得、作成する方法について説明します。
具体的には、OPCサーバーとの接続確立、グループの生成、アイテムの追加を行っていきます。
1.オートメーション用プロパティを用意する
各種定数と、OPCオートメーションオブジェクトを格納するプロパティを宣言します。プロパティのタイプは、OPCオートメーションのクラスを指定します。
Private mvServer As OPCAutomation.OPCServer Private mvGroups As OPCAutomation.OPCGroups Private mvItems As OPCAutomation.OPCItems Private mvCHandles(mcItemCount) As Integer Private mvSHandles As Array = Nothing Private mvReadTxId As Integer Private mvReadCancelId As Integer Private mvWriteTxId As Integer Private mvWriteCancelId As Integer Private WithEvents mvGroup As OPCAutomation.OPCGroup |
タイプ |
プロパティ名 |
意味 |
OPCServer |
mvServer |
OPCサーバーの接続に使用する。 |
OPCGroup |
mvGroups |
OPCグループの生成に使用する。 |
OPCitems |
mvItems |
OPCアイテムの登録に使用する。 |
futeger |
mvCHandles(Nitems) |
OPCクライアントがアイテムを識別するハンドル。 |
Array |
mvSHandles |
OPCサーバーがアイテムを識別するハンドル。 |
OPCGroup |
mvGroup |
OPCグループの設定に使用する |
2.OPCサーバとの接続
「OPCAutomation.OPCServer」クラスのインスタンスを生成し、生成したオブジェクトにConnectメソッドを発行します。
Private Function FnConnect(ByVal vProgId As String, Optional ByVal vNode As Object = Nothing) Try mvServer = New OPCAutomation.OPCServer mvServer.Connect(vProgId, vNode)
3.グループの追加
OPCグループのオブジェクトにAddメソッドを発行し、グループを追加します。合わせてプロパティを指定します。
ここでは、以降で非同期方式を行うため、lsSubscribedプロパティにTrueを指定します。
Private Function FnAddGroup() Try 'AddGroup mvGroups = mvServer.OPCGroups mvGroup = mvGroups.Add(mvGroupName) 'Property Set mvGroup.IsActive = False mvGroup.IsSubscribed = True mvGroup.UpdateRate = CInt(txtUpdateRate.Text)
4.アイテムの追加
OPCアイテムのオブジェクトにAddメソッドを発行し、アイテムを追加します。
ここでは固定のアイテム(U01.F01.T01~U01.F01.T04)を登録しますが、実際にはユーザの指定や設定ファイルを元にアイテム登録を行います。
Private Function FnAddItem() Try 'AddItem mvItems = mvGroup.OPCItems Dim Errors As Array = Nothing mvItems.AddItems(mcItemCount, mvItemName, mvCHandles, mvSHandles, Errors)
5.OPCサーバとの切断
OPCアプリケーションの終了時に、接続を切断する必要があります。
OPCサーバ側は、OPCアプリケーションが終了したことが分からないため、必ず切断処理を行います。
Private Function FnDisconnect() Try ' Delete items and groups,Server disconnect If mvItems IsNot Nothing And mvSHandles IsNot Nothing Then Dim vErrors As Array = Nothing mvItems.Remove(mcItemCount, mvSHandles, vErrors) End If If mvGroups IsNot Nothing Then mvGroups.Remove(mvGroupName) End If If mvServer IsNot Nothing Then mvServer.Disconnect() End If 'Property Initialize mvSHandles = Nothing mvItems = Nothing mvGroup = Nothing mvGroups = Nothing mvServer = Nothing GC.Collect()