求VB高手解答程序

[复制链接]
查看11 | 回复1 | 2010-9-14 09:47:29 | 显示全部楼层 |阅读模式
'如果设备1启动则开始计时
If Cmdstart1.Enabled = False Then

Dim t1 As Long

t1 = DateDiff("s", strtime1, Now)

sb1runtime = FunSecondToFormat(t1)


'设备1的加料报警

If t1 = sbtime2(1) Then
'如果精磨机2小时到,加12号料报警

sb1alarm1 = 0

sb1Timer1.Enabled = True'开启报警时间定时器

MSComm1.Output = "@" + "01" + "01" + Chr(13) '8060模块1的第1通道输出高电平

Buf1 = waitRs(MSComm1, Chr(13), 40) '等待返回Chr(13)字符

End If


If t1 = sbtime3(1) Then '如果时间到4小时,计时清零并且报警

sb1alarm2 = 0
'报警时间清零

sb1Timer2.Enabled = True'开启报警时间定时器

MSComm1.Output = "@" + "01" + "02" + Chr(13) '8060模块1的第2通道输出高电平

Buf1 = waitRs(MSComm1, Chr(13), 40) '等待返回Chr(13)字符

End If
End If
请问这道程序编的有问题没?用这道程序进行现场试验的时候,时间走的时快时慢,感觉不是系统时间似的 还有就是时间竟然只有秒一直再加加到60后 进1到分 然后秒竟然继续61不再重复0开始 这是为什么呢?又不知道怎么改求高手帮忙谢谢

回复

使用道具 举报

千问 | 2010-9-14 09:47:29 | 显示全部楼层
VB写的,不能多线程,有时候Timer控件的Timer事件就会被阻塞,无法响应的。建议用循环,再使用GetTickCount这个API来判断然后如果你用Timer的话,记得当道60秒后,使秒的那个变量赋值为0就成!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行