• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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.
 
Последнее редактирование:
Сверху Снизу