超碰成人av-青青草97-天天做天天躁天天躁-久久精品国产亚洲一区二区-亚洲天堂狠狠干-在线观看欧美精品-国产精品美女一区二区视频-国产成人欧美日韩在线电影-一级片免费看视频-免费国产视频在线观看-伊人网久久久-无码人妻丰满熟妇啪啪网不卡-精品欧美乱码久久久久久-国产真实夫妇视频-中文久草

dongxuan24
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 30 個(gè)
工控威望: 96 點(diǎn)
下載積分: 536 分
在線時(shí)間: 6(小時(shí))
注冊(cè)時(shí)間: 2010-01-14
最后登錄: 2012-07-12
查看dongxuan24的 主題 / 回貼
樓主  發(fā)表于: 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 "請(qǐng)輸入寄存器地址", vbOKOnly, "系統(tǒng)提示"
   Else
     Num = Val(Text1.Text)
     Num2 = Hex(Num)
     Lenth2 = Hex(Lenth)
     ByteXor = 0
    
     OutByte(0) = 103           '起始字符
     OutByte(1) = 5             '讀寫(xiě)指令
     OutByte(2) = Asc(0)        'PLC站地址
     OutByte(3) = Asc(2)
     OutByte(4) = Asc(Mid(Address_R, 1, 1))    '寄存器類(lèi)型
     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)                      '讀取字節(jié)數(shù)
     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校驗(yàn)碼計(jì)算
       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 "請(qǐng)輸入寄存器地址", vbOKOnly, "系統(tǒng)提示"
   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             '指令寫(xiě)
     OutByte(2) = Asc(0)        'PLC站地址
     OutByte(3) = Asc(2)
     OutByte(4) = Asc(Mid(Address_W, 1, 1))      '寄存器類(lèi)型
     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)            '寫(xiě)入數(shù)據(jù)的長(zhǎng)度
     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
     '寫(xiě)入PLC的數(shù)據(jù)
     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
    
    
    
    
     '寫(xiě)入PLC的數(shù)據(jù)
     For i = 1 To 29                     'BCC校驗(yàn)碼計(jì)算
       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 "請(qǐng)輸入寄存器地址", vbOKOnly, "系統(tǒng)提示"
   Else
     Num = Val(Text6.Text)
     Num2 = Hex(Num)
     Lenth2 = Hex(Lenth)
     ByteXor = 0
    
     OutByte(0) = 103                         '起始字符
     OutByte(1) = Instruction                 '讀寫(xiě)指令
     OutByte(2) = Asc(0)                      'PLC站地址
     OutByte(3) = Asc(2)
     OutByte(4) = Asc(Mid(Address_B, 1, 1))     '寄存器類(lèi)型
     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校驗(yàn)碼計(jì)算
       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 "端口打開(kāi)錯(cuò)誤", vbOKOnly, "系統(tǒng)信息"
    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                     '計(jì)算校驗(yàn)碼
         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 "參數(shù)設(shè)定成功", vbOKOnly, "系統(tǒng)提示"
     End If
  End If
End Sub


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


OutByte(0) = 103           '起始字符
     OutByte(1) = 5             '讀寫(xiě)指令
     OutByte(2) = Asc(0)        'PLC站地址
     OutByte(3) = Asc(2)
     OutByte(4) = Asc(Mid(Address_R, 1, 1))    '寄存器類(lèi)型
     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)                      '讀取字節(jié)數(shù)
     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校驗(yàn)碼計(jì)算
       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 "請(qǐng)輸入寄存器地址", vbOKOnly, "系統(tǒng)提示"
   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             '指令寫(xiě)
     OutByte(2) = Asc(0)        'PLC站地址
     OutByte(3) = Asc(2)
     OutByte(4) = Asc(Mid(Address_W, 1, 1))      '寄存器類(lèi)型
     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)            '寫(xiě)入數(shù)據(jù)的長(zhǎng)度
     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
     '寫(xiě)入PLC的數(shù)據(jù)
     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
    

