Перейти до публікації
Пошук в
  • Додатково...
Шукати результати, які містять...
Шукати результати в...

Модуль управления (8+1 входов, 8 выходов) с управлением

InSAn

Рекомендовані повідомлення

Хвастаюсь :)

 

- 9 цифровых входов "сухой контакт" (кнопка)

- 8 релейных выходов (6A 250VAC; 6A 30VDC)

- гальваническая развязка по питанию

- гальваническая развязка RS-485

- малые габариты (4 модуля на дин-рейку)

- встроенный датчик температуры

- сохранение состояния выходов при отключении и последующем включении питания

- Modbus RTU (RS-485)

- питание 24В (DC)

- низкое потребление в "режиме покоя" (выключенные выходы) - около 140мА (при подключенном RS-485; без - до 40мА); в активном режиме (включены все входы) - до 350мА

- одновременно подключенные к RS-485 - до 16 устройств; без подключения - неограниченно.

 

attachment.php?attachmentid=635793&stc=1&d=1539628369

 

 

Предусмотрено возможность программирования каждого из 9 входов по протоколу Modbus RTU (RS-485).

По умолчанию - кратковременное замыкание (импульс) одного из 8 входов изменяет состояние соответствующего выхода (с сохранением состояния на случай отключения питания).

Импульс на 9 вход - изменение состояния всех 8 выходов на противоположное (по-умолчанию) либо первый импульс - "выключить все", второй - включить заранее заданные выходы (настраивается с помощью Modbus), либо любой другой вариант. :)

 

Таким образом в 4-х модульном исполнении получаем устройство, которое можно использовать для управления 8 точками освещения с функцией центрального выключателя.

 

Подключение RS-485 требуется только при предварительной настройке модуля по протоколу Modbus RTU и в процессе эксплуатации не требуется (но можно возможно управлять выходами и в процессе работы, задавая "реакции" на различные события).

 

Несколько примеров возможности применения:

1. Нажатие "главную" кнопку при выходе из дома выключает все освещение (7 точек) и включает одно "дежурное".

Повторное нажатие - выключает только "дежурное".

 

2. Нажатие на "главную" - выключает 4 точек внутри дома, включает 2 точки снаружи и 1 "дежурное".

Повторное нажатие - включает 1 точку внутри, выключает 2 снаружи. "Дежурное" состояние не меняет.

 

Вариантов предварительного программирования - великое множество и установщик сможет с помощью ноутбука и переходника (USB - RS-485) настроить любую реакцию на нажатие кнопок.

 

Была мысль еще задать реакцию на двойное нажатие (которое будет отличаться от одинарного) - но применения этому еще не придумал :)

 

PS: Это пока прототип, устройство на тесты пока не дается.

 

PPS: Вопросы, предложения и критика приветствуются :)

4m9di8ro_1.jpg.ef72250a8d976f122535837f35299fb8.jpg

  • Лайк 10
Посилання на коментар
Поділитися на інших сайтах

140мА это слишком много. Должно быть миллиампер 20-30

 

140мА - при работающем RS-485.

Без - до 40мА

 

Добавлено через 1 минуту

PS: Это расчетные значения (по максимуму). В реальности пока не замерял :)

Посилання на коментар
Поділитися на інших сайтах

Отслеживаются ли события Кнопка нажата, кнопка отпущена, кнопка была нажата и отпущена, или отпущена а потом нажата ?

 

 

Есть ли возможность задавать параметры (расписание, длительность и/или количество нажатий) ?

 

 

Для каждой кнопки настраивается своя программа ?

Реле "сквозные" для каждой из кнопок, т.е. можно ли управлять реле N1, кнопкой N5 ?

Посилання на коментар
Поділитися на інших сайтах

Отслеживаются ли события Кнопка нажата, кнопка отпущена, кнопка была нажата и отпущена, или отпущена а потом нажата ?
Такой функционал можно предусмотреть - это реализуется программированием встроенного контроллера. Какая цель этих отслеживаний?

 

 

