⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vb_ppi.frm

📁 西门子 通信程序 vb与西门子PLc通讯程序源码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      Else
         a$ = a$ + Hex(aa(i))
      End If
      'a$ = a$ '+ "、"
    Next i
    a$ = a$ + ","
    Text2.Text = a$
    
    
    '10 2 0 5C 5E 16
    
    str_val(0) = &H10
    str_val(1) = &H2
    str_val(2) = &H0
    str_val(3) = &H5C
    str_val(4) = &H5E
    str_val(5) = &H16
    
    
    For i = 0 To 5
      If Len(Hex(str_val(i))) = 1 Then
         a$ = a$ + "0" + Hex(str_val(i))
      Else
         a$ = a$ + Hex(str_val(i))
      End If
     ' a$ = a$ + "、"
    Next i
    Text2.Text = a$
    a$ = ""
    For i = 0 To 5
       a$ = a$ + Chr(str_val(i))
    Next
       
    
    MSComm1.RThreshold = 1
    MSComm1.Output = str_val
End Sub

Private Sub Command11_Click() 'wVB100=99
    '68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 12 0A 10 02 00 01 00 01 84 00 03 20 00 04 00 08 99 46 16
    
    Dim o$
    
    o$ = "68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 12 0A 10 02 00 01 00 01 84 00 03 20 00 04 00 08 99 46 16"
    
    sendOrder (o$)
    
    Exit Sub
    
    
    
    Dim str_write(0 To 37) As Byte
    Dim str_val(0 To 5) As Byte
    
    Dim i As Integer
    Dim Temp_FCS As Variant
    
   
    str_write(0) = &H68
    str_write(1) = &H20
    str_write(2) = &H20
    str_write(3) = &H68
    str_write(4) = &H2
    str_write(5) = &H0
 '0  1  2  3  4  5  6  7  8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  36  37
'68 20 20 68  2  0  7C 32 1 0 0  0  0  0  E  0  5   5  1 12  A 10 2  0  1  0  1  84  0  3 20 0  4  0  8   C  B9  16
    
    str_write(6) = &H7C
    str_write(7) = &H32
    str_write(8) = &H1
    str_write(9) = &H0
    str_write(10) = &H0
    
    str_write(11) = &H0
    str_write(12) = &H0
    str_write(13) = &H0
    str_write(14) = &HE
    str_write(15) = &H0
    
    str_write(16) = &H5
    str_write(17) = &H5
    str_write(18) = &H1
    str_write(19) = &H12
    str_write(20) = &HA
    
    str_write(21) = &H10
    str_write(22) = &H2
    str_write(23) = &H0
    str_write(24) = &H1
    str_write(25) = &H0
    
    str_write(26) = &H1
    str_write(27) = &H84
    str_write(28) = &H0
    str_write(29) = &H3
    str_write(30) = &H20
    
    str_write(31) = &H0
    str_write(32) = &H4
    str_write(33) = &H0
    str_write(34) = &H8
    str_write(35) = &H99
    
    'str_write(36) = &HB9
    For i = 4 To 35
        Temp_FCS = Temp_FCS + str_write(i)
    Next
    str_write(36) = Temp_FCS Mod 256
    str_write(37) = &H16
    
    
    Dim a$
    For i = 0 To 37
      If Len(Hex(str_write(i))) = 1 Then
         a$ = a$ + "0" + Hex(str_write(i))
      Else
         a$ = a$ + Hex(str_write(i))
      End If
      a$ = a$ + " "
    Next i
    Text1.Text = a$
    Text3.Text = ""
    MSComm1.Output = str_write
    Text3.Text = ""
    Dim xxx%
    Do
      xxx% = DoEvents()
    Loop Until MSComm1.InBufferCount > 0
    Dim ia As Variant
    Dim aa() As Byte
    ia = MSComm1.Input
    aa = ia
    Dim L As Integer
    L = UBound(aa)
    a$ = ""
    For i = 0 To L
      If Len(Hex(aa(i))) = 1 Then
         a$ = a$ + "0" + Hex(aa(i))
      Else
         a$ = a$ + Hex(aa(i))
      End If
      'a$ = a$ '+ "、"
    Next i
    a$ = a$ + ","
    Text2.Text = a$
 
    '10 2 0 5C 5E 16
    
    str_val(0) = &H10
    str_val(1) = &H2
    str_val(2) = &H0
    str_val(3) = &H5C
    str_val(4) = &H5E
    str_val(5) = &H16
    
    
    For i = 0 To 5
      If Len(Hex(str_val(i))) = 1 Then
         a$ = a$ + "0" + Hex(str_val(i))
      Else
         a$ = a$ + Hex(str_val(i))
      End If
     ' a$ = a$ + "、"
    Next i
    Text2.Text = a$
    a$ = ""
    For i = 0 To 5
       a$ = a$ + Chr(str_val(i))
    Next
       
    
    MSComm1.RThreshold = 1
    MSComm1.Output = str_val
