Перейти к содержимому

Ton codesys как работает

  • автор:

Тема: TON в St

wecand0it вне форума

UnhappyTON в St

не понимаю , как правильно сделать таймер TON
вычитал нечто подобное
IN:=Bool;
PT:=Time;
TONInst(IN := VarBOOL1, PT:= T#5s);

Как правильно написать ?(

12.06.2015, 23:59 #2

_Mikhail вне форума

Пользователь Регистрация 25.07.2013 Адрес Ярославль Сообщений 510

По умолчанию

Ты что хочешь? создать свой вариант блока TON, или не знаешь как использовать его в ST

13.06.2015, 09:40 #3

wecand0it вне форума

Пользователь Регистрация 12.06.2015 Сообщений 8

По умолчанию

Не знаю как правильно его использовать .

13.06.2015, 13:27 #4

Игорюня на форуме

Пользователь Регистрация 16.04.2012 Адрес Тимашевск, Краснодарский край Сообщений 325

По умолчанию

ЦитатаСообщение от wecand0it Посмотреть сообщение

Не знаю как правильно его использовать .

var
tm: TON;
end_var

tm(IN := TRUE, PT := T#5s);
IF tm.Q then
.
END_IF;

Вместо TRUE используй любую переменную типа BOOL.

13.06.2015, 14:38 #5

wecand0it вне форума

Пользователь Регистрация 12.06.2015 Сообщений 8

По умолчанию

Спасибо Большое за разъяснение!

13.06.2015, 14:43 #6

wecand0it вне форума

Пользователь Регистрация 12.06.2015 Сообщений 8

По умолчанию

Еще один нубский вопрос , ругается на тип TON;
что можно сделать ?

13.06.2015, 14:55 #7

Yegor вне форума

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

По умолчанию

Для начала сказать как именно ругается.

13.06.2015, 15:09 #8

wecand0it вне форума

Пользователь Регистрация 12.06.2015 Сообщений 8

По умолчанию

Ошибка 3740: PLC_PRG : Неизвестный тип ‘TON’

13.06.2015, 15:11 #9

Yegor вне форума

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

По умолчанию

Добавить библиотеку Standard.lib в проект.

26.12.2016, 22:49 #10

yadro вне форума

Пользователь Регистрация 24.12.2015 Сообщений 1

По умолчанию

Глючит таймер. Вроде делаю все ок, ставлю таймер, ставлю время, но когда in становится true, прогресс не идет, переменная et стоит, но иногда проскакивает пара ms. Создание таймера происходит один раз, не в цикле.

Последний раз редактировалось yadro; 26.12.2016 в 22:56 .

  • Навигация
  • Кабинет
  • Личные сообщения
  • Подписки
  • Кто на сайте
  • Поиск по форуму
  • Главная страница форума
  • Форум
  • НОВИНКИ ОВЕН
    1. В продаже
    2. В разработке
  • Оборудование
    1. Подбор Оборудования
    2. Эксплуатация
    3. Разработки
  • Программируемые устройства ОВЕН
    1. ПЛК (среда CODESYS V3.5)
      1. ПЛК2хх
      2. СПК1хх [М01]
      3. СПК1хх
      4. СПК2хх
      5. ПЛК3хх
      6. Библиотеки CODESYS
    2. ПЛК (среда CoDeSys V2.3)
      1. ПЛК1хх [М02]
      2. ПЛК1хх
      3. ПЛК63/73
    3. ПЛК (среда MasterSCADA 4D)
    4. Программируемые реле
    5. Модули ввода/вывода
      1. Мх110
      2. Мх210
    6. Панели оператора (HMI)
    7. Среда программирования OWEN Logic
    8. Архив продукции
      1. Модульные контроллеры Модус
        1. Модус 5684-0
        2. Модус 5680
        3. Модули ввода-вывода
        4. Интерфейсные модули
  • Датчики ОВЕН
    1. Новинки
    2. В помощь инженеру
    3. Подбор датчиков
    4. Вопросы по эксплуатации датчиков
  • Программное обеспечение
    1. Облачный сервис OwenCloud
      1. Облачный сервис OwenCloud
      2. ПМ210
      3. ПЕ210
      4. ПВ210
    2. SCADA
      1. OWEN Proces Manager
      2. Master SCADA 3
      3. Master SCADA 4D
      4. Другие SCADA системы
    3. Телемеханика ЛАЙТ
    4. Сервисное ПО
    5. Помощь Разработчикам
    6. Сетевые технологии
    7. OPC Серверы
  • Электротехническое оборудование MEYERTEC
  • Приводная техника
    1. Приводная техника ОВЕН
    2. Блоки питания
  • Контроллеры для ЖКХ
    1. Контроллеры для систем отопления и ГВС
    2. Контроллеры для систем вентиляции и кондиционирования
    3. Контроллеры для управления насосами
  • Разное
    1. Трёп (Курилка)
    2. Метрология сертификация
    3. Сервисное обслуживание приборов ОВЕН
    4. Наши проекты
    5. Твердотельное реле
    6. В помощь специалистам

« Предыдущая тема | Следующая тема »

Похожие темы
Непонятки с TON

от olegsv в разделе ПЛК1хх
Последнее сообщение: 08.06.2011, 19:27

TON

от ward в разделе ПЛК1хх
Ответов: 10
Последнее сообщение: 15.04.2011, 16:25

Прикол с TP, TON и TOF

от Горшунов Сергей в разделе ПЛК1хх
Ответов: 19
Последнее сообщение: 08.07.2009, 14:08

Ton не сбрасывается!

от kanava в разделе ПЛК1хх
Последнее сообщение: 02.10.2008, 23:08

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

Ton codesys как работает

Таймер TON.

Таймеры являются счетчиками, которые отсчитывают интервалы времени. Разрешающая способность (или квант времени) таймера определяет промежуток времени на один интервал.

1. актуальное значение. Выход ET : 32 битовая величина : MD, ID, QD, LD. Актуальное значение может быть использовано в многобитовых операциях.

2. предустановленная задержка PT: 32 битовая величина : операнд в формате MD, ID, QD, LD ( или константа в формате времени T#2h_10m_4s_200ms) ;

3. Q – выход (BOOL). Бит таймера включается при условии, что актуальное значение больше или равно предустановленному . Можно продолжать программу в цепи ENO таймера .

Рис. 1. Диаграмма таймера TON .

Выключение таймера TON происходит по заднему фронту входного сигнала. При этом актуальное значение обнуляется, а бит выключается.

Рис. 2. Пример программы таймера.

Таймер TOF .

Выход включается по переднему фронту входного сигнала.

Отсчет времени начинается по заднему фронту входного сигнала.

Рис. 3 . Диаграмма таймера TOF .

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

Видео 31. TON на ST в Owen Logic

В Owen Logic версии 2.4 добавлены функциональные блоки на текстовом языке ST.

В этом видео разберем, как реализовать TON – таймер с задержкой включения на текстовом языке ST.

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

Owen Logic – среда программирования для создания алгоритмов работы программируемых реле ОВЕН. Алгоритм создается на графическом языке FBD с поддержкой функций и функциональных блоков на ST.

Форум АСУТП

здесь недавно

xOleggelOx здесь недавно
Сообщения: 7 Зарегистрирован: 13 окт 2021, 11:17 Имя: Олег

Таймер с пузой

Сообщение xOleggelOx » 21 окт 2021, 15:08

Добрый день, есть ли у кого-нибудь готовый функциональный блок для EcoStructure Machine Expert HVAC 1.3
Блок на основе TON, только с дополнительным дискретным входом (пауза).
Если на первый вход приходит сигнал (логическая 1), таймер начинает отсчет, если он не успел досчитать до времени уставки и на второй вход приходит сигнал (логическая 1), то таймер встает на паузу, после пропадания сигнала со второго входа таймер продолжает счет с того времени на котором он остановился?

xOleggelOx

здесь недавно

vadymosadchuk здесь недавно
Сообщения: 4 Зарегистрирован: 07 май 2020, 11:37 Имя: Осадчук Вадим Страна: Украина город/регион: Винница

Таймер с пузой

Сообщение vadymosadchuk » 21 окт 2021, 17:19

Есть ФБ написаний на ST в Codesys.
Не знаю можно ли так написать в HVAC.

FUNCTION_BLOCK TON_P
VAR_INPUT
IN : BOOL; //Control Input
PT : TIME; //Upper limit for counting up ET (delay time).
PAUSE : BOOL; //Pause
END_VAR
VAR_OUTPUT
Q : BOOL; //Gets a rising edge as soon as ET has reached the upper LIMIT PV (delay TIME is over).
ET_CNTDWN : TIME; //Current state of delay time
END_VAR
VAR
TON_main : TON;
TON_pause : TON;
PT_main : TIME;
ET_main : TIME;
R_trig_IN : R_TRIG;
ET_Pause : TIME;
PT_lastCycle : TIME;
END_VAR

R_trig_IN(clk := IN);
IF R_trig_IN.Q OR PT_lastCycle <> PT THEN PT_main := PT; END_IF
IF pause AND IN THEN PT_main := PT + TON_pause.et; ELSE PT_main := PT_main; END_IF

ET_CNTDWN := PT_main — TON_main.ET;

TON_main(IN:= IN, PT := PT_main, Q=> Q, ET => ET_main);

TON_pause(in := pause AND IN, pt := T#999H);

IF NOT IN THEN pause := FALSE; ET_CNTDWN := PT; END_IF
PT_lastCycle := PT;

vadymosadchuk

Автор темы

здесь недавно

xOleggelOx здесь недавно
Сообщения: 7 Зарегистрирован: 13 окт 2021, 11:17 Имя: Олег

Таймер с пузой

Сообщение xOleggelOx » 21 окт 2021, 17:50

Нашел еще такой код в интернетах
FUNCTION_BLOCK TON_P
VAR_INPUT
IN: BOOL; (*Старт*)
P: BOOL; (*Пауза*)
PT: TIME; (*Уставка времени*)
END_VAR
VAR_OUTPUT
Q: BOOL;
ET: TIME; (*Время работы таймера*)
END_VAR
VAR
clk: BOOL;
StartTime: TIME;
tx: TIME;
END_VAR

x:= TIME();
IF P THEN
StartTime:= tx — ET;
END_IF
IF IN AND NOT clk THEN
StartTime:= tx;
clk:= TRUE;
ELSIF NOT IN THEN
clk:= FALSE;
Q:= FALSE;
ET:= t#0s;
END_IF
IF clk AND NOT Q THEN
ET:= MIN(PT, tx — StartTime);
Q:= ET = PT AND IN;
END_IF

Только не знаю как его корректно под Schnider переделать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *