大家瞅瞅我这段SCL程序

//-------------------------------//
 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:08
下一篇 2020年10月31日 下午3:08

相关推荐