亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? form1.frm

?? OPC通訊測試
?? FRM
?? 第 1 頁 / 共 2 頁
字號:
Private Sub cmdAdvise_Click()
    Call AdviseUnadvise
End Sub

Private Sub cmdAsyncRead_Click()
    Call AsyncRead
End Sub

Private Sub cmdAsyncWrite_Click()
    Call AsyncWrite
End Sub

Private Sub cmdConnect_Click()

    If cmdConnect.Caption = "&Connect" Then
        Call ConnectServer
    Else
        Call DisconnectServer
    End If

End Sub

Private Sub Form_Load()
'獲取opc服務器的名稱,并添加到列表控件中

    Dim opcservers() As OPCAutomation.OPCServer
    Dim ServerNames() As String
    Set MyOPCServer = New OPCServer
    
    ServerNames = MyOPCServer.GetOPCServers()
    
    Dim ServerCount As Integer
    
    For Each element In ServerNames()
        ServerCount = ServerCount + 1
        CmbServer.AddItem element
    Next
    
    If ServerCount = 0 Then TxtState = "No opcserver"
End Sub

Private Sub Form_Unload(Cancel As Integer)

    'always make sure references are closed when shutting application down
    
    On Error Resume Next
    
    'Remove OPC group definition in server
    MyOPCServer.OPCGroups.RemoveAll
    'Drop object reference
    Set MyOPCGroup = Nothing
    'Disconnect from server
    MyOPCServer.Disconnect
    'Drop object reference
    Set MyOPCServer = Nothing
End Sub

Public Sub ConnectServer()

    Dim i As Long
    Dim sRemoteMachine As String
    
    On Error GoTo ErrorHandler
    
    Screen.MousePointer = vbHourglass
    
    If Len(txtMachine) > 0 Then
        txtStatus = "Connecting to OPC Server on " & txtMachine
        Me.Refresh
        sRemoteMachine = txtMachine
        'attempt to connect to remote server
        MyOPCServer.Connect CmbServer.Text, sRemoteMachine
    Else
        txtStatus = "Connecting to local OPC Server ..."
        Me.Refresh
        'attempt to connect to local server
        MyOPCServer.Connect CmbServer.Text
    End If
    
    ' Need to Create an OPC Group
    Set MyOPCGroup = MyOPCServer.OPCGroups.Add("OPCDemo")
    'set default state subscription to capture data changes
    MyOPCGroup.IsSubscribed = True
    'Set group inactive
    MyOPCGroup.IsActive = False
    If Len(txtUpdate) > 0 And IsNumeric(txtUpdate) Then
        MyOPCGroup.UpdateRate = txtUpdate.Text
    Else
        'use default
        MyOPCGroup.UpdateRate = 1000
    End If
    
    cmdConnect.Caption = "&Disconnect"
    txtStatus = "Connected to server"
    ' Enable Add Items button
    cmdAddItems.Enabled = True
    TxtTopic(0).SetFocus
    Screen.MousePointer = vbDefault
Exit Sub

ErrorHandler:
    Screen.MousePointer = vbDefault
    txtStatus = ""
    PostMessage Err.Number
End Sub



Public Sub PostMessage(lError As Long)

    Dim sText As String
    
    Screen.MousePointer = vbDefault
    
    sText = MyOPCServer.GetErrorString(lError)
    If InStr(sText, vbCrLf) Then
        'strip off crlf at end of string
        sText = Left$(sText, Len(sText) - 2)
    End If
    txtStatus = sText
    MsgBox "Runtime error '" & lError & "' (0x" & Hex(lError) & ")" & _
                vbCrLf & vbCrLf & sText, vbInformation
End Sub



Public Sub DisconnectServer()
    
    Dim i As Long

    On Error Resume Next
    
    'Remove OPC group definition in server
    MyOPCServer.OPCGroups.RemoveAll
    'Drop object reference
    Set MyOPCGroup = Nothing
    'Disconnect from server
    MyOPCServer.Disconnect
    
    'Disable all buttons
    cmdAddItems.Enabled = False
    cmdAsyncRead.Enabled = False
    cmdAsyncWrite.Enabled = False
    cmdAdvise.Enabled = False
    
    cmdConnect.Caption = "&Connect"
    txtStatus = "Disconnected from server"
End Sub


Public Function AddOPCItems() As Boolean

    Dim arItemIDs() As String
    Dim arClientHandles() As Long
    Dim arServerHandles() As Long
    Dim arErrors() As Long
    Dim i As Long
    Dim lIndex As Long
    Dim oOPCItem As OPCAutomation.OPCItem
    
    On Error GoTo ErrorHandler
    
    ' Remove existing OPC items if they exist
    If MyOPCGroup.OPCItems.Count Then
        MyOPCGroup.IsActive = False
        Call RemoveOPCItems
    End If
    
    ' Redim arrays to maximum possible size
    ReDim arItemIDs(1 To 4)
    ReDim arClientHandles(1 To 4)
    
    For i = 0 To 3
        If Len(TxtTopic(i)) > 0 And Len(TxtItem(i)) > 0 Then
            lIndex = lIndex + 1
            ' Build array of itemIDs by combining Topic and Item specification
            ' in the form of [<topic>]<item>
            arItemIDs(lIndex) = "[" & TxtTopic(i) & "]" & TxtItem(i)
            arClientHandles(lIndex) = i
        End If
    Next    'i
    
    If lIndex Then
        ' Redim arrays to actual number of items being added
        ReDim Preserve arItemIDs(1 To lIndex)
        ReDim Preserve arClientHandles(1 To lIndex)
        MyOPCGroup.OPCItems.AddItems lIndex, arItemIDs, arClientHandles, arServerHandles, arErrors
        ' Check for errors
        For i = LBound(arErrors) To UBound(arErrors)
            If arErrors(i) <> 0 Then
                txtStatus = GetErrorString(arErrors(i))
            End If
        Next    'i
        If MyOPCGroup.OPCItems.Count Then
'            On Error Resume Next
            If IsNumeric(txtUpdate) Then
                If txtUpdate.Text <> MyOPCGroup.UpdateRate Then
                    ' Change group update rate
                    MyOPCGroup.UpdateRate = txtUpdate.Text
                End If
            Else
                txtUpdate.Text = MyOPCGroup.UpdateRate
            End If
            ' return success
            AddOPCItems = True
        End If
    Else
        txtStatus = "No valid item definitions to add."
    End If
Exit Function

ErrorHandler:
    txtStatus = ""
    PostMessage Err.Number
End Function

Public Sub RemoveOPCItems()

    Dim arServerHandles() As Long
    Dim arErrors() As Long
    Dim i As Long
    Dim lNumitems As Long
    
    On Error GoTo ErrorHandler
    
    ' Remove existing OPC items if they exist
    lNumitems = MyOPCGroup.OPCItems.Count
    ' Dimension array for handles
    ReDim arServerHandles(1 To lNumitems)
    For i = 1 To lNumitems
        arServerHandles(i) = MyOPCGroup.OPCItems(i).ServerHandle
    Next    'i
    MyOPCGroup.OPCItems.Remove lNumitems, arServerHandles, arErrors

Exit Sub

ErrorHandler:
    txtStatus = ""
    PostMessage Err.Number
End Sub

Public Function GetErrorString(lErrCode As Long) As String

    Dim sText As String
    
    On Error Resume Next
    
    sText = MyOPCServer.GetErrorString(lErrCode)
    If InStr(sText, vbCrLf) Then
        'strip off crlf at end of string
        sText = Left$(sText, Len(sText) - 2)
    End If
    GetErrorString = sText
End Function




Public Sub AsyncRead()

' This function demonstrates how to perform an OPC Group Asynchronous Read operation.
' The data is returned in the callback function MyOPCGroup_AsyncReadComplete

    Dim lNumitems As Long
    Dim arHandles() As Long
    Dim arErrors() As Long
    Dim lTransID As Long
    Dim lCancelID As Long
    Dim sText As String
    Dim oOPCItem As RSLinxOPCAutomation.OPCItem
    
    On Error GoTo ErrorHandler
    
    txtStatus = "OPC Group Async Read in progress ..."
    'specify number of elements
    lNumitems = MyOPCGroup.OPCItems.Count
    ' Dimension server handles array
    ReDim arHandles(1 To lNumitems)
    For i = 1 To lNumitems
        'pass in server handles
        arHandles(i) = MyOPCGroup.OPCItems(i).ServerHandle
    Next    'i
    ' perform async read
    MyOPCGroup.AsyncRead lNumitems, arHandles, arErrors, lTransID, lCancelID
    ' check for error in passing parameters to server
    For i = 1 To lNumitems
        If arErrors(i) > 0 Then
            txtStatus = GetErrorString(arErrors(i))
        End If
    Next    'i
Exit Sub

ErrorHandler:
    PostMessage Err.Number
End Sub

Public Sub AsyncWrite()

' This function demonstrates how to perform an OPC Group Asynchronous Write operation.
' Any errors are reported in the callback function MyOPCGroup_AsyncWriteComplete
    
    Dim lNumitems As Long
    Dim arData() As Variant
    Dim arHandles() As Long
    Dim arErrors() As Long
    Dim lTransID As Long
    Dim lCancelID As Long
    Dim sText As String
    Dim i As Long
    
    On Error GoTo ErrorHandler
    
    txtStatus = "OPC Group Async Write operation in progress ..."
    'specify number of elements
    lNumitems = MyOPCGroup.OPCItems.Count
    ' Dimension arrays for item server handles and actual data being passed to server
    ReDim arHandles(1 To lNumitems)
    ReDim arData(1 To lNumitems)
    For i = 1 To lNumitems
        With MyOPCGroup
            'pass in the server handles
            arHandles(i) = .OPCItems(i).ServerHandle
            'pass in the data
            arData(i) = txtData(.OPCItems(i).ClientHandle).Text
        End With
    Next    'i
    'write data to server
    MyOPCGroup.AsyncWrite lNumitems, arHandles, arData, arErrors, lTransID, lCancelID
    For i = 1 To lNumitems
        If arErrors(i) > 0 Then
            txtStatus = GetErrorString(arErrors(i))
        End If
    Next    'i
Exit Sub

ErrorHandler:
    PostMessage Err.Number
End Sub

Public Sub AdviseUnadvise()

    Dim i As Long
    
    If cmdAdvise.Caption = "Advise" Then
        'turn on advise
        MyOPCGroup.IsActive = True
        cmdAdvise.Caption = "Deadvise"
        ' Update Status Text
        txtStatus = "Advise Started"
    Else
        'turn off advise
        MyOPCGroup.IsActive = False
        cmdAdvise.Caption = "Advise"
        ' Update Status Text
        txtStatus = "Advise Stopped"
    End If
End Sub



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)

    Dim sText As String
    Dim i As Long
    
    On Error Resume Next
    
    For i = 1 To NumItems
        If VarType(ItemValues(i)) And vbArray Then
            '/* Convert arrayed items into a string before displaying
            txtData(ClientHandles(i)) = ConvertArrayToString(ItemValues(i))
        Else
            '/* Update display
            txtData(ClientHandles(i)) = ItemValues(i)
        End If
        ' Update Item Quality
        TxtQuality(ClientHandles(i)) = GetQualityString(Qualities(i))
        'Display error information
        txtStatus = GetErrorString(Errors(i))
    Next    'i
End Sub

Private Sub MyOPCGroup_AsyncWriteComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, Errors() As Long)

    Dim i As Long
    
    On Error Resume Next
    
    For i = 1 To NumItems
        If Errors(i) > 0 Then
            'Display error information
            txtStatus = GetErrorString(Errors(i))
        End If
    Next    'i
End Sub

Public Function ConvertArrayToString(vArrayData As Variant) As String

    Dim i As Long
    Dim sTemp As String
    
    '/* Convert array data values into a concatenated string
    For i = LBound(vArrayData) To UBound(vArrayData) - 1
        sTemp = sTemp & vArrayData(i) & ","
    Next
    '/* Add last element
    sTemp = sTemp & vArrayData(i)
    '/* Return concatenated string
    ConvertArrayToString = sTemp
End Function

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女脱光内衣内裤视频久久网站| 亚洲五码中文字幕| 国产麻豆欧美日韩一区| 精品处破学生在线二十三| 亚洲bt欧美bt精品| 91精品国产综合久久香蕉的特点| 污片在线观看一区二区| 91超碰这里只有精品国产| 麻豆精品视频在线观看视频| 欧美精品一区二区三区蜜臀 | 欧美亚一区二区| 亚洲成人综合视频| 精品少妇一区二区三区在线视频| 国产成人在线免费| 一区二区三区四区精品在线视频| 91精品国产高清一区二区三区| 国产电影精品久久禁18| 亚洲一二三区在线观看| 久久尤物电影视频在线观看| 一本久道中文字幕精品亚洲嫩| 爽爽淫人综合网网站| 中文一区在线播放| 正在播放一区二区| 在线观看亚洲成人| jiyouzz国产精品久久| 青青青伊人色综合久久| 一区二区三区四区国产精品| 国产午夜精品久久久久久免费视| 欧美性生活大片视频| 高清国产一区二区三区| 国模无码大尺度一区二区三区| 婷婷综合在线观看| 午夜精品视频一区| 亚洲午夜在线视频| 亚洲国产精品久久艾草纯爱| 国产精品伦理在线| 国产精品久久国产精麻豆99网站 | 国产精品18久久久久久久网站| 奇米色一区二区| 日本不卡的三区四区五区| 日本欧美在线观看| 日欧美一区二区| 老司机一区二区| 国产一区二区在线电影| 不卡免费追剧大全电视剧网站| 国产+成+人+亚洲欧洲自线| 成人av网在线| 欧美日韩一区精品| 日韩一级完整毛片| 亚洲国产精华液网站w| 一区二区三区不卡在线观看| 亚洲成a人片在线不卡一二三区 | 美腿丝袜一区二区三区| 成人永久aaa| 日韩亚洲欧美中文三级| 中日韩免费视频中文字幕| 午夜精品久久久久久| 精品亚洲国产成人av制服丝袜| 精品一区二区三区香蕉蜜桃| 国产不卡高清在线观看视频| 欧美日韩成人在线| 中文字幕不卡的av| 久国产精品韩国三级视频| 99久久综合狠狠综合久久| 欧美精品电影在线播放| 综合婷婷亚洲小说| 国产资源在线一区| 黄色成人免费在线| 国产91高潮流白浆在线麻豆| 狠狠狠色丁香婷婷综合激情| 在线视频中文字幕一区二区| 国产偷国产偷精品高清尤物| 日本不卡的三区四区五区| 日本精品视频一区二区| 亚洲国产精品高清| 国产98色在线|日韩| 亚洲精品在线观看网站| 免费看欧美美女黄的网站| 在线综合+亚洲+欧美中文字幕| 亚洲图片欧美综合| 欧美丝袜丝交足nylons图片| 亚洲综合色网站| 欧美一级片在线看| 极品少妇xxxx精品少妇| 国产午夜亚洲精品羞羞网站| 国产麻豆视频一区| 国产精品久久久久天堂| 99国产精品久| 午夜久久久影院| 26uuu亚洲综合色欧美| 国产乱码一区二区三区| 亚洲美女电影在线| 欧美一区二区精美| 国产宾馆实践打屁股91| 一区二区三区欧美在线观看| 88在线观看91蜜桃国自产| 精久久久久久久久久久| 国产精品美女www爽爽爽| 日本午夜精品一区二区三区电影| 久久久影视传媒| 欧美艳星brazzers| 国产九九视频一区二区三区| 亚洲另类中文字| 国产亚洲自拍一区| 欧美久久一二三四区| 成人av午夜影院| 精品一区二区三区在线观看 | 亚洲成人动漫一区| 亚洲国产经典视频| 久久久电影一区二区三区| 欧美一区二区三区四区久久| 色噜噜狠狠色综合中国| 95精品视频在线| 成人精品高清在线| 国产呦精品一区二区三区网站| 亚洲午夜久久久久| 亚洲福利一区二区三区| 一区二区欧美精品| 亚洲第四色夜色| 一区二区三区日韩在线观看| 亚洲免费av高清| 亚洲综合视频在线观看| 午夜精品成人在线| 日本大胆欧美人术艺术动态| 性做久久久久久久免费看| 日本在线不卡视频| 精品一区二区三区香蕉蜜桃| 国产精品99久久久久久似苏梦涵 | 欧美最猛黑人xxxxx猛交| 色综合久久中文综合久久牛| 色呦呦日韩精品| 色猫猫国产区一区二在线视频| 色婷婷综合久久| 欧美熟乱第一页| 日韩欧美综合一区| 亚洲欧美自拍偷拍| 日本女优在线视频一区二区| 狠狠色丁香婷婷综合久久片| 97se狠狠狠综合亚洲狠狠| gogo大胆日本视频一区| 色综合天天综合网天天狠天天| 欧美一区二区三区在| 久久亚区不卡日本| 国产欧美日韩精品一区| 亚洲欧美色图小说| 亚洲国产精品人人做人人爽| 国产成人综合在线| 51精品秘密在线观看| 国产精品嫩草99a| 日韩精品视频网站| 欧美又粗又大又爽| 日韩理论片网站| 99久精品国产| www激情久久| 亚洲特黄一级片| 午夜精品一区在线观看| 色婷婷综合久久久久中文一区二区| 精品国产91乱码一区二区三区 | 欧美精品一区二| 午夜精品久久久久久不卡8050| 欧美中文字幕不卡| 亚洲最色的网站| 在线视频欧美精品| 亚洲观看高清完整版在线观看| 91浏览器在线视频| 一区二区三区高清不卡| 99久久婷婷国产综合精品| 国产日韩欧美综合一区| 国产sm精品调教视频网站| 久久久久久久久久久久久久久99| 国产精品影音先锋| 亚洲欧美一区二区三区国产精品 | 色94色欧美sute亚洲13| 亚洲视频一区在线| 欧美年轻男男videosbes| 日本人妖一区二区| 国产色91在线| 欧美精品xxxxbbbb| 黑人巨大精品欧美黑白配亚洲| 国产欧美日韩亚州综合| 色综合久久久久综合体桃花网| 五月天一区二区| 欧美激情在线观看视频免费| 欧美日韩在线不卡| 国产99久久久国产精品免费看| 亚洲女爱视频在线| 欧美一区二区三区日韩视频| 国产乱妇无码大片在线观看| 亚洲图片自拍偷拍| 国产精品电影一区二区三区| 日韩视频123| 欧美午夜一区二区三区| 国产麻豆精品在线观看| 久久激情综合网| 午夜精彩视频在线观看不卡| 亚洲欧美福利一区二区| 国产精品美女一区二区三区| 91精品国产综合久久久久久| 色婷婷综合在线| 91黄色激情网站|