用SCL写了一段时间排序程序,每次激活的时候就会报一下区域长度错误
CPU 临时错误:FC 11 中的区域长度错误
将影响 OB 1 的执行
读访问 安全型 LD 区域
地址错误,已更换操作数
继续处理(无 OB 处理)
|> HW_ID= 52
内部地址的详细信息:Caddr=16#00000080,区域:安全型 LD 区域,地址:96
求大神帮忙看一下程序到底哪里出了问题
#time[1] := #runtime1;
#time[2] := #runtime2;
#sort1[1] := 1;
#sort1[2] := 2;
FOR #J := 0 TO 1 BY 1 DO
// Statement Section
FOR #I := 1 TO 2 - #J BY 1 DO
IF #time[#I] > #time[#I + 1] THEN
#TMP1 := #time[1];
#time[1] := #time[#I +1];
#time[#I + 1] := #TMP1;
#TMP2 := #sort1[#I];
#sort1[#I] := #sort1[#I + 1];
#sort1[#I + 1] := #TMP2;
END_IF;
END_FOR;
END_FOR;
#sort01 := #sort1[1];
#sort02 := #sort1[2];
最佳答案
检查#time[] 定义的长度,看看是不是不够,或者内循环的次数、起始数值有问题
提问者对于答案的评价:
程序没啥问题,time定义错了,我没仔细看
专家置评
长度定义问题
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc171144.html