Модульная система автоматизации

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Приветствую!

Вкратце о чём речь, сразу скажу - всё на этапе обдумывания, поэтому нижеследующее стоит понимать как описание нечто абстрактного. Итак...

Есть модуль - коробочка, к которой можно подключить один датчик температуры и четыре актуатора. На коробочке тачскрин для управленияи настройки, с его помощью можно либо выдвинуть/задвинуть актуаторы вручную, либо настроить простейшую автоматизацию по уставкам вида "если температура с датчика выше 40 градусов - открыть все актуаторы, иначе - закрыть". Надеюсь, тут всё ясно, интересное начинается далее.

Итак, наш простейший модуль включён в сеть и прекрасно работает. И тут появляется некий модуль расширенного управления, к которому можно подключить наш первый модуль (можно и не подключать, конечно). Физически это выглядит так - соплями из нескольких проводов соединяем два модуля, и всё. При этом первый описанный модуль автоматически переходит в режим управления от контроллера, который теперь рулит всем. С контроллера же можно автоматизировать модуль уже посложнее, например, указывать сценарии по дням недели. Контроллер также может предоставлять веб-морду для настройки всего этого добра, подключаемые модули, конечно, об этом ни сном, ни духом.

Вопросы начинаются в этом абзаце, если дочитали. Очевидно, что нужен будет протокол обмена между контроллером и дочерними модулями - он сейчас обдумывается, один из вариантов - modbus по rs485. Затыки в следующем:

1. Для удобного подключения дочерних модулей хотелось бы видеть что-то типа горячего подключения, как в USB. Как это реализовать аппаратно - хз;

2. Для удобного опять же подключения хочется пробрасывать линии от дочернего модуля к следующему дочернему, т.е.,тупо - вход для подключения слева, выход для подключения следующего дочернего модуля - справа от корпуса. Пока неясен вопрос аппаратной реализации такого нюанса, например: дочерний модуль может работать и автономно от своего блока питания, не будучи подключенным к контроллеру. Если же есть подключение к контроллеру - дочерний модуль должен корректно обрабатывать эту ситуацию.

3. Опрос контроллером дочерних модулей и регистрация их в системе. Очевидно, что тупо гонять данные - не комильфо, хочется - лишь по наступлению уведомления от ведомого модуля. Очевидно, что для адресации у каждого модуля должен быть идентификатор, назначенный контроллером автоматически, при первом подключении модуля к контроллеру. Модуль должен уведомлять контроллер об изменении своего состояния, дабы контроллер запросил или передал на модуль всё, что ему нужно.

Дочитали? Ок, спасибо огромное. Собственно, вопросы крутятся по реализации аппаратной шины для подключения модулей. Как это вижу я, совершенный нуб в схемотехнике: есть набор линий, предоставляемых контроллером, например:

Л_1 - +5В для питания, линия пробрасывается от модуля к модулю

Л_2 - GND, линия пробрасывается от модуля к модулю

Л_3 - линия присутствия контроллера, если на ней +5В, то модуль понимает, что он подключен шнурком к контроллеру, линия пробрасывается от модуля к модулю

Л_4 - линия контроля состояния клиентов: если какой-либо из модулей положит её в ноль - значит, есть данные для контроллера

Л_5 - линия передачи данных от контроллера к модулям

Л_6 - линия передачи данных от модуля к контроллерам

 

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

 

Спасибо, что дочитали и, возможно, захотели ответить.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Для чего все эти пляски? Хочется сделать автоматизацию теплички 15х4м методом "от простого к сложному":

1. Реализую (или беру готовый) простой протокол приёма/выдачи управляющих команд к/от будущего контроллера. Этот протокол будет прошит, помимо основной логики работы, на каждом модуле;

2. Беру дуринку, к ней подключаю сервопривод и кнопку, по нажатию которой открывается/закрывается форточка. Подключаю всё это дело в теплицу - profit!

3. Беру вторую дуринку, подключаю к ней несколько датчиков температуры, экранчик, вывожу всё это на него, приношу в теплицу, подключаю, любуюсь - profit!

4. Добби доволен, добби пьёт пиво!

