Просмотр полной версии : Таймер с паузами.
Всем доброго времени суток. Помогите советом. В общем нужно реализовать следующий момент. При подаче разрешающего сигнала на входе должен запускаться цикл включения/выключения клапана (для удобства 5s включен, 10s выключен) и до момента False на входе. Попробовал сделать это с помощью FB Blink, работает не совсем корректно, т.к. на выходе, в зависимости от того в какой момент поступил сигнал False может дать либо True либо False. Хотя в описание к Blink написано, что изначально у него False. Можно ли добиться стабильного сигнала с выхода Blink при подаче False в любой момент времени? Или как можно реализовать такой алгоритм? Что-то с помощью TP, TON, TOF не могу понять
Всем доброго времени суток. Помогите советом. В общем нужно реализовать следующий момент. При подаче разрешающего сигнала на входе должен запускаться цикл включения/выключения клапана (для удобства 5s включен, 10s выключен) и до момента False на входе. Попробовал сделать это с помощью FB Blink, работает не совсем корректно, т.к. на выходе, в зависимости от того в какой момент поступил сигнал False может дать либо True либо False. Хотя в описание к Blink написано, что изначально у него False. Можно ли добиться стабильного сигнала с выхода Blink при подаче False в любой момент времени? Или как можно реализовать такой алгоритм? Что-то с помощью TP, TON, TOF не могу понять
Посмотрите GEN_PULSE из библиотеки oscat
На ST будет как-то так.
- импульс на startWater запустит startCycle
- через 5сек вкл. tmrHigh и еще через 10сек вкл. tmrLow, который сбросит startCycle
- если startWater будет активен, все повторится
- соответственно сигнал снимаете с (startCycle AND NOT tmrHigh.Q)
tmrHigh: TON := (PT := T#5s);
tmrLow: TON := (PT := T#10s);
startCycle: BOOL;
startCycle := (startCycle OR startWater) AND NOT tmrLow.Q;
tmrHigh(IN := startCycle); tmrLow(IN := tmrHigh.Q);
Всем спасибо. Сделал GEN_Pulse'ом.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot