PDA

Просмотр полной версии : Первый мой пример (таймер TON)



TAASoft
25.04.2011, 21:43
Доброго времени суток!

Помогите, пожалуйста. Это мой пробный "шар".
ПЛК-154.
Хотелось написать нечто, что бы работало примерно так:
включение сигнала на 2 сек., затем отключение на 2 сек.
и т.д. Для лучшего понятия работы таймера.
Но что-то моё поняти меня подвело.
На практике сигнал включается и "гундит" пока не сбросишь.

Спасибо.

capzap
25.04.2011, 23:44
не пробовали взять за основу BLINK

а по Вашему примеру, проверьте логику программы, вообще странно что КДС не ругнулся

Николаев Андрей
26.04.2011, 00:37
Очень рекомендую во первых почитать описание таймеров, а во вторых, глянуть пример использования в ПЛК\примеры программ и полезности.

Александр Приходько
26.04.2011, 09:26
По вашему описанию вам больше подойдет генератор импульсов:

BLINK
Входит в util.lib.

Функциональный блок 'генератор прямоугольных импульсов'

Входы: ENABLE типа BOOL, TIMELOW и TIMEHIGH типа TIME. Выход OUT типа BOOL.

Генератор запускается по входу ENABLE = TRUE. Длительность импульса задается TIMEHIGH, длительность паузы TIMELOW.

Примечание: При переходе ENABLE в FALSE, выход OUT остается в том состоянии, в котором он был в этот момент. Если вам необходимо чтобы выходная переменная сбрасывалась в FALSE при ENABLE равном FALSE, то используйте выражение "OUT AND ENABLE" на выходе (т.е. добавьте блок AND на выход и на второй вход подайте ENABLE) .

TAASoft
26.04.2011, 20:17
Спасибо всем, BLINK это то что нужно.

capzap
26.04.2011, 21:55
:) я бы не был так оптимистичен, если Ваша цель была лучше понять работу таймеров, то использовав BLINK ВЫ особо то усилий не приложили и предмет вопроса остался для Вас скорее всего загадкой

Николаев Андрей
27.04.2011, 00:27
:) я бы не был так оптимистичен, если Ваша цель была лучше понять работу таймеров, то использовав BLINK ВЫ особо то усилий не приложили и предмет вопроса остался для Вас скорее всего загадкой

А от работы с таймерами Вам все-равно никуда не уйти. Так что 20-30 минут своей жизни, на Вашем месте, я бы потратил...

Constanta
27.04.2011, 08:37
Здравствуйте TAASoft! Высылаю Вам пример работы таймера TON. Суть работы программы такая: есть 2 кнопки и вентилятор. Нажимаем Start - через 10 сек (время может быть любое) запускается вентилятор. Нажимаем Stop - через 10 сек (время "от фонаря") вентилятор останавливается и т.д.

nemo_1977
27.04.2011, 15:30
test1:=TRUE;
T_ON(in:=TRUE,pt:=t#5s);
IF T_ON.Q=TRUE THEN test2:=TRUE; T_OFF(in:=TRUE,pt:=t#5s); TEST1:=FALSE; ELSE test2:=FALSE; TEST1:=TRUE; T_OFF(in:=FALSE); END_IF
IF T_Off.Q=TRUE THEN T_ON(in:=FALSE); END_IF
%QX1.1:=test2;
%QX1.0:=test1;

А если так попробовать.

Игорь Петров
28.04.2011, 13:44
Зачем при каждом вызове таймера передавать ему константу времени? Я бы задал ее сразу в разделе объявлений: timer : TON := (pt := t#1s);

TAASoft
30.04.2011, 21:16
Спасибо! Пример пользователя "Валенок"+ добавление Игоря Петрова это
самое то. Просто и понятно.
Можно маленький вопрос. А сколько таймеров можно завести для разных
событий. (есть ли какие-то количественные ограничения?)

Николаев Андрей
01.05.2011, 01:11
В явном виде ограничение на количество таймеров, тригеров и пр. нет.

TAASoft
04.05.2011, 22:19
Спасибо, Андрей.