当前位置:编程学习 > VB >>

VB通信

大家好!我想问一下:
我现在用VB和PLC进行通信,下位机会不定时的给上位机VB发送指令数据,而且角度传感器也会每隔10ms给上位机VB发送角度数据,发送的数据都是4个字节的,我想问:
我是设置VB控件MSCOMM的属性为.RThreshold = 4进行4个字节触发一次oncomm事件;还是设置.RThreshold = 1,1字节触发一次oncomm事件,然后我在oncomm事件里进行判断.InBufferCount = 4缓冲区等于4个字节时,我才进行数据的处理。
以上两种方式那种好啊?因为是10ms一次,要求高速处理,并且两种方式我都试了,都发现有时候在我处理指令数据时还没处理完,下一个角度数据就过来了,导致这次的指令数据丢失而不能执行。请问各位专家这个问题怎么解决?????? --------------------编程问答-------------------- LZ:
1)似乎你的角度传感器每隔10ms给上位机VB发送角度数据频次过高
2)下位机会不定时的给上位机VB发送指令数据,那它的字节长度是多大?
3)你的波特率设置多大? --------------------编程问答--------------------
引用 1 楼 zdingyun 的回复:
LZ: 
1)似乎你的角度传感器每隔10ms给上位机VB发送角度数据频次过高 
2)下位机会不定时的给上位机VB发送指令数据,那它的字节长度是多大? 
3)你的波特率设置多大?

建议:
1)下位机按RS485转RS232方式将发送指令数据和角度传感器发送角度数据按不同地址区分发送
2)或者将波特率设置得高些,在19200上,这样每秒理论传输可达1920字节,那么每10ms可传输19字节,那就可把指令数据与角度数据合并成1个数据包,估计你的每次字节长仅8字节。
上位机按8字节接收处理数据。 --------------------编程问答-------------------- 你好,非常谢谢你的答复。我有几个问题还没明白:我的指令数据和角度数据都是4个字节的,设置的波特率是9600,你说把指令和角度数据合并1个数据包发送,但是我的指令是不定期的触发的发送,那在我没有指令的时候要咋办啊,还是照常发送它的四个字节????
补充:VB ,  COM/DCOM/COM+
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,