Ребутится NodeMCU на modbus RTU

Использование протокола Modbus
Ответить
Bullhorse
Рядовой
Сообщения: 27
Зарегистрирован: 14 янв 2023, 19:07
Откуда: Астрахань
Имя: Александр

Ребутится NodeMCU на modbus RTU

Сообщение Bullhorse »

Всем привет!
Имеем работающую сеть 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

Сообщение Rovki »

Групповая запись\чтение в ФЛпрог рассчитана на количество регистров не боле 10 (вроде) , уменьшите у себя это количество регистров в одном пакете
Электронщик до мозга костей и не только
Bullhorse
Рядовой
Сообщения: 27
Зарегистрирован: 14 янв 2023, 19:07
Откуда: Астрахань
Имя: Александр

Re: Ребутится NodeMCU на modbus RTU

Сообщение Bullhorse »

Уточню: большой пачкой происходит обмен с другим устройством, с другим адресом, а не с моим. Всё равно будет падать?
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: Ребутится NodeMCU на modbus RTU

Сообщение Rovki »

Bullhorse писал(а): 24 фев 2025, 18:24 Уточню: большой пачкой происходит обмен с другим устройством, с другим адресом, а не с моим. Всё равно будет падать?
а другое устройство на чем сделано и запрограммировано ?
Электронщик до мозга костей и не только
Bullhorse
Рядовой
Сообщения: 27
Зарегистрирован: 14 янв 2023, 19:07
Откуда: Астрахань
Имя: Александр

Re: Ребутится NodeMCU на modbus RTU

Сообщение Bullhorse »

PD194E-9K3T - заводское. Не разбирал ))
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: Ребутится NodeMCU на modbus RTU

Сообщение Rovki »

Еще посмотрите последовательность передачи регистров и байт (последовательность) как заданы в контроллерах и у вас в есп. Может она воспринимает чужие пакеты как свои при этом
Электронщик до мозга костей и не только
Bullhorse
Рядовой
Сообщения: 27
Зарегистрирован: 14 янв 2023, 19:07
Откуда: Астрахань
Имя: Александр

Re: Ребутится NodeMCU на modbus RTU

Сообщение Bullhorse »

Проверил, одинаково..
Функция чтения 03. Читаю у есп - 2 подряд регистра float с адреса 0, у соседа 24 подряд float с адреса 6. Без сдвигов. Адреса даже не пересекаются.
Порядок одинаковый - big-endian
Разбить на запросы попробую для эксперимента, но это не останется решением - шина и так иногда захлебывается.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: Ребутится NodeMCU на modbus RTU

Сообщение Rovki »

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. Я угадал с причиной ребута? Может какой-то буфер переполняется?
1. если при сбросе есп на входе GPIO 0 будет ноль , то есп перейдет в загрузку.
3. скорее всего, ибо что бы понять тебе или не тебе адресован пакет его нужно целиком принять и расшифровать сначала адрес , даже если пакет адресован не тебе, это же последовательный интерфейс.
Что бы не гадать уменьшите длину пакета до 10 регистров и посмотрите ...
Электронщик до мозга костей и не только
Bullhorse
Рядовой
Сообщения: 27
Зарегистрирован: 14 янв 2023, 19:07
Откуда: Астрахань
Имя: Александр

Re: Ребутится NodeMCU на modbus RTU

Сообщение Bullhorse »

Итак, всё сломалось. Информация немного не сюда, но является продолжением сабжа. Предыдущие версии писались на 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?
Ответить

Вернуться в «Modbus»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя