• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

OpenPLC - основа для умного дома

evgeny2k

New member
Всем привет. Пробежался по темам, но не нашел упоминаний о проекте OpenPLC. Этот проект поддерживает разные устройства, в том числе и ESP8266. С моей точки зрения (как инженера АСУ) это самый серьезный проект в области автоматики на бюджетном не специализированном железе. Для дома - самое оно.
Ссылка сразу на страничку проекта, касающуюся ESP8266:

The OpenPLC Project
 

ivdok

New member
А можете поподробне рассказать, что можно реализовать/автоматизировать с помощью этой прошивки?
На сайте про концепцию написано немного обтекаемо - например, что можно сделать с этой прошивкой, чего нельзя, к примеру, используя Sming/Arduino/NodeMCU/?.. Правда любопытно, но и непонятно.

[off]ИМХО: Просто чтобы не быть голословным - как таковая автоматизация уже реализуема, например с помощью MQTT (или любого другого протокола, впринципе не имеет значения), а для Enterprise ESP8266 слишком капризная в плане стабильности - для дома подойдёт, но 99.99% аптайма я так и не добился за месяц тестов. Или беспроводная связь внезапно обрывается и возникает снова, или PANIC и перезагрузка. [/off]
 
Последнее редактирование:

evgeny2k

New member
Ну наверное проще будет частично процитировать (с переводом) информацию с сайта. Начнем...

Цитата: OpenPLC основывается на базовой системе для запуска основной логики, которая связывается с ESP8266 клиентами (да, вы можете иметь много ESP8266, подключенных к одной базе ). Базовая система (сервер) может быть на Windows, Linux или Raspberry Pi.
Нужно установить серверный софт OpenPLC на выбранной хост-системе, следуя инструкциям по приведенным выше ссылкам. В конце процесса установки, выберите драйвер ESP8266.
От меня: Т.е. имеется ядро с программным PLC (программируемым логическим контроллером). Это ядро крутится на вашем домашнем сервере, который может быть достаточно маломощным (например Raspberry PI) и общается с подключенными в систему ESP-шками как с модулями ввода-вывода. Далее к ногам ESP вы подключаете нужное оборудование.
Весь прикол проeкта в том, что в ядре используется SoftPLC, т.е. программный контроллер, который работает в точности так же, как промышленные контроллеры. Программируется всё это с помощью группы языков стандарта IEC-61131-3 (всего их 5). Для этих целей используется редактор PLCOpen Editor.
Цитата со странички PLCOpen Editor: PLCopen Editor является программным обеспечением, которое позволит вам разрабатывать программы для PLC в соответствии со стандартом IEC-61131-3 и экспортировать их в PLCopen XML формат. OpenPLC также способен запускать программы на языке "структурированный текст" (ST). PLCopen Редактор может генерировать программы ST для OpenPLC из всех пяти IEC-61131-3 языков...
От меня: Не стоит пугаться страшной надписи "IEC-61131-3", лучше загляните в википедию. От себя скажу, что эта группа языков разрабатывалась таким образом, чтобы люди, не умеющие программировать, могли таки без особых умственных усилий писать программы контроллеров. Каждый человек из этого набора языков легко подберёт что-то именно под себя. Некоторые из них и языками-то назвать трудно. К примеру Ladder Logic (LD), Function Block Diagram (FBD) и Sequential Function Chart (SFC) по сути графические конструкторы.
Посмотрите на примеры (скриншоты) со странички редактора и вам многое станет понятно: The OpenPLC Project
 

ivdok

New member
@evgeny2k, вы уже что-то пробовали реализовывать именно на этой комбинации? В голову приходит использование в качестве контроллера для, допустим, котельной в загородном доме, но это самое продвинутое, на что хватает воображения. Потому что, например, управлять лампочками или розетками с помощью PLC - это уже из пушки по воробьям. Хотя, конечно, интересно, что бы эдаково можно сделать.
 

evgeny2k

New member
@ivdok
Еще и на оффтоп отвечу: используемый протокол в принципе не важен. Это всего лишь транспорт, средство доставки информации. Рассматривать отдельно взятую ESP как процессорный модуль для управления даже небольшой системой или процессом - тоже не серьезно, возможностей у ESP маловато. А вот использовать его как порты ввода/вывода - другое дело. Для таких задач возможности ESP даже избыточны. Что касается стабильности, то могу сказать, что мой NodeMCU с Python на борту живёт непрерывно уже 10 дней. Я вообще совсем недавно открыл для себя этот чудный девайс и пока очень им доволен. Но я люблю Python и использую ESP только с прошивкой Micropython. Так вот, эти 10 дней ESP-шка фигачит с достаточно большой нагрузкой. На ней разумеется WEB-сервер, постоянно работающий процесс опроса и еще до 6 дополнительных параллельных процессов в зависимости от ситуации. Да да, я сказал ПАРАЛЛЕЛЬНЫХ. То есть одновременно могут работать 8 процессов и я говорю именно о многозадачности. Справляется зараза! Но для серьёзных задач памяти хронически не хватает.
 

evgeny2k

New member
@ivdok
Увы, практически OpenPLC я не использовал. ESP в мои руки попал меньше месяца назад и у меня просто еще небыло времени разогнаться как следует. Есть сейчас несколько идей, над которыми я работаю, но они не касаются домашней автоматики. А OpenPLC я для себя на будущее присмотрел и считаю этот проект очень жизнеспособным и достойным.

upd:
Скоро будет вот такая интересная железка Omega2: Omega2: $5 Linux Computer with Wi-Fi, Made for IoT
Вот это уже можно рассматривать как ядро для небольшой системы типа ДОМ. К тому же этот модуль тоже со встроенным WiFi и очень органично впишется в комплект с тем же OpenPLC+ESP
 
Последнее редактирование:

ivdok

New member
@ivdok
Еще и на оффтоп отвечу: используемый протокол в принципе не важен. Это всего лишь транспорт, средство доставки информации. Рассматривать отдельно взятую ESP как процессорный модуль для управления даже небольшой системой или процессом - тоже не серьезно, возможностей у ESP маловато. А вот использовать его как порты ввода/вывода - другое дело. Для таких задач возможности ESP даже избыточны. Что касается стабильности, то могу сказать, что мой NodeMCU с Python на борту живёт непрерывно уже 10 дней. Я вообще совсем недавно открыл для себя этот чудный девайс и пока очень им доволен. Но я люблю Python и использую ESP только с прошивкой Micropython. Так вот, эти 10 дней ESP-шка фигачит с достаточно большой нагрузкой. На ней разумеется WEB-сервер, постоянно работающий процесс опроса и еще до 6 дополнительных параллельных процессов в зависимости от ситуации. Да да, я сказал ПАРАЛЛЕЛЬНЫХ. То есть одновременно могут работать 8 процессов и я говорю именно о многозадачности. Справляется зараза! Но для серьёзных задач памяти хронически не хватает.
[off]Я упоминал MQTT как взаимосвязанную систему, а не протокол. Ахххх, ну да ладно, надо было мне чётче объясняться.[/off]
Что касается стабильности, то могу сказать, что мой NodeMCU с Python на борту живёт непрерывно уже 10 дней.
Ну что ж, или вам повезло, или мне конкретно так не прёт - по моему опыту, плата любит паниковать и скатываться в ребут. Или вообще терять контакт с "землёй". Например - на моём ките распаян USB-TTL, и он, и чип любят уходить в ребут меньше чем на секунду, появляться вновь, и сбивать ссылки на /dev/ttyUSB. Постоянные open/close в Esplorer и вылеты screen меня настолько добесили, что пришлось брать в руки маны по udev и сделать стабильный симлинк на пэху.
На ней разумеется WEB-сервер, постоянно работающий процесс опроса и еще до 6 дополнительных параллельных процессов в зависимости от ситуации. Да да, я сказал ПАРАЛЛЕЛЬНЫХ.
При случайных обстоятельствах выяснил, что и моя NodeMCU тоже очень даже многопоточная, когда словил race condition при последовательном выполнении двух функций.
Скоро будет вот такая интересная железка Omega2: Omega2: $5 Linux Computer with Wi-Fi, Made for IoT
Вот это уже можно рассматривать как ядро для небольшой системы типа ДОМ. К тому же этот модуль тоже со встроенным WiFi и очень органично впишется в комплект с тем же OpenPLC+ESP
А вот это вообще pooshka. Видел уже статью на хабре, но я не понимаю критики в комментариях - у неё есть приличный обвес в виде 580 мгц (почти как у моего первого смартфона), Linux вместо прошивки, 64 МБ оперативной памяти и 16 МБ внутренней (хватит на несколько проектов сразу), WiFi/USB 2.0/Ethernet (именно то, что надо, чтобы одушевить старую домашнюю технику), 2 UART'a (после третьей распберри эти слова как музыка для ушей), и прочая мелочёвка. Позволит бюджет - куплю сразу Plus. Правда, паять замучаешься, придётся помощи просить у знакомых.
 

