我变了一个功能块,就是就行比较,但是比较结果发现,有的比较了,有的没有比较,不知道是怎么回事,大家看一下!
FUNCTION FC104: void
VAR_TEMP
// Temporary Variables
i:INT;
j:INT;
END_VAR
//LABEL
//LAB1;
//END_LABEL
FOR i:=0 TO 11 BY 1 DO
// Statement Section
IF DWORD_TO_REAL(DB8.DD[ i*4 ])>=DWORD_TO_REAL(DB6.DD[ 4*i+4 ]) AND DWORD_TO_REAL(DB8.DD[ i*4 ])<=DWORD_TO_REAL(DB6.DD[ i*8 ]) THEN
// IF TEST.DD[ i*4 ]>SET_PAGE.DD[ 4*i+4 ] AND TEST.DD[ i*4 ] TEST.result[i]:=true;
ELSE
TEST.result[i]:=false;
END_IF;
END_FOR;
FOR i:=0 TO 11 BY 1 DO
IF TEST.result[i] THEN
TEST.result[12]:=TRUE ; //OK
// GOTO LAB1 ;
ELSE
TEST.result[12]:=FALSE ; // NG
TEST.result[13]:=TRUE ;
EXIT; // EXIT FOR LOOP
END_IF;
END_FOR;
//LAB1: i := 1 ;
IF TEST.result[12] THEN
message.STEP:=message.STEP+1; // IF TEST IS OK THEN STEP+1
END_IF;
IF TEST.result[13] THEN // IF TEST IS NG THEN STEP+?????????? how to do it ? ask su or wu or tian
message.STEP:=message.STEP+45;
END_IF;
// Instruction Section
END_FUNCTION
因为我的比较条件是放开的按照道理应该是TEST.result[0]到TEST.result[11]的值应该为true,但是TEST.result[i],i为偶数是值为true,就是TEST.result[0]=true TEST.result[2]=true TEST.result[4]=true TEST.result[6]=true TEST.result[8]=true TEST.result[10]=true 是怎么回事?我的FOR 语句 用错了吗?