📄 vb上位机.frm
字号:
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 + -