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

Modbus TCP / RTU RS-485 + WEB server

pvvx

Активный участник сообщества
Добрый день! Вопрос к автору. А будет ли добавлена в прошивку возможность посылать запросы с ESP, ну типа роутер перезагрузить? У меня он подвисает, и удалённо бывает нет связи по TCPmodbus. Локально работает.
Ставьте другой роутер. Ранее, лет пять и более назад, собирал информацию по разным роутерам - цена их практически одинакова, но 80% из них виснут при постоянной работе через месяц, два, особенно если автономное/бесперебойное питание. Решается выбором нормального роутера. Какие сейчас более стабильны - не знаю. Теперь эти задачи решают "сисадмины" на месте эксплуатации... Для домашних применений это не столь критично - перезапуск питания из-за переключения энергосетей и в городе достаточно част, и они не виснут у простых обывателей и информации "какие роутеры более устойчивы?" - мало. Т.е. если их периодически сбрасывать, к примеру раз в неделю, то пашут (не накапливают чего-то, приводящее к "зависанию" или просто статистически не нарываются на условия приводящие к зависаниям...).
При моих тестах всяких устройств WiFi даже дорогой и проверенный роутер требует перезапуск не реже раз в три месяца :) Но надежность работы у ESP гораздо хуже - если есть другие современные WiFi устройства рядом, то это в среднем не более пару часов статистического события отваливания её "station". В одиночном исполнении, в лесу - один модуль ESP и один роутер для неё - будет работать вечно.
Именно по этим причинам с ESP8266 завязал - она неисправима. Порекомендовать какой-то другой дешевый WiFi SoC пока не могу - испытания RTL ещё идут и аналогичный проект WEB-TCP-Modbus пока находится в начальной стадии... Например, дома, в городе, если включаю и оставляю ESP8266 и RTL модуль в компе на сутки, подключенные к его USB питанию, то довольно часто потом нахожу ESP в отвалившемся состоянии (отсоединенном от AP, но говорящем что он соединен). Аналогично и при экспериментах. К примеру, при подключении обоих модулей (любого исполнения, версии SDK, прошивки,...) к одному источнику питания, особенно если к ним подключено ещё что-то, по этим проводам происходит дополнительный прием помех у ESP… Т.е. какие-то помехи с большим уровнем и/или громкие пакеты WiFi от соседнего устройства убивают драйвер WiFi на ESP, но не влияют на другие модули. Ну и сама реализация WiFi на ESP является устаревшей и не соответствует современным реалиям в этой области (не говоря уже о стандартах WiFi) - включенный ESP8266 сажает всю сеть WiFi и создает массу коллизий в эфире домашнего WiFi другим устройствам. :( Трафик у одно-антенных устройств падает с 1..2 мегабайта в сек на 200..400 килобайт в зоне работы ESP8266.
Малая часть причин этого описана тут: Wi-Fi: неочевидные нюансы (на примере домашней сети) + AP ESP вообще не отслеживает других...
 
Последнее редактирование:

verybad

New member
Добрый день. Решил взбодрить тему для начинающих. Вчера было тяжеловато перечитывать всю ветку. Сегодня я в ударе, всё завелось, и с лёгкой руки составил мануальчик All_in_one для себя и других, чтоб не забыть что делал. Расписал по-шагово. Все нужные файлы собрал в зип. Пользуйтесь. Пароль архива 12345
 

Вложения

verybad

New member
Подскажите как протестировать последний релиз 0.6.3. С 0.6.1 - 0.6.2 уже поигрался. Дело в том что fullflash_modbusrs485.bin отсутствует. Пробовал зашивать отдельные файлы из папки bin в соответствующие адреса - зашил но не работает. Куда дальше копать? Как собрать файлы в один bin
 

verybad

New member
В общем как-то откомпилировал tcp2uart 0.6.3 и зашил в Эклипсе. По первым признакам обмен данными по TCP Modbus стал стабильнее чем в 0.6.2
А вот с вариантом ModBusTCP2RTU выдаёт ошибку компиляции.
web_int_callbacks.c:497:7: error: implicit declaration of function 'tcp2uart_ajax_rx'
Но эта функция задекларирована в tcp2uart.h
Ребята, помогите разобраться, упёрся в стенку.
 
Последнее редактирование:

verybad

New member
@verybad, это обсуждалось в https://esp8266.ru/forum/threads/ra...-webservera-na-esp8266.56/page-101#post-34944, но вы, наверное, это видели. А интересно, почему автор фуллфлеш не выложил? Типа там только веб-диск изменился?
Да, видел. Более того, поскольку есть релиз 0.6.4 то, естественно, 0.6.3 никто развивать не будет.
Релиз 0.6.4 выложен в "разработке малого вебсервера". Компилируется в Эклипсе и работает. Проверено на ESP12E. Нужно установить сначала PROGECT_NUMBER 1. Также нужно при помощи программы WEBFS22.exe файлы из папки WEBFilesRS485 преобразовать в файл webbin/WEBFiles.bin и загрузить его в модуль ESP. На ESP01 этот номер у меня не прошёл.
 
Последнее редактирование:

sergek

New member
@verybad, наверное, я туплю.. Упоминание 0.6.4 видел, а ссылку не нашел :( Где она там?
И еще, наглость, конечно, но вы не могли бы сделать fullflesh tcp2uart? Сам я железом не занимаюсь (я прикладник, делаю серверную часть), а ребята, кто меня заставляет ESP использовать, тоже ни в зуб ногой ;)
 

sergek

New member
Граждане, родненькие! Вспоможите фулфлешем tcp2uart 0.6.4, esp-12! Век не забуду...
 

verybad

New member
Граждане, родненькие! Вспоможите фулфлешем tcp2uart 0.6.4, esp-12! Век не забуду...
Да где ж его взять. У меня конечно в планах разобраться с этим делом, но...Мистер Фикс, есть ли у Вас план?...Ага...аж мешок пакистанского плана. Берите 0.6.2 и зашивайте - вполне рабочий вариант. Версия 0.6.4 всё равно по умолчанию компилится на старой версии SDK 1.5.4. В Эклипсе нужно перестроить чтобы SDK 2.0 использовать.
Я пробовал отдельно зашивать bin - файлы по нужным адресам - но чтото не получилось. А как фулфлеш собрать я не знаю.
PS.0.6.4 - в исходниках на githhub
 

pvvx

Активный участник сообщества
Жаль. А по поводу github - там последний 0.6.3 (Releases · pvvx/esp8266web · GitHub). Ну и ладно, наверное, это тот случай, как с тем сусликом, который есть... ;)
Нет новых, т.к. желаемой стабильности работы ESP8266 не удалось достичь, а новых оф. SDK с поправками дров WiFi более нет. Arduino так-же засела на старой версии SDK...
Упрощенно это называется - время ESP8266 прошло. Чип устарел.
 

