手順2VB.NETの基本構築

<< Click to Display Table of Contents >>

マニュアル > サーバ作成ガイド > インターフェース編 > OPCインターフェース > VisualBasic.NETからのOPC接続 >

手順2VB.NETの基本構築

手順2 VB.NETの基本構築

VB.NET側の基本的な構築内容について説明します。

尚、以下は概要のみの説明となっているため、詳細はサンプルと見比べながら確認してください。

 

 

hint

本項目で利用する「OPCDAAuto.dll」は、Panel Serverをインストールすることによって、VB.NETなどから参照できるようになります。

 

 

ライブラリの参照設定

 

OPCサーバとの接続は「OPCDAAuto.dll」を使用するため、ライブラリの参照設定を行う必要があります。

 

1.「プロジェクト」-「参照の追加」を選択する

 

c_interface_0203

 

2.「COM」から「OPC DA Automation Wrapper」を選択する

 

c_interface_0204

 

リストにない場合は、「参照」から以下のDLLを直接参照してください。

 

C:\Program Files (x86)\Common Files\Roboticsware\Ver6\opc\OPCDAAuto.dll
 

c_interface_0205

 

 

3.「表示」-「オブジェクトブラウザ」を選択する
 

c_interface_0206

 

4.OPCAutomationのライブラリが参照され、公開されているインターフェイスの一覧が表示されることを確認する

 

c_interface_0207

 

 

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()