5. Зачесались руки, сделал контроллер, который управляется по веб-морде, да и вообще даже и с Андроида, например.

6. Подключил шнурками два готовых уже работающих модуля к контроллеру, и на экране компа уже настраиваю сценарии, чтобы, например, при достижении температуры выше 40 градусов - модуль управления форточкой эту самую форточку открыл.

 

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

Критикуйте, как это обычно принято на форумах :) Хочу понять слабые и сильные стороны а также тот момент - не загоняюсь ли я и не сделать ли мне всё-всё-всё в одной коробочке :) :) :)

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

я не понял - сейчас уже так и есть: берёшь и делаешь.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 777 пишет:

я не понял - сейчас уже так и есть: берёшь и делаешь.

Что берёшь? Что делаешь? Вы про модульные системы вообще или про то, что где-то уже есть такая модульная система управления тепличным хозяйством? Было бы интересно посмотреть, если вас не затруднит кинуть ссылочкой.

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

я не слышал о узкозаточенных модульных системах.

я слышал о неудачниках пытающихся их создать.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 777 пишет:

я не слышал о узкозаточенных модульных системах.

я слышал о неудачниках пытающихся их создать.

А, ну то есть вы потроллить зашли? Тоже вариант, когда себя занять нечем :)

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan, вы хотите усложнить систему, чтобы потом найти пути решения. Зачем?

Я пытался придумать реальную выгоду от вашего подхода и не смог.

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

DIYMan пишет:

А, ну то есть вы потроллить зашли? Тоже вариант, когда себя занять нечем :)

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

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 777 пишет:

DIYMan пишет:

А, ну то есть вы потроллить зашли? Тоже вариант, когда себя занять нечем :)

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

Сходу обозвать незнакомого собеседника кретином может только клинический идиот. А я, как человек разумный, с идиотами не общаюсь. Ариведерчи.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Gippopotam пишет:

DIYMan, вы хотите усложнить систему, чтобы потом найти пути решения. Зачем?

Я пытался придумать реальную выгоду от вашего подхода и не смог.

Я немноо сумбурно изложил, видимо. Хочу как раз наоборот - усложнять систему, буде такая необходимость. Вот смотрите, простой посыл: управление форточками в теплице по температуре. Очевидно, что можно поставить гидроцилиндры, и это многих устраивает. Ок, поставил я гидроцилиндры, пользуюсь. Но они не дают всего необходимого мне функционала, скажем, для того, чтобы оставлять форточки весь день принудительно открытыми - надо вручную сбрасывать тяги цилиндров и открывать форточки.

Я беру дуину и делаю совершенно простую коробочку, которая всего-то и умеет, что открывать/закрывать форточки по нажатию тактовой кнопки. Поставил, радуюсь. В дуинку прошил возможность управлять этим функционалом через AT-команды, скажем (разработав протокол). Всё работает, все счастливы.

Но! До теплицы у меня 70 метров, и пойти туда для того лишь, чтобы открыть/закрыть - не всегда рационально. И захотелось мне делать это удалённо, не трогаяуже работающий модуль, а всего лишь подцепив к нему шнурок. А на другом конце шнурка - контроллер, который уже будет всяко-разно уметь вертеть модулем - например, закрывать форточки при дожде или сильном ветре, посылая команды модулю.

Усложнение тут, собственно, одно - надо прошивать некий протокол обмена данными, или выбрать из уже готовых. В простейшем же случае упомянутая первой коробочка может работать и сама по себе, без всяких там хитромудрых контроллеров и т.п. шелухи. Посыл в том, что я ленив, и считаю, что железка, успешно выполняющая возложенные на неё функции, должна быть самодостаточна. И лазить допаивать-перепаивать-перепрошивать - незачем, это только усложнит и запутает систему, как раз.

Ещё раз оговорюсь, что сейчас проходит лишь стадия обдумывания, не более. И я, как здравомыслящий человек, не хочу сразу иметь железку "шоб у ней унутре усё було, плюс неонка!". Я хочу минимальный для начала функционал, который я потом в _железном_ виде трогать не буду, а расширять функционал буду другуми железками, выполненными в виде примитивных модулей. Более-менее умная железка в этой связке - как раз контроллер, до разработки которого может и не дойти никогда, как вариант.

