Показано с 1 по 6 из 6

Тема: Повторение по таймеру

  1. #1

    По умолчанию Повторение по таймеру

    Добрый день, помогите новичку разобраться!

    Есть условие IF AVT1=TRUE AND P1>=8.05 AND P1<=8.09 THEN taskv1:= ( tas - (tas*2/100) ); END_IF;
    Как сделать, чтобы оно повторялось и проверялось по циклу через определенное время?

    я попробывал использовать таймер :

    IF P1>=8.05 AND P1<=8.09 THEN F:=TRUE; ELSE F:=FALSE; END_IF;

    IF F=TRUE THEN TON_1:=TRUE; END_IF;
    TON(IN:=TON_1 , PT:= T#30s, Q=>VarBOOL , ET=> );
    IF VarBOOL THEN taskv1:= ( taskv1 - (taskv1*2/100) ) ; F1:=TRUE; END_IF;
    IF F1=TRUE THEN TON.IN:=TON_1:=FALSE ; END_IF;

    как сделать чтобы это работало по циклу?у меня не получается перезапустить таймер, срабатывает только 1 раз(
    Последний раз редактировалось Mettall; 23.12.2016 в 16:23.

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

    По умолчанию

    Обратите внимание, у Вас таймер никогда не сбрасывается, поэтому срабатывает всего 1 раз.

    TON1(IN:=NOT TON1.Q , PT:=t#30s ); (*генератор импульсов раз в 30 секунд*)
    IF TON1.Q THEN
    (*делаем что нужно*);
    END_IF

  3. #3

    По умолчанию

    IF F1=TRUE THEN TON.IN:=TON_1:=FALSE ; END_IF - этой строкой вроде как я перевожу вход TON в FALSE! тем самым сбрасываю его или я это не так делаю! необходимо как написал "amn " ??

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

    По умолчанию

    делайте как все и не изобретайте велосипед где не нужно
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Чет я совсем запутался!в генераторе импульса я разобрался спс, но мне необходимо немного другое.
    Как только переменная P1 - зайдет в диапазон P1>=8.05 AND P1<=8.09 вкл таймер (время таймера) если P1 выйдет за этот диапазон, а таймер еще вкл то обнулить таймер. Если P1 не выйдет за диапазон то выполнить условие taskv1:= ( taskv1 - (taskv1*2/100) ) и запустить таймер заново!

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

    По умолчанию

    Mettall, добавьте на вход таймера диапазон, в котором он будет срабатывать:

    TON1(IN:=NOT TON1.Q AND P1>=8.05 AND P1<=8.09 , PT:=t#30s );

Похожие темы

  1. Вопрос по таймеру
    от evgeni293 в разделе СПК2хх
    Ответов: 4
    Последнее сообщение: 11.11.2016, 12:20
  2. Циклическое повторение операции
    от ДаниилСПб в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 06.05.2014, 14:57
  3. Ответов: 3
    Последнее сообщение: 23.10.2013, 20:14
  4. повторение функции Fbd
    от Olk_74 в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 03.11.2010, 12:01
  5. Работа по таймеру
    от Юрий(!) в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 11.02.2008, 15:03

Ваши права

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