LabVIEW状态机迭代时间调试工具

简介: LabVIEW状态机迭代时间调试工具

LabVIEW状态机迭代时间调试工具


这是一个调试工具,用于快速发现基于循环迭代的状态机中的慢速函数,此工具将在运行时通过计算执行时间的统计信息(平均值、最大值、最小值)来告诉哪些迭代步骤相对较慢。


功能:


当使用运行速度低于预期的状态机时,有时很难发现哪些状态实际上是慢速状态。使用此工具,可以针对慢速状态调试两种常见的状态机体系结构:基于迭代的状态机和基于枚举的状态机:


从这两个示例中可以看出,在第三种状态下,两者都有30毫秒的(不需要的)暂停。对于简单的状态机,不难发现这样的错误。但是,如果状态机被多次调用,或者暂停仅在极少数情况下发生,则情况可能会很复杂。


该工具提供了一个VI,在使用时连接到迭代计数器或枚举,它将跟踪每个状态/迭代的执行时间。


它返回有关每个状态的以下详细信息:


上次执行持续时间


执行总数(运行次数较多的spot状态)


总执行时间


最短执行时间


最大执行时间(发现异常值)


或者,它可以显示一个弹出窗口,该弹出窗口计算每个状态的平均时间,并允许基于任何列进行排序或将数据导出到剪贴板。


使用的技术


该工具有几个VI,展示了各种技术,我将总结并指出特定的代码部分。


Full-sizetable


VI:DebugStateTimes2010.vi包含一个设置为“使用面板缩放对象”的表。


优点:前面板由单个元素组成,该元素与前面板一起调整大小以隐藏其他前面板元素。


反馈节点以跟踪统计信息


VI:DebugStateTimes2010.vi包含三个反馈节点(迭代、时间和统计)来跟踪数据。


无需带有移位寄存器的while循环,更少的节点代码更简洁。


(可选)显示对话框


通过为调用VI提供显示带有时序统计信息的对话框的选项,可以将此代码保留在可执行文件中,并决定何时显示实际统计信息以进行调试


可重入VI


通过使用可重入VI,调试工具可以放置在多个位置,而不会相互干扰


可排序表XControl


GUI中使用的表是XControl。为了封装用于表处理的所有代码,它允许调试工具忽略与表的任何用户交互,这些在XControl中处理。XControl位于“data\CM_SortableTable.xctl”,可以查看以下技术:


LimitTable to be an indicator


由于该表不是控件(用户无法在表中输入数据),因此强制将XControl作为指标:


XControl中的消息传递


很难知道XControl需要采取哪些操作,通过使用XControl状态能力(Action)中的特定字段,属性和方法可以向XControl外观VI发出命令:


处理子VI中的复杂代码


一些更复杂的代码部分存储在子VI中。例如,快捷菜单内容的计算是在专门的VI中完成的。这使得外观显示VI保持简单。


使用开源代码


这个XControl的核心是可以对特定列进行排序,这种排序是通过称为SortArray的OpenG函数完成的,该工具允许根据特定列和方向(升序/降序)进行排序。通过使用开源代码,可以在代码中利用已知和经过测试的库的强大功能。


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


LabVIEW程序,如下附件所示。

相关文章
|
7月前
|
存储 算法 开发工具
文档管理软件版本控制算法的代码例子
提供一个基本的示例,展示如何使用Python中的字典数据结构来模拟一个简单的版本控制系统。
489 0
|
18天前
|
数据采集 监控 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术定时与触发 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术定时与触发 例程与相关资料
28 7
|
18天前
|
数据采集 编解码 芯片
LabVIEW编程LabVIEW开发高级数据采集技术 计数器定时器的操作 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 计数器定时器的操作 例程与相关资料
37 11
|
18天前
|
传感器
LabVIEW编程LabVIEW开发DAQ采集消除串扰 例程与相关资料
LabVIEW编程LabVIEW开发DAQ采集消除串扰 例程与相关资料
28 9
|
18天前
|
存储 编解码 Windows
LabVIEW程序代码更新缓慢
LabVIEW程序代码更新缓慢
17 1
|
18天前
|
传感器 安全
LabVIEW开发锅炉汽包水位的监督控制和模拟
LabVIEW开发锅炉汽包水位的监督控制和模拟
|
18天前
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
LabVIEW编程LabVIEW开发吉时利Keithley 7001开关例程与相关资料
18 1
|
18天前
LabVIEW编程LabVIEW开发GSJ四轴运动控制器例程与相关资料 第二版更新
LabVIEW编程LabVIEW开发GSJ四轴运动控制器例程与相关资料 第二版更新
16 0
|
18天前
|
数据采集 存储 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
29 9
|
18天前
|
数据采集 芯片 异构计算
LabVIEW编程LabVIEW开发高级数据采集技术 同步 例程与相关资料
LabVIEW编程LabVIEW开发高级数据采集技术 同步 例程与相关资料
30 7