Timer 如何在不延迟循环的情况下在案例结构中设置延迟?

Timer 如何在不延迟循环的情况下在案例结构中设置延迟?,timer,labview,Timer,Labview,对不起,我不允许发布我的完整计划-公司规则 我的程序中有一部分读取脚本文件,并将计时器值读入该文件。我需要该值来暂停读取脚本文件的下一行,我知道这样做的唯一方法是: 其中,scan from string函数以毫秒为单位检索时间,并将其插入到delay函数中。问题是,它会延迟我的主循环,并且我有其他计时函数根据以前从同一脚本文件发出的命令同时运行,这可能需要更多的时间来运行。在case结构中,是否有任何方法可以实例化它,从而暂停读取下一个命令,并让主循环继续 我的脚本读取器有一个事件处理程序,

对不起,我不允许发布我的完整计划-公司规则

我的程序中有一部分读取脚本文件,并将计时器值读入该文件。我需要该值来暂停读取脚本文件的下一行,我知道这样做的唯一方法是:

其中,scan from string函数以毫秒为单位检索时间,并将其插入到delay函数中。问题是,它会延迟我的主循环,并且我有其他计时函数根据以前从同一脚本文件发出的命令同时运行,这可能需要更多的时间来运行。在case结构中,是否有任何方法可以实例化它,从而暂停读取下一个命令,并让主循环继续

我的脚本读取器有一个事件处理程序,因此在调用之前,程序的其余部分将在没有它的情况下运行


这将直接提供给嵌套的case语句,这些语句将数据直接提供给计时器。感谢您的帮助

如果我理解正确:

  • 您有一个循环,可以不间断地一直运行某些任务
  • 有时,按下一个按钮,这将导致在循环的两次迭代之间执行一个特殊任务
  • 一项特殊任务是禁用按钮几秒钟
这是通过以下简化代码实现的

  • 单击按钮时,文件中的命令为
    WAIT 30
    ,当前时间加上30秒将写入移位寄存器,按钮将灰显禁用。也就是说,用户不能点击它,他甚至看到了这个
  • 如果在100ms内未单击按钮,则执行
    超时
    案例。(一次又一次……)在那里,所有应该始终运行的任务都是活动的。该情况还检查当前时间是否大于移位寄存器中的时间,并再次启用按钮

听起来你需要一个排队的消息系统,有多个循环在运行。@Adriankeester?从技术上讲,FOR循环应该是对脚本文件进行排队。如果您像您一样有计时要求,我所知道的处理它的唯一方法就是多个循环。我建议使用排队状态机(一种标准的LabVIEW设计模式),其中每个循环都可以使用排队与其他循环进行对话。例如,您可以让for循环将另一个循环完成的操作排队。排队速度很快,不会延迟FOR循环,但是延迟的操作会在另一个循环中处理。记住:在LabVIEW中,任何可以并行运行的东西都是并行运行的。