TIA Portal 指令

转换操作
缩放与类型

数据转换是物理世界与数字代码之间的桥梁。掌握模拟信号缩放和数据类型转换。

什么是 TIA Portal 中的转换操作?

转换操作允许将一个数据类型的值转换为另一个数据类型(例如:整数转换为实数)或操作浮点数的精度。它们还包括标准化和缩放工具,这对于处理来自工业传感器的模拟信号至关重要。

TIA Portal 提供现代且高性能的指令,如 SCALE_X 和 NORM_X,它们优于并可取代 S7-300 系统旧有的 SCALE/UNSCALE 块,提供更大的灵活性和更好的数学精度。

类型转换

数值格式的转换与舍入

CONVERT — 转换值

CONV

功能

将值从源数据类型转换为目标数据类型。处理整数、实数、字符、时间及字符串之间的转换。

适用场景

通过将整数转换为 Real 来准备复杂的数学计算,或将错误代码转换为 String 以便在 HMI 上显示。

专家提示

在 LAD 中,单击块上的数据类型以选择源和目标。

在 SCL 中:myReal := INT_TO_REAL(myInt);

将大类型转换为短类型时注意精度损失。

ROUND / TRUNC

ROUND

功能

ROUND 将浮点数舍入为最接近的整数。TRUNC 仅删除小数部分(截断)。

适用场景

将物理测量值显示为简单整数,或将 Real 计算结果转换为数组索引 (Int)。

专家提示

如果小数部分正好是 .5,ROUND 将舍入到最接近的偶数(IEC 标准)。

如果您只想忽略小数而不进行舍入计算,则首选 TRUNC。

两者都接受 Real/LReal 输入,通常返回 DInt。

CEIL / FLOOR

CEIL

功能

CEIL(天花板)生成大于或等于的整数。FLOOR(地板)生成小于或等于的整数。

适用场景

计算所需的箱子数量(始终使用 CEIL 向上舍入)。

专家提示

CEIL(10.1) = 11 ; FLOOR(10.9) = 10。

对于包装和物流算法至关重要。

对于确保数值保持在严格的整数边界内非常有用。

缩放 (Scaling)

模拟信号处理与物理量

NORM_X — 标准化

NORM_X

功能

将 [MIN..MAX] 范围内的值转换为 0.0 到 1.0 之间的标准化值。这是模拟量处理的第一步。

适用场景

读取原始模拟输入(例如:0-27648)并将其转换为百分比 (0.0-1.0)。

专家提示

通常紧接着使用 SCALE_X 块。

如果输入超过边界,输出将超过 0.0 或 1.0。

确保 MIN 不同于 MAX。

SCALE_X — 缩放

SCALE_X

功能

获取标准化值 [0.0..1.0] 并将其映射到由 MIN 和 MAX 定义的物理范围(例如:0-100°C)。

适用场景

将 NORM_X 的结果转换为操作员可读的工程单位。

专家提示

NORM_X + SCALE_X 组合是西门子现代模拟量缩放的标准方法。

允许在不修改整个程序的情况下轻松更改传感器范围。

也可用于反向:将物理设定值发送到模拟输出。

Legacy 指令

S7-300 兼容性 (FC105 / FC106)

SCALE / UNSCALE

功能

旧版块,通过一个步骤完成整数模拟值与物理实值之间的直接转换。

适用场景

仅在维护从 Step 7 Classic 迁移的程序时使用。

专家提示

SCALE 对应旧库中的 FC105。

使用 BIPOLAR 参数处理负信号(例如:+/- 10V)。

在 S7-1200/1500 的新开发中,系统性地首选 NORM_X/SCALE_X。

转换方法对比

根据您的需求选择正确的指令

您想要...推荐指令示例
更改类型 (Int -> Real)CONVERT使用计数器进行精确计算
删除小数TRUNC简化温度显示
数学舍入ROUND统计零件计算
处理 4-20mA 传感器NORM_X + SCALE_X0-16 bar 压力传感器
向上舍入CEIL托盘数量计算
旧版 S7-300 代码SCALE (FC105)机器项目迁移

常见问题

为什么使用 NORM_X 和 SCALE_X 而不是单个块?

这种两步分离提供了更大的灵活性。例如,您可以在缩放之前过滤或限制标准化值,或者将同一个标准化值用于几个不同的量程。

西门子模拟量输入的标准输入值是多少?

对于大多数西门子模块 (S7-1200/1500),单极信号(0-10V 或 4-20mA)的数值范围为 0 到 27648。这是您注入到 NORM_X 的 VALUE 参数中的值。

如何将数字转换为字符串 (String)?

CONVERT 指令原生处理向 String 的转换。对于格式化(小数位数)的更多控制,请使用 VAL_STRG 指令。

ROUND 和 TRUNC 有什么区别?

ROUND 舍入到最接近的整数(10.6 变为 11),而 TRUNC 不管数值大小直接截断小数(10.6 变为 10)。

优化您的模拟量计算

描述您的传感器范围和转换需求,T-IA Connect 将生成带溢出管理的优化缩放网络。