LabVIEW使用一个停止按钮来停止所有循环

简介: LabVIEW使用一个停止按钮来停止所有循环

LabVIEW使用一个停止按钮来停止所有循环


在LabVIEW中有多个并行while循环,想使用一个停止按钮来停止所有循环。如何执行此操作并使停止按钮恢复到其初始状态?


根据使用的LabVIEW版本,从以下方法中进行选择,以使用一个停止按钮停止LabVIEW中的多个并行循环。


注意:下面列出的方法并不是停止并行While循环的方法的详尽介绍。这些方法是最常用的方法。


通道线Channel Wires


如果使用的是LabVIEW2016,则可以使用通道线通过一个停止按钮来停止多个并行While循环。这是可能的,因为通道线是连接两个并行While循环而不强制执行顺序的异步导线。因此,两个并行While循环之间没有数据依赖关系。


注意:LabVIEW实时模块支持通道线,但LabVIEWFPGA模块不支持通道线。


以下框图演示了使用Tag通道停止并行循环:



以下列表描述了有关上一个框图的重要详细信息:


1. 循环A包含一个将值写入标记通道的标记编写器终结点。


2. 通道线将标记写入器终结点的通道输出连接到标记读取器终结点。


3. 循环B包含一个标记读取器终结点,该终结点从标记通道读取值。


4. 连接到循环A中编写器终结点的元素参数的停止按钮与循环B通信。如果单击循环A中的停止按钮,循环B也会停止。


以下框图演示了使用流通道停止并行循环:


使用流通道时,连接到循环A中编写器终结点的最后一个元素参数的停止按钮与循环B通信。


标记通道和流通道在用于停止并行While循环时存在重大差异。


使用Tag通道停止并行While循环会导致所有循环尽快停止,因为循环A中的停止按钮值直接与循环B通信。使用流通道停止并行While循环可能会导致循环B比循环A晚停止几次迭代,因为循环A中的停止按钮值通过最后一个元素与循环B通信,这意味着循环A在写入最后一个元素后立即停止。但是,循环B继续读取通道中的其余元素,并且在读取最后一个元素之前不会停止。流通道确保在循环B停止之前处理通过通道通信的所有数据元素。


标记通道允许停止两个或多个并行的While循环,因为标记通道可以分叉到多个写入器和读取器。流通道只允许停止两个并行的While循环,因为流通道只允许一个写入器和一个读取器。


以下框图演示了如何使用Tag通道停止三个并行的While循环。


警告


不能将以前的标记体系结构扩展为具有多个停止按钮。但是,可以使用位于中的共享停止信号VI添加一个或多个停止按钮,这允许使用任何一个停止按钮停止多个并行的WhileLoops。


以下VI代码段演示了使用两个停止按钮中的任何一个停止多个并行循环。若要添加更多停止按钮,请遵循相同的体系结构。


局部变量Local Variables


可以使用一个停止按钮停止多个并行While循环,方法是使用每个附加循环的局部变量将布尔停止按钮值从第一个循环的控件传递到所有其他循环。以下框图演示了如何使用局部变量停止两个并行While循环。


以下列表描述了有关上一个框图的重要详细信息:


1. 顶部循环包含一个停止控件。通过右键单击前面板上的停止控件并选择机械动作»按下时切换来配置停止控制的机械动作。这允许所有循环读取停止布尔值,其中按下锁存器将在读取值时重置为true,使一些循环仍在运行。


2. 底部的两个循环包含停止控件的局部变量。通过右键单击停止控件并选择创建»局部变量来创建局部变量。配置局部变量以读取值,方法是右键单击局部变量并选择更改为读取


3. 请务必注意隐式引用停止按钮的ReinitTo默认值调用节点,这会在下次运行开始时将值重置为true。


4. 所有这些循环都包含一个Waitms,以突出显示所有循环都停止,无论它们的运行时间如何。


若要停止三个以上的并行While循环,请遵循相同的体系结构,添加更多局部变量以从初始停止控件读取。


属性节点Property Nodes


可以使用属性节点将布尔停止按钮值从第一个循环的控件传递到所有其他循环。下面的框图演示如何使用属性节点停止两个并行的While循环。


以下列表描述了有关上一个框图的重要详细信息:


1. 顶部循环包含一个停止控件。通过右键单击前面板上的停止控件并选择机械动作»按下时切换来配置停止控制的机械动作。这允许所有循环读取停止布尔值,其中按下锁存器将在读取值时重置为true,使一些循环仍在运行。


2. 底部循环包含停止控件的属性节点。通过右键单击停止控件并选择创建»属性节点»值来创建属性节点。配置“值”属性节点以读取值,方法是右键单击“值”属性节点,然后选择“更改为读取”。


