На форуме обязательно:
  1. Заполнить свой профиль на Русском языке. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.
Рекламу на своём форуме мы не размещаем ни на каких условиях.

Подсчет времени наработки двигателей в Codesys 2.х

Обсуждение вопросов, не относящихся ни к одному из других подразделов

Автор темы
fotonboxx
новенький
новенький
Сообщения: 2
Зарегистрирован: 24 фев 2014, 21:24
Имя: Сергей Владимирович Эдельшетйн

Подсчет времени наработки двигателей в Codesys 2.х

Сообщение fotonboxx » 26 авг 2014, 22:41

Добрый вечер!

Делаю шкаф управления насосами, в шкафу их два, нужно реализовать автоматическое переключение по времени наработки.

Хотелось бы сделать так - некий функциональный блок каждую минуту работы насоса инкрементирует глобальную переменную, по достижении уставки дается команда на смену насосов.

Вопрос в следующем - если я такой ФБ добавлю в основной поток, то и цикл у меня будет длиться минуту, что неприемлемо.

Как это сделать через tasks или events (но при этом передать событие в основной поток, чтобы не дублировать логику)?

Заранее спасибо.


service
здесь недавно
здесь недавно
Сообщения: 53
Зарегистрирован: 02 ноя 2012, 13:52
Имя: Сергей

Re: Подсчет времени наработки двигателей в Codesys 2.х

Сообщение service » 27 авг 2014, 09:57

tm1(PT := T#60s, IN := NOT tm1.Q);

T1_WORK := T1_WORK + BOOL_TO_DWORD(tm1.Q AND T1_Q);

tm1: TON - общий циклический таймер для всех устройств.
T1_Q: BOOL - выход плк, запускающий устройство.
T1_WORK: DWORD - наработка в минутах - retain
В скаде делитcя на 60 получается наработка в часах