Страница 1 из 1

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

Добавлено: 20.02.2022{, 20:06}
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?

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

Добавлено: 20.02.2022{, 20:17}
costy1957
Понял работаете без скады, надо бы подключить и пустить отдельным каналом какую либо переменную, если передачи не будет только тогда можно утверждать что виснет modbus tcp

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

Добавлено: 20.02.2022{, 20:27}
tronik1
costy1957 писал(а):
20.02.2022{, 20:17}
Понял работаете без скады, надо бы подключить и пустить отдельным каналом какую либо переменную, если передачи не будет только тогда можно утверждать что виснет modbus tcp
ESP8266 - 01 слейва в сети пингуется. Нано на слейве не висит, а состояние датчика уже через 10-15 мин. не передается пока не перезагружу слейв. Скаду тоже пробовал поэтому чере нее и увидел что висит протокол modbus TCP.

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

Добавлено: 20.02.2022{, 21:33}
costy1957
Думаю увидели, что не передаются показания датчика, добавьте Random и посмотрите, до сих пор тср модбас ни у кого ни вис, от вас первого слышу.

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

Добавлено: 20.02.2022{, 21:40}
tronik1
costy1957 писал(а):
20.02.2022{, 21:33}
Думаю увидели, что не передаются показания датчика, добавьте Random и посмотрите, до сих пор тср модбас ни у кого ни вис, от вас первого слышу.
Принудительно изменял состояние датчика и смотрел скадой по tcp ip. Только перезагрузка помогала. Датчик дискретный.

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

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

Отправлено спустя 12 минут 9 секунд:
попробуйте создать точку доступа на мастере и слэйв подключите к этой точке доступа

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

Добавлено: 20.02.2022{, 23:44}
Ingwar
Схемы питания не видно. Возможно перегревается стаб...
Попробуйте повесить емкость прям на ноги питания есп (100мк+)
Надеюсь 3.3В Вы берете не с ардуинки?

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

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

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

Отправлено спустя 12 минут 9 секунд:
попробуйте создать точку доступа на мастере и слэйв подключите к этой точке доступа
Эти сараи размещены далеко друг от диуга. Вайфай не достанет. Поэтому используется локальная сеть видеонаблюднния на которой по проводам все вайфай роутеры обьеденены в одну подсеть.

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

Добавлено: 21.02.2022{, 06:30}
Ingwar
tronik1 писал(а):
21.02.2022{, 06:12}
Напряжение 3.3В включено параллельно блока питания и ардуинки.
Если Вы про стаб, распаянный на блоке 220/5, то не вижу конденсаторов после него. И проверьте его на температуру после нескольких минут работы.

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

Добавлено: 21.02.2022{, 09:40}
tronik1
Ingwar писал(а):
21.02.2022{, 06:30}
tronik1 писал(а):
21.02.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минут а дальше нет реакции на изменение датчика

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

Добавлено: 21.02.2022{, 10:00}
Ingwar
tronik1 писал(а):
21.02.2022{, 09:40}
ESP8266 с нано общается по аппаратному уарту по modbus RTU
У Вас есть ослик посмотреть обмен (Rx/Tx)? Согласование уровней через делитель?

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

Добавлено: 21.02.2022{, 10:27}
tronik1
Ingwar писал(а):
21.02.2022{, 10:00}
tronik1 писал(а):
21.02.2022{, 09:40}
ESP8266 с нано общается по аппаратному уарту по modbus RTU
У Вас есть ослик посмотреть обмен (Rx/Tx)? Согласование уровней через делитель?
Да. Через делитель.

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

Добавлено: 21.02.2022{, 10:37}
Ingwar
Осликом/анализатором (или на крайняк светодиодами) смотрите запросы/ответы и можете увидеть кто является "слабым звеном".

Отправлено спустя 4 минуты 50 секунд:
Попробуйте опрашивать мастером с компа через соответствующие программы. В них более гибко можно настраивать тайминги запросов, ожидания ответов и т.д.

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

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

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

Отправлено спустя 2 минуты 33 секунды:
На sim800 работает без проблем. Отработанный максимальный тест - месяц. Через каскаду облако. Делалось ради
Ingwar писал(а):
21.02.2022{, 09:17}
академический интерес.
:)

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

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