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 點
下載積分: 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
    

主站蜘蛛池模板: 51被公侵犯玩弄漂亮人妻 | 精品亚洲aⅴ在线无码播放 深爱激情站 | 欧美亚洲91 | 亚洲阿v天堂无码z2018 | 秋霞av一区二区二三区 | 欧美黄色大片免费观看 | 91av中文字幕 | 欧美精品国产制服第一页 | 亚洲伊人一本大道中文字幕 | 色综合天天视频在线观看 | 黄色日批视频 | 五月丁香久久综合网站 | 久久久视频2019午夜福利 | 黄色三级免费网站 | 男人用嘴添女人私密视频 | 香蕉超碰 | 日本在线 | 中文 | 97狠狠干 | 色偷偷久久一区二区三区 | 国产亚洲精品aaaa片小说 | 米奇7777狠狠狠狠视频 | 91夜夜| 国产亚洲国际精品福利 | 18禁美女裸体网站无遮挡 | 少妇又色又紧又爽又刺激视频 | 一本大道一区二区 | 午夜不卡久久精品无码免费 | 欧美激情一区二区三区aa片 | 曰韩免费无码av一区二区 | 亚洲gv猛男gv无码男同短文 | 日本少妇无码精品12p | 久草性视频 | 日本公与熄乱理在线播放 | 学生av| 怀孕挺大肚子疯狂高潮av毛片 | 精品无码日韩一区二区三区不卡 | 国产精品一区三区 | 这里只有精品6 | 伊人网色 | 久久精热 | 92午夜福利轻云观看 | 欧美久草| 国产丰满乱子伦无码专 | www.视频在线观看 | 91视频黄版| 亚洲精品久久久蜜桃网尤妮丝 | 欧美日韩综合在线 | 午夜在线国语中文字幕视频 | 亚洲精品无码高潮喷水a片软 | 小蜜被两老头吸奶头在线观看 | 久久超碰色中文字幕超清 | 国产av丝袜旗袍无码网站 | 免费看国产成年无码av片 | www国产精品内射熟女 | 国语做受对白xxxxx在线 | 天天草夜夜 | 操一操视频 | 亚洲精品一区久久久久一品av | 欧美日韩一区二区在线视频 | 无码精品人妻一区二区三区影院 | 香蕉在线 亚洲 欧美 专区 | 久久精品九九热无码免贵 | 久久99这里只有是精品6 | 在线观看日本中文字幕 | 亚洲精品综合在线观看 | 激情国产一区二区三区四区小说 | 久久国产精品首页 | 亚欧毛片 | av成人免费在线观看 | 91国在线 | 欧美大片xxx | 亚洲 欧美 日韩 国产综合 在线 | 欧美亚洲日本国产综合在线美利坚 | 无码精品国产va在线观看 | 丝袜足脚交在线播放 | 国产让女高潮的av毛片 | 精品国产一区二区三区无码 | 亚洲精品网站在线观看你懂的 | 91高清在线免费观看 | 国产成人精品无码一区二区 | 国产精品白浆在线观看免费 | 在线观看av黄色 | 国产黑色丝袜视频在线观看网红 | 日本高清色www在线安全 | 亚洲91影院 | 欧美极品video粗暴 | 久久亚洲国产成人影院 | 被黑人猛躁10次高潮视频 | 欧美va亚洲va | 好男人在在线社区www在线影院 | 国产成人理论无码电影网 | 国产精品丝袜美腿一区二区三区 | 特级西西人体444www高清 | 色呦呦网站在线观看 | 99精品国产在热久久无码 | 国产亚洲精品久久久久久打不开 | 欧美人妖另类 | 99久久99久久久精品齐齐综合色圆 | 亚洲日本中文字幕乱码在线电影 |