Есть ли возможность задавать параметры (расписание, длительность и/или количество нажатий) ?

Пока не планируется. Теоретически - возможно. Но практически - я пока не знаю, где это может применяться.

 

 

Для каждой кнопки настраивается своя программа ?
Да.

 

Реле "сквозные" для каждой из кнопок, т.е. можно ли управлять реле N1, кнопкой N5 ?

Сначала была такая идея, но потом решил отказаться - высокий шанс запутаться установщику. Да и практической необходимости я не увидел. Может, плохо смотрел? :)

Посилання на коментар
Поділитися на інших сайтах

Я для своих задач определил следующий набор функций с параметрами в похожем аппарате:

  • Задержка включения после подачи питания. После подачи питания, через интервал времени, задаваемый в Int1, контакты реле замкнуться, и останутся замкнутыми в течении интервала задаваемого параметром Duration, либо до пропадания питания.
  • Задержкавыключения после подачи питания. После подачи питания, контакты реле замкнуться сразу на интервал времени, задаваемыйв Int1, и разомкнуться либо по истечению Int1, либо поистечению интервала задаваемого параметром Duration, либо припропадании питания.
  • Задержкавыключения после подачи питания, прерываемая изменением состояния контактовуправляющего входа. Послеподачи питания, контакты реле замкнуться сразу на интервал времени, задаваемыйв Int1, и разомкнуться либо по истечению Int1, либо поистечению интервала задаваемого параметром Duration, либо поизменению состояния управляющих контактов, либо при пропадании питания.
  • Задержка включения после подачи питания,прерываемая изменением состояния управляющих контактов. После подачи питания,через интервал времени, задаваемый в Int1, контакты реле замкнуться, и останутся замкнутыми в течении интервалазадаваемого параметром Duration, либо до изменения состояния управляющихконтактов, либо до пропадания питания.
  • Разомкнутьконтакты реле на интервал времени,задаваемый в Int1, после изменениясостояния управляющих контактов. Контакты реле разомкнуться, и останутсяразомкнутыми в течении интервала задаваемого параметром Duration, либо до пропадания питания.
  • Замкнутьконтакты реле на интервал времени,задаваемый в Int1, после изменениясостояния управляющих контактов. Контакты реле замкнуться, и останутсязамкнутыми в течении интервала задаваемого параметром Duration, либо до пропадания питания.
  • Асимметричныйциклеватель, начинающийся с паузы. Послеподачи питания, контакты реле будут разомкнуты на интервал времени задаваемый Int1, поистечению интервала замкнуться на интервал времени задаваемый Int2. Затемцикл повториться снова. Программа прервется либо по истечению интервала,задаваемого параметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с подачи питания. После подачи питания, контакты реле будут замкнуты на интервал временизадаваемый Int1, по истечению интервала разомкнуться на интервал временизадаваемый Int2. Затем цикл повториться снова. Программа прервется либо поистечению интервала, задаваемого параметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с паузы, прерываемый изменением состояния управляющихконтактов. После подачи питания,контакты реле будут разомкнуты на интервал времени задаваемый Int1, поистечению интервала замкнуться на интервал времени задаваемый Int2. Затемцикл повториться снова. Программа прервется либо по истечению интервала,задаваемого параметром Duration, либо поизменению состояния управлящих контактов, либо по пропаданию питания.
  • Асимметричныйциклеватель, начинающийся с подачи питания, прерываемый изменением состоянияуправляющих контактов. После подачипитания, контакты реле будут замкнуты на интервал времени задаваемый Int1, поистечению интервала разомкнуться на интервал времени задаваемый Int2. Затемцикл повториться снова. Программа прервется либо по истечению интервала,задаваемого параметром Duration, либо поизменению состояния управляющих контактов, либо по пропаданию питания.
  • Асимметричныйциклеватель, начинающийся с паузы, стартующий после изменением состоянияуправляющих контактов. После изменениясостояния управляющих контактов, контакты реле будут разомкнуты на интервалвремени задаваемый Int1, по истечению интервала замкнуться на интервал временизадаваемый Int2. Затем цикл повториться снова. Программа прервется либо поистечению интервала, задаваемого параметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с подачи питания, стартующий после изменениемсостояния управляющих контактов. Послеизменения состояния управляющих контактов, контакты реле будут замкнуты наинтервал времени задаваемый Int1, по истечению интервала разомкнуться на интервал временизадаваемый Int2. Затем цикл повториться снова. Программа прервется либо поистечению интервала, задаваемого параметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с паузы, стартующий и останавливающийся послеизменением состояния управляющих контактов. После изменения состояния управляющих контактов, контакты реле будутразомкнуты на интервал времени задаваемый Int1, по истечениюинтервала замкнуться на интервал времени задаваемый Int2. Затем циклповториться снова. Следующее изменение состояния управляющих контактовприостановит цикл. Программа прервется либо по истечению интервала, задаваемогопараметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с подачи питания, стартующий и останавливающийсяпосле изменением состояния управляющих контактов. После изменения состояния управляющихконтактов, контакты реле будут замкнуты на интервал времени задаваемый Int1, поистечению интервала разомкнуться на интервал времени задаваемый Int2. Затемцикл повториться снова. Следующее изменение состояния управляющих контактовприостановит цикл. Программа прервется либо по истечению интервала, задаваемогопараметром Duration, либо попропаданию питания.
  • Асимметричныйциклеватель, начинающийся с паузы, стартующий и останавливающийся в случае еслиуправляющие контакты замкнуты или разомкнуты. После изменения состояния управляющих контактов, контакты реле будутразомкнуты на интервал времени задаваемый Int1, по истечениюинтервала замкнуться на интервал времени задаваемый Int2. Затем циклповториться снова. Замыкание/размыкание управляющих контактов приостановитцикл. Программа прервется либо по истечению интервала, задаваемого параметром Duration, либо по пропаданию питания.
  • Асимметричныйциклеватель, начинающийся с подачи питания, стартующий и останавливающийся вслучае если управляющие контакты замкнуты или разомкнуты. После изменения состояния управляющихконтактов, контакты реле будут замкнуты на интервал времени, задаваемый Int1, поистечению интервала разомкнуться на интервал времени задаваемый Int2. Затемцикл повториться снова. Замыкание/размыкание управляющих контактов приостановитцикл. Программа прервется либо по истечению интервала, задаваемого параметром Duration, либо по пропаданию питания.
  • Замыканиеконтактов реле через интервал времени, задаваемый Int1, на время,задаваемое параметром Int2. Контакты реле останутся замкнутыми до истеченияинтервала, задаваемого параметром Duration, либо попропаданию питания.
  • Замыкание контактов реле через интервалвремени, задаваемый Int1, на время, задаваемое параметром Int2.Последующее изменение состояния управляющих контактов разомкнет контакты реле.Контакты так же разомкнуться по истечению интервала времени задаваемый Int2. Циклическаяфункция.
  • Замыканиеконтактов реле после изменения состояния управляющих контактов на интервалвремени задаваемый Int1. Повторное изменение состояния управляющих контактов,увеличит время включения на интервал Int1. При изменениисостояния управляющих контактов на время Int2, контакты релеразомкнуться.
  • Импульсноереле. Изменение состояния управляющих контактов замкнет контакты реле,следующее разомкнет.
  • Выключитьвсе: При изменении состояния управляющих контактов, контакты реле на соотв.канале (1 или 2) будут замкнуты (на локальном таймере), и разомкнуты на всехтех, которые принимают команды от локального таймера (для каждого каналанастраивается отдельно). Все команды, которые будут поступать до моментаразмыкания контактов всеми таймерами группы, будут проигнорированы (контактыреле не изменят свое состояние). После окончания периода действия программы налокальном таймере, таймер сможет обрабатывать (замыкать контакты реле) события.Если команда “Выключить все” поступила с другого таймера, то локальный таймербудет ожидать команды отмены (размыкание контактов на любом из таймеров группы,которые выполняют программу 21). После размыкания управляющих контактов,контакты на реле локального таймера так же разомкнуться.
  • Контактыреле замкнуться на интервал времени, задаваемый Int2, после количества изменения состояния управляющих контактов,задаваемых параметром Int1.
  • Сдвиг импульсана интервал времени, задаваемый Int1. Если управляющие контакты изменили свое состояние запериод времени меньше чем Int1, контакты реле не будут замкнуты.
  • Сдвиг импульсана интервал времени, задаваемый Int1. Если управляющие контакты изменили свое состояние запериод времени меньше чем Int1, контакты реле не будут замкнуты. Циклическая функция.
  • Контактыреле замкнуться после изменения состояния управляющих контактов на время,задаваемое Int1, Если в течении интервала Int1 было повторноеизменение состояния управляющих контактов, время ожидания (контакты замкнуты)увеличится на Int1. После истечения Int1, если не было изменения состояния управляющихконтактов, контакты реле останутся замкнутыми на интервал времени Int2.
  • Контактыреле замкнуться после изменения состояния управляющих контактов на время,задаваемое Int1, Если в течении интервала Int1 было повторноеизменение состояния управляющих контактов, время ожидания (контакты замкнуты)увеличится на Int1. После истечения Int1, если не было изменения состояния управляющихконтактов, контакты реле останутся замкнутыми на интервал времени Int2. Циклическаяфункция
  • Задержкавыключения после изменения состояния управляющих контактов. Задержка задаетсяпараметром Int1.
  • Задержкавыключения после изменения состояния управляющих контактов. Задержка задаетсяпараметром Int1. Циклическая функция.
  • Включенослишком долго. Контакты реле будут разомкнуты на интервал времени, задаваемый Int2, если в течении интервала времени Int1, не былоизменения состояния управляющих контактов. Если изменение состояния управляющихконтактов было, отсчет времени начнется сначала.
  • Выключено слишком долго. Контакты реле будутзамкнуты на интервал времени, задаваемый Int2,если в течении интервала времени Int1, не было изменения состояния управляющихконтактов. Если изменение состояния управляющих контактов было, отсчет времениначнется сначала.

У меня правда схема немного иная, без 485/Modbus, но функции, я думаю, подойдут и для вашего устройства.

В вашем случае - "управляющие контакты" - это кнопка.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Изначально и у меня была идея сделать задержки включения/выключения, циклеватели и пр.

Но потом подумал - зачем усложнять устройство, если управлять реле можно с помощью RS-485 (Modbus)?

Логика проста - если нужно реализовать что-то "такое" - то управление ложится на центральный (внешний) PLC, который и будет реализовывать нужные сценарии.

Посилання на коментар
Поділитися на інших сайтах

Изначально и у меня была идея сделать задержки включения/выключения, циклеватели и пр.

Но потом подумал - зачем усложнять устройство, если управлять реле можно с помощью RS-485 (Modbus)?

Логика проста - если нужно реализовать что-то "такое" - то управление ложится на центральный (внешний) PLC, который и будет реализовывать нужные сценарии.

 

Я делал систему с радиоуправлением (мониторинг/конфигурирование/управление путем WiFi), соотв. без центрального узла. И для 2х реле (ну и 2х входов). Получилось 2 юнита на DIN рейке. Каждое из устройств общается с другими путем своего протокола,- с человеком - путем Web interface (IP). Если есть WiFi точка доступа, то устройства можно подключить к оной, и конфигурировать централизовано. Если нет - то каждое индивидуально, через встроенную точку доступа. Наличие точки доступа и интернета необязательно, будет работать и в "чистом поле" (в том числе друг с другом).

