Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Не работает таймер

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Не работает таймер

    Добрый день
    Есть вот такой блок

    setTimeCycle : TIME := T#20S;
    TimeCycle : TON;
    setTimePauseAfterStep : TIME := T#2S;
    TimePauseAfterStep : TON;


    TimeCycle(IN:=TRUE, PT:=setTimeCycle);
    IF TimeCycle.Q THEN
    Global.Vlv.PV11_14.iAutoStart := FALSE;
    TimePauseAfterStep(IN:=TRUE, PT:=setTimePauseAfterStep);
    IF TimePauseAfterStep.Q THEN
    step := 2;
    TimePauseAfterStep(IN:=FALSE);
    TimeCycle(IN:=FALSE);
    END_IF;
    END_IF;

    Не срабатывают счетчики.
    То есть Сигнал на In:= True Приходит, Время он в ПТ записывает верно, но не считает время.
    В чем может быть косяк?

  2. #2

    По умолчанию

    Добрый день.

    Что значит "Не срабатывают счетчики"? Где эти счетчики в вашем коде?

    "То есть Сигнал на In:= True Приходит, Время он в ПТ записывает верно, но не считает время." - о каком именно таймере речь?

    Покажите проблему скриншотами или снимите видео.

  3. #3

    По умолчанию

    bandicam 2022-09-20 09-18-37-692.jpg

    Все Переменные типа TON Висят в таком положении.
    Не считает Счетчик ET в переменных типа TON.
    Уточню что он их в принципе и не считает при запуске, на IN Приходит сигнал True и все.
    Пошагово такая же история.

  4. #4

    По умолчанию

    TrTinf Про функцию capzap уже сказал. Где вызывается этот код?
    А я ещё добавлю, что нефиг обрабатывать таймеры в IFах! Все таймеры надо бы вызывать без IFов, так как таймер сможет досчитать и остановиться только если вызывается постоянно. Иначе он так и зависнет фиг в каком состоянии, так как IF перестанет выполняться, а последний такт таймера "О, я досчитал", так и не будет выполнен в общих случаях.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  5. #5

    По умолчанию

    Код вызывается при запуске программы сразу же.
    Если быть конкретным это начало PLC_PRG Первые строчки.

    К сожалению идея алгоритма в том что, там без таймерах в IFах не получится сделать, если есть лучше варианты, буду рад выслушать.

  6. #6

    По умолчанию

    Цитата Сообщение от TrTinf Посмотреть сообщение
    Код вызывается при запуске программы сразу же.
    Если быть конкретным это начало PLC_PRG Первые строчки.

    К сожалению идея алгоритма в том что, там без таймерах в IFах не получится сделать, если есть лучше варианты, буду рад выслушать.
    Выложите ваш проект и подробно опишите, что в нем нужно сделать, чтобы увидеть вашу проблему.

  7. #7

    По умолчанию

    Цитата Сообщение от TrTinf Посмотреть сообщение
    К сожалению идея алгоритма в том что, там без таймерах в IFах не получится сделать, если есть лучше варианты, буду рад выслушать.
    Не хочу обидеть некорректным вопросом, который может прозвучать грубо: ты начинающий или нет?
    А то я вижу стандартные косяки:
    а) "Кажется", что таймер будет сам считать, а через IF можно его или запускать или останавливать. Это не так.
    б) Упущены фишки R_TRIG и F_TRIG
    в) Упущена фишка конечных автоматов (State Machine).

    Ну и ты сам алгоритм-то не сказал. Вроде как там идёт запск, а потом пауза.
    Я мутил алгоритмы вида "Запуск - выдержка - работа - стоп + выдержка - ещё выдержка - перезапуск - выдерка - работа" на таймерах и конечном автомате. Работало! И ты так сможешь.

    Что вижу по коду:
    1. Непонятно, что за Step - это шаг конечного автомата или какая-то переменная-флаг? Что это?
    2. Если ты хочешь получить мигалку (вроде как TimeCycle у тебя перезапускается) - может быть взять BLINK?
    3. Косяк в IFах (тут я догадываюсь): у тебя IN на TimeCycle станет FALSE (чтобы он перезапустился) ТОЛЬКО если отработает второй таймер TimePauseAfterStep. А если случится так, что этот таймер по каким-то причинам не заработает (он ещё и в цикле крутится и вызывается хрен когда), то TimeCycle никогда не перезапустится.

    В общем, хотелось бы алгортим.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  8. #8

    По умолчанию

    bandicam 2022-09-20 11-21-13-173.jpg

    Ближе к начинающему если есть такой вопрос.

    а) Останавливать его надо, надо когда он посчитает время, чтобы дальше выполнилось действие. Проблема в том что он даже не считает TimeCycle
    б) Не упущены а не использованы потому что нет необходимости.

    Происходит запуск, выбирается шаг 1, всего 4 шага.
    Открыты клапана PV 11-14. (Базовая настройка запуска)
    Остальные закрыты. Это верно.
    Далее он должен отработать по таймеру время открытия и выключиться, после чего идет пауза в 2 секунды и если она есть то происходит переход на шаг 2.
    Step - переменная конструкции CASE
    TimeCycle Перезапускается потому что подразумевается что эта штука будет запускаться либо по времени либо по падению давления.

    Ну он и никогда и не перезапускается потому что даже TimeCycle не выполняется))

  9. #9

    По умолчанию

    Пробовал.
    Несколько раз.
    После каждого все равно на всякий случай делаю.

  10. #10

    По умолчанию

    TrTinf Хм. Так вот конструкция с CASE и шагами как раз и называется конечным автоматом состояний (State Machine).
    1. Если закомментировать ВЕСЬ код и оставить только вызов таймера - что будет?
    2. Не используется ли этот же таймер в других состояниях автомата?
    3. Так может для выдержки "...когда кончится выдержка" использовать вообще TOF?
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. ПЛК150-220.А-М (master) СП307Б (slave): работает write, но не работает read
    от программист_с_паяльником в разделе ПЛК1хх
    Ответов: 19
    Последнее сообщение: 24.01.2022, 09:38
  2. Не работает таймер TON TOF
    от Global в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 18.04.2018, 14:26
  3. Не работает код, таймер
    от pyonth в разделе ПЛК1хх
    Ответов: 17
    Последнее сообщение: 14.11.2013, 18:49
  4. Не работает таймер автоматической перезагрузки ПМ01
    от Александр85 в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 07.02.2013, 10:46
  5. Таймер(ы)
    от AntoNechayuk в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 23.08.2011, 19:39

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •