⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 browser.frm

📁 使用VB的OPC客户访问的最简单程序,本程序为查找服务器、组、项目的列表程序
💻 FRM
字号:
VERSION 5.00
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "Comctl32.ocx"
Begin VB.Form Form1 
   BackColor       =   &H00C0C0C0&
   Caption         =   "浏览I地址空间例子"
   ClientHeight    =   4770
   ClientLeft      =   165
   ClientTop       =   450
   ClientWidth     =   7230
   BeginProperty Font 
      Name            =   "System"
      Size            =   9.75
      Charset         =   0
      Weight          =   700
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   LinkTopic       =   "Form1"
   ScaleHeight     =   4770
   ScaleWidth      =   7230
   StartUpPosition =   3  'Windows Default
   Begin VB.ComboBox cmbBrowseFilter 
      Height          =   360
      ItemData        =   "Browser.frx":0000
      Left            =   4200
      List            =   "Browser.frx":000A
      TabIndex        =   5
      Text            =   "OPC_BRANCH"
      Top             =   1800
      Width           =   1815
   End
   Begin VB.ComboBox cmbAccessRights 
      Height          =   360
      ItemData        =   "Browser.frx":0024
      Left            =   4200
      List            =   "Browser.frx":002E
      TabIndex        =   1
      Text            =   "OPC_ACCESS_READ"
      Top             =   360
      Width           =   2415
   End
   Begin VB.ComboBox cmbVtFilter 
      Height          =   360
      Left            =   4200
      TabIndex        =   3
      Text            =   "VT_EMPTY"
      Top             =   1080
      Width           =   1815
   End
   Begin VB.CommandButton cmdBrowsing 
      Caption         =   "浏览"
      Height          =   615
      Left            =   4200
      TabIndex        =   6
      Top             =   2400
      Width           =   2415
   End
   Begin VB.CommandButton cmdExit 
      Caption         =   "退出"
      Height          =   615
      Left            =   4200
      TabIndex        =   7
      Top             =   3360
      Width           =   2415
   End
   Begin ComctlLib.TreeView TreeView 
      Height          =   4335
      Left            =   0
      TabIndex        =   8
      Top             =   0
      Width           =   3855
      _ExtentX        =   6800
      _ExtentY        =   7646
      _Version        =   327682
      Style           =   7
      Appearance      =   1
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
   End
   Begin VB.Label LblBrowseFilter 
      Caption         =   "Browse&Filter"
      Height          =   255
      Left            =   4200
      TabIndex        =   4
      Top             =   1560
      Width           =   1455
   End
   Begin VB.Label LblAccessRights 
      Caption         =   "&AccessRights"
      Height          =   255
      Left            =   4200
      TabIndex        =   0
      Top             =   120
      Width           =   1935
   End
   Begin VB.Label LblVtFilter 
      Caption         =   "&VT_Filter"
      Height          =   255
      Left            =   4200
      TabIndex        =   2
      Top             =   840
      Width           =   975
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

'----------------------------------------------------------------------------
'全局变量
'----------------------------------------------------------------------------
Dim WithEvents g_Server As OPCServer
Attribute g_Server.VB_VarHelpID = -1
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 Form_Load()
  Set g_Server = New OPCServer
  g_Server.Connect ("Matrikon.OPC.Simulation") '连接OPC服务器
  Set g_Browser = g_Server.CreateBrowser    '创建OPCBrowser对象
  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
 
End Sub

'----------------------------------------------------------------------------
'  浏览地址空间
'----------------------------------------------------------------------------
Private Sub cmdBrowsing_Click()

  Dim i As Integer
  Dim Key As String
  
  MousePointer = 11
  cmdBrowsing.Enabled = False
  
  Set nodX = Nothing
  TreeView.Nodes.Clear
  Select Case BrowseFilter
    Case OPC_FLAT
      BuildFlat
    Case OPC_BRANCH
      BuildTree
  End Select
  
  MousePointer = 0
  cmdBrowsing.Enabled = True
  
End Sub

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

'----------------------------------------------------------------------------
' Sub BuildFlat()
' 目的: 显示所有Item
'----------------------------------------------------------------------------
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()
' 目的: 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)
    '向下一个分支
    g_Browser.MoveDown (Branch)
    BuildTree (Key)
    '向上一个分支
    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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -