【Siemens技术篇】TIA中使用 "INSERT" 指令如何将一个字符插入到一个字符串?

描述
可以使用 "INSERT" 指令通过输入参数 "IN2" 将一个字符或字符串插入到输入参数 "IN1" 的字符串中,结果会以字符串形式显示在输出参数 "OUT"。

通过指定参数 "P" 的数值来确定从字符串的哪个位置的字符之后插入字符。


图 01

在参数化 "INSERT" 指令时必须注意下列情况。

  • 如果参数 "P" 的数值大于输入参数 "IN1" 字符串的长度,那么输入参数 "IN2" 中的字符会显示在输入参数 "IN1" 字符串的最后一个字符。


图 02

  • 如果参数 "P" 的值是 0,那么输入参数 "IN2" 中的字符会显示在输入参数 "IN1" 字符串的第一个字符之前。


图 03

  • 如果参数 "P" 的值是负数,那么在输出参数 "OUT" 也会显示一个空字符串。


图 04

  • 如果结果字符串的长度超过了输出参数 "OUT" 定义的字符串变量的长度,那么结果字符串被限制为在有效长度字符串。


图 05

示例
同样可以使用 "INSERT" 语句复制字符串变量。图 06 举例说明了如何改变含有5个字符的字符串中的1个字符 ("abcde" => "abxde")。

  • 调整字符串变量的长度正好等于想要转换的字符串 (例如,String[5])。

  • 位于输入参数 "IN2" 的字符串必须和输入参数 "IN1" 的字符串一致。

    • 删除参数 "IN2" 字符串的第一个字符。

    • 修改字符串中想要转换的字符 (例如,"x")。


图 06

由于定义"P=1",参数 "IN2" 的字符串插入到参数 "IN1" 的字符串的第一个字符后面,结果字符串应为 "abxdebcde"。然而,由于位于输出参数 "OUT" 的字符串定义为5个字符长度,所以这个字符串被限定为 "abxde"。


图 07

注意
SIMATIC S7-1200 可以直接在 "IN1" 和 "IN2" 输入字符串。SIMATIC S7-300 ,需要输入字符串类型的 DB 变量。