OPC BROWSER ITEM程序(VB篇)

来源:互联网 发布:知乎和豆瓣天涯 编辑:程序博客网 时间:2024/06/15 03:05

OPC技术论坛 http://www.opc-china.com OPC服务器,客户程序技术讨论
一、VB新建窗体如下
详见相册OPC技术。
二、引用如下
详见相册OPC技术。
三、代码如下

Dim WithEvents g_Server As OPCServer
Dim g_Browser As OPCBrowser

Dim BrowseFilter As Long

Dim Vt_Filter As Integer
Dim nodX As Node
Dim Value As Variant
Dim FullName As String
Dim Relative As String
Dim i As Integer

 

Private Sub cmbAccessRights_Click()
 Select Case cmbAccessRights.Text
    Case "OPC_ACCESS_WRITE"
      g_Browser.AccessRights = OPCWritable
    Case Else
      g_Browser.AccessRights = OPCReadable
  End Select
End Sub

 

 

Private Sub cmbBrowseFilter_Click()
  Select Case cmbBrowseFilter.Text
    Case "OPC_FLAT"
      BrowseFilter = OPC_FLAT
    Case Else
      BrowseFilter = OPC_BRANCH
 End Select
End Sub

Private Sub cmbVtFilter_Click()
  Select Case cmbVtFilter.Text
    Case "VT_EMPTY"
      g_Browser.DataType = VT_EMPTY
    Case "UINT1"
      g_Browser.DataType = VT_UI1
    Case "UINT2"
      g_Browser.DataType = VT_UI2
    Case "TEXT"
      g_Browser.DataType = VT_BSTR
    Case "BOOLEAN"
      g_Browser.DataType = VT_BOOL
  End Select
End Sub

Private Sub Command1_Click()
 Dim i As Integer
  Dim Key As String
 
  MousePointer = 11 ' Mousepointer as hourclass
 
  Set nodX = Nothing
  TreeView.Nodes.Clear
  Select Case BrowseFilter
    Case OPC_FLAT
      BuildFlat
    Case OPC_BRANCH
      BuildTree
  End Select
 
  MousePointer = 0 ' Normal mousepointer
 
End Sub
'----------------------------------------------------------------------------
' Sub BuildFlat()
' Purpose: show all items
'----------------------------------------------------------------------------
Public Sub BuildFlat()
  Dim Key As String
  Dim Leaf As Variant
 
  g_Browser.MoveToRoot
  g_Browser.ShowLeafs True
  For Each Leaf In g_Browser
    i = i + 1
    Key = "#" & i
    Set nodX = TreeView.Nodes.Add(Null, tvwNext, Key, g_Browser.GetItemID(Leaf))
    DoEvents
  Next Leaf
End Sub

'----------------------------------------------------------------------------
' Sub BuildTree()
' Purpose: recursive building of the tree view
'----------------------------------------------------------------------------
Public Sub BuildTree(Optional Relative As Variant)
  Dim Branch, Leaf As Variant
  Dim Key As String
 
  g_Browser.ShowBranches
  For Each Branch In g_Browser
    i = i + 1
    Key = "#" & i
    Set nodX = TreeView.Nodes.Add(Relative, tvwChild, Key, Branch)
    'Go down to next level
    g_Browser.MoveDown (Branch)
    BuildTree (Key)
    'Go up to next level
    g_Browser.MoveUp
    DoEvents
  Next Branch
 
  g_Browser.ShowLeafs False
  For Each Leaf In g_Browser
    i = i + 1
    Key = "#" & i
    Set nodX = TreeView.Nodes.Add(Relative, tvwChild, Key, g_Browser.GetItemID(Leaf))
  Next Leaf
 
End Sub

Private Sub Command2_Click()
 Set g_Server = Nothing
 Set g_Browser = Nothing
 End
End Sub

Private Sub Form_Load()
 Set g_Server = New OPCServer
  g_Server.Connect ("Matrikon.OPC.Simulation")'OPC SERVER名称
  Set g_Browser = g_Server.CreateBrowser
  cmbVtFilter.Text = "VT_EMPTY"
  cmbVtFilter.AddItem "UINT1"
  cmbVtFilter.AddItem "UINT2"
  cmbVtFilter.AddItem "TEXT"
  cmbVtFilter.AddItem "BOOLEAN"
  cmbVtFilter.AddItem "VT_EMPTY"
  BrowseFilter = OPC_BRANCH
  g_Browser.AccessRights = OPCReadable
  g_Browser.DataType = VT_EMPTY
  TreeView.LineStyle = tvwRootLines  ' Linestyle 1

End Sub

原创粉丝点击