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

Вопрос Простые скрипты - процессор

pvvx

Активный участник сообщества
Коллега видимо хочет что то более универсальное, кардинально изменять логику алгоритма, а может и добавлять что то по ходу. Это конечно сложнее. А управлять вытяжкой не такой уж умудренный процесс и просчитать предполагаемый алгоритм не так уж и сложно, ни как не 200 вариантов:). В более сложных системах согласен может это и актуально, когда не знаешь точно чего ожидать. Пусть коллега поиграется с бейсиком, если времени не жалко:), а может действительно это для него выход. Только по опыту знаю, вообще, большая универсальность это не всегда есть хорошо.
Ну и обычно такие бейсик системы или же другие, не важно, имеют множество подводных камней и баги конечно, и вопросов может появиться еще больше:).
Бейсик не подойдет. Ему придется сделать общую память с фиксированными адресами для переменных - значений с датчиков, промежуточных результатов, дополнительных переменных типа счетчиков, ячеек флагов управления к ним и т.д. Вот к этой хитрой памяти будет работать скрипт с десятком команд. Т.е. ещё нужен интерпретатор с задаваемыми условиями - скорость опроса (шаг выполнения скрипта) и возможно потребуются типа макросы, срабатывающие по условиям от всяких бит и значений в общей памяти этой системы. Т.е. он пытается сделать ПЛК. :)
В итоге вся программа ПЛК пишется один раз и обращается к указанной мной таблице и отрабатывает. :) Стоило ли возиться? Таблицу легче интерактивно отображать и менять на web в HTML пользователю, чем писать ещё систему редактора скриптов...
 
Последнее редактирование:

sasasa

Member
Коллега видимо хочет что то более универсальное, кардинально изменять логику алгоритма, а может и добавлять что то по ходу.
Кардинально поменять алгоритм вытяжки влажного воздуха... хм.. это как?? 8)
Ну если уж очень надо, тогда вешаем ещё одну ЕСПку и загружаем по сети. И просто и дёшево. Может быть и одной можно как то схитрить ;)
 

pvvx

Активный участник сообщества
Кардинально поменять алгоритм вытяжки влажного воздуха... хм.. это как?? 8)
Ну если уж очень надо, тогда вешаем ещё одну ЕСПку и загружаем по сети. И просто и дёшево. Может быть и одной можно как то схитрить ;)
Нет необходимости во втором CPU - есть к примеру Lua. Они именно на это затачивалась от рождения, но интерпретации на ESP8266 желают лучшего...
 

vad7

Active member
А обновление прошивки по WiFi чем плохо?
Если памяти мало - так есть модули с большим количеством ее, да и перепаять можно на худой конец.
 
Я одновременно восхищен и поражен пытливостью ума русского человека. Начнем издалека.
pvvx прав. Это аналог ПЛК. Но не совсем в том понимании. Я занимаюсь системами умного дома и промышленной автоматикой. И в арсенале того что я запускал есть все, начиная от геркона, и моей гордости , которые по мнению специалистов из компаний Hundegger и Siemens могли отладить и запустить только они. http://www.centro.ru/hundegger/ Вот этот красивый из-дерева-принтер с чпу я восстановил практически из углей, переписав серверную часть полностью. Поэтому сейчас я не занимаюсь изобретательством в чистом виде, а делаю дешевый аналог того что уже видел, и что мне очень понравилось.
Конфигурация переферии ESP8266 загружается из json файла. Поэтому изначально предусмотреть в скетче все невозможно. Таблицы тоже не подходят, или я что-то недопонимаю. Тем более что у меня еще реализована mesh-сеть из датчиков, и в условии не всегда будут локальные датчики.
Поэтому делается прошивка с отличиями только в конфигурации непосредственно конечной реализации esp8266. А настройки периферии грузятся, как и логика.
 
А обновление прошивки по WiFi чем плохо?
Если памяти мало - так есть модули с большим количеством ее, да и перепаять можно на худой конец.
Память скетча от памяти флэша слегка отличается. В вики описано хорошо. А OTA при объеме прошивки моей уже не работает. Хочу перейти на Sming, но пока тяжеловато въехать в некоторые ... в общем не получилось пока, но пока удовлетворяет adruino ide.
 