3. 请务必注意隐式引用停止按钮的ReinitTo默认值调用节点,这会在下次运行开始时将值重置为true。


4. 所有这些循环都包含一个Waitms,以突出显示所有循环都停止,无论它们的运行时间如何。


若要停止两个以上的并行While循环,请遵循相同的体系结构,添加更多Value属性节点以从初始停止控件读取。


有关何时使用局部变量与属性节点的详细信息,请参阅控件/指示器、局部变量和值属性节点差异。


通告器Notifiers


对于涉及复杂行为的应用程序,通知程序可用于停止并行运行的多个循环。通知程序函数可从编程»同步»通知程序操作选项板访问。


注意:通知程序的使用很容易扩展到多个线程,但并不总是与现有的程序体系结构很好地集成。


以下VI代码段演示了通知程序可用于停止多个While循环的一种方式。


以下列表描述了有关上一个VI代码段的重要详细信息:


顶部循环的每次迭代都将停止按钮的状态写入通知程序。


其他两个循环在每次迭代时检查通知程序的状态。


注意:确保在监视通知程序的所有线程停止之前不会释放通知程序。在前面的VI代码段中,合并错误VI保证释放通知程序VI在所有循环停止之前不会执行。


单击停止按钮时,状态将发送到通知程序,这会导致所有循环停止。


队列


可以使用队列来阻止涉及更复杂行为的应用程序并行运行的多个循环。队列功能可从编程»同步»队列操作选项板访问。


注意:许多较大的应用程序已经有一个队列系统,用于在并行循环之间交换数据。在这些设置中,可以修改或增强现有队列,以包含并行循环的停止指令。


以下VI代码段演示了如何使用队列停止多个While循环:


一些使用主从架构的应用程序在从线程退出之前释放队列。然后,从已销毁的引用中取消排队时引发的错误将用于停止从循环。与依赖错误条件来停止从循环不同,前面的VI代码段具有离散的停止指令,该指令从主循环传递到从循环。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

相关文章
|
iOS开发 MacOS
LabVIEW如何使用热键去触发自定义的事件
LabVIEW如何使用热键去触发自定义的事件
432 1
西门子S7-1200的转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令,各参数的含义是什么?
西门子S7-1200中的转换指令包括转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令。
西门子S7-1200的转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令,各参数的含义是什么?
|
网络协议 Python
python中socket客户端发送和接收数据
【4月更文挑战第7天】本教程聚焦TCP客户端数据发送与接收。使用Python的`socket`模块,通过`send()`发送字节串至服务器,如`client_socket.send(message_bytes)`;用`recv()`接收数据,如`received_data = client_socket.recv(buffer_size)`。异常处理确保网络错误时程序健壮性,例如`try-except`捕获`socket.error`。理解和掌握这些基础操作对于构建稳定的TCP客户端至关重要。
2906 1
|
监控 安全 Linux
在Linux中,如何编写自动化脚本来执行重复性任务?
在Linux中,如何编写自动化脚本来执行重复性任务?
|
存储 数据采集 Windows
LabVIEW重入:允许同时调用同一子VI
LabVIEW重入:允许同时调用同一子VI
659 1
LabVIEW在应用程序和接口中使用LabVIEW类和接口
LabVIEW在应用程序和接口中使用LabVIEW类和接口
491 0
|
机器学习/深度学习 人工智能 异构计算
【Docker 专栏】Docker 与 GPU 加速应用的结合
【5月更文挑战第9天】GPU加速技术在处理大规模数据和复杂计算时展现强大性能,尤其在AI和深度学习领域。Docker作为轻量级容器化工具,提供隔离、可移植和高效的环境。结合GPU加速,关键在于容器访问GPU设备和安装相应驱动。NVIDIA提供了支持工具,允许Docker利用GPU。应用场景包括人工智能、科学计算和视频处理。优势包括资源利用率提升和部署灵活性,但面临驱动兼容性、资源管理和监控调试的挑战。未来,随着技术发展,Docker与GPU加速在边缘计算中的应用将有广阔前景。
822 1
【Docker 专栏】Docker 与 GPU 加速应用的结合
|
数据采集 测试技术 数据处理
LabVIEW控制PLC的实现方式
LabVIEW控制PLC的实现方式
806 1
|
数据采集 监控 测试技术
JKI State Machine的特点与详细介绍
JKI State Machine的特点与详细介绍
617 0
JKI State Machine的特点与详细介绍
|
计算机视觉
【已解决】cv2.imread读取中文名称图片报错或者无法保存中文名图片:使用cv2.imdecode与cv2.imencode解决
【已解决】cv2.imread读取中文名称图片报错或者无法保存中文名图片:使用cv2.imdecode与cv2.imencode解决

热门文章

最新文章