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

📄 vb上位机.frm

📁 vb程序(整体处理).rar
💻 FRM
📖 第 1 页 / 共 3 页
字号:
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   3600
      TabIndex        =   7
      Top             =   720
      Width           =   1095
   End
   Begin VB.Label Label3 
      Alignment       =   2  'Center
      Caption         =   "IH"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   2520
      TabIndex        =   5
      Top             =   720
      Width           =   1095
   End
   Begin VB.Label Label2 
      Alignment       =   2  'Center
      Caption         =   "IL"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   1440
      TabIndex        =   3
      Top             =   720
      Width           =   1095
   End
   Begin VB.Label Label1 
      Alignment       =   2  'Center
      Caption         =   "para"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   375
      Left            =   360
      TabIndex        =   1
      Top             =   720
      Width           =   1095
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)  '延时


Private Sub jiance(str As String)   '检测返回码部分
Dim i As Integer
Dim strr(70) As String
Dim buffer() As Byte
If MSComm1.InBufferCount < 1 Then
  Sleep 100
End If
buffer = MSComm1.Input
   If MSComm1.InBufferCount >= 0 Then
   
   
   For i = LBound(buffer) To UBound(buffer)
   strr(i) = buffer(i)
   Next
   str = strr(0)
   
   MSComm1.InBufferCount = 0
   End If

End Sub

Private Sub jiee(str As String)   '接收部分子程序
Dim i As Integer
Dim strr(70) As String
Dim buffer() As Byte
Dim shushu(9) As Single
If MSComm1.InBufferCount < 1 Then
  Sleep 1000
End If
buffer = MSComm1.Input
   If MSComm1.InBufferCount >= 0 Then
   
   
   For i = LBound(buffer) To UBound(buffer)
   strr(i) = buffer(i)
   Next
   If Val(strr(0)) = &HCC Then
   Text13.Text = Val(strr(4)) * 256 + Val(strr(3))      '先入低位,后入高位
   Text14.Text = Val(strr(6)) * 256 + Val(strr(5))
   Text15.Text = Val(strr(8)) * 256 + Val(strr(7))
   Text16.Text = Val(strr(10)) * 256 + Val(strr(9))
   Text17.Text = Val(strr(11)) '* 256 + Val(strr(1))
   Text18.Text = Val(strr(12)) ' * 256 + Val(strr(11))
   Text19.Text = Val(strr(13)) '* 256 + Val(strr(13))
   Text20.Text = (Val(strr(22)) * 256 + Val(strr(21))) + (Val(strr(20)) * 256 + Val(strr(19))) / 1000
   Text21.Text = (Val(strr(26)) * 256 + Val(strr(25))) + (Val(strr(24)) * 256 + Val(strr(23))) / 1000
   Text22.Text = (Val(strr(30)) * 256 + Val(strr(29))) + (Val(strr(28)) * 256 + Val(strr(27))) / 1000
   Else
   Text13.Text = 0
   Text14.Text = 0
   Text15.Text = 0
   Text16.Text = 0
   Text17.Text = 0
   Text18.Text = 0
   Text19.Text = 0
   Text20.Text = 0
   Text21.Text = 0
   Text22.Text = 0
   End If

   MSComm1.InBufferCount = 0
   End If

End Sub


Private Sub CHAIFEN(ss As Integer, s As Integer, fudianshu As Single)    '把浮点数拆成两部分
ss = Int(fudianshu)                     '整数部分
s = Int((fudianshu - ss) * 1000)        '小数部分
End Sub

Private Sub send_2B(send_data_1 As Byte, send_data_2 As Byte, tti As Integer)  '发送2字节数据子程序
Dim send_data(1) As Byte
Dim aa As Byte
Dim bb As Byte
aa = Int(tti / 256)
bb = tti And &HFF
send_data_1 = bb
send_data_2 = aa
End Sub

Private Sub send_1B(send_dd As Byte, oneB As String)  '发送1字节数据子程序
send_dd = oneB
End Sub

Private Sub send_4B(send_4b_1 As Byte, send_4b_2 As Byte, send_4b_3 As Byte, send_4b_4 As Byte, fuu As Single) '发送浮点数子程序
Dim i As Integer
Dim s As Integer
Dim ss As Integer
Dim fudianshu As Single
Dim send_data_1(1) As Byte
Dim send_data_2(1) As Byte
Dim tti(1) As Integer
fudianshu = fuu
Call CHAIFEN(ss, s, fudianshu)
tti(0) = s                  '小数部分
tti(1) = ss                '整数部分
For i = 0 To 1
Call send_2B(send_data_1(i), send_data_2(i), tti(i))
Next
send_4b_1 = send_data_1(0) '小数低位
send_4b_2 = send_data_2(0) '小数高位
send_4b_3 = send_data_1(1)  '整数低位
send_4b_4 = send_data_2(1)  '整数高位
End Sub

