xiugai.frm
来自「vb程序(整体处理).rar」· FRM 代码 · 共 1,238 行 · 第 1/3 页
FRM
1,238 行
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 = 1320
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 = 1320
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 = 1320
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(2)) * 256 + Val(strr(1)) '先入高位,后入低位
Text14.Text = Val(strr(4)) * 256 + Val(strr(3))
Text15.Text = Val(strr(6)) * 256 + Val(strr(5))
Text16.Text = Val(strr(8)) * 256 + Val(strr(7))
Text17.Text = Val(strr(9))
Text18.Text = Val(strr(10))
Text19.Text = Val(strr(11))
Text20.Text = (Val(strr(15)) * 256 + Val(strr(14))) + (Val(strr(13)) * 256 + Val(strr(12))) / 1000
Text21.Text = (Val(strr(19)) * 256 + Val(strr(18))) + (Val(strr(17)) * 256 + Val(strr(16))) / 1000
Text22.Text = (Val(strr(23)) * 256 + Val(strr(22))) + (Val(strr(21)) * 256 + Val(strr(20))) / 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() '双击发送
Select Case Combo1.Text
Case Is = "4800"
MSComm1.Settings = "4800,n,8,1"
Case Is = "9600"
MSComm1.Settings = "9600,n,8,1"
Case Is = "14400"
MSComm1.Settings = "14400,n,8,1"
Case Is = "19200"
MSComm1.Settings = "19200,n,8,1"
Case Is = "115200"
MSComm1.Settings = "115200,n,8,1"
End Select
Select Case Combo2.Text
Case Is = "com1"
MSComm1.CommPort = 1
Case Is = "com2"
MSComm1.CommPort = 2
Case Is = "com3"
MSComm1.CommPort = 3
Case Is = "com4"
MSComm1.CommPort = 4
Case Is = "com5"
MSComm1.CommPort = 5
End Select
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
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) = &HFF
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
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() '双击接收
Select Case Combo1.Text
Case Is = "4800"
MSComm1.Settings = "4800,n,8,1"
Case Is = "9600"
MSComm1.Settings = "9600,n,8,1"
Case Is = "14400"
MSComm1.Settings = "14400,n,8,1"
Case Is = "19200"
MSComm1.Settings = "19200,n,8,1"
Case Is = "115200"
MSComm1.Settings = "115200,n,8,1"
End Select
Select Case Combo2.Text
Case Is = "com1"
MSComm1.CommPort = 1
Case Is = "com2"
MSComm1.CommPort = 2
Case Is = "com3"
MSComm1.CommPort = 3
Case Is = "com4"
MSComm1.CommPort = 4
Case Is = "com5"
MSComm1.CommPort = 5
End Select
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.InBufferSize = 1024
MSComm1.PortOpen = True
For i = 0 To 3
MSComm1.Output = qingqiu
Sleep 300
Next
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 + =
减小字号Ctrl + -
显示快捷键?