MSComm1.Output = ":" + str_output + LRC(str_output) + Chr$(13) + Chr$(10)
’接收数据
inputstring = MSComm1.Input
’将接收到的数据分别赋值并显示
Txt_100.Text = change(inputstring, 8, 12) ’甲班当日产量
Txt_102.Text = change(inputstring, 16, 20) ’甲班累计产量
Txt_104.Text = change(inputstring, 24, 28) ’乙班当日产量
Txt_106.Text = change(inputstring, 32, 36) ’乙班累计产量
Txt_108.Text = change(inputstring, 40, 44) ’丙班当日产量
Txt_110.Text = change(inputstring, 48, 52) ’丙班累计产量
Txt_112.Text = change(inputstring, 56, 60) ’丁班当日产量
Txt_114.Text = change(inputstring, 64, 68) ’丁班累计产量
Txt_116.Text = change(inputstring, 72, 76) ’各班当日合计产量
Txt_118.Text = change(inputstring, 80, 84) ’各班累计合计产量
If Txt_type.Text = "条并联" Then
Txt_view1.Text = change(inputstring, 104, 108) ’条并联绕卷速度
Txt_view2.Text = change(inputstring, 112, 116) ’条并联当前长度
Else
Txt_view1.Text = change(inputstring, 88, 92) ’精梳机钳次
Txt_view2.Text = change(inputstring, 96, 100) ’精梳机条速
End If
str_state = Mid(inputstring, 120, 4) ’接收运行状态的返回值,并判断运行状态
If str_state = "0001" Then
Cmd_128.Caption = "运行中"
End If
If str_state = "0000" Then
Cmd_128.Caption = "停止"
End If
End If
End Sub
change(inputstr, start1 As Integer, start2 As Integer)用于转换采集到的数据,其功能是将采集到的产量数据转换为十进制。其代码如下:
Public Function change(inputstr, start1 As Integer, start2 As Integer)
str_low = Mid(inputstr, start1, 4) ’读寄存器中的数据赋给低字节
str_high = Mid(inputstr, start2, 4) ’读寄存器中的数据赋给高字节
str_hex = str_high + str_low ’整合高低字节数据
str_input = Val("&H" + str_hex) ’将十六进制数据转换成十进制
If str_input >= -32768 And str_input <= -1 Then ’将转换成十进制处于-32768~32767的数据转换为相应的正数
str_input = str_input + 65536
End If
change = str_input / 1000 ’返回值 取三位小数
End Function
3)信息查询
信息查询界面如下所示,可对已经保存的生产数据根据时间、班次、产量、车号进行综合查询。
该功能的程序方面比较简单,主要是对数据库的查询操作。以单独对班次查询为例,其代码如下:
’按班次查询子函数,用于判断其搜索关键字是否有效
Private Sub Chk_team_Click()
If Chk_team.Value = 1 Then
Combo_team.Enabled = True
Else
Combo_team.Enabled = False
End If
End Sub
’选择班次子函数,用于判断所选班次
Private Sub Combo_team_Click()
Dim liner_str
Select Case Combo_team.ListIndex
Case 0
liner_str = "甲班"
Case 1
liner_str = "乙班"
Case 2
liner_str = "丙班"
Case 3
liner_str = "丁班"
End Select
End Sub
’班次查询子函数,获取查询字符串
Public Function sch_team()
Dim liner_str
Dim sch_str_team
Select Case Combo_team.ListIndex
Case 0
liner_str = "甲班"
Case 1
liner_str = "乙班"
Case 2
liner_str = "丙班"
Case 3
liner_str = "丁班"
End Select
sch_str_team = "info_liner = ’" + liner_str + "’"
sch_team = sch_str_team
End Function
’产量查询函数,用于查询产量并对其进行显示
Private Sub cmd_search_Click()
Dim sch_str
’按班次查询
If Chk_team.Value = 1 Then
sch_str = " where " + sch_team()
End If
’查询结果显示
Dim resource_str
resource_str = " select info_id as 编号,info_mactype as 机器类型 ,info_liner as 班次, "
resource_str = resource_str + " info_sumoutput as 当日产量, info_dayoutput as 累计产量,"
resource_str = resource_str + " info_daytotal as 当日合计产量,info_total as 累计合计产量 "
resource_str = resource_str + " from " + table_str + sch_str
Adodc1.RecordSource = resource_str
Debug.Print Adodc1.RecordSource
Adodc1.Refresh
End Sub
可根据以上单独查询班次的例子对其进行扩展,增加根据时间,车号,产量范围等对产量进行查询的功能,这里就不一一叙述了。
四、结束语
触摸屏与上位机的结合,并通过VB6.0传送数据所构成的计算机监控系统,对于近距离传输数据的现场控制来说是一种性价比很高的解决方案。该系统充分的利用了触摸屏的通信功能和PC强大的图形显示、浮点运算等特点,以最大的限度合理的利用了资源,实现了对设备运行状态的监控。
上一篇:大屏幕触摸屏在精梳机中的应用