LabVIEW CompactRIO 开发指南10 确保可靠性与看门狗定时器

简介: LabVIEW CompactRIO 开发指南10 确保可靠性与看门狗定时器

LabVIEWCompactRIO 开发指南10

确保可靠性与看门狗定时器

在设计将要部署的嵌入式系统时,考虑纳入看门狗定时器以确保可靠性。看门狗定时器是一个硬件计数器,它与嵌入式软件应用程序接口,用于检测和从软件故障中恢复。软件故障的一个例子是应用程序内存不足,导致应用程序挂起或崩溃。即使您遵循了前一节中列出的管理内存的最佳实践,有一个备份计划总是很重要的。


所有CompactRIO和NI单板RIO控制器包括一个硬件定时器,可以从LabVIEW实时模块访问。在正常操作期间,软件应用程序启动硬件计时器,以已知增量从特定数字开始倒计时,并定义计时器达到零时要采取的操作。应用程序启动看门狗定时器后,定时复位定时器,保证定时器不归零,如图3.31所示。


063e4d11b0989de4811b12b206b257b5.png


图3.31 当应用程序按时响应时,应用程序会周期性地重置看门狗定时器


如果一个软件故障阻止了应用程序重新设置定时器,超时最终会过期,因为硬件计数器是独立于软件的,因此会继续倒数直到达到零。看门狗定时器超时后,硬件触发恢复过程,如图3.32所示。


aa2250463e651a3dc8839fd84daa5c9e.png


图3.32 当看门狗定时器到期时,硬件定时器触发恢复过程


在准备部署嵌入式系统时,可以从两个选项中选择在LabVIEW中实现基于硬件的看门狗定时器。可以使用LabVIEW实时模块访问所有Compact RIO和NI单板RIO控制器中可用的内置看门狗硬件,或者可以使用LabVIEW FPGA模块实现自己的看门狗定时器。如果正在从LabVIEW FPGA VI写入任何硬件输出,那么在LabVIEW FPGA中实现看门狗定时器可能是有益的。如果出现问题,可以立即可靠地将所有硬件输出置于安全状态。每个选项将在下面的小节中更详细地描述。


实时看门狗


LabVIEW实时看门狗使用内置在实时控制器中的硬件计数器,该计数器与嵌入式软件应用程序接口。RT Watchdog API可以在Real-Time函数选板中找到,如图3.33所示。


5a4d5ce94717aafaa69e45149f5da50f.png


图3.33 RT Watchdog API与CompactRIO和NI单板RIO控制器内置的硬件计数器接口


使用RT Watchdog API编程时,首先需要配置看门狗并设置超时值。超时值的适当范围取决于嵌入式应用程序的特定性能特征和正常运行时间要求。必须将超时时间设置得足够长,以便它不会由于可接受的系统抖动级别而过期。但是,也必须将超时设置得足够短,以便系统能够足够快地从故障中恢复,以满足系统正常运行时间要求。


ab45b860e5330117eedf0c96f3f99e8c.png



图3.34设置看门狗超时时间为10秒


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

相关文章
|
存储
【模型预测控制】Matlab自带MPC Designer工具(自用)
【模型预测控制】Matlab自带MPC Designer工具(自用)
1291 0
|
Ubuntu 关系型数据库 MySQL
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
使用Ubuntu和Windows电脑实现Mysql主从同步(详细操作步骤)
290 2
|
9月前
|
机器学习/深度学习 编解码 人工智能
rebuttal真的有用!这篇ICLR论文,所有审稿人都加了2分,直接跃升排名第9
SANA是一项基于线性扩散变换器的高效高分辨率图像合成框架,采用深度压缩自编码器和线性DiT模型,大幅提高图像合成效率与质量。引入解码器专用文本编码器提升图像与文本对齐能力,结合Flow-DPM-Solver优化训练和采样步骤。研究成果发表于ICLR会议,审稿评分显著提升。SANA生成速度快、模型小,适用于资源有限设备,但在某些方面仍有改进空间。论文地址:https://arxiv.org/abs/2410.10629
195 10
|
SQL 分布式计算 数据挖掘
深入理解用户定义函数(UDF)
【8月更文挑战第31天】
2276 1
|
存储 Rust 安全
【Rust学习】04_所有权
所有权是 Rust 最独特的特性,对语言的其余部分有着深远的影响。它使 Rust 能够在不需要垃圾收集器的情况下保证内存安全,因此了解所有权的运作方式非常重要。在本章中,我们将讨论所有权以及几个相关功能:借用、切片以及 Rust 如何在内存中布局数据。
169 1
|
传感器 监控 安全
LabVIEWCompactRIO 开发指南1
LabVIEWCompactRIO 开发指南1
181 2
|
缓存 编解码 Go
计算机网络:可靠传输协议
计算机网络:可靠传输协议
459 1
|
编译器 异构计算 Windows
LabVIEWCompactRIO 开发指南27 创建模块化、可重复使用的子VI
LabVIEWCompactRIO 开发指南27 创建模块化、可重复使用的子VI
99 2
|
测试技术 异构计算
LabVIEWCompactRIO 开发指南26 同步循环
LabVIEWCompactRIO 开发指南26 同步循环
79 2
|
设计模式 数据采集 算法
LabVIEWCompactRIO 开发指南6
LabVIEWCompactRIO 开发指南6
101 1