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

📄 mainfrm.frm

📁 master440变频器的上位机程序
💻 FRM
📖 第 1 页 / 共 3 页
字号:

 i(3) = &H0                               'PKW区8字节,广播时全真F
 i(4) = &H0
 i(5) = &H0
 i(6) = &H0
 i(7) = &H0
 i(8) = &H0
 i(9) = &H0
 i(10) = &H0
 
 i(11) = &H4                              'PZD区4字节
 i(12) = &H7E
 i(13) = &H0
 i(14) = &H0

For j = 0 To 14                           '报文的最后位BCC位,对前面14字节的数进行异或和校验
  i(15) = i(15) Xor i(j)
Next j
  MSComm1.OutBufferCount = 0
  MSComm1.Output = i                      '将运行代码通过串口输出到变频器
End Sub
Private Sub RevCmd_Click()                 '反向运行
Dim i(15) As Byte
Dim j As Integer
Dim Pin As Single
Dim PinH, PinL As String                   '取得频率
    Pin = Val(Text5.Text) * 16384 / 50     '格式化获取频率,100%输出时16#4000对应十进制16384

  If Len(Hex$(Pin)) = 4 Then
     PinH = Mid(Hex$(Pin), 1, 2)
     PinL = Mid(Hex$(Pin), 3, 2)
  End If

  If Len(Hex$(Pin)) < 4 Then
     PinH = Mid(Hex$(Pin), 1, 1)
     PinL = Mid(Hex$(Pin), 2, 2)
  End If

  i(0) = &H2                              '头码
  i(1) = &HE                              '字节长
  i(2) = &HB                              '变频器站号11,如果为广播,则为32

  i(3) = &H0                              'PKW区8字节,广播时全真F
  i(4) = &H0
  i(5) = &H0
  i(6) = &H0
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &HC                            'PZD区4字节
  i(12) = &H7F
  i(13) = "&H" + PinH                    '给定频率,高位在前,低位在后
  i(14) = "&H" + PinL

  For j = 0 To 14                        '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i                 '将运行代码通过串口输出到变频器
End Sub
Private Sub FwdJogCmd_Click()             '正向点动
Dim i(15) As Byte                         '定义临时数组变量
Dim j As Integer
Dim Pin As Single

  i(0) = &H2                             '头码
  i(1) = &HE                             '字节长
  i(2) = &HB                             '变频器站号11,如果为广播,则为32

  i(3) = &H0                             'PKW区8字节,广播时全真F
  i(4) = &H0
  i(5) = &H0
  i(6) = &H0
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H5                            'PZD区4字节
  i(12) = &H7E
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                        '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i                 '将运行代码通过串口输出到变频器
End Sub
Private Sub StopJogCmd_Click()          '停止点动
Dim i(15) As Byte
Dim j As Integer
 i(0) = &H2                             '头码
 i(1) = &HE                             '字节长
 i(2) = &HB                             '变频器站号11,如果为广播,则为32

 i(3) = &H0                             'PKW区8字节,广播时全真F
 i(4) = &H0
 i(5) = &H0
 i(6) = &H0
 i(7) = &H0
 i(8) = &H0
 i(9) = &H0
 i(10) = &H0

 i(11) = &H4                             'PZD区4字节
 i(12) = &H7E
 i(13) = &H0
 i(14) = &H0
 
For j = 0 To 14                         '报文的最后位BCC位,对前面14字节的数进行异或和校验
  i(15) = i(15) Xor i(j)
Next j
  MSComm1.OutBufferCount = 0
  MSComm1.Output = i                    '将运行代码通过串口输出到变频器
End Sub
Private Sub RevJogCmd_Click()           '反向点动
Dim i(15) As Byte
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                            '头码
  i(1) = &HE                            '字节长
  i(2) = &HB                            '变频器站号11,如果为广播,则为32

  i(3) = &H0                            'PKW区8字节,广播时全真F
  i(4) = &H0
  i(5) = &H0
  i(6) = &H0
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H6                           'PZD区4字节
  i(12) = &H7E
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub ReadCmd_Click()            '参数读取
   If Combo2.ListIndex = 0 Then
   MsgBox "请选择读取的参数区域,如READ A!", vbInformation + vbOKOnly, "信息"
   GoTo XXX:
   End If
   Select Case Combo2.ListIndex
           Case "1"
           Call ReadA
           Case "2"
           Call ReadB
           Case "3"
           Call ReadC
      End Select