У вас несколько иной подход, все объединяется путем RS485, и есть центральный узел, который может управлять всеми устройствами, если я правильно понимаю. То есть фактически исполнительное устройство. Возможно имеет смысл вынести базовые "кубики" из которых строится логика работы в исполнительные устройства ? Автономность и отказоустойчивость ...

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

У вас несколько иной подход, все объединяется путем RS485, и есть центральный узел, который может управлять всеми устройствами, если я правильно понимаю.
Да, все верно.

Но при этом наличие центрального устройства не обязательно - оно нужно только в "сложных" схемах, где требуется построение зависимых сценариев.

 

То есть фактически исполнительное устройство.

Самодостаточное приемно-исполнительное устройство :)

 

Возможно имеет смысл вынести базовые "кубики" из которых строится логика работы в исполнительные устройства ? Автономность и отказоустойчивость ...

Именно такая и задумка. И обозреваемый модуль - как раз и есть таким "кубиком", который может работать как отдельно, так и в составе сложной системы.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Да, все верно.

Но при этом наличие центрального устройства не обязательно - оно нужно только в "сложных" схемах, где требуется построение зависимых сценариев.

 

 

Самодостаточное приемно-исполнительное устройство :)

 

 

Именно такая и задумка. И обозреваемый модуль - как раз и есть таким "кубиком", который может работать как отдельно, так и в составе сложной системы.

 