Вопрошая, я интересовался скорее правом на жизнеспособность подобной идеи. На другом форуме, где нет таких истериков, как Клапауций, мне любезно сказали, что подобная архитектура используется фирмой Wago в их контроллерах на DIN-рейку.

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

DIYMan пишет:

Сходу обозвать незнакомого собеседника

ты меня ещё на свидание пригласи для знакомства

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 777 пишет:

DIYMan пишет:

Сходу обозвать незнакомого собеседника

ты меня ещё на свидание пригласи для знакомства

Не  истери, дочка :) Есть такое известное выражение: дуракам пол-работы не показывают. Это про тебя, дурочка.

bwn
Offline
Зарегистрирован: 25.08.2014

Для теплицы это излишество. Прикиньте, какие устройства вам понадобятся, разведите под них выводы управления, оставьте возможность перепрограммирования и кодьте дальше хоть десять лет. 328 для теплицы за глаза. ИМХО.

inspiritus
Offline
Зарегистрирован: 17.12.2012

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

кучамелкихпроизводителей

плк простые посложнее, к ним допмодкей куча

в чем Ваша фича не пойму

для мелких автоматизаций городить встроенные в мк конфигураторы - из необоснованное удорожание

(личное мнение)

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

DIYMan пишет:

Есть такое известное выражение: дуракам пол-работы не показывают.

ловлю на слове - через полгода покажешь мне свои модули или публично извинишься за свой кретинизм.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan, я понял, что вы написали, и ход ваших мыслей мне понятен. Чего я не пойму - вы действительно считаете. что проще и разумней добавлять в систему костыли, вместо однократного продумывания конструкции?

Это похоже на изготовление табурета с ножками разной длинны, но с комплектом хороших, годных прокладок. Хочешь - 5 см подложи, хочешь - 0.5 миллиметра. Прокладки будут хорошо фиксироваться на месте, будут прочными и красивыми. И это вместо того, чтобы воспользоваться линейкой и сразу сделать ножки одинаковыми.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ок, спасибо всем за конструктивную критику. Понятное дело, что существует множество вариантов решения проблемы, как уже готовых, так и вариантов с другой архитектурой. Мне же интересно, в первую очередь, разобраться самому и реализовать что-то похожее на серьёзную работу на практике. Скажем, инкубатор на дуинке с поддержкой яиц разных видов птицы, автоповоротом яиц, настраиваемыми параметрами, двухуровневым меню - мной реализован и успешно работает, хотя вполне себе можно было купить готовый с подобным функционалом за сумму раз в десять бОльшую, чем было потрачено на мой.

Gippopotam пишет:

DIYMan, я понял, что вы написали, и ход ваших мыслей мне понятен. Чего я не пойму - вы действительно считаете. что проще и разумней добавлять в систему костыли, вместо однократного продумывания конструкции?

Невозможно продумать всё и сразу, да всё и сразу - и не надо, вот в чём дело. Так что про костыли - тут несколько не в мишень, кмк. Поясню: вот сделал я продуманную систему, табурет с равными ножками, всё работает и даже не разваливается. И захотелось мне, через пару лет, добавить к табурету спинку. В вашем случае это - забирать табурет в мастерскую, разбирать его на части, доделывать спинку, собирать (т.е. допаивать, допрограммировать, тестировать, перепрошивать, ловить баги и т.п.).

В моём случае - спинка прикручивается легко и непринуждённо двумя винтами. Надо спинку - прикрутил. Не надо - открутил.

Поясню на примере подключаемого модуля для теплицы: есть контроллер по вашей схеме, продуманный. Захотел я добавить управление туманообразователями (например, "при достижении температуры выше 40 градусов включить туман на 5 минут, и если температура не упадёт на 2 градуса - только тогда открыть окна"). Помимо кучи допкода, который придётся вписывать в ограничения МК, можно напороться на банальное отсутствие свободных пинов.

