всем привет. есть электро котел 100 кВт три блок ТЭН на пускателях и ПР200. хочется реализовать ротацию тэн по наименьшей наработке времени. может есть у кого то готовые решения.
понял спасибо
Люди, не бейте меня ибо вопрос идиотский но как решить его я не могу второй день, сеодня даже на ночь остался на работе но решил сдаться и спросить у Вас.
Если упростить задачу до ,, кирпича,, то необходимо: если условие А:=TRUE --- зажечь лампочку_1 - отсчитать время Т --- потушить лампочку _1и зажечь лампочку_2---отсчитать время Т---потушить лампочку 2 и зажечь лампочку_3---отсчитать время Т и вернуться к процедуре лампочки_1 . И так по кругу пока условие А:=TRUE; когда A:=FOLSE будет другая последовательность но это уже не важно. Пересмотрел варианты каскадного управления котлами но все что я нашел основано на использовании системного времени ПЛК а знаний у меня по этому направлению ещё меньше. Для меня реально это использовать таймеры.
Обявил три тамера
VAR
(*Таймер_1*)
TP_1 : TP;
IN_TP_1 : BOOL;
(*Таймер_2*)
TP_2 : TP;
IN_TP_2 : BOOL;
(*Таймер_3*)
TP_3 : TP;
IN_TP_3 : BOOL;
(*Переменную PT_TIME чтобы все таймеры шли одинаково*)
PT_TIME : TIME := T#15S;
(*Переменная в качестве счетчика CASE*)
COUNT_1 : INT;
END_VAR
В теле функционального блока ,,завел 3 таймера:
TP_1 (IN := IN_TP_1, PT := PT_TIME);
TP_2 (IN := IN_TP_2, PT := PT_TIME);
TP_3 (IN := IN_TP_3, PT := PT_TIME);
IF A THEN
В качестве реализации алгоритма решил использовать конструкцию с CASE:
CASE COUNT_1 OF
0: OUT_LAMP_1:=1;
OUT_LAMP_2:=0;
OUT_LAMP_3:=0;
IN_TP_1 := 1; (*запускаем таймер ТР_1*)
IF TP_1.Q THEN IN_TP_1 := 0; COUNT_1 := 1; END_IF; (*Если таймер ТР_1 отсчитал заданое время , я его выключаю и перехожу на следоющий блок CASE*)
1: OUT_LAMP_1:=0;
OUT_LAMP_2:=1;
OUT_LAMP_3:=0;
IN_TP_2 := 1; (*запускаем таймер ТР_2*)
IF TP_2.Q THEN IN_TP_2 := 0; COUNT_1 := 2; END_IF; (*Если таймер ТР_2 отсчитал заданое время , я его выключаю и перехожу на следоющий блок CASE*)
2: 1: OUT_LAMP_1:=0;
OUT_LAMP_2:=0;
OUT_LAMP_3:=1;
IN_TP_3 := 1; (*запускаем таймер ТР_3*)
IF TP_3.Q THEN IN_TP_3 := 0; COUNT_1 := 0; END_IF; (*Если таймер ТР_3 отсчитал заданое время , я его выключаю и возврощаюсь к нулевому блоку CASE*)
END_CASE;
END_IF;
Как вы поняли это ничего не работает т.к. тамеры не успевают завершить отсчет времени ибо у них выход Q сразу =1 и идет переход к следоющему блоку CASE. Можно попытаться сделать на одном таймере но я не знаю как сделать разрыв в цикле чтобы тамер смог перегрузиться и в следоющем блоке CASE был готов к работе. Я Пересмотрел всю ветку овен лоджике с ST конструкциями, но там опять опираеться на системное6 время и слишком не понятно для меня. Сейчас попробую с счетчиками, ночь длинная. Спасибо.
Решил я эту задачу с помощю счетчика CTD и BLINK. Но хотелось узнать как эту задачу можно таймерами решить.Спасибо.
Вот здесь:
IF TP_3.Q THEN IN_TP_3 := 0; COUNT_1 := 0; END_IF; (*Если таймер ТР_3 отсчитал заданое время , я его выключаю и возврощаюсь к нулевому блоку CASE*)
сделайте вызов TP для его обнуления:
IF TP_3.Q THEN
TP_3 (IN := false, PT := t#0s);
IN_TP_3 := 0;
OUNT_1 := 0;
END_IF;
Вообще лучше использовать не TP, a TON и можно вызывать его прямо внутри шага CASE - если нужна выдержка времени
Здесь посмотрите пример
Последний раз редактировалось 1exan; 12.12.2025 в 04:49.
Если всё идёт через равное время, то можно и один ton использовать, как то так:
На эту переменную и вешайте ваш case, если он вам так нравится. Но не забудьте при первом взводе А её сделать 1 или 0, а при превышении какого то числа опять приравнять к 0 или 1, чтоб закольцевать.Код:TON_X(IN:= A AND NOT TON_X.Q, PT:=T#5S); IF TON_X.Q THEN peremennaya:= peremennaya + 1; END_IF
Тут таймер TON.
PS В case только логика ламп, и ничего больше...
Последний раз редактировалось МихаилГл; 12.12.2025 в 07:35.
Всё уже лежит на форуме давно, попроще, посложней на одном таймере, любое кол-во шагов
Простой шаговый автомат, новый TON с паузой_____ https://owen.ru/forum/showthread.php...39&page=43#424
Прогр. управление 6 нагрузками 6 реж. 12 шагов _ФБ_фунции_____https://owen.ru/forum/showthread.php...39&page=11#105
2+3 насоса_Нараб_Уровень_Ротация по времени_____ https://owen.ru/forum/showthread.php...l=1#post465744
Последний раз редактировалось kondor3000; 12.12.2025 в 07:44.