Будет ответная просьба. Изучите внимательно, пожалуйста.
На ST выглядит интересней:
Код:function_block EL var_input SB1 : bool; // Кнопка end_var var_output EL1, EL2, EL3, EL4 : bool; // Лампы end_var var Mode : udint; // Текущий режим elN : udint; // Номер лампы в режимах 8 и 9 rtMode : SYS.RTRIG; // Триггер нажатия на SB1 tmr : SYS.TON; // Таймер переключения ламп в режимах 8 и 9 end_var rtMode(I := SB1); // Фиксируем нажатие на SB1 if rtMode.Q then // Переключаем режим от 0 до 9 Mode := Mode + 1; if Mode = 10 then Mode := 0; end_if end_if case Mode of // В зависимости от режима включаем лампы 0: EL1 := false; EL2 := false; EL3 := false; EL4 := false; elN := 0; tmr(I := false); 1: EL1 := true; EL2 := false; EL3 := false; EL4 := false; 2: EL1 := false; EL2 := true; EL3 := false; EL4 := false; 3: EL1 := false; EL2 := false; EL3 := true; EL4 := false; 4: EL1 := false; EL2 := false; EL3 := false; EL4 := true; 5: EL1 := true; EL2 := true; EL3 := false; EL4 := false; 6: EL1 := true; EL2 := true; EL3 := true; EL4 := false; 7: EL1 := true; EL2 := true; EL3 := true; EL4 := true; 8: if elN = 0 then elN := 1; end_if // Зажигаем EL1 при переходе в режим 8 end_case if elN > 0 Then // Инициирован режим 8 tmr(I := true, T := T#3s); // Запускаем таймер на 3 сек if tmr.Q then // По истечению переключаемся на следующую или завершаем цикл elN := elN + 1; if elN = 5 then elN := 0; if Mode = 9 then Mode := 0; end_if // Если режим 9 - сброс в начальное состояние end_if tmr(I := false); // Сброс таймера end_if case elN of // Включаем соответствующую лампу 1: EL1 := true; EL2 := false; EL3 := false; EL4 := false; 2: EL1 := false; EL2 := true; EL3 := false; EL4 := false; 3: EL1 := false; EL2 := false; EL3 := true; EL4 := false; 4: EL1 := false; EL2 := false; EL3 := false; EL4 := true; end_case end_if end_function_block




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