91美女视频-亚洲免费观看视频-欧美a∨-久热在线视频-日韩黄网站-成av人片在线观看www-久操综合-超碰av在线播放-性欧美欧美巨大69-婷婷二区-av男人的天堂网-中文字幕一区在线播放-玖草在线观看-国产网址在线观看-免费在线不卡av

dongxuan24
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 30 個
工控威望: 96 點
下載積分: 536 分
在線時間: 6(小時)
注冊時間: 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 "請輸入寄存器地址", vbOKOnly, "系統(tǒng)提示"
   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)                      '讀取字節(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校驗碼計算
       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, "系統(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             '指令寫
     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)            '寫入數(shù)據(jù)的長度
     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的數(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
    
    
    
    
     '寫入PLC的數(shù)據(jù)
     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, "系統(tǒng)提示"
   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, "系統(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                     '計算校驗碼
         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ù)設定成功", vbOKOnly, "系統(tǒng)提示"
     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)                      '讀取字節(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校驗碼計算
       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, "系統(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             '指令寫
     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)            '寫入數(shù)據(jù)的長度
     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的數(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
    

主站蜘蛛池模板: 国产一区二区视频在线观看 | 日韩视频在线一区二区 | 黄色国产 | 99久久国产精 | 人妻无码一区二区三区免费 | 亚洲一二三四视频 | 一区二区啪啪 | 超碰超碰超碰超碰超碰 | 美女热逼 | 成年人黄色一级片 | 亚洲综合小说网 | 国产一区二区毛片 | 国产怡红院 | 激情图片区 | 久久五月视频 | 极品少妇xxxx | 国产精品久久毛片 | 五月婷婷一区二区 | 亚洲成人www| 国产高清免费 | 色激情五月 | 亚洲 欧美 日韩 在线 | www成人在线观看 | 国产人妖一区二区 | 日韩福利在线观看 | 男女h网站| 狠狠躁日日躁夜夜躁2022麻豆 | 免费毛片大全 | 激情小说欧美色图 | 亚洲色图欧美视频 | 国产图片区 | 一本色道久久综合亚洲 | 我把护士日出水了视频90分钟 | 九色.com| 午夜性福利 | 成人涩涩视频 | 狠狠人妻久久久久久综合蜜桃 | 欧美激情精品久久久久久 | 91美女片黄在线观看91美女 | 无码国产色欲xxxx视频 | 日韩欧美精品 | 国产熟妇与子伦hd | 欧美放荡办公室videos4k | 久久精品99国产精 | 美女黄色一级片 | 国产精品免费精品一区 | 亚洲av无码一区二区三区四区 | 亚洲av熟女国产一区二区性色 | 男人的网址| 久久蜜臀精品av | 欧美日韩精品在线观看 | 国产精品嫩草久久久久 | 日本3p视频 | 日产久久视频 | 欧美内谢| 国产免费自拍 | 欧美一区二区三区四区五区六区 | 成人在线91 | 爱福利视频一区二区 | 天堂欧美| 成年人性视频 | 国产精品啊啊啊 | 激情久久av一区av二区av三区 | 欧美视频三区 | 加勒比色综合 | 国产精品视频播放 | 亚洲午夜一区二区三区 | 免费欧美日韩 | 国产香蕉精品视频 | 级毛片 | 免费观看黄色的网站 | 肉肉av福利一精品导航 | 亚洲成人网在线播放 | 无罩大乳的熟妇正在播放 | 亚洲 欧美 激情 另类 校园 | 瑟瑟视频网站 | 天天色天天干天天 | 人人妻人人爽人人澡人人精品 | 森泽佳奈中文字幕 | 免费色网站 | 4438x全国最大成人 | 狠狠人妻久久久久久综合麻豆 | 黄色免费视频观看 | 男女h网站 | 男女透逼视频 | 人妻妺妺窝人体色www聚色窝 | 51热门大瓜今日大瓜 | 六月激情| 国产真实生活伦对白 | 夜夜综合| 日韩免费不卡视频 | 日日操夜夜爽 | 女人av在线 | 日韩在线观看免费 | 丰满人妻av一区二区三区 | 四虎最新站名点击进入 | 欧美精品激情视频 | 久久成人毛片 | 亚洲欧美综合在线观看 |