【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 变量。