Показано с 1 по 10 из 18

Тема: Не работает код, таймер

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

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

    По умолчанию

    Заработало как надо! Только скажите, не криво ли это выглядит и стоит ли так делать? Я замечаю, что пока не получается мыслить о процессе кодирования как кодирование конечного автомата. Я правильно понимаю, что за один цикл работы ПЛК входные/выходные переменные меняют значение один раз, а локальные переменные в коде могут меняться несколько раз?

    Код:
    Timer1(IN:=T1, PT:=T#5s);
    Timer2(IN:=T2, PT:=T#10s);
    IF Timer1.Q THEN
    	T1 := FALSE;
    	T2 := TRUE;
    END_IF
    IF NOT Timer2.Q AND NOT inv THEN
    	T1 := TRUE;
    	T2 := FALSE;
    END_IF
    inv := NOT inv;

  2. #2
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    354

    По умолчанию

    Цитата Сообщение от pyonth Посмотреть сообщение
    Заработало как надо! Только скажите, не криво ли это выглядит и стоит ли так делать? Я замечаю, что пока не получается мыслить о процессе кодирования как кодирование конечного автомата.

    Код:
    Timer1(IN:=T1, PT:=T#5s);
    Timer2(IN:=T2, PT:=T#10s);
    IF Timer1.Q THEN
    	T1 := FALSE;
    	T2 := TRUE;
    END_IF
    IF NOT Timer2.Q AND NOT inv THEN
    	T1 := TRUE;
    	T2 := FALSE;
    END_IF
    inv := NOT inv;
    Главное понимать, как это работает.
    Я бы сделал так:
    Код:
    TP1(IN:=TRUE , PT:=T#10s);
    TON1;
    F_TRIG1(CLK:=TP1.Q);
    IF F_TRIG1.Q THEN
    	TON1(IN:=TRUE , PT:=T#5s);
    END_IF
    IF TON1.Q THEN
    	TP1(IN:=FALSE);
    	TON1(IN:=FALSE);
    END_IF
    или так:
    Код:
    TOF1(IN:=FALSE);
    F_TRIG1(CLK:=TP1.Q);
    IF NOT TOF1.Q THEN
    	TP1(IN:=TRUE , PT:=T#10s);
    END_IF
    IF F_TRIG1.Q THEN
    	TP1(IN:=FALSE);
    	TOF1(IN:=TRUE , PT:=T#5s);
    END_IF
    Я правильно понимаю, что за один цикл работы ПЛК входные/выходные переменные меняют значение один раз, а локальные переменные в коде могут меняться несколько раз?
    Правильно.

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,591

    По умолчанию

    Цитата Сообщение от pyonth Посмотреть сообщение
    Заработало как надо! Только скажите, не криво ли это выглядит и стоит ли так делать? Я замечаю, что пока не получается мыслить о процессе кодирования как кодирование конечного автомата. Я правильно понимаю, что за один цикл работы ПЛК входные/выходные переменные меняют значение один раз, а локальные переменные в коде могут меняться несколько раз?

    Код:
    Timer1(IN:=T1, PT:=T#5s);
    Timer2(IN:=T2, PT:=T#10s);
    IF Timer1.Q THEN
    	T1 := FALSE;
    	T2 := TRUE;
    END_IF
    IF NOT Timer2.Q AND NOT inv THEN
    	T1 := TRUE;
    	T2 := FALSE;
    END_IF
    inv := NOT inv;
    прочтите назначение ПОУ BLINK, возможно он заменит Ваш код

Похожие темы

  1. ТРМ-501 - не срабатывает таймер.
    от Kolt в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 18.08.2014, 10:21
  2. Не работает таймер автоматической перезагрузки ПМ01
    от Александр85 в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 07.02.2013, 10:46
  3. Не работает Pid_Function
    от Игор100 в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 05.05.2010, 09:25
  4. не работает 2-я Pou
    от Дитрих в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 15.01.2009, 09:54
  5. не работает сеть
    от Георгий в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 17.12.2008, 16:37

Ваши права

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