Может тогда имеет смысл добавить Raising/Falling + state time для входов ?

Первичную информацию о состоянии входов знает только сам кубик ...

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Может тогда имеет смысл добавить Raising/Falling + state time для входов ?

Первичную информацию о состоянии входов знает только сам кубик ...

 

Это, конечно, будет. Просто явно об этом не указывал :)

Посилання на коментар
Поділитися на інших сайтах

Это, конечно, будет. Просто явно об этом не указывал :)

 

InSAn - если не секрет,- на каком кристалле вы остановились ?

Или может даже на нескольких ?

Посилання на коментар
Поділитися на інших сайтах

:-)

RS485 средствами кристалла, или внешней обвеской ?

 

Средствами кристалла с внешней обвеской (MAX487) ESD-защитой и гальванической развязкой по питанию и по TTL.

 

attachment.php?attachmentid=635972&stc=1&d=1539763108

 

Вынесено на отдельную плату для универсальности - для возможности менять способ коммуникации с RS-485 на Ethernet или 1-Wire (или на что-то еще).

ttl-485.jpg.04394ccad47d4ba9f914a31d1e24a193.jpg

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Ага, понятно.

А что это за крутилка такая на плате ?

И кварца не видно :-)

 

one/two wire по идее можно прямо на io организовать, с участием 1-2х резисторов. Нет ?

Посилання на коментар
Поділитися на інших сайтах

А что это за крутилка такая на плате ?

HEX-переключатель для установки адреса (от 1 до 16).

 

И кварца не видно :-)
Обозначен как Q1 - черненький такой, между атмегой и двумя конденсаторами.
  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

HEX-переключатель для установки адреса (от 1 до 16).

 

Обозначен как Q1 - черненький такой, между атмегой и двумя конденсаторами.

 

Увидел. По модному у вас :-)

Имеется в виду до 16 контроллеров в одной группе ?

Мастер как-то выбирается, или реализовано программно ?

Посилання на коментар
Поділитися на інших сайтах

Увидел. По модному у вас :-)
Спасибо :)

 

Имеется в виду до 16 контроллеров в одной группе ?

Мастер как-то выбирается, или реализовано программно ?

До 16 слейвов.

Мастер - один, назначаемый (специфика Modbus).

 

Добавлено через 1 минуту

one/two wire по идее можно прямо на io организовать, с участием 1-2х резисторов. Нет ?

 

Теоретически можно. Но тогда защиты не будет никакой. Вообще :)

И малейшая статика убьет кристалл.

Посилання на коментар
Поділитися на інших сайтах

master назначается крутилкой, или программно ?

На счет статики,- таки да. Но задачу при разработки addons вы себе несколько усложнили.

 

Удалось протестировать, хотя бы на 3х контроллерах ?

Коллизии на шине разные, производительность ...

