FUNCTION_BLOCK FB200
VAR
index:INT;
st:ARRAY[1..100] OF STRING[10];
tem:STRING[10];
END_VAR
BEGIN
index:=0;
st[30]:='xuzhou';
IF m100.0=1 THEN
WHILE index<100 AND st[index]<>'xuzhou'
DO
index:=index+1;
DB2.globle_index:=index;
END_WHILE;
m100.0:=0;
END_IF;
END_FUNCTION_BLOCK
图片说明:
最佳答案
st:ARRAY[1..100] OF STRING[10];是1至100,而你index:=0;赋值0,程序不存在st[0],所以出错了,修改程序index:=1或st:ARRAY[0..100] OF STRING[10]。
提问者对于答案的评价:
可是我还有个疑问,我在另外一个共享DB块中建同样 字符串数组【1..100】,然后SCL中用index:=0然后进行搜索,虽然也是从0开始但是结果正常运行 why
?
最佳答案作者回复:
我试了一下,还是会有错误的。不知道你是这样写的程序。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc232954.html