//-------------------------------//
FUNCTION FC51: VOID // programeable valves sub function //
// X1: KV##_SET;
// X2: LLOOP_SET;
// X3: STEP_BEGING;
// X4: STEP_END;
// X5: LLOOP_RUN;
// X6: STEP_RUN;
// X7: BED_RUN;
// X8: VALVES MAX_NUMBER
// Y2: KV##_RUN;
VAR_TEMP
Y1 : INT;
END_VAR
VAR_INPUT
X1,X2,X3,X4 : INT;
END_VAR
VAR_OUTPUT
Y2: ARRAY[1..42] OF BOOL;
END_VAR
Y1:=DB30.LLOOP + 1 - X2;
IF Y1<1 THEN
Y1 :=Y1 + DB30.STATE;
END_IF;
Y1:=Y1+DB30.CUTTED_NUM;
IF Y1>5 THEN
Y1:=Y1-5;
END_IF;
Y1:= (Y1 - 1)*6 + X1;
IF DB30.SLOOP>= X3 AND DB30.SLOOP<=X4 THEN
Y2[Y1]:= TRUE;
END_IF;
END_FUNCTION
其中:Y2: ARRAY[1..42] OF BOOL;
Y2[Y1]:= TRUE;
有点高不明白,尤其是Y2[Y1]这个。亲爱的大嫂大哥们,这是什么意思呢?
最佳答案
很明显Y2是个具有42个元素(BOOL)的数组变量,Y2[Y1]就是对其中的某个元素进行访问,比如Y1=3,意思就是将Y2[3]置1。你不要告诉我你不知道Y2[3]代表什么意思啊。
你的程序中就是判断当DB30.SLOOP>= X3并且DB30.SLOOP<=X4 这个条件满足时,将
Y2[Y1]这个位 置1
提问者对于答案的评价:
哈哈哈哈!!!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc303008.html