LabVIEWwilliam hill官网
直播中

王子豪123

6年用户 14经验值
私信 关注
[问答]

请教如何控制两个不同周期循环的开始时间,即循环周期不同,只要第一次循环同时开始即可

我用集合点同步循环开始,但是每一次循环都会同时开始,即使设置不同周期,长周期循环也会等待短周期,等都到达集合点后才开始循环,不符合我的预期,我只是想让他们第一次循环开始是同步的,之后根据自己周期执行。希望大神能够帮忙解决一下,谢谢!
  • 集合点控制两个循环

回帖(5)

老蜗牛

2018-4-26 09:58:40
大概这么个意思,参考
QQ截图20180426154330.png
QQ截图20180426154347.png
举报

王子豪123

2018-5-3 22:36:34
引用: 老蜗牛 发表于 2018-4-26 15:43
大概这么个意思,参考

谢谢你,你的程序框图是完全符合我描述的功能的,但是即使做到了第一个循环同步,下一次循环时并没有完全按照我在循环里设置的等待时间执行(我只在循环里设置了写入串口函数),根据实验现象表明,存在不确定性延迟(延迟在毫秒级,1-5毫秒,影响实验结果,我希望延迟能控制在微秒级),我猜想可能因为等待时间设置不同导致系统自动设置多循环的优先级而造成延时,于是我设置相同等待时间,结果还是一样,存在毫秒级的时延。查过相关资料,说labview是数据流类型,系统将CPU时间片分给每一个线程,但是在相同时间片里只能执行一个线程。使用集合点同步多循环,在相同周期的情况下可以做到完全的同步,但是在不同周期时会等待最长周期才开始。所以想请问有什么其它方法可以使两个循环同步执行(不同周期),或者误差在微秒级,即CPU可以同时处理两个循环的任务。再次感谢能够耐心解答我的问题。
举报

王子豪123

2018-5-7 10:10:20
谢谢各位的帮助,已经找到了解决的办法,使用定时循环结构执行多个帧,在输入节点设置总周期,在右数据节点设置不同周期及开始时间,至于两个定时循环同步开始,可使用同步定时结构开始VI,即可解决上述问题,且不存在误差。
举报
  • 同步定时结构开始.PNG

王子豪123

2018-5-7 10:14:29
引用: 王子豪123 发表于 2018-5-7 10:10
谢谢各位的帮助,已经找到了解决的办法,使用定时循环结构执行多个帧,在输入节点设置总周期,在右数据节点设置不同周期及开始时间,至于两个定时循环同步开始,可使用同步定时结构开始VI,即可解决上述问题,且不存在误差。 ...

补充:大家可能会考虑CPU只能利用时间片处理单线程问题,在定时循环的输入节点里有可选择的处理器,一般电脑CPU都是4核的,所以可以指定不同的核进行处理,实现完全的同步。
举报

更多回帖

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