📄 form1.frm
字号:
VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 4470
ClientLeft = 60
ClientTop = 345
ClientWidth = 9060
LinkTopic = "Form1"
ScaleHeight = 4470
ScaleWidth = 9060
StartUpPosition = 3 '窗口缺省
Begin MSCommLib.MSComm MSComm1
Left = 120
Top = 2280
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin MSFlexGridLib.MSFlexGrid viewGrid
Height = 1335
Left = 120
TabIndex = 18
Top = 3000
Width = 8775
_ExtentX = 15478
_ExtentY = 2355
_Version = 393216
Rows = 4
Cols = 16
End
Begin VB.Frame Frame3
Caption = "端口信息"
Height = 2655
Left = 6480
TabIndex = 2
Top = 240
Width = 2415
Begin VB.CommandButton btnCanel
Caption = "取消"
Height = 255
Left = 1680
TabIndex = 21
Top = 2280
Width = 615
End
Begin VB.CommandButton btnRestore
Caption = "还原"
Height = 255
Left = 960
TabIndex = 20
Top = 2280
Width = 615
End
Begin VB.CommandButton btnSave
Caption = "保存"
Height = 255
Left = 120
TabIndex = 19
Top = 2280
Width = 615
End
Begin VB.ComboBox Combo
Height = 300
Index = 4
Left = 1080
TabIndex = 12
Top = 1800
Width = 1215
End
Begin VB.ComboBox Combo
Height = 300
Index = 3
Left = 1080
TabIndex = 11
Top = 1440
Width = 1215
End
Begin VB.ComboBox Combo
Height = 300
Index = 2
Left = 1080
TabIndex = 10
Top = 1080
Width = 1215
End
Begin VB.ComboBox Combo
Height = 300
Index = 1
Left = 1080
TabIndex = 9
Top = 720
Width = 1215
End
Begin VB.ComboBox Combo
Height = 300
Index = 0
Left = 1080
TabIndex = 8
Top = 360
Width = 1215
End
Begin VB.Label Label5
Caption = "奇偶校验"
Height = 375
Left = 240
TabIndex = 17
Top = 1800
Width = 735
End
Begin VB.Label Label4
Caption = "停止位"
Height = 255
Left = 240
TabIndex = 16
Top = 1440
Width = 735
End
Begin VB.Label Label3
Caption = "数据位"
Height = 255
Left = 240
TabIndex = 15
Top = 1080
Width = 735
End
Begin VB.Label Label2
Caption = "波特率"
Height = 375
Left = 240
TabIndex = 14
Top = 720
Width = 735
End
Begin VB.Label Label1
Caption = "端口号"
Height = 255
Left = 240
TabIndex = 13
Top = 360
Width = 855
End
End
Begin VB.Frame Frame2
Caption = "通讯信息"
Height = 2655
Left = 2280
TabIndex = 1
Top = 240
Width = 4095
Begin VB.TextBox Text1
Height = 2295
Left = 120
TabIndex = 3
Top = 240
Width = 3855
End
End
Begin VB.Frame Frame1
Caption = "发送请求"
Height = 2655
Left = 120
TabIndex = 0
Top = 240
Width = 2055
Begin VB.CommandButton btnCANCEL
Caption = "取消"
Height = 375
Left = 480
TabIndex = 7
Top = 1680
Width = 945
End
Begin VB.CommandButton btnOK
Caption = "确定"
Height = 375
Left = 480
TabIndex = 6
Top = 720
Width = 960
End
Begin VB.CommandButton btnXH
Caption = "循环"
Height = 375
Left = 480
TabIndex = 5
Top = 1200
Width = 975
End
Begin VB.ComboBox comboASK
Height = 300
Left = 120
TabIndex = 4
Text = "申请所有测量数据"
Top = 240
Width = 1815
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim data(300) As Byte
Dim receiveFault(15) As Integer
Dim receivePC(15) As Integer
Dim receiveN(15) As Integer
Dim receiveStatic As Integer
Dim package() As Byte
Sub trans_data(i As Integer)
'发出包文
Dim package() As Byte
Select Case i
Case 1
'ACK
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H6
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送ASK" + Chr(13) + Chr(10)
Case 2
'NAK
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H15
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送NCK" + Chr(13) + Chr(10)
Case 3
'申请故障状态-C1
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H40
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送C1申请故障信息" + Chr(13) + Chr(10)
Case 4
'申请放电量-C2
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H41
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送C2申请放电量信息" + Chr(13) + Chr(10)
Case 5
'申请脉冲数-C3
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H42
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送C3申请脉冲数信息" + Chr(13) + Chr(10)
Case 6
'申请所有测量数据-C4
ReDim package(13) As Byte
package(1) = &HEB
package(2) = &H90
package(3) = &HEB
package(4) = &H90
package(5) = &H2
'addr
package(6) = &H1
'info
package(7) = &H43
package(8) = &H1
package(9) = &H1
package(10) = &H4
'sum 6-10
sump = sumcode(package, 1, 13)
sumstr = Right("0000" + hex(sump), 4)
lhex = Right(sumstr, 2)
hhex = Left(sumstr, 2)
package(11) = str_hex(lhex)
package(12) = str_hex(hhex)
'end
package(13) = &H3
LEN_P = 13
Text1.Text = Text1.Text + "发送C4申请所有测量数据信息" + Chr(13) + Chr(10)
End Select
For i = 1 To LEN_P
Text1.Text = Text1.Text + Right(hex(package(i)), 2) + " "
Next i
Text1.Text = Text1.Text + Chr(13) + Chr(10)
MSComm1.Output = package
'检测数据是否全部发送完毕
Do
Loop Until MSComm1.OutBufferCount = 0
End Sub
Function receive_data()
Dim tempdata() As Byte
Dim lhex As String
Dim hhex As String
Dim i As Integer
Dim length As Integer
Dim lengthBW As Integer
Dim tdata As Variant
Text1.Refresh
tti = Now
'循环测试串口是否有数据 等待时间为30秒
tdelay = 30
Do
DoEvents
tti1 = (Now - tti) * 24# * 60# * 60#
Loop Until MSComm1.InBufferCount > 0 Or tti1 > tdelay
'如果有数据
If MSComm1.InBufferCount > 0 Then
tti = Now
'循环测试串口是有数据 等待时间为0.5分=30秒
ttdelay = 1
Do
DoEvents
tti1 = (Now - tti) * 24# * 60# * 60#
Loop Until tti1 > ttdelay
'取出接受数据判断有效性,方数据到data中
length = MSComm1.InBufferCount
ReDim tempdata(length)
For i = 1 To length
tdata = MSComm1.Input
tempdata(i) = tdata(0)
Next i
For i = 1 To length - 12
If tempdata(i) = &HEB Then
If tempdata(i + 1) = &H90 Then
If tempdata(i + 2) = &HEB Then
If tempdata(i + 3) = &H90 Then
If tempdata(i + 4) = &H2 Then
lengthBW = tempdata(i + 9)
If tempdata(i + 5 + lengthBW + 3) = &H3 Then
sump = sumcode(tempdata(), i, i + 5 + lengthBW + 3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -