Показано с 1 по 10 из 4973

Тема: Области применения ПР110(примеры реализации)

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для KRAFT8
    Регистрация
    12.08.2013
    Адрес
    Чита, Забайкальский край
    Сообщений
    4

    По умолчанию

    Доброго времени! Хочу поделиться своим вариантом решения задачки про несколько насосов переключающихся с периодичностью в несколько суток. Для себя я определил ТЗ по которому необходим алгоритм для периодического включения и отключения определённого количества каналов управления. При этом минимальное количество каналов = 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.
    Вложения Вложения

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •