Так про стоимость все же хотелось бы узнать - мое зеленое земноводное шибко хочет знать сколько я уже переплатил за грое... И скоко еще придется переплачивать...
Вот ещё фото управляющего ящика и водозапорной арматуры. Ящик собран на контроллере Raspberry Pi3 (в белом корпусе слева) и I/O модулях Ethercat. Внизу блок питания на 24В. Закрывается все герметично прозрачной крышкой. Водозапорная арматура состоит из двух обратных клапанов, 3-х ходового сервопривода и двух электро-магнитных клапанов. Между ними стоит датчик температуры воды.
Дорого . Внизу цены в Германии на все. По арматуре: - Датчик температуры PT1000 - 10€ - Гильза для датчика температуры 1/2" - 7€ - Сервопривод ESBE ARA 635 для VRG 131, 15с, 90°, 3 Nm - 110€ - Смеситель ESBE VRG 131 - 37€ - Электромагнитный клапан SLP 12 24V= - 158€ за 2шт - Обратные клапана 1/2" - 9€ В итоге стоимость арматуры: 331€ плюс всякие тройники и шланги по мелочи По контроллеру: - Лицензия на Codesys - 60€ - Raspberry Pi 3 - 40€ - EtherCAT I/O: EtherCAT Каплер Beckhoff EK1100 - 90€ 8-канальный модуль цифровых входов 24 V DC Beckhoff EL1008 - 25€ 8-канальный модуль цифровых выходов 24 V DC Beckhoff EL2008 - 25€ 2-канальный модуль входов для датчиков температуры Beckhoff EL3202 - 60€ 2-канальный модуль силовых реле на 230В Beckhoff EL2622 - 30€ - Блоки питания на 24В и 5В для Raspberry - дома валялись, не знаю сколько стоят - Коробка IP65 Spelsberg TK PS 3625-11-t - 48€ - Кабельные Сальники M12, M16 10шт - 10€ - Корпус для RPI 3 для монтажа на DIN рейку - Phoenix Contact RPI-BC 107,6 DEV-KIT - 10€ - Мембранный пульт управления на 4 кнопки с LED RGB Подсветкой Rköller - 140€ В итоге стоимость контроллера: 538€ плюс всякие кабеля, провода и клеммники по мелочи. В общем общая стоимость железа: 869€ Следует учесть, что без данной системы управления мне понадобился бы как минимум смеситель для ванны на два выхода (3-х компонентный). Например Grohе или Keuco - они стоят около 350€. Т. е реальная переплата меньше.
Кстати вот программа управления. Сделана как модель в Simulink Автоматы обработки нажатия кнопок и индикации (блок Flow_and_Temp_Control) сделаны в Stateflow Все отлаживалось путем моделирования в Simulink. Воды утекло не много. Затем из модели контроллера автоматически генерировался IEC 61131-3 код и импортировался в Codesys, как блок FBD
Ваше решение стабилизации температуры подаваемой воды мне кажется не до конца продуманным. Для ванной интересно было бы поддержание температуры в самом "корыте", а не на выходе смесителя. Понимаю, что тут все сильно усложняется - надо думать чтобы кипяток не потек из крана, если система посчитает, что пора поднять температуру в корыте. Вот в душевой кабине - там да, именно на выходе смесителя надо. Ну и какой-то безумный набор управляющей электроники у Вас. Мне кажется все это можно было бы сделать намного проще. По сути - тот же ПИД регулятор (и по тем же причинам), что я собираюсь делать для стабилизации температуры в приточной вентиляции. Надеюсь реализовать это скриптами ioBroker (хотя еще не видел таких решений), если не получится - куплю отдельный регулятор с управлением по modbus (около 70$). Почему Вы не пошли по пути подобного готового регулятора? На входе - PT1000 (у меня установлен PT100), на выходе - 0-10V или 4-20ма для плавного управления смесителем (в Вашем случае). Вообщем-то там даже есть дисплейчик и кнопки... при желании наверное можно было бы "приколхозить" и к ванной.
Вопрос интересный, но даже с точки зрения пользователя не слишком простой. Например, в ванной тоже могут принимать душ. В этом случае опять придется контролировать температуру на выходе смесителя? А как ванна должна узнать, что ее хотят набрать или просто ополоснуться или помыть собаку? Выбирать режимы контроля температуры по датчику в корыте или смесителе? Так тогда уже планшет надо. Я не люблю колхоз. И во вторых, данный проект был сделан как пример, что можно получить при минимуме вложений свободного времени. На самом деле из управляющей электроники у меня только один Raspberry. EtherCAT - это просто система ввода-вывода. Ее можно было бы сделать на Modbus, но если брать некитайское оборудование, то EtherCAT модули сегодня стоят столько же, сколько и Modbus от тех же Wago, Phoenix, Schneider и пр. Для нормально работающего ПИД регулятора нужен определенный детерминизм - т. е. он должен исполняться периодически с определенными интервалами и чем они точнее, тем он лучше будет работать. Также данные тоже должны быть самыми новыми. В моем случае ПИД контроллер работает с периодом в 10мс, и Codesys обеспечивает джиттер на уровне 100µs.С ioBroker, я думаю так не получится. Ну и еще преимущество - ПИД регулятор у меня - это библиотечный блок. Забил два параметра и он работает. Смесители, которые я нашел, работают по принципу - подал сигнал на один провод - он крутится в одну сторону. Подал на другой - крутится в другую. Обратной связи как таковой нет - надо считать время работы. С управлением в 0...10В или 4...20ма я смесителей не видел. Дисплейчик и кнопки это отдельная песня. "Колхоз" тут недопустим. Надо нормальный пользовательский интерфейс.
Разве Raspberry не колхоз? Вы уверены, что подход "чем меньше - тем лучше" правильный? Есть два момента - первый - инертность датчика температуры. Ну не может он моментально выравнивать собственную температуру (и отдавать это показание) с температурой окружающей среды. И это явно побольше 10мс. Второй - время реакции управления. Сколько времени занимает ход двигателя? 10мс тоже явно маловато для него. И все бы было хорошо и так - ну считает регулятор чаще, чем надо, ну грузится процессор больше, чем надо, работает же... если не одно "но" - не идет ли излишний износ механики двигателя, если на него каждые 10мс подается управляющее воздействие? https://lunda.ru/catalog/category/c7186/product/elektroprivod-ara600-esbe_6008.html?gclid=CO6vnYjl7NUCFUZeGQodhJANGQ Это не оно? Ну а вариант с управлением подачей на определенное время управляющего сигнала я вижу большой-большой геморрой... К слову, с ioBroker и javascript вообще было бы не реально так сделать скриптами - там есть проблема с real time. Ну это извечная проблема надежности и эстетики... Тем не менее, гляньте такой вариант https://ru.aliexpress.com/item/ME-ST828G-panel-size-48-48mm-LED-digital-temperature-controller-with-RS485-communication-function/32617639415.html?spm=a2g0s.8937460.0.0.ZQoC4L
Для проекта такого уровня - нет. RPi + Codesys + распределенные I/O используется в различных тестовых и полупромышленных системах управления уже достаточно продолжительное время. Напрямую к RPi я никаких сигналов, кроме EtherNet не подключаю. Воздействие на двигатель подается только тогда, когда сигнал рассогласования между выходом ПИД Контроллера и текущей просчитанной позицией клапана превышает определенный уровень. При этом минимальное время включения двигателя тоже ограничено. А так - ну работает оно на 10мс - и пусть себе работает. Это дало мне возможность не заморачиваться с ПИД контроллером вообще. Это тот же тип сервопривода, что и у меня, только с потенциометром и электроникой. Немного дороже...Видать просмотрел, когда искал... В ванну, которая стоит полторы штуки баксов? Извините, но меня за это из дома выгонят.