vad7

Active member
по моему проще память перепаять, чем интерпретатор городить...
Ну или сделать так, чтобы по WiFi можно было загрузить только код одной функции.
 
Обратимся к мануалу. https://github.com/esp8266/Arduino/...s/ota_updates.md#update-process---memory-view
загружаемый скетч должен быть не больше половины от общей памяти скетча. Непозволительная роскошь. Особо в моём случае. Перейду на натив, может и получится. Но не сейчас.
И забудьте про аппаратные хаки. Не для этого прошивка пилится.
Кто нибудь KNX железки програмил ? Принцип примерно тот же.
 

sally555

New member
Если честно, потраченного времени не жаль, кому то может и пригодится, Я так думаю, если коммерческий проект, либо делай сам, если тяма позволяет, либо заказывай у продвинутых за оплату. И не то что бы мне чего то жалко, просто если это коммерческий проект, так и пишите в начале, чего прикидываться шлангом то. Прошу прощения если был резок.
 

pvvx

Активный участник сообщества
Таблицы тоже не подходят, или я что-то недопонимаю.
Значит понимание ещё не наработано. :)
Тем более что у меня еще реализована mesh-сеть из датчиков, и в условии не всегда будут локальные датчики.
А таблице без разницы.
Вы всё равно что-то грузите. Описание полей таблицы давал и не понятно почему не понятно. :)
Расширенные таблицы управления имеют такие поля:
номер датчика, start, stop значение (или диапазон - начало и конец), номер функции, номер вывода результата, инверсия результата.
Если датчиков 10, то и таких полей (строк таблицы) 10. А как они передаются или записываются в модуль - без разницы - это сугубо ваше дело.
Обычно это работает по таймеру - берет текущее значение необходимого по номеру датчика и сравнивает. Если результат удовлетворителен (и не стоит инверсии), то производит предварительную установку значения вывода в указанный номер вывода в таблице. И так 10 раз. После отработки всех 10 производится вывод. Таблица отрабатывается последовательно, что является и приоритетом - последний и включит к примеру тот пин или ещё чего, который был например отключен первым строкой таблицы (например последняя строка дает проверку аварийных значений и незя включать). Этого обычно достаточно для реализации любой логики управления от датчиков. :p
Я так думаю, если коммерческий проект, либо делай сам, если тяма позволяет, либо заказывай ....
Ну тут смешно - коммерческий проект на Дурине и глюко-китай-WiFi-SDK. Что-то не стыкуется. :D
 
Последнее редактирование:
Если честно, потраченного времени не жаль, кому то может и пригодится, Я так думаю, если коммерческий проект, либо делай сам, если тяма позволяет, либо заказывай у продвинутых за оплату. И не то что бы мне чего то жалко, просто если это коммерческий проект, так и пишите в начале, чего прикидываться шлангом то. Прошу прощения если был резок.
А где написано что проект коммерческий ? Тут в принципе не закладывается прибыль.
У монетизированных проектов есть отличия - им занимаются за деньги, привлекая программистов, составляя т.з. и пр. А это для души. При том по факту скорее всего выложу исходники и готовый продукт. Если не заброшу.

А вам обязательно через http надо обновлять?
А есть готовые варианты ?
 
Так о чем же ? На вопрос не ответил, пример не привел. Перевел тему в обсуждение коммерциализации проекта. Так меня это не волнует. Самоутвердился что-ли ?

Просто эту задачу кто-то уже решал 100%. Вот я и спросил - не видел ли кто, потому что в три подхода к гуглу я ничего близкого не нашел. Может не там и не так ищу. Кстати тема для меня все еще актуальна.
 

sally555

