Я не пойму, к чему вот это и подобное надо городить:Зачем там этот массив нужен, ей богу? Почему нельзя так?Код:====================================================== PROGRAM PLC_PRG VAR i : INT; ARR : ARRAY[0..10] OF INT := 0,100,200,300,400,500,600,700,800,900,1000; PrevScanTimestamp: TIME; Speed_Reg : REAL := 0.08; Limit_Reg : INT := 10; btn_up: BOOL; btn_dn: BOOL; END_VAR btn_up := DI1; btn_dn := DI2; IF i <= Limit_Reg THEN i := LIMIT(0, i + REAL_TO_INT(TIME_TO_REAL(TIME() - PrevScanTimestamp) * Speed_Reg * (BOOL_TO_REAL(btn_up) - BOOL_TO_REAL(btn_dn))), Limit_Reg); PrevScanTimestamp := TIME(); AO7 := ARR[i]; ELSIF (i=0 AND btn_dn) THEN AO7 := ARR[0]; ELSE AO7 := ARR[i]; END_IF ===================================================М?Код:PROGRAM PLC_PRG VAR PrevScanTimestamp: TIME; Speed_Reg : REAL := 0.08; Limit_Reg : INT := 10; END_VAR AO7 := LIMIT(0, AO7 + REAL_TO_INT(TIME_TO_REAL(TIME() - PrevScanTimestamp) * Speed_Reg * (BOOL_TO_REAL(DI1) - BOOL_TO_REAL(DI2))), Limit_Reg); PrevScanTimestamp := TIME();




Ответить с цитированием