Private Sub Command1_Click()      '双击发送
Dim m As Integer
Dim i As Integer
Dim n As Integer
Dim k As Integer
Dim tti(4) As Integer
Dim oneB(3) As String
Dim str As String
Dim fuu(3) As Single
Dim head_data(30) As Byte
Dim send_data_1(4) As Byte        '整型低位
Dim send_data_2(4) As Byte        '整型高位
Dim send_4b_1(3) As Byte          '小数低位
Dim send_4b_2(3) As Byte          '小数高位
Dim send_4b_3(3) As Byte          '整数低位
Dim send_4b_4(3) As Byte          '整数高位
Dim send_dd(3) As Byte
MSComm1.InputMode = comInputModeBinary
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.Settings = "4800,n,8,1"
MSComm1.CommPort = 1

  
 tti(0) = CInt(Val(Text1.Text))
 tti(1) = CInt(Val(Text2.Text))
 tti(2) = CInt(Val(Text3.Text))
 tti(3) = CInt(Val(Text4.Text))
 tti(4) = CInt(Val(Text5.Text))
 oneB(0) = Val(Text6.Text)
 oneB(1) = Val(Text7.Text)
 oneB(2) = Val(Text8.Text)
 oneB(3) = Val(Text9.Text)
 fuu(0) = CSng(Val(Text10.Text))
 fuu(1) = CSng(Val(Text11.Text))
 fuu(2) = CSng(Val(Text12.Text))
 fuu(3) = CSng(Val(Text23.Text))

 
   
     
     For n = 0 To 4                         '发5个整型
     Call send_2B(send_data_1(n), send_data_2(n), tti(n))
     Next n
     For m = 0 To 3                         '发4个字符
     Call send_1B(send_dd(m), oneB(m))
     Next m
     For k = 0 To 3                         '发4个浮点
     Call send_4B(send_4b_1(k), send_4b_2(k), send_4b_3(k), send_4b_4(k), fuu(k))
     Next k
     '整体赋值
     head_data(0) = &HCC
     head_data(1) = send_data_1(0)
     head_data(2) = send_data_2(0)
     head_data(3) = send_data_1(1)
     head_data(4) = send_data_2(1)
     head_data(5) = send_data_1(2)
     head_data(6) = send_data_2(2)
     head_data(7) = send_data_1(3)
     head_data(8) = send_data_2(3)
     head_data(9) = send_data_1(4)
     head_data(10) = send_data_2(4)
     head_data(11) = send_dd(0)
     head_data(12) = send_dd(1)
     head_data(13) = send_dd(2)
     head_data(14) = send_dd(3)
     head_data(15) = send_4b_1(0)
     head_data(16) = send_4b_2(0)
     head_data(17) = send_4b_3(0)
     head_data(18) = send_4b_4(0)
     head_data(19) = send_4b_1(1)
     head_data(20) = send_4b_2(1)
     head_data(21) = send_4b_3(1)
     head_data(22) = send_4b_4(1)
     head_data(23) = send_4b_1(2)
     head_data(24) = send_4b_2(2)
     head_data(25) = send_4b_3(2)
     head_data(26) = send_4b_4(2)
     head_data(27) = send_4b_1(3)
     head_data(28) = send_4b_2(3)
     head_data(29) = send_4b_3(3)
     head_data(30) = send_4b_4(3)
     MSComm1.PortOpen = True       '打开串口
     'For i = 0 To 9                '发送10次
     MSComm1.Output = head_data
     Sleep 200
     'Call jiance(str)               '等待200ms检测一次返回值
     'If Val(str) = &H6F Then
     'GoTo jieshou
'jieshou:
    ' MsgBox "发送成功"
    ' End If
     'Next
   Call jiee(str)
     MsgBox "wancheng"
     MSComm1.PortOpen = False

End Sub

Private Sub Command2_Click()
Dim ss As Integer
Dim s As Integer
Dim fudianshu As Single
fudianshu = Val(Text1.Text)
Call CHAIFEN(ss, s, fudianshu)
Text2.Text = ss
Text3.Text = s
End Sub

Private Sub Command3_Click()     '双击接收
Dim i As Integer
Dim l As Integer
Dim r As Integer
Dim shuju(2) As Single
Dim qingqiu(0) As Byte
Dim send_end(0) As Byte
Dim str As String
Dim ssjj(6) As Integer
qingqiu(0) = &HCC
send_end(0) = &H7C
MSComm1.InputMode = comInputModeBinary
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.Settings = "4800,n,8,1"
MSComm1.CommPort = 1

MSComm1.PortOpen = True
'For i = 0 To 5
'MSComm1.Output = qingqiu
'Sleep 100
'Next
Sleep 500
Call jiee(str)

'MSComm1.Output = send_end
'Sleep 10
'MSComm1.Output = send_end
'Sleep 10
'MSComm1.Output = send_end
'Sleep 10
'MSComm1.Output = send_end
'Sleep 10
'MSComm1.Output = send_end
'Sleep 10
MSComm1.PortOpen = False
End Sub




Private Sub inshuju1(ssjj As Integer)    '接收整型
Dim i As Integer
Dim buffer() As Byte
Dim insj As String
Dim tww As Integer
Dim Y As String
Dim diwei As Integer
Dim gaowei As Integer
If MSComm1.InBufferCount < 1 Then
End If
buffer = MSComm1.Input
    If MSComm1.InBufferCount >= 0 Then
    
    For i = LBound(buffer) To UBound(buffer)
    insj = buffer(i)
    Next
    Y = insj
    diwei = Val(Y)
    buffer = MSComm1.Input
    For i = LBound(buffer) To UBound(buffer)
    
    insj = buffer(i)
    Next
    Y = insj
    gaowei = Val(Y)
    End If
 ssjj = gaowei * 256 + diwei

End Sub

Private Sub inshuju2(shuju As Single)     '接收浮点
Dim i As Integer
Dim ssjj(1) As Integer
For i = 0 To 1
Call inshuju1(ssjj(i))
Next
shuju = CSng(ssjj(0) / 1000) + CSng(ssjj(1))
End Sub

Private Sub Command4_Click()
End
End Sub

⌨️ 快捷键说明

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