玖玖玖视频-亚洲精品1卡2卡3卡-操欧美美女-真实国产乱子伦对白视频不卡-国产乱在线-大胸美女被吃奶爽死视频-久久亚洲美女精品国产精品-天堂在线www天堂在线-久久在精品线影院精品国产-国产又粗又长又大-欧美三级一区二区-超碰在线亚洲-天天cao在线-国产偷倩视频-亚洲啪

dongxuan24
級別: 正式會員
精華主題: 0
發帖數量: 30 個
工控威望: 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
    

主站蜘蛛池模板: 一本一道久久a久久 | 91视频精选 | 天堂网男人 | 国产精品亚洲精品日韩已满 | 67194熟妇在线永久免费观看 | 国产精品美女久久久久久福利 | a√天堂中文字幕在线 | 国产激情综合在线看 | 日韩精品一区二区三区色欲av | 精品国产黄色片 | 国产无遮挡裸体免费直播 | 欧美交换配乱吟粗大视频 | 无码不卡中文字幕av | 美女扒开屁股让男人桶 | 岛国av动作片在线观看 | 亚洲综合无码精品一区二区 | 精品欧美一区二区三区免费观看 | 中文在线视频观看 | 色多多av| 国产真实生活伦对白 | 日韩中文字幕免费在线观看 | 亚洲中字幕日产av片在线 | 久久国产劲爆∧v内射-百度 | 校园激情av | 福利社91 | 国产美女做爰免费视频 | 亚洲一级精品 | 久热综合| 天天爽狠狠噜天天噜日日噜 | 在线观看亚洲天堂 | 丁香婷婷久久久综合精品国产 | 国产成在线观看免费视频 | 91久久久国产精品 | 精品国产91 | 国产成人精品97 | 久热精品视频 | 成人在线综合 | 国产精品第一区揄拍无码 | 在线播放亚洲人成电影 | 国产久久精品 | 欧美日韩网址 | 乱人伦中文无码视频在线观看 | 末发育娇小性色xxxxx视频 | 性色做爰片在线观看ww | 亚洲熟妇丰满xxxxx | 加勒比精品在线 | 午夜福利无遮挡十八禁视频 | 无码精品国产va在线观看 | 四十如虎的丰满熟妇啪啪 | 亚洲人成高清 | 先锋影音人妻啪啪va资源网站 | 国产精品日本一区二区在线播放 | 免费黄色在线看 | 精品国模| 天天爽夜夜爽视频精品 | 日韩欧美在线观看免费 | 最新精品视频2019在线视频 | 性猛╳xxx乱大交 | 苍井空第一次激烈高潮视频 | 五月激情六月婷婷 | 中文字幕欧美在线 | 黄色片aaaa | 国产成a人片在线观看视频下载 | 欧美精品久久久久久久久久 | 热99re久久精品国产首页免费 | 国产对白在线 | 国产网站免费观看 | 综合在线 亚洲 成人 欧美 | 国产精品自产拍在线观看 | 国产欧美日韩视频怡春院 | 一本久道综合在线无码人妻 | 亚洲性无码av在线 | 蜜桃视频网站 | 国产女人高潮抽搐喷水视频 | 成人网站国产在线视频内射视频 | 在线观看日本中文字幕 | 9i精品福利一区二区三区 | 亚洲天码中字 | 国内大量揄拍人妻在线视频 | 精品人人妻人人澡人人爽牛牛 | 色综合久久无码中文字幕 | 人人超碰人人爱超碰国产 | 国产高清卡1卡2卡3麻豆 | 亚洲自拍诱惑 | 久久99色 | 天天摸天天摸天天天天看 | 日韩精品在线免费视频 | √新版天堂资源在线资源 | 色偷偷亚洲 | av无码中文一区二区三区四区 | 免费视频成人片在线观看 | 欧美乱妇高清无乱码在线观看 | 一级黄在线观看 | 无码专区—va亚洲v专区vr | 岛国免费av| 成人av片无码免费天天看 | 亚洲最大日夜无码中文字幕 | 日韩激情视频在线观看 | 欧美 日韩 中文 |