TIA Portal 指令

字符串与文本
数据操作

像专家一样处理文本数据。从动态标签生成到协议解析,掌握 PLC 中的每一条字符串处理指令。

为什么在 PLC 中处理字符串?

虽然 PLC 主要设计用于二进制和数值逻辑,但字符串操作对于现代工业界面至关重要。它们允许为 HMI 生成动态消息,解析扫描仪的条形码或二维码,并通过格式化文本协议与 IT 系统进行通信。

TIA Portal 提供了一套强大的指令来管理 STRING (ASCII) 和 WSTRING (Unicode) 类型,确保您的机器可以用任何语言进行清晰的沟通。

拼接与插入

构建动态消息

CONCAT — 拼接字符串

CONCAT

功能描述

将两个或多个字符串合并为一个输出字符串。源字符串按定义顺序进行追加。

使用场景

通过前缀和变量名创建完整的状态消息,或构建用于日志记录的 CSV 行。

专业技巧

务必检查目标字符串的最大长度以避免截断。

在 SCL 中,如果支持,可以使用 '+' 运算符进行更简单的拼接。

将 CONCAT 与空格字符结合使用,以确保 HMI 输出的可读性。

INSERT — 插入字符串

INSERT

功能描述

在现有字符串的指定字符位置 (P) 插入子字符串。

使用场景

在动态文本模板中添加单位符号(如 'kg' 或 '°C')。

专业技巧

如果 P 为 0,子字符串将插入到开头。

如果 P 大于字符串长度,子字符串将追加到末尾。

适用于日期/时间字符串的动态格式化。

搜索与修改

分析文本数据

FIND — 搜索子字符串

FIND

功能描述

在字符串中搜索特定模式并返回起始位置。如果未找到,则返回 0。

使用场景

在扫描仪输入字符串中定位分隔符(如逗号或分号)。

专业技巧

搜索区分大小写。'Error' 与 'error' 不同。

直接在 MID 指令中使用返回的位置来提取数据。

在循环中,可以通过更新起始字符串来查找多次出现的位置。

REPLACE — 替换部分内容

REPLACE

功能描述

从位置 P 开始,用新的子字符串替换特定数量的字符。

使用场景

更新静态消息的变量部分,而无需重建整个字符串。

专业技巧

若要删除字符而不添加新字符,请使用空字符串作为替换内容。

常用于将 {val} 等占位符替换为实际数值。

注意字符计数,以避免意外移动文本的其余部分。

转换与提取

连接数字与文本

VAL_STRG / STRG_VAL — 转换

VAL_STRG

功能描述

将数值(Int, Real)转换为 STRING (VAL_STRG) 或从 STRING 中解析数字 (STRG_VAL)。

使用场景

在自定义文本消息中显示 Real 类型温度,或将串口输入转换为 Integer。

专业技巧

配置 FORMAT 输入以定义小数点和正负号行为。

STRG_VAL 对小数点分隔符(点或逗号)敏感。

检查状态输出以确保转换成功。

LEFT / RIGHT / MID — 提取

MID

功能描述

从左侧、右侧或特定的中间位置 (MID) 提取字符串的一部分。

使用场景

从条形码中获取前缀,或提取括号之间的值。

专业技巧

MID(IN, L, P) 从位置 P 开始提取 L 个字符。

如果 L 超过可用字符数,指令将返回到末尾的所有内容。

对于从第三方串口协议中“拆箱”数据至关重要。

STRING 与 WSTRING 对比

选择正确的文本格式

属性STRINGWSTRING
编码ASCII / 扩展 ASCIIUnicode (UTF-16)
每字符字节数1 字节2 字节
最大长度254 字符16382 字符
用途标准西欧文本国际化 / 特殊字符
内存占用高(双倍)
SCL 前缀'' (单引号)W#''

常见问题解答

TIA Portal 中 STRING 的最大长度是多少?

标准 STRING 最多可容纳 254 个字符。如果您需要更多,必须使用 WSTRING 类型,在 S7-1500 上它可以处理多达 16,382 个字符。

为什么我的 VAL_STRG 转换失败了?

最常见的原因是目标字符串长度不足,或 FORMAT 参数不匹配(例如,试图将较大的 REAL 放入较小的 STRING 中)。

我可以在优化的数据块中使用字符串吗?

可以,优化的 DB 完全支持字符串。但请记住,它们在内存中始终占用其定义的最大大小,外加 2 字节的长度表头。

如何在 SCL 中比较两个字符串?

您可以使用标准比较运算符(=, <>, <, >)。TIA Portal 会根据字符串的 ASCII/Unicode 值逐个字符进行比较。

简化您的文本处理

复杂的解析或标签生成?T-IA Connect 自动为您创建字符串处理块。