寻址STRING或WSTRING中的具体字符(S7-1200,S7-1500) 寻址STRING或WSTRING中的具体字符 寻址STRING或WSTRING中的具体字符 通过语法StringName[i],可访问STRING或WSTRING变量中的具体字符。 计数下标“i”以“1”开头。因此,可以使用StringName[1]访问字符串的第一个字符。 但不能访问STRING或WSTRING常量中的各个字符。 示例 以下示例说明了如何寻址(W)STRING: 寻址说明 "myDB".mySTRING[3]对该数据块中STRING的第三个字符进行寻址。 #myWSTRING[3]对WSTRING的第三个字符进行寻址。 W(STRING)访问的故障查找与排除 在运行过程中访问的字符超出STRING长度时,将导致访问错误。对该字符串进 行读取访问时,将接收到字符“$00”或“$0000”;而且不会对该字符串进行写入访问。 如果该指令中带有使能输出ENO,则ENO的信号状态将设置为FALSE。CPU不会 切换为STOP模式。 唯一例外:在字符串的实际长度之后直接写入该字符。 以下示例显示了实际长度为5时的字符串“Hello”。该STRING的第27个字符超出 了实际长度,无法写入。STRING将保持不变,赋值结果为“hello”。 SCL MyDB.mystring:=''hello''; MyDB.mystring[27]:=CHAR_TO_BYTE(''!''); STRING6 以下示例显示上述的例外情况:该字符将直接写入后的第个字符处。 “hello!” 赋值结果为。 SCL MyDB.mystring:=''hello''; MyDB.mystring[6]:=CHAR_TO_BYTE(''!''); 如果可能,请尽量使用“扩展指令>字符串+字符”(Extendedinstructions>String+ Cha)窗格中的指令,对STRING进行处理。 CONCAT(IN1:=''hello'',IN2:=''!''); -1- |
|