End Sub

Private Sub Command12_Click()
  Dim o$
  o$ = "    68 1B 1B 68 2 0    6C 32 1 0 0  0  0  0  E  0  0  4  1  12 A  10 2  0  1  0  1  84 0  3  20 8B 16   "
  o$ = Text4.Text
  sendOrder (o$)
End Sub

Private Sub Command2_Click()
    
           '0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
           '68 21 21 68 02 00 6C 32 01 00 00 00 00 00 14 00 00 28 00 00 00 00 00 00 FD 00 00 09 50 5F 50 52 4F 47 52 41 4D AA 16
           '68 1D 1D 68 02 00 6C 32 01 00 00 00 00 00 10 00 00 29 00 00 00 00 00 09 50 5F 50 52 4F 47 52 41 4D AA 16
    Dim o$
    o$ = "68 1D 1D 68 02 00 6C 32 01 00 00 00 00 00 10 00 00 29 00 00 00 00 00 09 50 5F 50 52 4F 47 52 41 4D AA 16"
    'o$ = Text4.Text
    sendOrder (o$)
    
    Exit Sub
    
    
    
    Dim str_write(0 To 34) As Byte
    Dim str_val(0 To 5) As Byte
    Dim haha As Byte
    'Dim i As Integer
    Dim Temp_FCS As Variant
    haha = q0 Xor &H80
   
   '68 1D 1D 68 02 00 6C 32 01 00 00 00 00 00 10 00 00 29 00 00 00 00 00 09 50 5F 50 52 4F 47 52 41 4D 9A 16
    str_write(0) = &H68
    str_write(1) = &H1D
    str_write(2) = &H1D
    str_write(3) = &H68
    str_write(4) = &H2
    str_write(5) = &H0
    str_write(6) = &H6C
    str_write(7) = &H32
    str_write(8) = &H1
    str_write(9) = &H0
    str_write(10) = &H0
    str_write(11) = &H0
    str_write(12) = &H0
    str_write(13) = &H0
    str_write(14) = &H10
    str_write(15) = &H0
    str_write(16) = &H0
    str_write(17) = &H29
    str_write(18) = &H0
    str_write(19) = &H0
    str_write(20) = &H0
    str_write(21) = &H0
    str_write(22) = &H0
    str_write(23) = &H9
    str_write(24) = &H50
    str_write(25) = &H5F
    str_write(26) = &H50
    str_write(27) = &H52
    str_write(28) = &H4F
    str_write(29) = &H47
    str_write(30) = &H52
    str_write(31) = &H41
    str_write(32) = &H4D
    
    str_write(33) = &H9A
    str_write(34) = &H16
    
     For i = 4 To 32
        Temp_FCS = Temp_FCS + str_write(i)
    Next
    str_write(33) = Temp_FCS Mod 256
    str_write(34) = &H16
    
    Dim a$
    For i = 0 To 34
      If Len(Hex(str_write(i))) = 1 Then
         a$ = a$ + "0" + Hex(str_write(i))
      Else
         a$ = a$ + Hex(str_write(i))
      End If
      a$ = a$ + " "
    Next i
    Text1.Text = a$
    
    a$ = ""
    For i = 0 To 34
       a$ = a$ + Chr(str_write(i))
    Next
       
    MSComm1.Output = str_write
    Text3.Text = ""
    Dim xxx%
    Do
      xxx% = DoEvents()
    Loop Until MSComm1.InBufferCount > 0
    Dim ia As Variant
    Dim aa() As Byte
    ia = MSComm1.Input
    aa = ia
    Dim L As Integer
    L = UBound(aa)
    a$ = ""
    For i = 0 To L
      If Len(Hex(aa(i))) = 1 Then
         a$ = a$ + "0" + Hex(aa(i))
      Else
         a$ = a$ + Hex(aa(i))
      End If
      'a$ = a$ '+ "、"
    Next i
    a$ = a$ + ","
    Text2.Text = a$
    
    
    '10 2 0 5C 5E 16
    
    str_val(0) = &H10
    str_val(1) = &H2
    str_val(2) = &H0
    str_val(3) = &H5C
    str_val(4) = &H5E
    str_val(5) = &H16
    
    
    For i = 0 To 5
      If Len(Hex(str_val(i))) = 1 Then
         a$ = a$ + "0" + Hex(str_val(i))
      Else
         a$ = a$ + Hex(str_val(i))
      End If
     ' a$ = a$ + "、"
    Next i
    Text2.Text = a$
      a$ = ""
    For i = 0 To 5
       a$ = a$ + Chr(str_val(i))
    Next
       
    MSComm1.RThreshold = 1
    MSComm1.Output = a$ 'str_val
