Доброго времени!
Если тема ещё актуальна, то позволю себе предложить вам и всем присутствующим такой вариант (без триггеров):
2018-03-24_23-32-11.png
И тут же следующий вариант с возможностью наращивания количества выходных каналов (тоже без триггеров):
Безымянный.png
Доброго времени! Хочу поделиться своим вариантом решения задачки про несколько насосов переключающихся с периодичностью в несколько суток. Для себя я определил ТЗ по которому необходим алгоритм для периодического включения и отключения определённого количества каналов управления. При этом минимальное количество каналов = 2, а максимальное = 32. Так же необходимо определить количество одновременно включенных каналов участвующих в ротации из диапазона от 1 до общего числа каналов. Должна иметься возможность менять количество одновременно включенных каналов из программы по результатам выполнения алгоритма. При возникновении ошибки в работе одного или нескольких каналов должен быть сформирован регистр ошибок каждый бит которого, начиная от младшего, соответствует наличию или отсутствию ошибки в каждом конкретном канале, начиная от первого, где 1 – ошибка, 0 – отсутствие ошибки. Формирование регистра ошибок я не буду описывать.
В результате у меня получился макрос Npump
2018-03-25_18-40-43.png
CL – вход для подключения генератора тактовых импульсов, фронт каждого импульса производит ротацию выбранных каналов. Если необходимо переключение насосов раз в 24 часа, то и период генерируемых импульсов должен быть равен 24 часам.
ER – вход для битовой последовательности регистра ошибок. Например, если присутствуют ошибки в работе второго и четвёртого канала, то регистр ошибок равен 10 (b#00001010)/
Nc – вход общего числа используемых каналов. Это число целесообразно задавать константой.
IN – вход для учёта внутри макроса уже используемых и «ошибочных» каналов. На этот вход ничего подавать не нужно.
N – вход для вычисления макросом собственного порядкового номера. На этот вход также ничего подавать не нужно.
Np – вход определяющий количество одновременно включенных каналов изменяемое из алгоритма.
Выходы макроса по числу, расположению и назначению соответствуют входам, но не всегда повторяют их. Это сделано для каскадного соединения макросов.
2018-03-25_18-44-19.png
Количество каскадов при таком соединении соответствует максимальному количеству одновременно включенных каналов при ротации. Из алгоритма можно менять это число, но только в сторону уменьшения.
2018-03-25_18-34-54.png
Вот небольшой пример использования четырёх каскадов макроса Npump внутри другого макроса.
После запуска симулятора установите на вход (I7) число 2 (два одновременно включенных канала при ротации). На вход (I2) нужно будет подать количество суток равное периоду переключения. Для симуляции лучше оставить этот вход в нуле, тогда период будет приблизительно равен 1 секунде, что гораздо удобнее для наглядности. Для запуска схемы надо вход (I1) перевести в 1.
Добрый день! Искал! Не нашел! Будильник на ПР110, задание времени срабатывания с ИП320! Возможно такое?
Последний раз редактировалось Сергей0308; 31.10.2018 в 20:29.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Нашел макрос! Разобрался! Спасибо!
Макрос психрометра
Последний раз редактировалось rovki; 08.12.2018 в 09:48.
электронщик до мозга костей и не только
Забавно. Теперь можно и справку из психдиспансера самому напечатать? Психиатры становятся не нужны?