XXX:
End Sub
Private Sub ReadA()                    '读P1082设定的最高频率
Dim i(15) As Byte                      '定义临时数组变量
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                           '头码
  i(1) = &HE                           '字节长
  i(2) = &HB                           '变频器站号11,如果为广播,则为32

  i(3) = &H14                          'PKW区8字节,广播时全真F
  i(4) = &H3A
  i(5) = &H0
  i(6) = &H0
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H0                           'PZD区4字节
  i(12) = &H0
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub ReadB()                    '读P2002基准电流
Dim i(15) As Byte                      '定义临时数组变量
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                           '头码
  i(1) = &HE                           '字节长
  i(2) = &HB                           '变频器站号11,如果为广播,则为32

  i(3) = &H10                          'PKW区8字节,广播时全真F
  i(4) = &H2
  i(5) = &H80
  i(6) = &H0
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H0                           'PZD区4字节
  i(12) = &H0
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub ReadC()                    '读P2010波特率地址
Dim i(15) As Byte                      '定义临时数组变量
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                           '头码
  i(1) = &HE                           '字节长
  i(2) = &HB                           '变频器站号11,如果为广播,则为32

  i(3) = &H10                          'PKW区8字节,广播时全真F
  i(4) = &HA
  i(5) = &H80
  i(6) = &H1
  i(7) = &H0
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H0                           'PZD区4字节
  i(12) = &H0
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub WriteCmd_Click()           '参数设置
If Combo3.ListIndex = 0 Then
   MsgBox "请选择修改的参数区域,如WRITE A!", vbInformation + vbOKOnly, "信息"
 GoTo XXX:
  End If
If Combo3.ListIndex = 2 Then
   MsgBox "将改变EEPROM参数值,要继续吗?", vbExclamation + vbOKCancel, "警告"
 GoTo XXX:
   End If
   Select Case Combo3.ListIndex
           Case "1"
           Call WriteA
           Case "2"
           Call WriteB
       
      End Select
XXX:
End Sub
Private Sub WriteA()                   '写P1120斜坡上升时间为0.5S 只改变RAM
Dim i(15) As Byte                      '定义临时数组变量
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                           '头码
  i(1) = &HE                           '字节长
  i(2) = &HB                           '变频器站号11,如果为广播,则为32

  i(3) = &H34                          'PKW区8字节,广播时全真F
  i(4) = &H60
  i(5) = &H0
  i(6) = &H0
  i(7) = &H3F                          '修改为0.5S
  i(8) = &H0
  i(9) = &H0
  i(10) = &H0

  i(11) = &H0                           'PZD区4字节
  i(12) = &H0
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub WriteB()                   '写P1082频率为40.00  改变RAM和EEPROM
Dim i(15) As Byte                      '定义临时数组变量
Dim j As Integer
Dim Pin As Single
  i(0) = &H2                           '头码
  i(1) = &HE                           '字节长
  i(2) = &HB                           '变频器站号11,如果为广播,则为32

  i(3) = &H34                          'PKW区8字节,广播时全真F
  i(4) = &H3A
  i(5) = &H0
  i(6) = &H0
  i(7) = &H42                          '修改40.00
  i(8) = &H20
  i(9) = &H0
  i(10) = &H0

  i(11) = &H0                           'PZD区4字节
  i(12) = &H0
  i(13) = &H0
  i(14) = &H0

  For j = 0 To 14                      '报文的最后位BCC位,对前面14字节的数进行异或和校验
      i(15) = i(15) Xor i(j)
   Next j
      MSComm1.OutBufferCount = 0
      MSComm1.Output = i               '将运行代码通过串口输出到变频器
End Sub
Private Sub Mscomm1_OnComm()           '接收信息
Dim i%, buf$
Dim hexdisp As String
Dim inByte() As Byte                   '定义接收信息动态数组
Dim tmp As Variant                     '定义数据缓冲区
    buf = ""                           '清空数据缓冲区
Select Case MSComm1.CommEvent
Case comEvReceive                      '接收事件
     tmp = MSComm1.Input
     inByte = tmp
For i = LBound(inByte) To UBound(inByte)  '转换接收的2进制数为可见的16进制数
        buf = buf + Hex(inByte(i)) + Chr(32)
    Next i
         hexdisp = hexdisp + buf
    
End Select
          P11 = Val("&H" & Mid(hexdisp, 15, 8))
          
       If Combo2.ListIndex = 3 Then
          P11 = Val("&H" & Mid(hexdisp, 16, 8))
        End If
         
End Sub
Private Sub TimControl_Timer()
   Select Case Combo2.ListIndex
           Case "1"                  '4248000为IEEE浮点数,取整时结果为51,不知道如何处理
           LED1.LEDSTRING = Int(P11 * 50 / 16348)
           Case "2"
           LED3.LEDSTRING = CStr(P11 * 0.1 / 16348)
           Case "3"
           LED5.LEDSTRING = Str(P11)
      End Select
   
End Sub

⌨️ 快捷键说明

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