Так да, но кроме ФБ есть еще ПРГ которые тоже можно вызывать из ПРГ_ПЛК
Вид для печати
Программа выполняется сверху вниз (язык ST). Если встерчается ФБ или программа или функция, то выполняется код внутри, потом остальное ниже. На языке CFC выполняемые элементы пронумерованы и выполняются согласно нумерации.
В codesys есть элементы условия IF ELSE и как их задать? Пробовал на ПЛК100-220.P-L элемент AND - срабатывал дискретный выход, все нормально. Менял текстом в элементе на OR, никакой реакции на выходе.
Здравствуйте! Помогите новичку. :confused:
Есть:
ПЛК100-24.Р-М
1. Светильник 220в
2. Водяная помпа 12в
3. Воздушный компрессор 220в
Нужно:
1. Светильник включался в 08:00 выключался в 20:00
2. Водяная помпа включалась каждые 2 часа на 5 минут
3. Воздушный компрессор включался каждые 2 часа на 5 минут параллельно с водяной помпой.
Гуру помогите написать код в CoDeSys 2.3 :confused:
Подскажите как на трм212 создать температурный график ? Какие кнопки жать . И какая велbчина величины.
Например на трм 32 все просто U1.....
Привет всем. Только начал изучать контроллеры. Пишу программу для Овен ПЛК 63 на языке ST, пока в режиме эмуляции, и немного непойму работу с таймерами.
Задача: Каждые 3 минуты необходимо включать двигатель (Engine1 = 1) на 10 секунд.
Написал такой код:
Всё работает, только почему-то, когда запустился таймер T1 и переменой T1_start установлено значение FALSE, код под условием IF T1.Q AND T1_start выполняется заново в следующем цикле, в связи с чем не могу в другом месте запустить двигатель. Почему так?Код:PROGRAM TEMP_CONTROL
VAR
T1,T2: TON;
T1_start, T2_start: BOOL;
END_VAR
T2(IN:=T2_start, PT:=T#10s);
T2_start := FALSE;
IF NOT T2.Q THEN
Engine1 := 1;
Vibrator := TRUE;
T1_start := TRUE;
END_IF;
T1(IN:=T1_start, PT:=T#3m);
IF T1.Q AND T1_start THEN
Engine1 := 0;
Vibrator := FALSE;
T1_start := FALSE;
T2_start := TRUE;
END_IF;
Что-то сложно слишком, почему BLINK не использовать, вместо всей этой конструкции?
Ну или так
Вложение 19545Код:VAR
t1: TON:=(PT:=t#3m);
t2: TON:=(PT:=t#10s);
Engine,Vibrator: BOOL;
END_VAR
t1(IN:= NOT t2.Q );
t2(IN:= t1.Q );
Engine:=t1.Q;
Vibrator:=t1.Q;
var
tik:ton;
delay1:time:=t#3m;
delay2:time:=t#10s;
q:bool;
end_var
if tik.q then
if tik.pt=delay1 then
tik.pt:=delay2;
q:=true;
else
tik.pt:=delay1;
q:=false;
end_if
end_if;
tik(in:=not tik.q,pt:=tik.pt);
так попробуйте, набрал с телефона в автобусе, поэтому не писал инициализацию каким должно быть время, ну и может ошибся где