• <cite id="uwv89"></cite>
      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        dongxuan24
        級別: 正式會員
        精華主題: 0
        發帖數量: 31 個
        工控威望: 96 點
        下載積分: 536 分
        在線時間: 6(小時)
        注冊時間: 2010-01-14
        最后登錄: 2012-07-12
        查看dongxuan24的 主題 / 回貼
        樓主  發表于: 2010-08-19 10:46
        Private Sub Combo5_Click()
           Select Case Combo5.Text
             Case "On"
                Instruction = &H11
             Case "Off"
                Instruction = &H10
           End Select
        End Sub

        Private Sub Command1_Click()
           Dim OutByte(0 To 32) As Byte
           Dim Num As Double
           Dim Num2 As String
           Dim L
           Dim Lenth2 As String
           Dim ByteXor As Byte
           Dim StrXor As String
          
           ReadPlc = True
           If Text1.Text = "" Then
             MsgBox "請輸入寄存器地址", vbOKOnly, "系統提示"
           Else
             Num = Val(Text1.Text)
             Num2 = Hex(Num)
             Lenth2 = Hex(Lenth)
             ByteXor = 0
            
             OutByte(0) = 103           '起始字符
             OutByte(1) = 5             '讀寫指令
             OutByte(2) = Asc(0)        'PLC站地址
             OutByte(3) = Asc(2)
             OutByte(4) = Asc(Mid(Address_R, 1, 1))    '寄存器類型
             OutByte(5) = Asc(Mid(Address_R, 2, 1))
             OutByte(6) = Asc(Mid(Address_R, 3, 1))
             OutByte(7) = Asc(Mid(Address_R, 4, 1))
            
             L = Len(Num2)                          '寄存器地址
             For i = 0 To L - 1
               OutByte(11 - i) = Asc(Mid(Num2, L - i, 1))
             Next i
             For i = 0 To 3 - L
               OutByte(11 - L - i) = Asc(0)
             Next i
            
             L = Len(Lenth2)                      '讀取字節數
             If L = 2 Then
               OutByte(12) = Asc(Mid(Lenth2, 1, 1))
               OutByte(13) = Asc(Mid(Lenth2, 2, 1))
             Else
               OutByte(12) = Asc(0)
               OutByte(13) = Asc(Mid(Lenth2, 1, 1))
             End If
            
             For i = 1 To 29                        'BCC校驗碼計算
               ByteXor = ByteXor Xor OutByte(i)
             Next i
             StrXor = Hex(ByteXor)
             If Len(StrXor) = 2 Then
               OutByte(30) = Asc(Mid(StrXor, 1, 1))
               OutByte(31) = Asc(Mid(StrXor, 2, 1))
             Else
               OutByte(30) = Asc(0)
               OutByte(31) = Asc(Mid(StrXor, 1, 1))
             End If
             OutByte(32) = 71
           End If
           MSComm1.Output = OutByte
        End Sub


        Private Sub Command2_Click()
        Dim OutByte(0 To 32) As Byte
           Dim Num As Double
           Dim Num2 As String
           Dim L
           Dim Lenth2 As String
           Dim ByteXor As Byte
           Dim StrXor As String
           Dim Data_Send  As Double
           Dim Data_Send2 As String
           Dim SetLenth2 As String
          
           Read = False
           If Text2.Text = "" Then
             MsgBox "請輸入寄存器地址", vbOKOnly, "系統提示"
           Else
             Num = Val(Text2.Text)
             Num2 = Hex(Num)
            
             SetLenth2 = Hex(SetLenth * 2)
            
             Data_Send = Val(Text4.Text)
             Data_Send2 = Hex(Data_Send)
              
             ByteXor = 0
            
             OutByte(0) = 103           '起始字符
             OutByte(1) = 6             '指令寫
             OutByte(2) = Asc(0)        'PLC站地址
             OutByte(3) = Asc(2)
             OutByte(4) = Asc(Mid(Address_W, 1, 1))      '寄存器類型
             OutByte(5) = Asc(Mid(Address_W, 2, 1))
             OutByte(6) = Asc(Mid(Address_W, 3, 1))
             OutByte(7) = Asc(Mid(Address_W, 4, 1))
            
             L = Len(Num2)                             '寄存器地址
             For i = 0 To L - 1
               OutByte(11 - i) = Asc(Mid(Num2, L - i, 1))
             Next i
             For i = 0 To 3 - L
               OutByte(11 - L - i) = Asc(0)
             Next i
            
             L = Len(SetLenth2)            '寫入數據的長度
             If L = 2 Then
               OutByte(12) = Asc(Mid(SetLenth2, 1, 1))
               OutByte(13) = Asc(Mid(SetLenth2, 2, 1))
             Else
               OutByte(12) = Asc(0)
               OutByte(13) = Asc(Mid(SetLenth2, 1, 1))
             End If
             '寫入PLC的數據
             L = Len(Data_Send2)
             For i = 1 To L
               OutByte(14 + 2 * SetLenth - i) = Asc(Mid(Data_Send2, L - i + 1, 1))
             Next i
             For i = 1 To SetLenth * 2 - L
               OutByte(13 + i) = Asc(0)
             Next i
            
            
            
            
             '寫入PLC的數據
             For i = 1 To 29                     'BCC校驗碼計算
               ByteXor = ByteXor Xor OutByte(i)
             Next i
             StrXor = Hex(ByteXor)
             If Len(StrXor) = 2 Then
               OutByte(30) = Asc(Mid(StrXor, 1, 1))
               OutByte(31) = Asc(Mid(StrXor, 2, 1))
             Else
               OutByte(30) = Asc(0)
               OutByte(31) = Asc(Mid(StrXor, 1, 1))
             End If
             OutByte(32) = 71
           End If
           MSComm1.Output = OutByte
        End Sub

        Private Sub Command3_Click()
           Dim OutByte(0 To 32) As Byte
           Dim Num As Double
           Dim Num2 As String
           Dim L
           Dim Lenth2 As String
           Dim ByteXor As Byte
           Dim StrXor As String
          
           ReadPlc = False
           If Text6.Text = "" Then
             MsgBox "請輸入寄存器地址", vbOKOnly, "系統提示"
           Else
             Num = Val(Text6.Text)
             Num2 = Hex(Num)
             Lenth2 = Hex(Lenth)
             ByteXor = 0
            
             OutByte(0) = 103                         '起始字符
             OutByte(1) = Instruction                 '讀寫指令
             OutByte(2) = Asc(0)                      'PLC站地址
             OutByte(3) = Asc(2)
             OutByte(4) = Asc(Mid(Address_B, 1, 1))     '寄存器類型
             OutByte(5) = Asc(Mid(Address_B, 2, 1))
             OutByte(6) = Asc(Mid(Address_B, 3, 1))
             OutByte(7) = Asc(Mid(Address_B, 4, 1))
            
             L = Len(Num2)                           '寄存器地址
             For i = 0 To L - 1
               OutByte(11 - i) = Asc(Mid(Num2, L - i, 1))
             Next i
             For i = 0 To 3 - L
               OutByte(11 - L - i) = Asc(0)
             Next i
            
                                                     '位地址
            
               OutByte(12) = Asc(Mid(Bit, 1, 1))
               OutByte(13) = Asc(Mid(Bit, 2, 1))
            

            
             For i = 1 To 29                        'BCC校驗碼計算
               ByteXor = ByteXor Xor OutByte(i)
             Next i
             StrXor = Hex(ByteXor)
             If Len(StrXor) = 2 Then
               OutByte(30) = Asc(Mid(StrXor, 1, 1))
               OutByte(31) = Asc(Mid(StrXor, 2, 1))
             Else
               OutByte(30) = Asc(0)
               OutByte(31) = Asc(Mid(StrXor, 1, 1))
             End If
             OutByte(32) = 71
           End If
           MSComm1.Output = OutByte
        End Sub

        Private Sub Form_Load()
           Instruction = &H11
           Address_R = "0100"
           Address_W = "0100"
           Address_B = "0100"
           Bit = "00"
           Lenth = 2
           SetLenth = 2
           MSComm1.CommPort = 1
           MSComm1.Settings = "9600,n,8,1"
           MSComm1.PortOpen = True
            If (Err) Then
               MsgBox "端口打開錯誤", vbOKOnly, "系統信息"
            End If
           MSComm1.RThreshold = 20
           MSComm1.InputMode = 1
           MSComm1.InBufferCount = 0
        End Sub



        Private Sub MSComm1_OnComm()
          Dim Temp() As Byte
          Dim Read(0 To 32) As Byte
          Dim BBC As Byte
          Dim XorByte As Byte
          Dim BBC_Temp As Byte
          Dim Value As Double
          Dim Trans(1 To 8) As Byte
          Dim TransValue As Double
          
          Value = 0
          XorByte = 0
          Temp = MSComm1.Input
          If ReadPlc = True Then
          
          If Temp(LBound(Temp)) = 103 And Temp(LBound(Temp) + 1) = 1 Then         '如果起始正確
              
              For i = 0 To 20
                Read(i) = Temp(i)
              Next i
              
              For i = 2 To 17                     '計算校驗碼
                 XorByte = XorByte Xor Read(i)
              Next i
              
              For i = 2 To 19
                If Read(i) > &H40 Then
                   Read(i) = Read(i) - &H37
                Else
                   Read(i) = Read(i) - &H30
                End If
              Next
              BBC_Temp = Read(19) + Read(18) * &H10
              If XorByte = BBC_Temp Then
              
                For i = 2 To Lenth * 2 + 1
                  
                  Value = Value * &H10 + Read(i)
                Next i
              Text3.Text = Value
              End If
          End If
          Else
             If Temp(0) = 103 And Temp(1) = 2 Then
               MsgBox "參數設定成功", vbOKOnly, "系統提示"
             End If
          End If
        End Sub


        尤其是這幾句,希望能具體解釋一下,多謝


        OutByte(0) = 103           '起始字符
             OutByte(1) = 5             '讀寫指令
             OutByte(2) = Asc(0)        'PLC站地址
             OutByte(3) = Asc(2)
             OutByte(4) = Asc(Mid(Address_R, 1, 1))    '寄存器類型
             OutByte(5) = Asc(Mid(Address_R, 2, 1))
             OutByte(6) = Asc(Mid(Address_R, 3, 1))
             OutByte(7) = Asc(Mid(Address_R, 4, 1))
            
             L = Len(Num2)                          '寄存器地址
             For i = 0 To L - 1
               OutByte(11 - i) = Asc(Mid(Num2, L - i, 1))
             Next i
             For i = 0 To 3 - L
               OutByte(11 - L - i) = Asc(0)
             Next i
            
             L = Len(Lenth2)                      '讀取字節數
             If L = 2 Then
               OutByte(12) = Asc(Mid(Lenth2, 1, 1))
               OutByte(13) = Asc(Mid(Lenth2, 2, 1))
             Else
               OutByte(12) = Asc(0)
               OutByte(13) = Asc(Mid(Lenth2, 1, 1))
             End If
            
             For i = 1 To 29                        'BCC校驗碼計算
               ByteXor = ByteXor Xor OutByte(i)
             Next i
             StrXor = Hex(ByteXor)
             If Len(StrXor) = 2 Then
               OutByte(30) = Asc(Mid(StrXor, 1, 1))
               OutByte(31) = Asc(Mid(StrXor, 2, 1))
             Else
               OutByte(30) = Asc(0)
               OutByte(31) = Asc(Mid(StrXor, 1, 1))
             End If
             OutByte(32) = 71
           End If
           MSComm1.Output = OutByte
        End Sub


        Private Sub Command2_Click()
        Dim OutByte(0 To 32) As Byte
           Dim Num As Double
           Dim Num2 As String
           Dim L
           Dim Lenth2 As String
           Dim ByteXor As Byte
           Dim StrXor As String
           Dim Data_Send  As Double
           Dim Data_Send2 As String
           Dim SetLenth2 As String
          
           Read = False
           If Text2.Text = "" Then
             MsgBox "請輸入寄存器地址", vbOKOnly, "系統提示"
           Else
             Num = Val(Text2.Text)
             Num2 = Hex(Num)
            
             SetLenth2 = Hex(SetLenth * 2)
            
             Data_Send = Val(Text4.Text)
             Data_Send2 = Hex(Data_Send)
              
             ByteXor = 0
            
             OutByte(0) = 103           '起始字符
             OutByte(1) = 6             '指令寫
             OutByte(2) = Asc(0)        'PLC站地址
             OutByte(3) = Asc(2)
             OutByte(4) = Asc(Mid(Address_W, 1, 1))      '寄存器類型
             OutByte(5) = Asc(Mid(Address_W, 2, 1))
             OutByte(6) = Asc(Mid(Address_W, 3, 1))
             OutByte(7) = Asc(Mid(Address_W, 4, 1))
            
             L = Len(Num2)                             '寄存器地址
             For i = 0 To L - 1
               OutByte(11 - i) = Asc(Mid(Num2, L - i, 1))
             Next i
             For i = 0 To 3 - L
               OutByte(11 - L - i) = Asc(0)
             Next i
            
             L = Len(SetLenth2)            '寫入數據的長度
             If L = 2 Then
               OutByte(12) = Asc(Mid(SetLenth2, 1, 1))
               OutByte(13) = Asc(Mid(SetLenth2, 2, 1))
             Else
               OutByte(12) = Asc(0)
               OutByte(13) = Asc(Mid(SetLenth2, 1, 1))
             End If
             '寫入PLC的數據
             L = Len(Data_Send2)
             For i = 1 To L
               OutByte(14 + 2 * SetLenth - i) = Asc(Mid(Data_Send2, L - i + 1, 1))
             Next i
             For i = 1 To SetLenth * 2 - L
               OutByte(13 + i) = Asc(0)
             Next i
            

        主站蜘蛛池模板: 日韩av中文字幕有码| 天干天干夜啦天干天干国产| a级国产乱理伦片在线观看al| 亚洲综合国产伊人五月婷| 另类 专区 欧美 制服| 国产精品综合一区二区三区| 亚洲高清免费在线观看| 久久久久久综合网天天| 国产精品国产三级国产专i| 国产成人高清精品亚洲| 国产肥臀视频一区二区三区| 在线观看亚洲欧美日本| 精品国产一区二区三区av性色| 亚洲 欧洲 无码 在线观看| 国产精品性视频一区二区| 99RE6在线观看国产精品| 亚洲区色欧美另类图片| 熟女一区二区中文字幕| 国产主播精品福利午夜二区 | 国产真人做受视频在线观看| 国产在线超清日本一本| 国产精品小一区二区三区| 国产中文99视频在线观看| 97欧美精品系列一区二区| 国产蜜臀一区二区在线播放| 猫咪AV成人永久网站在线观看 | 久久AV中文综合一区二区| 亚洲av无码精品色午夜蛋壳| 99热久久这里只有精品| 综合欧美视频一区二区三区| caoporn成人免费公开| 日韩高清免费一码二码三码| 精品视频福利| 一区二区中文字幕av| 国产精品日韩中文字幕熟女| 欧美videos粗暴| 国产精品SM捆绑调教视频| 久久精品国产精品第一区| 久久人人97超碰人人澡爱香蕉| 国产明星精品无码AV换脸| 九九热精品视频在线免费|