☰
热像仪温度数据导出实践:SDK、软件与Modbus三种路径全流程
2026/10/16 7:16:54 网站建设 项目流程

前段时间接了个活:把产线上的在线式热像仪温度数据接到我们自己的监控系统里。听起来简单,真做起来发现"温度数据导出"这个词背后藏着三套完全不同的技术路线,而且每条路线都有坑。折腾完把整个过程整理成文,给有同样需求的同学留个参考。

本文涉及的设备为格物优信在线式热像仪(固件带"-mb"后缀),SDK与软件版本以官网技术支持页面下载的为准。以下所有接口名、参数均来自实际对接过程,但具体签名请以对应型号的开发文档为准。

一、先想清楚:你要的是哪种数据

动手之前必须先明确数据形态,这决定了后续所有工作。热像仪能导出的温度相关数据分三类:

数据形态

内容

典型用途

温度流(原始数据)

全帧16位原始温度,逐像素

算法开发、温度场分析

视频流数据

H.264编码视频/截图

存档、巡检回溯

特征温度

全局/局部测温对象的统计值(最多16个)

监控报警、PLC联动

全帧原始数据只有SDK能拿到,Modbus和软件导出都给不了。这一点先记住,后面会反复用到。

二、路线一:SDK二次开发(拿原始温度流)

2.1 整体流程

plain

复制

Yoseen_StartPreview(回调注册)

→ 回调中接收 DataFrame 结构体

→ Yoseen_GetTemperature / Yoseen_GetTemperatures 按区域取温

→ 用 DataFrameHeader 的 Slope/Offset 换算真实温度

→ 自行保存为 CSV / TXT

2.2 关键步骤说明

第一步,取帧。调用实时预览接口 Yoseen_StartPreview,在回调函数中接收 DataFrame 结构体。这个结构体里有全帧画面的16位原始温度数据——这是整个链路的源头。

第二步,按区域取值。调 Yoseen_GetTemperature(单点)或 Yoseen_GetTemperatures(区域),传入 DataFrame 中的温度数据指针和区域坐标,返回指定区域的最高温、最低温、平均温。

第三步,温度换算——本路线最大的坑。拿到的原始值是short 型,不是温度。必须结合每帧数据头 DataFrameHeader 里的 Slope 和 Offset 系数:

plain

复制

真实温度(℃) = short值 ÷ Slope + Offset

我第一次对接时就是没做这步,数据库里存了一万多条"温度"几千的脏数据,全部清掉重来。Slope 和 Offset 是每帧都给的,不要图省事写成常量。

第四步,导出。换算后的温度值按业务需要保存,CSV、TXT或直接入库都行,逻辑自己写。

2.3 实测注意点

视频流数据同样走 Yoseen_StartPreview,回调里拿的是 H.264 编码数据,和温度流是两个不同的数据面;

自定义录制逻辑和格式转换都要在这一层自己实现,灵活度最高,工作量也最大。

三、路线二:配套软件导出(零编程)

适合快速验证、出报告,不用写一行代码。

3.1 基本操作

IRTool Pro / IRStudio 中搜索并连接热像仪,启动实时预览(温度流或视频流均可);

用截图、录制或数据点分析工具捕获数据;

保存为含温度信息的 JPG(可后期分析),或导出 CSV(含测温点/区域的温度值)。

如图为多帧温度数据导出回看

3.2 一个容易忽略的细节:两种截图不一样

截图类型

生成位置

效果

温度流截图

电脑端温度数据

最佳

视频流截图

设备端 H.264 解码

有细节损失

写报告建议统一用温度流截图。

如上stream 格式带温度流的文件

3.3 只要画面的两条捷径

RTSP流:直接访问设备的标准RTSP地址,VLC 就能播放和录制,兼容性最强,但没有温度数据;

PAL模拟输出:部分设备支持,直连显示设备或采集卡即可。

四、路线三:Modbus协议(接PLC/自动化)

这条路线的前提是固件带"-mb"后缀,采购或升级固件时务必确认。

4.1 快速验证:ModbusPoll

建立连接:Modbus-TCP 走502端口,或 Modbus-RTU;

参数设置:

参数项

设置值

Function

04 Read Input Registers(3x)

Address

1

Quantity

测温对象个数 × 8

连上后即可周期性或手动读取特征温度(最高温、最低温、平均温及坐标),工具内直接查看或导出。

4.2 正式集成:寄存器直连

按寄存器地址映射表编程读取,例如:

寄存器

含义

30001

全局最高温

30009–30016

局部测温1

读数单位是 0.1℃,用之前除以10。这是这条路线的第二个坑,Modbus读回来的数比实际温度大十倍不是设备坏了。

4.3 SDK方式取特征温度

不想走协议、又已经在用SDK的话,直接调 mtGetResult 或 mtCheck,从温度流数据帧中提取已配置测温对象的特征温度结果,再保存为 TXT/CSV。

五、三条路线怎么选

方式

优点

适用场景

软件导出(IRTool Pro+工具)

直观、零编程

实验室测试、现场诊断、数据验证

SDK编程

灵活、可定制自动化

嵌入式集成、自动化产线、定制开发

Modbus协议

不依赖PC软件

PLC控制、工业自动化、无人值守监测

我的实际搭配是:ModbusPoll十分钟验证数据通路 → 正式项目走寄存器直连接PLC;算法部分另起一套SDK程序取原始温度流。

六、踩坑清单(速查版)

short原始值必须经 Slope/Offset 换算,且系数取每帧的 DataFrameHeader,别写死;

Modbus 读数单位 0.1℃,注意换算;

固件无 "-mb" 后缀则无 Modbus 功能;

软件导出的 CSV 是结果数据,不是逐像素原始数据,做不了算法;

接口名可能随型号/版本有差异,一切以对应型号的开发文档为准。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询