Показать сообщение отдельно
Старый 06.04.2017, 12:11   #45
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 175
Благодарил(а): 15 раз(а)
Поблагодарили: 665 раз(а) в 607 сообщениях
По умолчанию Ответ: Увлаженение/осушение

Цитата:
Сообщение от LordN Посмотреть сообщение
со входами разобрался.
наведите на мысль, как попроще и корректно в тот макрос добавить недостающего функционала

1. безусловную ротацию по времени. т.е. если один вход отработал время большее, чем установленное и, если есть возможность его отключить, то он отключается и включается следующий, для которого выполняется условие включения.
2. время задержки включения ступени,
3. время задержки выключения ступени,
4. минимальное время включения ступени. т.е. ступень не отключается по входу U пока не отработает минимальное время.
1) В нужное время подавать на U значение (U-1) на несколько ТИКов, это вызовет отключение самой долго работавшей ступени. Если нужно тормознуть какую-либо ступень внепланово - снимите с неё сигнал исправности на несколько ТИКов. Несколько ТИКов - это численно не менее количества ступеней на входе NUM.

2) 3) Вход ПАУЗА задаёт максимально возможную скорость включения и отключения ступеней, в ТИКах.

4) t1..t15 - входы задания для внутренних счётчиков таймаутов. Для каждой ступени используется отдельный счётчик. Значения на этих входах определяют максимальную частоту переключения ступеней. Единицы измерения - тики системы. Логика такова: после включения ступени значение с соответствующего входа загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть выключена. После выключения ступени значение с соответствующего входа опять загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть включена.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием