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

Тема: как воспользоваться RISING_EDGE?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #17
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    т.е. обращение к t.Q для проверки его состояния не является обращением к самому таймеру?
    Лучше, конечно, говорить о вызове, а не об обращении. «Обновлять» (а правильнее — присваивать значение) обязательно только с переменными типа VAR_IN_OUT. На примере с таймером можно один раз сделать timer(IN := TRUE, PT := T#3s), а дальше просто timer(); или даже timer; (за такое я хочу убивать), чтобы таймер работал. Однако timer.Q уже не будет вызовом ФБ таймера, это обращение к переменной ФБ без вызова.
    Код:
    VAR_GLOBAL
    	f: BOOL := FALSE;
    	t: Standard.TON;
    END_VAR
    
    t(IN:=f, PT:=T#2S);
    
    IF (t.Q) THEN
    	f := FALSE;
    ELSE
    	f := TRUE;
    END_IF
    Отвыкаем писать бессмысленный код. Всё сводится к t(IN := NOT t.Q, PT := T#2s). Самосброс называется. Идиома.
    Последний раз редактировалось Yegor; 21.11.2014 в 14:19.

Похожие темы

  1. Хочется как лучше,не получилось бы как всегда
    от Алекс2013 в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 07.10.2014, 20:31
  2. Подскажите - Каким прибором лучше воспользоваться..
    от Nikita13 в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 21.11.2012, 20:05

Ваши права

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