evgeny2k

New member
Ну что ж, или вам повезло, или мне конкретно так не прёт - по моему опыту, плата любит паниковать и скатываться в ребут. Или вообще терять контакт с "землёй". Например - на моём ките распаян USB-TTL, и он, и чип любят уходить в ребут меньше чем на секунду, появляться вновь, и сбивать ссылки на /dev/ttyUSB. Постоянные open/close в Esplorer и вылеты screen меня настолько добесили, что пришлось брать в руки маны по udev и сделать стабильный симлинк на пэху.
Ну ничего себе!!! У меня 5 штук NodeMCU v3, но ни у одного ничего подобного не наблюдается. Один имеет странный баг при подключении к нему minicom-ом. Т.е. подключаешься, а дальше молчок, пока reset не жмакнешь (при подключенном состоянии). В процессе загрузки начинает сыпать в консоль то, что положено и уже дальше всё нормально. Спонтанный reboot ни разу вообще не наблюдал. Сделал киндеру гусеничную самоходку с управлением с телефона. Уже 4 дня гоняет, и тоже ни разу не жаловался, чтоб связь пропадала или управление отваливалось. Сейчас вот у него уточнил, были ли проблемы. Говорит, что нет, всё хорошо. Попробуй ради эксперимента micropython залить, может в прошивке косяк какой? Я в сети много жалоб видел на Lua прошивку, хотя сам и не пробовал. Вот по этой ссылке добрый человек ежедневные сборки выкладывает: Index of /~wendlers/micropython

upd:
Сейчас вот обратил внимание еще на один момент. ESP-шка подключена к компу с утра (esplorer), периодически подхожу к компу и ковыряюсь с ней. А 5 часов назад вообще ушел из дома. Вот только вернулся, отписался в форум этим постом и сообразил потом, что ESP-шка подключена, реагирует нормально и всё с ней хорошо. В каком состоянии всё оставил, так и есть. В терминал никакого вывода о перезагрузке тоже нет.
 
Последнее редактирование:

nikolz

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

jia

New member
Имхо, очень слабенько
Сравните с fhem.de, все тоже но намного больше уже поддерживаемого железа и протоколов
Все, чего нет (например НАПРЯМУЮ, без ЕСП читать DHT22 - как пример) - можно чииать скриптами баша, питона и отдавать через телнет в систему, а потом оперировать значениями уже в рамках обьявленных устройств или переменных
FHEM reference

Из божественного - CULадаптер, который в зависимости от прошивки может управлять закрытыми немецкими системами управления отопления на 866МГц типа FS20/FHT/EM/S300/HMS/MAX!/HoneyWell (именно головами MAX! по 20евро я собираюсь управлять в будущем)

Из шикарного, но еще не внесенного в оффсборку, но работающего это
ЕСП Neues Modul: ESPEasy [war: ESPEasy ohne MQTT]
И ШИМ управление теплыми водными полами Fussbodenheizung mit PWM steuern
 
Последнее редактирование:
Сверху Снизу