Добавлен автостоп по истечении tWork:
Самый лучший способ научиться - это читать чужой код (только хороший код - это проблема).Код:function_block DRV var_input Start : bool; Stop : bool; tStart : udint; tStop : udint; tWork : udint; // Время работы блока end_var var_output FW : bool; RW : bool; end_var var btn : SYS.RS; // Кнопка фиксирующая Start/Stop bl : SYS.BLINK; // Генератор времени вращения и паузы st : SYS.CTN; // Переключатель направления вращения tW : SYS.TON; // Таймер работы блока end_var btn(S := Start, R := Stop or tW.Q); // Кнопка которая фиксирует Start и сбрасывает по Stop или по таймеру tW tW(I := btn.Q, T := udint_to_time(tWork)); // Таймер, который работает пока кнопка в состоянии Start bl(I := btn.Q, Th := udint_to_time(tStart), Tl := udint_to_time(tStop)); // Переключатель Вращение/Пауза st(U := bl.Q, R := st.Q = 2); // Счетчик вращений от 0 до 1 FW := (st.Q = 0) and bl.Q; // Счетчик и переключатель определяют состояние выходов RW := (st.Q = 1) and bl.Q; end_function_block
Профи не любят им делиться - хлеб свой отдавать кому-то, но очень любят стебаться над новичками (даже здесь есть дедовщина).




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