Ребутится NodeMCU на modbus RTU
-
- Рядовой
- Сообщения: 27
- Зарегистрирован: 14 янв 2023, 19:07
- Откуда: Астрахань
- Имя: Александр
Ребутится NodeMCU на modbus RTU
Всем привет!
Имеем работающую сеть 485 с несколькими устройствами.
Добавляем в эту сеть nodemcu на 8266 с переходником UART - 485 в режиме slave. Переходник подключен к единственному аппаратному UART nodemcu.
Проблема: при опросе мастером соседних устройств на шине (с другим id), а конкретно устройства, в котором за один раз опрашиваются почти два десятка регистров, моя esp, слушая эту болтовню, делает ребут. Если отключить на мастере шины длинный запрос, то проблем нет.
Что происходит? У меня пока такое предположение: в последовательности пролетающих по шине байтов есп выслушивает совпадение с командой перезагрузки, а поскольку сидим на аппаратном UART, Nodemcu честно выполняет команду..
Software serial использовать не могу, т.к. не нашел как настроить на два стоповых бита. esp32 ставить пока не пробовал из-за жадности и не решенной проблемы.
Вопросы:
1. можно ли отключать и включать режим программирования у esp8266 NodeMcu?
2. FLprog 8.2.3 умеет настраивать software serial на два стоповых бита?
3. Я угадал с причиной ребута? Может какой-то буфер переполняется?
Имеем работающую сеть 485 с несколькими устройствами.
Добавляем в эту сеть nodemcu на 8266 с переходником UART - 485 в режиме slave. Переходник подключен к единственному аппаратному UART nodemcu.
Проблема: при опросе мастером соседних устройств на шине (с другим id), а конкретно устройства, в котором за один раз опрашиваются почти два десятка регистров, моя esp, слушая эту болтовню, делает ребут. Если отключить на мастере шины длинный запрос, то проблем нет.
Что происходит? У меня пока такое предположение: в последовательности пролетающих по шине байтов есп выслушивает совпадение с командой перезагрузки, а поскольку сидим на аппаратном UART, Nodemcu честно выполняет команду..
Software serial использовать не могу, т.к. не нашел как настроить на два стоповых бита. esp32 ставить пока не пробовал из-за жадности и не решенной проблемы.
Вопросы:
1. можно ли отключать и включать режим программирования у esp8266 NodeMcu?
2. FLprog 8.2.3 умеет настраивать software serial на два стоповых бита?
3. Я угадал с причиной ребута? Может какой-то буфер переполняется?
- Rovki
- Полковник
- Сообщения: 5710
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Re: Ребутится NodeMCU на modbus RTU
Групповая запись\чтение в ФЛпрог рассчитана на количество регистров не боле 10 (вроде) , уменьшите у себя это количество регистров в одном пакете
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 27
- Зарегистрирован: 14 янв 2023, 19:07
- Откуда: Астрахань
- Имя: Александр
Re: Ребутится NodeMCU на modbus RTU
Уточню: большой пачкой происходит обмен с другим устройством, с другим адресом, а не с моим. Всё равно будет падать?
- Rovki
- Полковник
- Сообщения: 5710
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Re: Ребутится NodeMCU на modbus RTU
а другое устройство на чем сделано и запрограммировано ?Bullhorse писал(а): 24 фев 2025, 18:24 Уточню: большой пачкой происходит обмен с другим устройством, с другим адресом, а не с моим. Всё равно будет падать?
Электронщик до мозга костей и не только
- Rovki
- Полковник
- Сообщения: 5710
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Re: Ребутится NodeMCU на modbus RTU
Еще посмотрите последовательность передачи регистров и байт (последовательность) как заданы в контроллерах и у вас в есп. Может она воспринимает чужие пакеты как свои при этом
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 27
- Зарегистрирован: 14 янв 2023, 19:07
- Откуда: Астрахань
- Имя: Александр
Re: Ребутится NodeMCU на modbus RTU
Проверил, одинаково..
Функция чтения 03. Читаю у есп - 2 подряд регистра float с адреса 0, у соседа 24 подряд float с адреса 6. Без сдвигов. Адреса даже не пересекаются.
Порядок одинаковый - big-endian
Разбить на запросы попробую для эксперимента, но это не останется решением - шина и так иногда захлебывается.
Функция чтения 03. Читаю у есп - 2 подряд регистра float с адреса 0, у соседа 24 подряд float с адреса 6. Без сдвигов. Адреса даже не пересекаются.
Порядок одинаковый - big-endian
Разбить на запросы попробую для эксперимента, но это не останется решением - шина и так иногда захлебывается.
- Rovki
- Полковник
- Сообщения: 5710
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Re: Ребутится NodeMCU на modbus RTU
1. если при сбросе есп на входе GPIO 0 будет ноль , то есп перейдет в загрузку.Bullhorse писал(а): 24 фев 2025, 18:07 Всем привет!
Имеем работающую сеть 485 с несколькими устройствами.
Добавляем в эту сеть nodemcu на 8266 с переходником UART - 485 в режиме slave. Переходник подключен к единственному аппаратному UART nodemcu.
Проблема: при опросе мастером соседних устройств на шине (с другим id), а конкретно устройства, в котором за один раз опрашиваются почти два десятка регистров, моя esp, слушая эту болтовню, делает ребут. Если отключить на мастере шины длинный запрос, то проблем нет.
Что происходит? У меня пока такое предположение: в последовательности пролетающих по шине байтов есп выслушивает совпадение с командой перезагрузки, а поскольку сидим на аппаратном UART, Nodemcu честно выполняет команду..
Software serial использовать не могу, т.к. не нашел как настроить на два стоповых бита. esp32 ставить пока не пробовал из-за жадности и не решенной проблемы.
Вопросы:
1. можно ли отключать и включать режим программирования у esp8266 NodeMcu?
2. FLprog 8.2.3 умеет настраивать software serial на два стоповых бита?
3. Я угадал с причиной ребута? Может какой-то буфер переполняется?
3. скорее всего, ибо что бы понять тебе или не тебе адресован пакет его нужно целиком принять и расшифровать сначала адрес , даже если пакет адресован не тебе, это же последовательный интерфейс.
Что бы не гадать уменьшите длину пакета до 10 регистров и посмотрите ...
Электронщик до мозга костей и не только
-
- Рядовой
- Сообщения: 27
- Зарегистрирован: 14 янв 2023, 19:07
- Откуда: Астрахань
- Имя: Александр
Re: Ребутится NodeMCU на modbus RTU
Итак, всё сломалось. Информация немного не сюда, но является продолжением сабжа. Предыдущие версии писались на 8.2.3. Захотелось потестить 9.3.1. Тем более там можно и модбас tcp потестить, но модуль пока не доехал.. В 9.3.1. нарисовал прошивку заново - работает. Сменил UART0 на UART2 и всё.. Всё сломалось везде в двух версиях на esp32 и esp8266. Протокол работает только на 9600n1. Но сообщения в порт улетают при ручном ребуте контроллера на 115200 в т.ч. и по 485. Менял контроллеры, адаптеры 485... Есть ответ только при 9600n1. Адаптер и подключения исправны, первый контроллер на 8266 на том же адаптере 485 работает. Попытка зашить изначально рабочую версию на 19200n2 в другую 8266 тоже теперь не работает с модбасом. Основная программа по обработке сигналов пашет, но модбаса больше нет. Поскольку установлены только portable версии flprog, перераспаковал всё заново, но результата нет. В настройках папок каждой версии flprog указаны пути в свои папки по пути установки. Куда копать? Вычистить реестр от упоминаний flp?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя