Проблемы с Modbus TCP через ESP 8266-01

Контроллеры на основе ESP8266
Ответить
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

Здравствуйте уважаемое сообщество. Есть вот такие устройства, где один мастер modbus TCP остальные slave TCP. На борту каждой платы стоит нано, которое собирает дискретные данные из датчиков и передает их по modbus rtu на ESP8266 - 01. ESP8266 - 01 Передает по modbus TCP на точно такой же modbus TCP master ESP8266 - 01 который на своей плате передает своей же нано по modbus rtu данные, где написана какая то логика и есть выход на включения скважины. Суть проекта в том, что в одном сарае есть скважин, а на удаленных сараях стоят емкости с датчиками по которым должна выключаться эта скважина. На каждой такой плате напаян ватчдог на ne555 для защиты от зависания нано. На ESP8266 - 01 gpio-2 запрограмированы импульсы через 500 мс и нано их принимает. Если импульсов нет то нано ресетит ESP8266, внутри ESP8266 также написано условие перезагружаться если нет коннекта через 8 секунд. Так вот теперь вопрос- слейв передает состояние датчика не более 10 минут затем перестает передавать. Нано и есп работает, но данные на мостер тср не идут пока не перезагружу. Почему подвисает сам протокол modbus TCP через ESP8266 - 01 по WI-FI?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05 авг 2018, 08:37
Имя: Константин
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение costy1957 »

Понял работаете без скады, надо бы подключить и пустить отдельным каналом какую либо переменную, если передачи не будет только тогда можно утверждать что виснет modbus tcp
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

costy1957 писал(а): 20 фев 2022, 20:17 Понял работаете без скады, надо бы подключить и пустить отдельным каналом какую либо переменную, если передачи не будет только тогда можно утверждать что виснет modbus tcp
ESP8266 - 01 слейва в сети пингуется. Нано на слейве не висит, а состояние датчика уже через 10-15 мин. не передается пока не перезагружу слейв. Скаду тоже пробовал поэтому чере нее и увидел что висит протокол modbus TCP.
costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05 авг 2018, 08:37
Имя: Константин
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение costy1957 »

Думаю увидели, что не передаются показания датчика, добавьте Random и посмотрите, до сих пор тср модбас ни у кого ни вис, от вас первого слышу.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

costy1957 писал(а): 20 фев 2022, 21:33 Думаю увидели, что не передаются показания датчика, добавьте Random и посмотрите, до сих пор тср модбас ни у кого ни вис, от вас первого слышу.
Принудительно изменял состояние датчика и смотрел скадой по tcp ip. Только перезагрузка помогала. Датчик дискретный.
costy1957
Сержант
Сообщения: 252
Зарегистрирован: 05 авг 2018, 08:37
Имя: Константин
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение costy1957 »

Какое растояние между мастером и слэйвом, и роутером, может где то сигнал вайфай слабоват и нужно ставить репитер. Подключайте скаду, создавайте изменяемые переменные, и гоняйте их между мастером и слэйвом, вплоть до входов выходов нано

Отправлено спустя 12 минут 9 секунд:
попробуйте создать точку доступа на мастере и слэйв подключите к этой точке доступа
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Проблемы с Modbus TCP через ESP 8266-01

Сообщение Ingwar »

Схемы питания не видно. Возможно перегревается стаб...
Попробуйте повесить емкость прям на ноги питания есп (100мк+)
Надеюсь 3.3В Вы берете не с ардуинки?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

Ingwar писал(а): 20 фев 2022, 23:44 Схемы питания не видно. Возможно перегревается стаб...
Попробуйте повесить емкость прям на ноги питания есп (100мк+)
Надеюсь 3.3В Вы берете не с ардуинки?
На плате видно импульсный блок питания 220/5/3.3. Напряжение 3.3В включено параллельно блока питания и ардуинки.

Отправлено спустя 3 минуты 30 секунд:
costy1957 писал(а): 20 фев 2022, 22:47 Какое растояние между мастером и слэйвом, и роутером, может где то сигнал вайфай слабоват и нужно ставить репитер. Подключайте скаду, создавайте изменяемые переменные, и гоняйте их между мастером и слэйвом, вплоть до входов выходов нано

Отправлено спустя 12 минут 9 секунд:
попробуйте создать точку доступа на мастере и слэйв подключите к этой точке доступа
Эти сараи размещены далеко друг от диуга. Вайфай не достанет. Поэтому используется локальная сеть видеонаблюднния на которой по проводам все вайфай роутеры обьеденены в одну подсеть.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Проблемы с Modbus TCP через ESP 8266-01

