-
Язык ST. Временная задержка.
Здравствуйте! Срочно нужна Ваша помощь...
Подскажите пожалуйста как сделать временную задержку на языке ST.
Условие:если вход 1 труе, то выход 3 труе и через 3 сек выход 5 тоже становится труе.
IF iblnInPut1 THEN
qblnOutPut3:=TRUE;
TP1(IN:=TRUE, PT:=t#3s);
qblnOutPut5:=TRUE;
ELSE
qblnOutPut3:=FALSE;
qblnOutPut5:=FALSE;
END_IF
-
VAR
TP1:TON;
end_var
qblnOutPut3:= iblnInPut1;
TP1(IN:=iblnInPut1, PT:=t#3s);
qblnOutPut5:=TP1.Q;
Что-то типа этого...
-
Какой то странный код... Это точно ST?
А если ещё через секунду выходы 7,8 подключить? Так будет выглядеть:
qblnOutPut3:= iblnInPut1;
TP1(IN:=iblnInPut1, PT:=t#3s);
qblnOutPut5:=TP1.Q;
TP2(IN:=iblnInPut1, PT:=t#1s);
qblnOutPut5:=TP7.Q;
qblnOutPut5:=TP8.Q;
И ещё вопрос. Допустим мы получили условие (в данном случае вход 1 труе). В зависимости от этого условия выполняется программа: загорается 3 выход, через 3 секунды 5 выход, ещё через секунду 7 и 8 выходы. Так вот сам вопрос. Если вход 1 становиться фалзе, т.е. условие не действует, программа продолжается?
-
Супер Модератор
Программа продолжается не зависимо от состояния переменных.
Будет ли работать таймер - Вы это хотели узнать.
Работа с таймерами в CoDeSys - вещь постоянная - рекомендую один раз сесть и разобраться с этим вопросом.
Графическое отображение работы таймеров приведено в мануале и хелпе.
НУ и если вся задача такая дискретная - гляньте на на язык LD
-
Хорошо, тогда я расскажу применительно к своему станку. Допустим выходы отвечают за движение пневмоцилиндров. Нужна кнопка сброса (грибок) которая возвращает все цилиндры в исходное положение. Т.е. на выходах (независимо от того окончилась программа или нет) должно установится фалзе.
P.S. форум для того и нужен что бы задавать вопросы...
-
Супер Модератор
Так никто и не против - задавайте.
А еще форум очень помогает находить ответы на свои вопросы
Например тут, в одной из самых верхних тем:
http://www.owen.ru/forum/showpost.ph...8&postcount=14
-
Спасибо, Андрей! Посмотрю...
-
Подскажите подскажите ещё. Вот пример из архива:
(*задержка включения: если вход 3 true, то через 5 секунд выход 3 true*)
tim1(IN := in3, PT := T#5s);
out3:=tim1.Q;
А если нужно условие от нескольких входов? Как будет?
(*задержка включения: если вход 3 true и вход 4 true , то через 5 секунд выход 3 true и через 7 секунд выход 4 true*)
Заранее спасибо!
-
tim1(in:=in3 and in4, pt:=t#5s);
out3:=tim1.q;
tim2(in:=in3 and in4, pt:=t#7s);
out4:=tim2.q;
-
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума