鸿信自动化 ST/C 语言模块 指令讲堂 资料下载 第 7 课
C 语言模块 · 第 7 课 高级

浮点运算:温度 / 流量

6 段 · 共 1:21 · 数字人讲师示范 · 完全免费

温度、流量这类模拟量要做浮点运算。本课讲 C 里的浮点处理与标定,避免在整数运算里丢精度。

正在加载数字人讲师…
讲师模型较大(约 87MB),首次打开需要等待。加载完后数字人会自动开始讲解,这段时间可以先往下读讲稿。
已等待 0 秒
等待中… 在仿真器里打开

本课讲稿

1/6为什么要浮点0:15

有些量天生带小数:温度 87.5 度、流量 12.3 升。可 PLC 的 D 寄存器是整数,装不下小数点。整数算乘除还容易丢精度,怎么办?C 里可以上浮点数。

2/6float 登场0:12

C 里 float 就是带小数的数。用不着额外库,wasm 原生支持。把采样转成 float 再乘除,中间结果都带小数,最后才落回整数,精度高得多。

3/6线性化例子:温度换算0:15

拿温度变送器举例:采样 0 到 4095,对应 0 到 200 度。换算就是采样乘 200 再除 4095。浮点算完,2048 对应约 100 度,一个公式搞定。

4/6定点技巧:放大十倍0:14

D 区存不下小数,老办法是放大十倍再取整:100.0 度就存 1000,一位小数藏在最后一位。要显示时再除以十。既有小数位,又不碰浮点,工程上很常用。

5/6超温判断0:11

算出温度就能做判断:超过 150 度就报警。浮点直接跟 150.0 比,干净利落。换成整数就得拿 1500 跟放大的值比,容易看花眼,这就是浮点的好处。

6/6小结:float 算、定点存0:13

浮点这一课记三点:C 里能直接用 float,采样先转 float 再算,结果放大十倍落回整数。要小数显示就放大,要判断门限就放大后比,套路就这套。