『7x24小时有问必答』

▎西门子博途 LGF 库详解 · 17:温度单位转换——℃、℉、K、°R 全套 9 个块

温度是工业控制中单位最混乱的物理量。中国用摄氏度、美国要华氏度、科学计算用开尔文、少数北美设备用兰氏度。同一台设备出口到三个国家,HMI 上就得显示三种单位。LGF 的温度转换组 9 个块就是为解决这个"单位混乱"而设计的。
本篇延续前面的引脚表格风格,把全部 9 个块的接口拆开讲。文末有 ConvertTemperature 通用转换器的单位枚举值说明

一、9 个块一览

温度转换组(4.12 Converter / Temperature)

| 块名 | 类型 | 版本 | 功能 | 公式 |
|------|------|------|------|------|
| LGF_CelsiusToFahrenheit | FC | V3.0.1 | ℃ → ℉ | °F = ℃ × 9/5 + 32 |
| LGF_CelsiusToKelvin | FC | V3.0.1 | ℃ → K | K = ℃ + 273.15 |
| LGF_FahrenheitToCelsius | FC | V3.0.1 | ℉ → ℃ | ℃ = (°F - 32) × 5/9 |
| LGF_FahrenheitToKelvin | FC | V3.0.1 | ℉ → K | K = (°F + 459.67) × 5/9 |
| LGF_KelvinToCelsius | FC | V3.0.1 | K → ℃ | ℃ = K - 273.15 |
| LGF_KelvinToFahrenheit | FC | V3.0.1 | K → ℉ | °F = K × 9/5 - 459.67 |
| LGF_KelvinToRankine | FC | V3.0.1 | K → °R | °R = K × 9/5 |
| LGF_RankineToKelvin | FC | V3.0.1 | °R → K | K = °R × 5/9 |
| LGF_ConvertTemperature | FC | V3.0.1 | 通用转换:指定源和目标单位 | — |

二、引脚详解

#### 前 8 个专用转换块
接口高度统一,以 CelsiusToFahrenheit 为代表:
引脚类型方向说明
valueLRealIN待转换的温度值
Ret_ValLRealOUT转换结果
其余 7 个专用转换块接口完全相同,区别仅在于内部的转换公式。
#### LGF_ConvertTemperature(通用转换器)
引脚类型方向说明
valueLRealIN待转换的温度值
sourceUnitIntIN源温度单位枚举值
targetUnitIntIN目标温度单位枚举值
Ret_ValLRealOUT转换结果
errorBoolOUT错误标志

ConvertTemperature 单位枚举值

| 枚举值 | 单位 | 绝对零度 |
|--------|------|---------|
| 1 | Celsius(摄氏度) | -273.15℃ |
| 2 | Fahrenheit(华氏度) | -459.67°F |
| 3 | Kelvin(开尔文) | 0K |
| 4 | Rankine(兰氏度) | 0°R |
具体枚举值以 LGF_CONSTANTS 中的定义为准。在使用前建议先在项目中查看 LGF 常量表确认。

三、实战案例

#### 案例 1:出口设备多单位 HMI 显示
PLC 内部统一用摄氏度做 PID 控制,HMI 根据客户地区选择显示单位:

多单位 HMI 显示

CASE region OF
1: displayTemp := processTemp;   // 中国:直接显示 ℃
2: displayTemp := LGF_CelsiusToFahrenheit(processTemp);   // 美国
3: displayTemp := LGF_CelsiusToKelvin(processTemp);   // 科学用途
END_CASE;
#### 案例 2:用 ConvertTemperature 做动态配置
HMI 上做一个下拉框让用户选择源单位和目标单位:

ConvertTemperature 动态转换

result := LGF_ConvertTemperature(value := inputTemp,
sourceUnit := hmiSourceUnit, targetUnit := hmiTargetUnit);
一个块替代 8 个组合,适合源单位和目标单位都由用户动态选择的场景。
#### 案例 3:避免多次转换的精度损失

不要在多个单位之间反复转换

每一次转换都有浮点精度损失。℃→℉→K→℉→℃ 这样反复转换,累积误差可能达到 0.1℃ 以上。正确做法:PLC 内部只存一种单位(推荐℃或K),只在显示或对外通信时实时转换,转换结果不存回数据库。

四、温度单位对照速查

单位绝对零度水的冰点水的沸点
-273.150100
-459.6732212
K0273.15373.15
°R0491.67671.67

五、总结与下载

下载信息

| 项目 | 内容 |
|------|------|
| 库名称 | Library of General Functions (LGF) |
| SIOS-ID | 109479728 |
| 下载地址 | 中文站:www.ad.siemens.com.cn/download/documentdetail_12471.html |
| 当前版本 | V5.1.1(中文站最新;SIOS 全球站另有 V5.2.1) |
| 兼容 | TIA Portal V17+、S7-1200 (固件 ≥V4.2)、S7-1500 (固件 ≥V2.0) |
| 费用 | 完全免费 |
> 本文所有引脚数据基于 LGF V5.1.1 官方文档。全球站:support.industry.siemens.com/cs/document/109479728
下篇预告:LGF 库详解 · 18——信号发生器(上)。SinusCI、CosinusCI、TriangleCI,用正弦波模拟振动、用三角波做定位扫描。欢迎点赞、在看、转发

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码