Сообщение Ingwar »

tronik1 писал(а): 21 фев 2022, 06:12 Напряжение 3.3В включено параллельно блока питания и ардуинки.
Если Вы про стаб, распаянный на блоке 220/5, то не вижу конденсаторов после него. И проверьте его на температуру после нескольких минут работы.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

Ingwar писал(а): 21 фев 2022, 06:30
tronik1 писал(а): 21 фев 2022, 06:12
Если Вы про стаб, распаянный на блоке 220/5, то не вижу конденсаторов после него. И проверьте его на температуру после нескольких минут работы.
Напряжение 3.3В включено параллельно блока питания и ардуинки.
Сама плата построяна так что нано смотрит за ESP8266 и если не будет импульсов с ноги gpio 2 то ресетнет ее. За наной смотрит ватчдог на ne555. Внутри самой ESP8266 есть часть программы которая смотрит за статусом вайфай соединения и в случае его потери перезагружает сама себя. Вся эта система работает но не более 10-15 минут, после чего перестают передаватьсся измененные данные. При осмотре видно что ESP8266 в сети пингуется и ее синий светодиод который привязан к gpio 2 мигает, что означает она не висит. Нано также работает. Но изменения состояния датчика уже не передается. ESP8266 с нано общается по аппаратному уарту по modbus RTU. Внутри самой ESP8266 происходит состветственно проброс между modbus rtu на modbus TCP. Всё работает 10-15минут а дальше нет реакции на изменение датчика
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Проблемы с Modbus TCP через ESP 8266-01

Сообщение Ingwar »

tronik1 писал(а): 21 фев 2022, 09:40 ESP8266 с нано общается по аппаратному уарту по modbus RTU
У Вас есть ослик посмотреть обмен (Rx/Tx)? Согласование уровней через делитель?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

Ingwar писал(а): 21 фев 2022, 10:00
tronik1 писал(а): 21 фев 2022, 09:40 ESP8266 с нано общается по аппаратному уарту по modbus RTU
У Вас есть ослик посмотреть обмен (Rx/Tx)? Согласование уровней через делитель?
Да. Через делитель.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Проблемы с Modbus TCP через ESP 8266-01

Сообщение Ingwar »

Осликом/анализатором (или на крайняк светодиодами) смотрите запросы/ответы и можете увидеть кто является "слабым звеном".

Отправлено спустя 4 минуты 50 секунд:
Попробуйте опрашивать мастером с компа через соответствующие программы. В них более гибко можно настраивать тайминги запросов, ожидания ответов и т.д.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Проблемы с Modbus TCP через ESP 8266-01

Сообщение Sancho »

tronik1 писал(а): 21 фев 2022, 09:40 ESP8266 с нано общается по аппаратному уарту по modbus RTU. Внутри самой ESP8266 происходит состветственно проброс между modbus rtu на modbus TCP.
Ох, опять эти секретные проекты...
Как происходит проброс - через регистры или целиком пакет?

Отправлено спустя 3 минуты 2 секунды:
Для простого шлюза, как я это понимаю, достаточно принять пакет от тср, убрать первые шесть байт, посчитать CRC оставшихся, дописать и отправить в uart. Принять из uart пакет, убрать два последних байта, добавить спереди шесть из запроса, отправить в тср.

Отправлено спустя 2 минуты 33 секунды:
На sim800 работает без проблем. Отработанный максимальный тест - месяц. Через каскаду облако. Делалось ради
Ingwar писал(а): 21 фев 2022, 09:17 академический интерес.
:)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
tronik1
Рядовой
Сообщения: 70
Зарегистрирован: 05 окт 2017, 12:34
Имя: Сергей
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Проблемы с Modbus TCP через ESP 8266-01

Сообщение tronik1 »

Выяснил что проблема передачи данных возникает если выключить и включить мастер. Иногда подхватывает обмен дальше, а иногда нужно обойти все обьекты и перезагрузить слейвы. Все будет нормально работать если сначала включить мастер, а потом только слейвы, но не наоборот. Решил проблему таким образом что мастер с частотой в одну секунду изменяет в каждом слейве один контрольный бит в коилсах, а слейв соответственно на него смотрит. Если этот бит не изменяется более 5 секунд, то слейв сам себя ресетит. Ну вот пока такой костыль для полной автономности оборудования.
Ответить

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

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

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