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

解决方案 »

  1.   

    LZ:
    1)似乎你的角度传感器每隔10ms给上位机VB发送角度数据频次过高
    2)下位机会不定时的给上位机VB发送指令数据,那它的字节长度是多大?
    3)你的波特率设置多大?
      

  2.   

    建议:
    1)下位机按RS485转RS232方式将发送指令数据和角度传感器发送角度数据按不同地址区分发送
    2)或者将波特率设置得高些,在19200上,这样每秒理论传输可达1920字节,那么每10ms可传输19字节,那就可把指令数据与角度数据合并成1个数据包,估计你的每次字节长仅8字节。
    上位机按8字节接收处理数据。