New member
Так о чем же ? На вопрос не ответил, пример не привел. Перевел тему в обсуждение коммерциализации проекта. Так меня это не волнует. Самоутвердился что-ли ?
Ну что уж так то, первый раз я самоутвердился лет эдак 30 назад починив свой первый телевизор, еще ламповый:D, с тех пор самоутверждаюсь постоянно, по сей день. Более того помогаю самоутверждаться коллегам по оружию и подрастающему поколению, не один десяток студентов прошло через меня. И всегда радуюсь их успехам! Ну это лирика. Хотел просто в месте с вами разобраться в вашей задумке, тема мне тоже интересна. Да, сперва не въехал, что именно вам нужно, поэтому и пытал вас:), может конечно я тупой, но ваши цели мне стали понятны(и то не до конца) лишь к концу обсуждения.
На счет коммерции, меня смутила ваша фраза "Я занимаюсь системами умного дома и промышленной автоматикой.", уж извините что не так ее понял.
По поводу примера, вы вообще к кому обращались на счет примера, если ко мне, то хотя бы ник мой вставили. С примерами сейчас туго, времени практически нет, даже на свои проекты, но на заметку я себе взял, погоняю извилины на досуге.
Просто эту задачу кто-то уже решал 100%. Вот я и спросил - не видел ли кто, потому что в три подхода к гуглу я ничего близкого не нашел. Может не там и не так ищу. Кстати тема для меня все еще актуальна.
на 100% ничего не бывает, если уж гугя не нашла. Если вы не против, то пообщаемся еще по теме, мне она тоже интересна.
 
И не найдет. Как выразились "пром.автоматика" в большинстве случаев платная и закрытая.
Ну так давайте попробуем сделать массовое решение. Пусть и глючное немного, но людям на уровне "скачать - далее - галочки - стрелочки - далее" понятное. Не всем на сименсах шкафы собирать. Люстрой в доме и вентилятором порулить и попроще можно. А сценарии с ик так вообще фантастика. Для большинства.

Я уже пару десятков датчиков разных напрограмил, людям раздал. Где свет включают, где инкубатор мониторят и греют, где отоплением рулят на даче. IP камеры мониторят и перезагружают. Вот камеры виснут от скачков в питании, а ESP нет ... Есть даже один гелиоколлектор с режимным антифризом и актуаторами. Между прочим на отоплении 60-80% экономии.

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

pvvx

Активный участник сообщества
Надо ломать стереотипы. Выкладывай свое решение :)
А не выложу. Не хочу (будут жаловаться заказчики - т.к. типа "секрет фирмы" и вдруг у них появятся конкуренты с одинаково низкой ценой, а так и их пока нет - "чиcто поле" с верхом ценообразования от "Сименса" и можно делать устройство за 5 копеек, а продавать за диктуемую "альтернативу" от таких брендов :p ). Оно применяется и работает уже с того века в сделанных ком.проектах.
Да и тенденция пошла в другую сторону - китайцы теперь во все свои дешевые ПЛК и "Панели оператора" дают написание кода управления на СИ и у всех пингвин в нутре под который это все и транслируется, а не кривых языках от брендов... А тут опять к какому-то интерпретатору тянут - пещерные люди :)
Меня такая ситуация устраивает - кто хочет сам всё напишет. Иначе начнутся кривые порты и ругань о нарушениях каких-то лицензий от телепузиков...
http://unlicense.org/
 
Последнее редактирование:
  • Like
Реакции: vad7

tretyakov_sa

Moderator
Команда форума
И каждый раз чуть ли не с нуля все пишу. Я понимаю что так поступают все тру-программисты, но идея унификации появилась в голове и прочно там сидит. Да и в общем то задачка хорошая, чтобы мозг поразмять. А то ПЛК програмить одно, а вот самому нарисовать ПЛК... это интересно.
Опиши устройство с точки зрения коробочки и интерфейса пользователя на простом русском языке, можно рисунки от руки добавить.
Потому как, цитата :
Например к ардуине(esp8266) подключено реле и датчик температуры.
Пишем скрипт типа
IF (SENSOR>20,RELAY=1);
IF (SENSOR<20,RELAY=0);
Очень не информативна, за ней скрывается нечто большее. :)

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