labview温度采集系统 功能:采集当前温度,显示曲线,温度计显示数值。 设置报警上下限制,超过上下限制进行报警。 报警信息:温度正常,温度过低,温度过高。 还可以进行数据文件保存。

先来整个硬件配置。假设咱们用NI的USB-6008采集卡接PT100温度传感器,前面板放个波形图表控件命名为【温度曲线】,再拖个温度计显示控件到界面右侧。程序框图里先塞个While循环,里边放个DAQmx读取函数,这就构成了数据采集的基本骨架:

While循环:
    DAQmx读取(模拟单通道)→温度值
    温度值→波形图表
    温度值→温度计显示
    延时500ms

这里重点注意采样率要和传感器匹配。遇到过有人直接把延时设成0,结果程序卡成PPT的惨案,建议保持200ms以上的刷新间隔。

报警功能得玩点花的。前面板加两个数值控件【上限】和【下限】,程序框图中塞个条件结构。核心逻辑其实就三句话的事儿:

如果 温度 > 上限:
    报警灯 = 红
    播放声音(警报.wav)
    报警信息 = "温度过高"
否则如果 温度 < 下限:
    报警灯 = 蓝
    播放声音(警报.wav)
    报警信息 = "温度过低"
否则:
    报警灯 = 绿
    报警信息 = "温度正常"

实测时发现LabVIEW的声音函数有点坑,最好提前把警报.wav放在项目目录里。有次现场演示时因为绝对路径问题死活不响警报,尴尬得能抠出三室一厅。

labview温度采集系统 功能:采集当前温度,显示曲线,温度计显示数值。 设置报警上下限制,超过上下限制进行报警。 报警信息:温度正常,温度过低,温度过高。 还可以进行数据文件保存。

数据存储推荐用写入测量文件函数,配个【保存路径】输入控件。代码层面注意这三点:

  1. 文件头要包含时间戳和温度单位
  2. 用逗号分隔的CSV格式
  3. 启用【禁用前加换行符】避免数据覆盖
文件写入:
    获取日期时间字符串→时间戳
    创建数组[时间戳, 温度值]
    写入测量文件(文件路径: D:\温度记录.csv)

建议把文件路径默认设在D盘,别问我怎么知道的——某次在客户现场C盘写满导致系统崩溃的血泪教训。

整套系统跑起来后,重点观察波形图表的刷新是否卡顿。遇到过数据量过大时曲线消失的灵异事件,后来发现是图表控件的缓冲区大小没设置,在属性节点里把缓冲区调到10000点立马解决。

其实这系统还能整更多活:加个历史数据回放功能,或者把报警记录单独存个日志文件。有闲工夫的话,甚至能用LabVIEW的Web服务搞个手机远程监控,不过那就是另一个故事了。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