91黄动漫 I 欧美 日韩 国产 成人 在线 I a级成人毛片 I 农村黄色片 I 男生捅女生的肌肌 I 精品99一区二区三区 I 妃光莉av I 日日夜夜操操 I 性中国古装videossex I 久久不卡av I 美女高潮动态图 I 极品美女开粉嫩精品 I 牛牛精品一区二区 I 91精品福利视频 I 成人刺激视频 I 91国内精品视频 I 中国一级特黄毛片大片 I 校长狠狠挺进校花体内小说 I 欧美激情黄色片 I 欧美久久久一区 I 爱豆国产剧免费观看大全剧苏畅 I 麻豆国产人妻欲求不满谁演的 I 亚洲一区二区在线免费观看视频 I 国产超碰av人人做人人爽 I 精品国产第一国产综合精品 I 久久免费看av I 欧美一区二区三区白人 I 国产精品夫妻激情 I 校花被肉干高h潮不断 I 欧美最猛黑人xxxx黑人表情 I 国产欧美日韩一区二区搜索 I 极品女神露脸呻吟啪啪 I 人人天天久久 I 亚洲动漫在线 I 日本91福利区 I 五月天 桃色 开心 I av在线免费观看国产 I 男人添女人的免费视频 I 夜夜穞天天穞狠狠穞

dongxuan24
級別: 正式會員
精華主題: 0
發帖數量: 30 個
工控威望: 96 點
下載積分: 724 分
在線時間: 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ⅴ在线中文字幕 国产白丝喷水娇喘视频 | 亚洲成色最大综合在线 | 国产乱乱 | 国产iv一区二区三区 | 国产午夜福利视频在线观看 | yy1111111少妇影院光屁股 | 国产卡一 | 午夜三级a三级三点窝 | 少妇被粗大的猛烈进出图片 | 超碰香蕉人人网99精品 | 一本色综合久久 | 91精品久久久久久久久久 | 国产日韩一区二区三区在线观看 | 欧美日韩亚洲中文字幕一区二区三区 | 88欧产日产国产精品 | av网站有哪些 | 国产精品人人做人人爽人人添 | 一区二区三区视频观看 | 日日躁狠狠躁 | 久久久久国产精品人妻照片 | 国产在不卡免费一区二区三 | 9l国产精品久久久久尤物 | 狼色精品人妻在线视频 | 日本翁妇免费视频 | 亚洲国产欧美动漫在线人成 | 成年动漫av网免费 | 亚洲欧洲自拍 | 岛国成人av | 真人啪啪高潮喷水呻吟无遮挡 | youjizz韩国| 日本xxxxx高潮少妇 | av无码精品一区二区三区三级 | 热re99久久精品国99热线看 | 美女黄频视频大全免费的国内 | 中文字幕视频一区二区 | 久久人人玩人妻潮喷内射人人 | 日日摸夜夜摸狠狠摸婷婷 | 欧美 日韩 视频 | 亚洲免费观看 | 凹凸日日摸天天碰免费视频 | 日本高清在线一区至六区不卡视频 | 偷看农村妇女牲交 | 日本少妇色视频 | 日韩精品第一 | 亚洲精品伦理熟女国产一区二区 | 国产精品久久久久这里只有精品 | 国内成人精品2018免费看 | 国产羞羞羞视频在线观看 | 精品伊人久久久 | 天天狠狠 | 日韩性生活视频 | 91色网址 | 亚洲精品性 | 116少妇做爰毛片 | 久久久久久伊人 | youjizz韩国 | 国产18页| 国产黄网免费视频在线观看 | 野外做受又硬又粗又大视幕 | 欧美性猛交xxxx乱大交 | 超碰影音 | 东京热加勒比视频一区 | 观看毛片 | 亚洲乱码国产一区三区 | 不卡一不卡二不卡三 | 成人av地址| 激情五月网站 | 亚洲性无码av在线 | 亚洲 综合 校园 欧美 制服 | 国产成人无遮挡在线视频 | a毛片在线观看 | 无修无码h里番在线播放网站 | 91欧美一区 | 天天干夜夜拍 | 色久悠悠婷婷综合在线亚洲 | 日日摸夜夜添夜夜添国产2020 | 青青草免费在线观看视频 | 久久综合网欧美色妞网 | 亚洲337少妇裸体艺术 | 欧美乱妇狂野欧美在线视频 | 欧美另类又黄又爽的a片 | 人人射av| 亚洲精品国产精品国自产在线 | 成人毛片av在线 | 国产亚洲精品久久一区二区三区 | 97午夜| 欧美人与禽z0zo牲伦交 | 国色天香社区在线视频观看 | 高清性欧美暴力猛交 | 视频一区二区三区在线观看 | 毛茸茸的中国女bbw 国产丝袜脚交 | 国产免费一区二区三区最新6 | 精品一区二区三区免费观看 | 成人网站亚洲综合久久 | 亚洲一区免费观看 | 久久国产午夜精品理论片34页 | 91婷婷在线 | 久久99精品久久久久久hb无码 | 色狠狠av|