В моём случае - контроллер работает как есть. А для управления туманообразователями просто делается новая коробушка, которая, после отладки, подключается к контроллеру двумя проводками, всё. Если коробушка не подключена к контроллеру - ей можно управлять кнопочками прямо на коробушке. Если подключена - то, помимо такого управления, контроллер может крутить коробушкой, посылая ей команды всем известного протокола. И уже на контроллере можно рулить сценариями.

Короче, про OpenHAB можно говорить разными словами, но обдумываемое мной наиболее близко по духу именно OpenHAB. Как-то так.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Клапауций 777 пишет:

DIYMan пишет:

Есть такое известное выражение: дуракам пол-работы не показывают.

ловлю на слове - через полгода покажешь мне свои модули или публично извинишься за свой кретинизм.

Во-первых, дуракам пол-работы не показывают, так что жди, родимый, пока ждалка не отвалится. Во-вторых, найди применение своему языку как-нибудь попрактичнее - например, открой морозильную камеру и лизни там унутре. Я тебе ничего не должен, ничем не обязан, более того - ты своим поносом засрал всю тему. Если в тебе нет и капли понимания - учись молча, читай, что пишут умные и адекватные люди. Не можешь молчать - см. выше про морозилку.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

bwn пишет:

328 для теплицы за глаза. ИМХО.

Спасибо за шутку, оценил :)

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan пишет:

В моём случае - спинка прикручивается легко и непринуждённо двумя винтами. Надо спинку - прикрутил. Не надо - открутил.

Э нет! В вашем случае вы будете использовать заранее придуманное, реализованное и уже установленное на табуретку универсальное крепление, к которому можно приделать и спинку, и плуг, и парашют.

А любой другой на вашем месте, уберет табуретку в чулан, а на ее место поставит новый стул.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan пишет:

bwn пишет:

328 для теплицы за глаза. ИМХО.

Спасибо за шутку, оценил :)

А если это не шутка? Зачем теплице Числовое Програмное Управление?

dimontie
Offline
Зарегистрирован: 11.01.2015

Надо это все делать поверх IP протокола. В нем все есть и можно будет территориально распределять и маштабировать.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Gippopotam пишет:

DIYMan пишет:

bwn пишет:

328 для теплицы за глаза. ИМХО.

Спасибо за шутку, оценил :)

А если это не шутка? Зачем теплице Числовое Програмное Управление?

Зачем в машине кондиционер? Очевидно ведь, что и без него - машина едет. И без гидроусилителя руля - тоже едет. И MP3-плеер в машине - тоже не нужен. А навигатор - вообще зло. Мысль донёс?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Gippopotam пишет:

DIYMan пишет:

В моём случае - спинка прикручивается легко и непринуждённо двумя винтами. Надо спинку - прикрутил. Не надо - открутил.

Э нет! В вашем случае вы будете использовать заранее придуманное, реализованное и уже установленное на табуретку универсальное крепление, к которому можно приделать и спинку, и плуг, и парашют.

А любой другой на вашем месте, уберет табуретку в чулан, а на ее место поставит новый стул.

Короче, OpenHAB смысла не имеет и не должен существовать, я так понял.  А Modbus - тем более не нужен. Универсальные крепления ведь, в некотором роде.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

dimontie пишет:

Надо это все делать поверх IP протокола. В нем все есть и можно будет территориально распределять и маштабировать.

Вот этого в масштабах задачи - точно не надо, за глаза - RS485, имхо. А вытащить морду в сеть - всегда можно будет, если воникнет у меня такая потребность.

griin
Offline
Зарегистрирован: 19.04.2015

DS2408(100 шт, 8 вх,вых) и DS1820(100 шт) - цепляются к 3 проводам. Хочешь разъем к дуринде подцепи, хочешь к другому контроллеру

bwn
Offline
Зарегистрирован: 25.08.2014

DIYMan пишет:

Gippopotam пишет:

DIYMan пишет:

bwn пишет:

328 для теплицы за глаза. ИМХО.

Спасибо за шутку, оценил :)

А если это не шутка? Зачем теплице Числовое Програмное Управление?

Зачем в машине кондиционер? Очевидно ведь, что и без него - машина едет. И без гидроусилителя руля - тоже едет. И MP3-плеер в машине - тоже не нужен. А навигатор - вообще зло. Мысль донёс?

