Получить OPCItem из ClientHandles в событии DataChange - OPCAutomation.dll - PullRequest
0 голосов
/ 25 мая 2018

Можно ли получить OPCItem из группы, используя значение ClientHandle?

Псевдо-пример:

Dim Server As OPCServer
Dim Groups As OPCGroups
Dim WithEvents Group1 as OPCGroup
Dim ItemGroup as OPCItems
Dim Item as OPCItem

Private Sub Form1_Load(sender as Object, e as EventArgs) Handles MyBase.Load
    Server.Connect("MyServer")
    Group1 = New OPCGroup()
    Group1.Name = "Group1"
    Group1.IsSubscribed = True
    Group1.OPCItems.Add("Item1", 1)
    Server.OPCGroups.Add(Group1)
End Sub

Private Sub Group1_DataChange(TransactionID As Integer, NumItems As Integer, ByRef ClientHandles As Array, ByRef ItemValues As Array, ByRef Qualities As Array, ByRef TimeStamps As Array) Handles Group1.DataChange

Dim Browser as OPCBrowser = Server.CreateBrowser()
Browser.ShowBranches()
Browser.DataType = vbInteger
Browser.ShowLeafs()

Dim qualityValue as Integer
For q As Integer = 1 To Qualities.Length
    qualityValue = Qualities.GetValue(n)
    If qualityValue = 192 Then
        'HERE is where I want to get the OPCItem by using the ClientHandles
        'I can use the ClientHandle to get the Value, but I'd also like to get the ItemID to do validation against.

        Dim itemClientHandle as Integer = Convert.ToInt32(ClientHandles.GetValue(n))
        Dim itemValueByClientHandle as String = ItemValues.GetValue(n).ToString()

    End If
Next

'It is possible to use the OPCBrowser to get the Item Names but how do I correlate the two?
    Dim itemNames as New List(Of String)
    For n As Integer = 1 To OPCBrowser.Count
        itemNames.Add(OPCBrowser.Item(i))
    Next
' Do More Stuff
End Sub

Существует запрос на расширение существующего клиентского приложения, который должен быть приостановлен, когдазначение отправляется от клиента на OPC-сервер и ожидает переключения битового тега, как указание на завершение процесса.Эта часть построена;однако в группе есть несколько элементов (тегов), и должен быть способ определения правильного значения битов, которое было изменено.

...