当运行LabVIEW MainVI时,它意外冻结、挂起或暂停。
怀疑一个LabVIEW子VI需要很长时间才能执行。
此问题的一个可能原因是某个特定的子VI冻结了主VI。
使用Highligh texecution运行代码。
隔离有问题的子VI后,确定子VI不继续执行的原因。这可能是由以下原因引起的,而不仅仅是:
VI属性中的设置会导致在调用子VI时暂停整个VI。
从Category下拉列表中选择Execution,如下所示:
确保未选中Suspendwhen called,然后按确定。
没有定义条件终端的while循环。不建议在子VI中使用while循环,因为它们会导致主VI意外冻结。但是,如果没有其他方法可以完成某个任务,可以使用全局变量来停止在子VI中运行的while循环。以下代码说明了如何执行此操作。主VI的架构由两个并行运行的while循环组成。第一个专用于更新全局变量,第二个专用于运行子VI。该范式效率低下,因此应仅在严格要求时使用。
确保事件结构放置在循环中,以防需要多次检测事件。否则,事件结构将仅注册第一个控件更改。
驱动程序有问题。例如,当VISA函数冻结MainVI时。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
上文中提到的例子和资料,均在word中的附件里,可点击下载。