Думаю в данном случае вы путаете функциональный механизм и игрушку. Никто не ставит кондиционеры, плейеры и гидроусилители в танки. Ибо они там действительно не нужны, а только снижают живучесть. Навигатор как доп.фича, не влияющая на общее управление. В целом, дело ваше. Только боюсь, как бы очередной "умный шлЁм" не получился.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan пишет:

Зачем в машине кондиционер? Очевидно ведь, что и без него - машина едет. И без гидроусилителя руля - тоже едет. И MP3-плеер в машине - тоже не нужен. А навигатор - вообще зло. Мысль донёс?

Вот опять вы поттасовкой занимаетесь. Речь ведь не о кондиционере, а о том, что вы хотите установить кондиционер, который, как и все они будет управляться с пульта. Но, чтобы потом кондиционер не переделывать, вы хотите добавить к нему модуль, который позволит в будущем подключить к нему игровую приставку, стиральную машину, фен, ну и парашют, куда без него...

Цитата:

Мысль донёс?

Вашу мысль я понял сразу. Подозреваю, что вы сами до конца ее не понимаете.

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

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

DIYMan пишет:

Короче, OpenHAB смысла не имеет и не должен существовать, я так понял.  А Modbus - тем более не нужен. Универсальные крепления ведь, в некотором роде.

Ладно, последний аргумент.

В советское время была загадка:
Что такое - не стучит, не рычит, не царапает пол?
Ответ - машина для стучания, рычания и царапания пола, сделанная в СССР.

Не боитесь, что в итоге это будет про вашу систему? Т.е.:
Что такое - не стучит, не рычит, не царапает пол?
Ответ - устройство для открывания форточки в теплице, к которому не подключили модули для стучания, рычания и царапания пола.

 

 

У вас ведь все с ног на голову поставлено. OpenHAB и Modbus это из другой области. В вашей метафоре вы должны делать не мп3-плеер в автомобиль, а автомобиль, к которому все, что нужно, можно подключить по универсальной шине.

А вы хотите начать с мп3-плеера, чтобы в итоге автомобиль получился.

 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Во всех современных плк заложены возможности для расширения жоп.модулями, но никто не встраивает в базовое по конфигураторы. Для этого программа составляется на внешнем компьютере и в скомпиллированом виде заливается в плк. 

К разряду таких устройств относятся и игро-познавательные наборы , расширенно называемые ардуинами. Где то есть даже среда, позволяющая складывать и рисовать программу в графическом интерфейсе ( как у больших) . 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Всем спасибо за конструктивное обсуждение, чувствую себя по-прежнему непонятым. Как профессиональный программист с пятнадцатилетним стажем могу с уверенностью заявить, что система плагинов - одна из самых универсальных и удобных. Речь, конечно, идёт о ПО.

Почему чувствую себя непонятым? Во-первых, я несколько раз акцентировал внимание, что никакого "умного шлёма" мне не нужно, я не идиот. Во-вторых, высказывания вида

Цитата:
Ответ - устройство для открывания форточки в теплице, к которому не подключили модули для стучания, рычания и царапания пола.

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

Ок, весь мой спич был заведён лишь для того, чтобы лишний раз убедиться в простом факте - бесполезно обсуждать абстрактную архитектуру, тут даже отсылка к конкретной не всегда прокатывает (это про OpenHAB, например).

Ещё раз благодарю всех участвовавших в обсуждении за потраченное на меня время.

bwn
Offline
Зарегистрирован: 25.08.2014

Скорее вы неверно выбрали объект обсуждения. Нечто подобное имеет смысл в системе типа умного дома, каждое помещение обслуживает модуль со своим МК, сведенные к центральному. Но ведь не каждому выключателю и розетке свой МК.
Я действительно не осознаю, что можно запланировать в достаточно небольшой теплице, чтобы не хватило мощности одной Atmegi 328-2560?

Клапауций 777
Offline
Зарегистрирован: 21.11.2015

DIYMan пишет:

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

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

DIYMan пишет:

Почему чувствую себя непонятым?

видимо, тебя окружают кретины - других вариантов быть не может.