sergek

New member
@pvvx, спасибо. Я это понял и раньше из ваших реплик, но мои коллеги за эту микросхему уцепились, и мне приходится с ней работать.
Мы используем ее в режиме tcp2uart (по порту 503) и одновременно управляем gpio по modbus tcp (по порту 502), т.е. одну прошивку в двухканальном режиме. Вроде работает, но есть глюки при интенсивных одновременных обращениях по обоим портам. Почему-то начинает тормозить второй канал (502) вплоть до отключения. Эту проблему я собираюсь решить организацией одной общей очереди для обоих каналов, чтобы взаимодействие шло одновременно только по одному порту (сейчас у меня каждый канал обслуживается своей очередью). Думаю, должно получиться, но стабильность самой платы вызывает сомнение. Скоро будем запускать в опытную эксплуатацию, посмотрим.
Виктор, про ненадежность wifi в этой микросхеме я уже понял. Какие еще проблемы в ней, на ваш взгляд, имеются и мешают использовать ее в промышленных системах мониторинга (без управляющих воздействий)?
 

pvvx

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

verybad

New member
Жаль. А по поводу github - там последний 0.6.3 (Releases · pvvx/esp8266web · GitHub). Ну и ладно, наверное, это тот случай, как с тем сусликом, который есть... ;)
GitHub - pvvx/esp8266web: Small web server on ESP8266
Это ссылка с первой страницы Разработка ‘библиотеки’ малого Webсервера на ESP8266.
Справа сверху кнопка Downloud ZIP. Закачайте esp8266web-master.zip Это и есть ваш "суслик" 0.6.4
Вставлю свои пять копеек по стабильности работы.
Первое - обеспечить стабильное питание, отдельными проводами от источника питания (или откуда вы там берете). Обязательно - конденсатор электролит или тантал на вход и выход стабилизатора 3,3 В.
Второе. Стабильность обмена данными между ПК и точкой доступа ESP8266 лучше чем между ПК и клиентом ESP8266 (через роутер).
 
Последнее редактирование:

sergek

New member
GitHub - pvvx/esp8266web: Small web server on ESP8266
Это ссылка с первой страницы Разработка ‘библиотеки’ малого Webсервера на ESP8266.
Справа сверху кнопка Downloud ZIP. Закачайте esp8266web-master.zip Это и есть ваш "суслик" 0.6.4
Это я видел, там все коммиты не позже 25 июня, т.е. это 0.6.3.
По поводу стабильности - спасибо, учту.
 

Dito85

New member
Добрый день! @pvvx, а Вы не могли бы выложить fullflash_modbusrs485 для 0.6.3 или 0.6.4 (какая последняя)? Использую вашу разработкой в режиме TCP2RTU, а с эклипсом не очень дружу.
 

pvvx

Активный участник сообщества
Добрый день! @pvvx, а Вы не могли бы выложить fullflash_modbusrs485 для 0.6.3 или 0.6.4 (какая последняя)? Использую вашу разработкой в режиме TCP2RTU, а с эклипсом не очень дружу.
Пробуйте https://github.com/pvvx/esp8266web/releases/download/0.6.4/fullflash_and_webfs_064.zip
Всё кинуто туда-же, как и описано в первом сообщении темы: Прошивки
 

Dito85

New member

pvvx

Активный участник сообщества
@pvvx, спасибо большое! Подскажите пожалуйста в версии 0.6.4 SDK - 1.5.4, а в версии 0.6.3 SDK 2.0.0. Почему так?
По тому, что 2.0 содержит больше ненужного неустраняемого китайского хлама и итоговый размер для записи в flash выходит больше, как и меньше "Heap". Больше отличий не замечено - ошибки те-же самые, что и в 1.0.0 SDK и не исправлены. Espressif вместо исправления ошибок дополняет код SDK ненужными никому функциями. Это требуется для коммерции, по аналогии - "у нас больше функций", хотя они и не работают как надо :) В итоге весь код расширяется на IF (если это для другой функции) и становиться жирным и тормозным.
В git лежит версия исходников с возможностью переключения между 1.5.4 и 2.0.0 SDK.
 
Последнее редактирование:
Сверху Снизу