微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 你能把含有移位寄存器的子VI独立调用吗?

你能把含有移位寄存器的子VI独立调用吗?

时间:10-02 整理:3721RD 点击:

众所周知,一个只循环一次的while循环加一个移位寄存器可用于存取变量的值。请大家看图。请问:如果我们希望最后一个图的结果三个输出是同步加一的,也就是子函数的调用是独立的,我该怎么办?我的方法是,将这个子VI复制两次,然后分别调用他们,这样移位寄存器就互不干扰了。但这个治标不治本。
在设计中,我们往往需要不止一次得调用某一个函数,一旦这个函数含有移位寄存器,我们还希望他们分开运行互不干扰,我们该怎么做呢?(可能说的不太明白,欢迎大家讨论)


这是一个简单的程序,每次点运行,子vi输出一次值返回到主程序


这个子VI包含一个移位寄存器,每次调用时,寄存器的值加1并返回主程序。


你会看到,每次运行输出的值加一,这就是移位寄存器的记忆功能。可是你要是对他多次调用呢? ... ... ...


要是程序是这样,你会发现什么?一次运行三次调用,每次调用他们用的是一个移位寄存器。 ... ... ...


三者的结果永远是依次加一,而不是同步加一。但是设计中,我们往往需要不止一次得调用该函数,但希望他们是 ...


vi属性 执行 里面有一个预分配副本可重入执行应该可以满足你的要求。把那个勾上试试吧

设置可重入即可



原来如此,搜噶搜嘎

666

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top