Я понимаю, что для управления с дискретностью в секунду наверное не сильно актуально, но все-таки.

 

С тестированием, я например поступил так:

 

У соседей вечная проблема - то включили тэн на летнем душе и забыли, то свет забыли выключить,или "козла" нужно было включать раз в сутки на час (+/-) зимой, то еще что-то.

Самолично установил им (совершенно забезплатно) контроллеры, упрограмил вусмерть, и собсно стал ждать отзывов и предложений. Так "родились" еще штук 5 разных программ, и ессно повылазили баги. На это время, я оставил возможность OTA (flash firmware over the air), и оперативненько так фиксил. Через приблизительно месяц активного использования, закрыл OTA, отдал все админство устройствами соседям (и их молодым родственникам), провел курс "молодого бойца", и изрядно поменял manual, который, как оказалось я писал для железячников-програмистов, а не для простых людей. Аппараты оставил соседям.

Заодно (уже для себя) посмотрел что будет когда всего 21 устройства "разговаривают" друг с другом.

 

Как-то так ...

Змінено користувачем toksoft
Посилання на коментар
Поділитися на інших сайтах

master назначается крутилкой, или программно ?
Программно.

 

На счет статики,- таки да. Но задачу при разработки addons вы себе несколько усложнили.
А я легких путей не ищу :)

 

Удалось протестировать, хотя бы на 3х контроллерах ?

Коллизии на шине разные, производительность ...

Да, все нормально. Больше чем за год работы трех подобных устройств (предыдущие версии) - ни одной коллизии: Modbus - очень надежный протокол. Слейвы отвечают только на запрос мастера, по своему желанию не вещают :)

 

Но в этом и есть свои издержки - отслеживать мастером Raising/Falling нет возможности. Только статус (on/off). Модуль, конечно, отслеживает и реакция на события программируется с мастера.

  • Лайк 1
Посилання на коментар
Поділитися на інших сайтах

Программно.

 

А я легких путей не ищу :)

 

 

Да, все нормально. Больше чем за год работы трех подобных устройств (предыдущие версии) - ни одной коллизии: Modbus - очень надежный протокол. Слейвы отвечают только на запрос мастера, по своему желанию не вещают :)

 

Но в этом и есть свои издержки - отслеживать мастером Raising/Falling нет возможности. Только статус (on/off). Модуль, конечно, отслеживает и реакция на события программируется с мастера.

 

Ага, знакомо. :-)

circular buffer на последние, скажем 20 событий ?

Периодический polling (ну или broadcast) от master ?

Посилання на коментар
Поділитися на інших сайтах

circular buffer на последние, скажем 20 событий ?

Периодический polling (ну или broadcast) от master ?

 

К моменту получения мастером Raising уже может быть Falling :)

 

Добавлено через 56 секунд

Периодический polling (ну или broadcast) от master ?

 

Modbus не поддерживает polling и broadcast. Иначе коллизий не избежать.

 

Добавлено через 5 минут

Вернее, broadcast поддерживает - но только для информирования мастером всех слейвов. Слейвы при этом должны не отвечать.

Посилання на коментар
Поділитися на інших сайтах

К моменту получения мастером Raising уже может быть Falling :)

 

Добавлено через 56 секунд

 

 

Modbus не поддерживает polling и broadcast. Иначе коллизий не избежать.

 

Добавлено через 5 минут

Вернее, broadcast поддерживает - но только для информирования мастером всех слейвов. Слейвы при этом должны не отвечать.

 

Может тогда master должен "собирать урожай" последовательно, со всех slaves ? Заодно и "ifalive" получится.

 

circular buffer или можно даже fifo (с фиксированным размером), это такой механизм, который держит последние N сообщений, которые может забрать клиент, и по мере появления тех, которые клиент "забрать не успел", выбрасывает по одному старые, и добавляет новые, сохраняя порядок поступления.

Посилання на коментар
Поділитися на інших сайтах

Створіть акаунт або увійдіть у нього для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!

Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.

Увійти зараз
×
×
  • Створити...