End Sub

Private Sub Command3_Click()
 End
End Sub

Private Sub sendOrder(o$)

    Dim Temp(0 To 220) As Byte  '建立临时字节数组
    Dim rOrder(0 To 5) As Byte  '建立确认字节数组
    Dim FCS, i, L, i1, i2 As Integer
      
    o$ = Trim(o$)
    L = Len(o$)
    Do '清除非法字符
     If Asc(Mid(o$, L, 1)) < 48 Then L = L - 1
     Loop Until Asc(Mid(o$, L, 1)) > 47
    o$ = Mid(o$, 1, L)
    
    i1 = 1
    Do  '把字符转换为字节数组
      i2 = InStr(i1, o$, " ")
      If i2 > i1 Then Temp(i) = Val("&H" + Mid(o$, i1, i2 - i1)): i = i + 1
      If i1 = i1 Then i1 = i2 + 1
    Loop Until i2 = 0
    
    Temp(1) = i - 5
    Temp(2) = i - 5
    
    For i1 = 4 To i - 2 '校验和计算
        FCS = FCS + Temp(i1)
    Next
    Temp(i - 1) = FCS Mod 256
    Temp(i) = &H16
    
    ReDim sOrder(i) As Byte  '建立发送字节数组
    For i1 = 0 To i
      sOrder(i1) = Temp(i1)
    Next i1
    
    
    Dim a$
    For i1 = 0 To i '把字节数组还原为字符,以便检查
      If Len(Hex(sOrder(i1))) = 1 Then
         a$ = a$ + "0" + Hex(sOrder(i1))
      Else
         a$ = a$ + Hex(sOrder(i1))
      End If
      a$ = a$ + " "
    Next i1
    Text1.Text = a$
    MSComm1.RThreshold = 0 '禁止接收中断
    If MSComm1.PortOpen = False Then MSComm1.PortOpen = True '打开串口
    MSComm1.Output = sOrder '发送通讯命令
    Text3.Text = "" '接收数据显示清零
    Text2.Text = "" '命令响应码,命令确认码显示清零
    
    Dim xxx%
    Do '等待命令响应码
      xxx% = DoEvents()
    Loop Until MSComm1.InBufferCount > 0
    
    Dim ia As Variant
    Dim aa() As Byte
    ia = MSComm1.Input
    aa = ia
    
    L = UBound(aa)
    a$ = ""
    For i = 0 To L
      If Len(Hex(aa(i))) = 1 Then
         a$ = a$ + "0" + Hex(aa(i))
      Else
         a$ = a$ + Hex(aa(i))
      End If
    Next i
    a$ = a$ + ","
    Text2.Text = a$ '命令响应码显示
    
    Dim queRen(5) As Byte
    queRen(0) = &H10 '命令确认码赋值
    queRen(1) = &H2
    queRen(2) = &H0
    queRen(3) = &H5C
    queRen(4) = &H5E
    queRen(5) = &H16
    
    
    For i = 0 To 5
      If Len(Hex(queRen(i))) = 1 Then
         a$ = a$ + "0" + Hex(queRen(i))
      Else
         a$ = a$ + Hex(queRen(i))
      End If
    Next i
    Text2.Text = a$ '命令响应码加命令确认码显示清零
    
    MSComm1.RThreshold = 1  '启动接收中断
    MSComm1.Output = queRen '命令确认码发送

End Sub

Private Sub Command4_Click()
  CommonDialog1.Action = 1
  a$ = CommonDialog1.FileName
  RichTextBox1.LoadFile a$, 1
  
End Sub

Private Sub Command5_Click()
  RichTextBox1.SaveFile "C:\TempFile", 1
End Sub



Private Sub Form_Load()
  MSComm1.CommPort = 1 '指定用口1通讯
  MSComm1.Settings = "9600,e,8,1" '指定通讯参数
 ' MSComm1.PortOpen = True '打开串口
  MSComm1.InputMode = comInputModeBinary '指定输入为二进制模式
  MSComm1.RThreshold = 0
End Sub

Private Sub MSComm1_OnComm()
   If MSComm1.CommEvent = 2 Then
        Dim ia As Variant
        Dim Ra() As Byte
        Dim i, L  As Integer
        Dim a, aa As String
      
        ia = MSComm1.Input '读串口
        Ra = ia
        L = UBound(Ra)
        a = ""
        For i = 0 To L '把字节数组转换为字符
          a = Hex(Ra(i))
          If Len(a) = 1 Then a = "0" + a
          aa = aa + a + " "
        Next
        Text3.Text = Text3.Text + aa '接收字符显示
   End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -