
REPLACE — 替换字符串
从位置 P 开始用 IN2 替换 L 个字符。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
REPLACE 从位置 P 开始,用 IN2 替换 L 个字符。
符号与引脚
分类:字符串
不需要实例
模板值:str_type
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
IN1 | 输入 | 原字符串 |
IN2 | 输入 | 替换字符串 |
L | 输入 | 被替换的字符数 |
P | 输入 | 起始位置 |
eno | 流输出 | 使能输出 |
OUT | 输出 | 结果 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时 Result = REPLACE(A, B, L, P);A='PUMP-01'、B='02'、P=6、L=2 得 'PUMP-02'。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
IN1是原字符串,IN2是替换内容,L是被替换的字符数,P是起始位置。P从 1 开始;替换后长度可能变化,目标字符串要有足够容量。- 越界时按 TIA 规则处理;先确认
P + L - 1 <= LEN(IN1)。 str_type=String;EN/ENO是使能。
常用场景
常见坑
- P/L 越界:先做范围检查。
- 长度变化:替换串比被替换串长时结果会变长,可能被截断。
- 和 INSERT/DELETE 混淆:
REPLACE是“删 L 个 + 插入”,不是只插入。 - ENO 未接:后面的指令可能不执行;需要串联时检查 ENO。
