发布于 2009-01-14 11:49:01
0楼
Private Sub MyOPCGroup_AsyncReadComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date, Errors() As Long)
'写入变量名要与wincc变量匹配,如写入5个匹配上一部分,NumItems=匹配变量数目,引起itemv(ClientHandles())数组操限报错
For ii = 1 To NumItems '子项数目
itemv(ClientHandles(ii)) = ItemValues(ii) '子项值
Next ii
Text1.Text = itemv(ClientHandles(1)) '子项值
Text2.Text = itemv(ClientHandles(2)) '子项值
Text3.Text = itemv(ClientHandles(3)) '子项值
Text4.Text = itemv(ClientHandles(4)) '子项值
Text5.Text = itemv(ClientHandles(5)) '子项值
'Text1.Text = "ok"
End Sub
'Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
'For ii = 1 To NumItems '子项数目
'itemv(ClientHandles(ii)) = ItemValues(ii) '子项值
'Text4.Text = Text4.Text & "--" & ClientHandles(ii)
'Text5.Text = Text5.Text & "--" & NumItems
'Next ii
'End Sub
Private Sub MyOPCGroup_AsyncWriteComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, Errors() As Long)
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
Label1.Caption = Node.FullPath
End Sub
Public Sub Branch(Count As Integer, node1 As Node) '主干以下的读取
Dim x, y As Integer
Dim node2 As Node
Dim node3 As Node
Dim str As String
Dim Count1 As Integer
Dim Count2 As Integer
For x = 1 To Count
Set node2 = TreeView1.Nodes.Add(node1, tvwChild)
str = browser.Item(x)
node2.Text = str
' Check for additional sub branches
browser.MoveDown (str)
browser.ShowBranches
Count1 = browser.Count
'If Count1 > 0 then more sub branches exist, function calls itself
If Count1 > 0 Then Branch Count1, node2
'Check for leafs in this branch
browser.ShowLeafs
Count2 = browser.Count
For y = 1 To Count2
Set node3 = TreeView1.Nodes.Add(node2, tvwChild)
str = browser.Item(y)
node3.Text = str
Next y
browser.MoveUp
browser.ShowBranches
Next x
End Sub
Private Sub FillItems()
On Error GoTo Problems
Dim Count As Integer
Dim Count1 As Integer
Dim Count2 As Integer
Dim node1 As Node
Dim node2 As Node
Dim str As String
Dim Org As Integer
Dim x, y, z As Integer
'Create tree of tags
' If Server Is Nothing Then Exit Sub
Set browser = MyOPCServer.CreateBrowser '定义服务器树形结构
Org = browser.Organization
'Organization is Heirarchical
If Org = 1 Then '一级支数
browser.MoveToRoot
browser.ShowBranches
Count = browser.Count
' If count is > 0 then branches exist
If Count > 0 Then
'For each branch check for sub branches and populate
For x = 1 To Count '一级支数下的读取
'Add the branch
Set node1 = TreeView1.Nodes.Add
str = browser.Item(x) '1级分支
node1.Text = str
' Check for sub branches
browser.MoveDown (str)
browser.ShowBranches
Count1 = browser.Count
'If Count1 > 0 then sub branches exist
If Count1 > 0 Then Branch Count1, node1 '.....
'Check for leafs in this branch
browser.ShowLeafs
Count2 = browser.Count
For y = 1 To Count2 '2级分支
Set node2 = TreeView1.Nodes.Add(node1, tvwChild)
str = browser.Item(y)
node2.Text = str
Next y
browser.MoveUp
browser.ShowBranches
Next x
End If
End If
'Organization is flat
If Org = 2 Then
browser.ShowLeafs
Count = browser.Count
'Just add leafs
For z = 1 To Count
Set node1 = TreeView1.Nodes.Add
str = browser.Item(z)
node1.Text = str
Next z
End If
Problems:
End Sub
Private Sub FillServers()
Dim iz As Integer
On Error GoTo Problems
MousePointer = vbHourglass
Combo1.Clear '组合框清空
Dim Servers As Variant
Set MyOPCServer = New OPCServer '定义服务器名
Servers = MyOPCServer.GetOPCServers("") '服务器组?
Dim lastIndex As Integer
lastIndex = 0
For iz = LBound(Servers) To UBound(Servers) '将服务器名添加到组合框
Combo1.AddItem Servers(iz)
If Servers(iz) = lastServer Then lastIndex = iz - 1
Next iz
Combo1.ListIndex = lastIndex
MousePointer = vbDefault
Exit Sub
Problems:
MousePointer = vbDefault '错误处理程序
If Err.Number <> 0 Then
MsgBox Server.GetErrorString(Err.Number)
End If
End Sub
路漫漫,上下求索