Цитата:
Сообщение от LordN
со входами разобрался.
наведите на мысль, как попроще и корректно в тот макрос добавить недостающего функционала
1. безусловную ротацию по времени. т.е. если один вход отработал время большее, чем установленное и, если есть возможность его отключить, то он отключается и включается следующий, для которого выполняется условие включения.
2. время задержки включения ступени,
3. время задержки выключения ступени,
4. минимальное время включения ступени. т.е. ступень не отключается по входу U пока не отработает минимальное время.
|
1) В нужное время подавать на U значение (U-1) на несколько ТИКов, это вызовет отключение самой долго работавшей ступени. Если нужно тормознуть какую-либо ступень внепланово - снимите с неё сигнал исправности на несколько ТИКов. Несколько ТИКов - это численно не менее количества ступеней на входе NUM.
2) 3) Вход ПАУЗА задаёт максимально возможную скорость включения и отключения ступеней, в ТИКах.
4) t1..t15 - входы задания для внутренних счётчиков таймаутов. Для каждой ступени используется отдельный счётчик. Значения на этих входах определяют максимальную частоту переключения ступеней. Единицы измерения - тики системы. Логика такова: после включения ступени значение с соответствующего входа загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть выключена. После выключения ступени значение с соответствующего входа опять загружается в счётчик и пока счётчик не досчитает до нуля, ступень не может быть включена.