要在多个程序中运行同一个VI(Virtual Instrument),通常需要确保VI的重入性(Reentrancy)设置正确。在LabVIEW中,可以使用“重入性”(Reentrancy)选项来允许同一个VI同时在多个地方调用,而不会互相干扰。
设置方法:
在你提供的LabVIEW VI属性窗口中,重入性(Reentrancy)有以下几种选项:
-
Non-reentrant execution(非重入执行):
-
如果选择此选项,同一个VI在不同地方调用时,它们会互相排队等待,只有一个调用能够执行,其他调用必须等待这个VI完成后才能开始。这样可以避免冲突,但会导致执行变慢。
-
-
Shared clone reentrant execution(共享克隆重入执行):
-
选择此选项时,LabVIEW为每个调用分配一个共享克隆。如果多个地方同时调用VI,它们将共享相同的内存副本,但不同时执行。适用于共享资源但有些程度重入的情况。
-
-
Preallocated clone reentrant execution(预分配克隆重入执行):
-
如果选择此选项,LabVIEW会为每个调用生成一个独立的副本,这样每个调用都不会互相影响。适用于VI在多个地方同时调用且不应共享状态的情况。
-
推荐设置:
为了在多个程序中同时运行同一个VI且不互相干扰,“Preallocated clone reentrant execution” 是最佳选择。这种设置确保每个调用都有独立的执行副本,不会因为资源共享而引起问题。
原因:
选择“预分配克隆重入执行”可以让VI在每个调用中保持独立的状态,避免数据混淆或执行冲突,这是在并行调用中保证正确性的关键。