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

Тема: Описание TON

  1. #1

    По умолчанию Описание TON

    Здравствуйте, не нашел описания таймера с задержкой включения, а именно описание его выхода на языке ST.
    что написать дальше нужно, чтоб привязать выход таймера к дискретному выходу контроллера?

    Пишу программу:
    IF ai17<0.8 THEN tmp:=1;
    ELSE tmp:=0;
    END_IF;
    TONInst (IN:=tmp, PT:=T#30s);

  2. #2

    По умолчанию

    TONInst (IN:= ai17<0.8, PT:=T#30s);
    Out:= TONInst.Q;

  3. #3
    Пользователь
    Регистрация
    12.07.2007
    Адрес
    Воронеж
    Сообщений
    882

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    ну или
    TONInst (IN:= ai17<0.8, PT:=T#30s, Q=>Out);

    а т.к. время - константа, в объяве
    TONInst : TON := (PT:=T#30s);
    в коде
    TONInst (IN:= ai17<0.8, Q=>Out);
    А потом в коде нашел таймер:
    Агаааа, а гдеж ему время то задають, пойду поищу

  4. #4

    По умолчанию

    Написал 2 таймера, которые сбрасывают 1 дискретный выход на контроллере:
    VAR
    AVAR_TOF: TP;
    AVAR_TOF_2:TP;

    IF bitmodul1.4=1
    OR bitmodul1.5=1
    THEN AVAR_TOF (IN:=bitmodul1.4, PT:= T#15s);AVAR_TOF_2 (IN:=bitmodul1.5, PT:= T#5s);
    golout5_12.1:= AVAR_TOF.Q OR AVAR_TOF_2.Q;
    ELSE golout5_12.1:=1;
    END_IF;

    При этом работает так: Приходит сигнал bitmodul1.4 = 1, таймер ведёт обратный отсчет и сбрасывает выход golout5_12.1
    далее bitmodul1.4 стал равным 0, и при следующем разе когда bitmodul1.4 = 1 таймер ничего не отсчитывает и сразу сбрасывает выход golout5_12.1
    Со вторым таймером та же история, в чём причина?

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,825

    По умолчанию

    Цитата Сообщение от Stas Посмотреть сообщение
    Написал 2 таймера, которые сбрасывают 1 дискретный выход на контроллере:
    VAR
    AVAR_TOF: TP;
    AVAR_TOF_2:TP;

    IF bitmodul1.4=1
    OR bitmodul1.5=1
    THEN AVAR_TOF (IN:=bitmodul1.4, PT:= T#15s);AVAR_TOF_2 (IN:=bitmodul1.5, PT:= T#5s);
    golout5_12.1:= AVAR_TOF.Q OR AVAR_TOF_2.Q;
    ELSE golout5_12.1:=1;
    END_IF;

    При этом работает так: Приходит сигнал bitmodul1.4 = 1, таймер ведёт обратный отсчет и сбрасывает выход golout5_12.1
    далее bitmodul1.4 стал равным 0, и при следующем разе когда bitmodul1.4 = 1 таймер ничего не отсчитывает и сразу сбрасывает выход golout5_12.1
    Со вторым таймером та же история, в чём причина?
    ....
    ELSE golout5_12.1:=1; AVAR_TOF (IN:=FALSE);AVAR_TOF_2 (IN:=FALSE);
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6

    По умолчанию

    Примерно так выглядит код блока TON для Мастерскада 4D
    photo1625411936.jpeg
    +79104444236
    С уважением,
    Лапшин Вячеслав

  7. #7
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Цитата Сообщение от Stas Посмотреть сообщение
    Написал 2 таймера, которые сбрасывают 1 дискретный выход на контроллере:
    VAR
    AVAR_TOF: TP;
    AVAR_TOF_2:TP;

    IF bitmodul1.4=1
    OR bitmodul1.5=1
    THEN AVAR_TOF (IN:=bitmodul1.4, PT:= T#15s);AVAR_TOF_2 (IN:=bitmodul1.5, PT:= T#5s);
    golout5_12.1:= AVAR_TOF.Q OR AVAR_TOF_2.Q;
    ELSE golout5_12.1:=1;
    END_IF;

    При этом работает так: Приходит сигнал bitmodul1.4 = 1, таймер ведёт обратный отсчет и сбрасывает выход golout5_12.1
    далее bitmodul1.4 стал равным 0, и при следующем разе когда bitmodul1.4 = 1 таймер ничего не отсчитывает и сразу сбрасывает выход golout5_12.1
    Со вторым таймером та же история, в чём причина?
    Никогда и ни при каких условиях не объявляйте функциональный блок внутри конструкции типа IF...Then, ибо это говнокод, это первое.
    Второе - какой нахрен обратный отсчет? У вас таймер импульса TP, посмотрите в справке как он работает.
    Третье- сама причина, почему нельзя делать первое: как только условия пропали, экземпляр вашего ФБ TP замер в коматозе, а при следующем появлении условий по IF радостно воскрес!
    И в четвертых- что это за индокод, т.е вариант решения задачи наиболее неочевидным хитровывернутым способом? https://owen.ru/forum/showthread.php...l=1#post361959
    Последний раз редактировалось Sergey666; 12.08.2021 в 17:33.

Похожие темы

  1. Fast encoders описание
    от Papagun78 в разделе Помощь Разработчикам
    Ответов: 12
    Последнее сообщение: 08.11.2017, 11:13
  2. Описание МЭК-61131-3
    от @ND в разделе СПК1хх
    Ответов: 6
    Последнее сообщение: 07.08.2015, 09:40
  3. Описание Oscat
    от жекон в разделе Трёп (Курилка)
    Ответов: 4
    Последнее сообщение: 30.03.2015, 16:25
  4. Описание интерфейса
    от ASo в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 02.10.2012, 10:47
  5. описание протокола
    от svavan в разделе Сервисное ПО
    Ответов: 6
    Последнее сообщение: 19.11.2008, 10:07

Ваши права

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