主站蜘蛛池模板: 中文字幕乱码熟妇五十中出 | 亚洲欧美成人永久第一网站 | 色偷偷色噜噜狠狠成人免费视频 | 国产精品视频一区二区三区无码 | 国产丝袜一区二区三区免费视频 | 国产91大片| 久久精品丝袜高跟鞋 | 野狼第一精品社区 | 91久久| 国产偷久久久精品专区 | 无码 人妻 在线 视频 | 九九热线有精品视频99 | 日本色婷婷 | 国产乱子伦视频一区二区三区 | 97久久精品亚洲中文字幕无码 | 午夜电影网 | 91福利国产在线观看网站 | 欧美丰满熟妇bbb久久久 | 久久天天躁狠狠躁夜夜不卡 | 老熟妇仑乱视频一区二区 | 日本不卡一区 | 精品人无码一区二区三区 | 国产农村妇女毛片精品久久 | 国产色网| 女人毛片| 国产熟女一区二区三区五月婷 | 女邻居的大乳中文字幕 | 在线精品亚洲欧美日韩国产 | 亚洲精品乱码久久久久久花季 | 免费在线人擦 | 中国真实偷乱视频 | 精品人妻系列无码人妻免费视频 | 51精品国产人成在线观看 | 久久99亚洲含羞草影院 | 成人免费在线视频观看 | 青青草一区二区三区 | 精品一区av | 欧洲一级鲁丝片免费 | 久久综合久久综合久久综合 | 97久久久久人妻精品区一 | 亚洲日韩乱码中文无码蜜桃臀网站 | 中文字幕网在线 | 欧美性生交zzzzzxxxxx | 无遮挡又黄又刺激又爽的视频 | 日韩人妻无码精品久久久不卡 | 久久免费国产 | 3d全彩无码啪啪本子全彩 | 欧洲日本一线二线三线区本庄铃 | 日韩精品久久久肉伦网站 | 亚洲性人人天天夜夜摸 | 国语对白嫖老妇胖老太 | 亚洲风情在线观看 | 99久久婷婷国产综合精品 | 无码人妻精品一区二区三区夜夜嗨 | 小明永久视频免费播放 | 久久久久久久成人 | 欧美va亚洲va在线观看 | 国产精品成人3p一区二区三区 | 亚洲爆乳无码专区 | 精品无人国产偷自产在线 | 九色在线视频 | 国产精品一区二区av麻豆 | 东京av男人的天堂 | 国产成人精品无码免费看 | 欧美日韩国产精品一区 | 一级三级黄色片 | 国产精品久久久久久久久久直播 | 在线日韩电影 | 无码国内精品人妻少妇蜜桃视频 | 精品视频无码一区二区三区 | 亚洲一区二区三区欧美 | 国产又黄又硬又粗 | 国产成人高清亚洲一区久久 | 亚洲欧美精品aaaaaa片 | 国产精品久久久久久久久ktv | 成人免费淫片 | 色婷婷精品国产一区二区三区 | 亚洲欧美激情综合首页 | 国产精品成人免费观看 | 欧美国产综合日韩一区二区 | 精产国产伦理一二三区 | 男男成人高潮片免费视频欧美 | 国产在线无码制服丝袜无码 | 国产乱理伦片在线观看 | 欧美性生活久久 | 国产精品成熟老女人 | 无码中文人妻在线一区二区三区 | 欧美激情a∨在线视频播放 欧美激情第1页 | 在线成人一区二区 | 国产一区二区三区四区在线观看 | 在线国产视频观看 | 青青草视频在线免费观看 | 无遮挡又爽又刺激的视频 | 久久国产大片 | 国产精品精华液网站 | 西西大胆午夜人体视频 | 国产欧美日韩不卡一区二区三区 | 亚洲成人免费在线 | 久久久精品久久 |