Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

Подсчет времени наработки двигателей в 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 получается наработка в часах


Вернуться в «Общие вопросы»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей