S7300 用SCL语言while语句搜索变量值代码如下为什么死机

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

图片说明:

S7300 用SCL语言while语句搜索变量值代码如下为什么死机   

最佳答案

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午1:28
下一篇 2018年12月1日 下午1:28

相关推荐