VB MSComm串口通信 丢失数据

我是用Timer控制的,从网上搜,有的说是Timer本来就本准确,所以我现在不想用Timer,只用oncomm事件,我是向下位机发送A,下位机返回数据,然后我再处理,这样... 我是用Timer控制的,从网上搜,有的说是Timer本来就本准确,所以我现在不想用Timer,只用oncomm事件,我是向下位机发送A,下位机返回数据,然后我再处理,这样的话,怎么才知道我已经处理完了?再怎么继续发送A?两个问题,谢谢解答!! 展开
 我来答
cd68001
2011-06-10 · TA获得超过4229个赞
知道小有建树答主
回答量:976
采纳率:66%
帮助的人:353万
展开全部
问题问的挺含糊,我说下基本的工作方式吧。
上位机,就是你用VB写的程序,发一个指令A到下位机,下位机处理返回后,上位机继续处理。
上位机发送A指令后,需要有个计时,这个时间应该是下位机最长处理时间的3~10倍以上。超过这个时间没有接到下位机反馈的信息,那么上位机应重新发送A指令,连续发送NN次A指令仍没有得到反馈,说明与下位机通信中断或下位机掉电,VB应在界面提示故障警告并记录日志。
下位机也可以这么做,如果连续多少秒没有接到来自上位机的指令,联线故障LED红灯应亮起,提示当先是离线状态。
当出现这种情况时,维护人员应参与进来,根据两个警报提示来判断掉电、死机、断线等情况并予以排除。
heejohn
2011-06-10 · TA获得超过226个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:213万
展开全部
每个串口空间在其event属性里都有一个类似 ondatareceived 事件,双击这个事件打开函数主体,写你需要判断的语句。作用是当串口收到数据时就执行这段代码。另外串口属性里有个 interval 属性的,是设定串口接收数据的间隔,单位为ms,即:1000ms=1s.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七终多E
2011-06-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:3756
采纳率:46%
帮助的人:3444万
展开全部
http://hi.baidu.com/rdhome/blog/item/a0c4bc7f8bee4d0d28388abd.html 参考一下这个 有一个RTS和DTR 这个似乎用于 下位机或者上位机 是否准备好的 你也可以自己定义超时时间 超过了 说明线路通讯错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
466910092
2011-06-10 · 超过13用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:38.3万
展开全部
建立一个全局变量,用来指示数据处理进度。窗体初始化的时候为0 ,A发送完毕后设为1.接收了数据设置为2.数据处理中设置为3.数据处理成功设置为4。处理完毕后可以再次发送,变量再度设1.这样就能循环进行了。一般还是靠一个定时器定时检查数据进度,决定是等待,还是发送数据什么的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式