LabVIEWwilliam hill官网
直播中

Rachel

6年用户 9经验值
擅长:可编程逻辑
私信 关注
[问答]

Labview队列同步问题


我想问问 我通过单片机COM6串口每隔20ms向PC发送字符串“1”“2”,入队列,再出队列(判断),控制激光同步,但是实际上入队列的速度总是大于出队列的速度,如何控制出入队列同步?      还有因为PC是被动接受数据,不设置延时时间会不会有影响?
  • N6JMS35CY}A9{9Q7%`_4@OA.png
  • IMG_6464(20190702-104256).jpg

回帖(4)

李维嘉

2019-7-2 14:04:28

老蜗牛

2019-7-2 15:22:35
你自己算算看:在20ms内,能否依次完成关闭通道5,读取18个字节,打开通道7,读取36个字节,清空缓冲区,这五个动作?
1 举报
  • Rachel: 能否问问如何计算每一步所用的时间,使用Labview里的计时vi?谢谢

王志博

2019-7-2 15:51:36
你出队列的代码明显比入队多啊,你的条件结构有点多了,可以简化成一个,VISA写入次数需要缩短,或者你再考虑考虑用其它的方法
4 举报
  • Rachel: 谢谢,如何缩短VISA写入次数?不是很明白
  • 王志博 回复 Rachel: 你的VISA写入有必要写入四次吗?还是连续写入的,再有你清除缓存的目的是什么?可不可以取消
  • Rachel 回复 王志博: 其实我是想连续输入“L5O0”“L7O1”关闭5通道打开7通道,但是中间不加Read vi的话,程序只能关闭5通道而不打开7通道,这里我也不是很明白,所以就加了两个Read vi   清除缓存vi我试试取消
  • 王志博 回复 Rachel: 你可以用串口助手试试如何发指令,发尽量少的指令完成更多的事情,你也可以把READ放到另一个循环,多线程会缩短时间,再就是你可以修改串口的通讯模式,如果能改为CR/LF结尾会READ会缩短时间的

二位请

2019-7-2 16:35:49
入队到出队前的代码耗时太长了,得优化结构尽量多删掉点
举报

更多回帖

发帖
×
20
完善资料,
赚取积分