• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Modbus TCP / RTU RS-485 + WEB server

Dito85

New member
У меня у одного если во время работы ESP оторвать питание с ADM-ки, то опрос со стороны RTU полностью пропадает? Даже взведение StartFlag на транзакторе приводит только к увеличению счетчика fifo, счетчики ошибок тоже ничего не показывают. В остальном ESP полностью работоспособна как со стороны Web, так и со стороны TCP. Помогает только перезапуск модуля по питанию
 

Novi

New member
Здравствуйте. Я правильно понимаю разработку, что она полностью прозрачно транслирует сетевой MODBUS TCP-IP из изернет к slave MODBUS RTU устройство через RS-485 на другом выходе?

Кроме того, в устройстве зашита страница WEB сервера видная из сети на браузере и в окошках видны данные прописанные из RS-485 от slave устройства, и в других окошках ввода данных со страницы браузера можно ввести данные для записи их по MODBUS RTU через RS-485 в slave MODBUS RTU устройства подключенного к RS-485 ?
 

pvvx

Активный участник сообщества
У меня у одного если во время работы ESP оторвать питание с ADM-ки, то опрос со стороны RTU полностью пропадает? Даже взведение StartFlag на транзакторе приводит только к увеличению счетчика fifo, счетчики ошибок тоже ничего не показывают. В остальном ESP полностью работоспособна как со стороны Web, так и со стороны TCP. Помогает только перезапуск модуля по питанию
Про это писал. Ещё "не выловлено", т.к. занят другим и полных тестов пока не могу сделать:
Там ещё есть дырка... встает, при невыясненных причинах... но для этого надо ломать саму шину RS-485 - отрывать провода на ходу и т.д. ... :) Какое-то прерывание обрабатывается наперед правильного течения - это выловлю со временем, когда буду оптимизить его и дописывать для master...
Помогите найти последовательность как надо дергать ножки, чтобы вошел в этот "стопор". Дергать просто контактами с дребезгом при отрывании не дает никакой информации... Как найдется последовательность с условиями - сразу исправлю...
-----
А возможно ли в ESP8266 реализовать юарт 9 бит режим?
Он там есть. В настройках parity - 1 stop.
-------
Здравствуйте. Я правильно понимаю разработку, что она полностью прозрачно транслирует сетевой MODBUS TCP-IP из изернет к slave MODBUS RTU устройство через RS-485 на другом выходе?

Кроме того, в устройстве зашита страница WEB сервера видная из сети на браузере и в окошках видны данные прописанные из RS-485 от slave устройства, и в других окошках ввода данных со страницы браузера можно ввести данные для записи их по MODBUS RTU через RS-485 в slave MODBUS RTU устройства подключенного к RS-485 ?
Всё что описали, то и работает.
 
Последнее редактирование:

pvvx

Активный участник сообщества
pvvx, маленькая заметка по схеме из Вашего репозитория - у Вас на схеме перепутаны входы на 485 драйвере..
А A-B резисторы надо наоборот к VCC и GND? Что-то рисовал кое как и похоже всё перепутал :) Работать то оно будет и так и сяк, но ... :)
 

Dito85

New member
Помогите найти последовательность как надо дергать ножки, чтобы вошел в этот "стопор".
Я в качестве преобразователя интерфейса использую вот такую плату
http://ru.aliexpress.com/item/new-a...48&btsid=0a1dc802-489a-4da1-ada8-d85c65c1d61a
И ESP и эта плата питается от одного стабилизатора. Как только с платы преобразователя откидываю плюс, ESP стабильно останавливает опрос RTU.
 

pvvx

Активный участник сообщества

MagISTRa

New member
Переключение проекта с TCP2UART на MODBUS RS-485 производится в include/user_config.h
Выбрал проект =1 - скомпилировал
В веб интерфейсе страница - Main TCP-UART Settings - а не Main Modbus Settings
Так и должно быть ?
Как настраивать ModBus ? четность ? Скорость ?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Выбрал проект =1 - скомпилировал
В веб интерфейсе страница - Main TCP-UART Settings - а не Main Modbus Settings
Так и должно быть ?
Как настраивать ModBus ? четность ? Скорость ?
Web-диск то тоже разный. Из папочки WEBFilesRS485. Собирается make_webfs_rs485.bat в webbin\WEBFiles.bin.
 

Dito85

New member
Найдено и убито. Алгоритм частично сменен.
Странно, у меня всё по прежнему (. Снимаю питание с adm-ки и опрос со стороны RTU останавливается. Уже три раза перепроверил, прошивку перезалил, результат стабилен - ВИСНЕТ (((
 

Dito85

New member
Поторопился я похоже. Сейчас прошил с исходников. Теперь даже ModBus настроить нельзя. Вместо полях настройки скорости и задержек знаки "?". Ввожу настройки, нажимаю Set Configuration, опять знаки вопросов появляются. Транзакторы тоже добавить нельзя
 

Вложения

  • 101 KB Просмотры: 120

pvvx

Активный участник сообщества
Поторопился я похоже. Сейчас прошил с исходников
В релизах готовая прошивка есть https://github.com/pvvx/esp8266web/releases/download/0.5.7/fullflash_and_webfs_057.zip
И всё возможно, но теперь знаю что там виснет... Только надо придумать как разрешить.
Когда RX садим на GND более времени паузы ответа, и есть очередь новых команд, тогда останавливается. Если ошибки или уровень нуля менее - то я "починил", а это забыл. :)
 
Последнее редактирование:

Dito85

New member
Спасибо! Готовая прошивка запустилась. Проблема с зависанием осталась
 

pvvx

Активный участник сообщества
Спасибо! Готовая прошивка запустилась. Проблема с зависанием осталась
В процессе ремонта. Как сделаю - сообщу. Слишком много условий для тестов на во все стороны работы этой прошивки... От того и долго...
 

pvvx

Активный участник сообщества
Вроде работает... скинул всё в git, проверяйте...
Замучала она меня - всё равно, при переключениях в разные стороны slave/master c доступом по RS-485, TCP одновременно и в комбинациях при переключениях на ходу всего транзактор останавливается, если нет сигналов на линии и замыкал выходы ESP8266 проводками... Но при первом же сигнале на линии RX пошел. Повторить пока не получилось - может у вас будет удачнее и методичнее... Потом догляжу...
Вот как не запутаться в таких связях (?) и все через ESP одновременно:
WS-WEB-ESP-MDBTCP-MDBRTU.gif
Два мастера на одной шине RS-485 к одному slave :) и уживаются прекрасно. Первый мастер RTU ESP (транзакторы), второй - на TCP у компа - его запросы распределяет ESP на шину RS-485... управление через websocket на ESP...
Это, что на картинке, работало непрерывно <mactime>0x0000000fb59cc6dd</mactime> (0x000000fb59cc6dd/60000000/60 = 18.742072 часов), за это время modbus poll на TCP набрала 200 тысяч транзакций. Потом отключил.
 
Последнее редактирование:

Alex

Member
../Makefile:289: recipe for target '.output/eagle/image/eagle.app.v6.out' failed
mingw32-make[1]: *** [.output/eagle/image/eagle.app.v6.out] Error 1
C:/ESP8266/esp8266web-master/Makefile:238: recipe for target '.subdirs' failed
mingw32-make.exe: *** [.subdirs] Error 2
 

Dito85

New member
Вроде работает... скинул всё в git, проверяйте...
Попробовал! Отлично работает, спасибо Вам! Буду тестировать дальше... Скажите, а ограничение в 10 транзакторов, чем то обусловлено или можно увеличить их колличество? И еще вопросик - почему если ESP перезапустить без доп питания на пятую ногу, то область памяти RTC не обнуляется, а захламляется случайными значениями?
 

A_D

Active member
pvvx, извиняюсь, давно не появлялся на форуме, работы много..
по резисторам и общему подключению скопируйте со схемы во втором сообщении отсюда, там вроде как нигде не накосячил)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Скажите, а ограничение в 10 транзакторов, чем то обусловлено или можно увеличить их колличество?
А цель?
По практике работы с пром. оборудованием, со сложными системами, больше порядка 10 шт не требуется - по 2..3 шт на одни внешний контроллер (один для записи в него конфигурации, другой для считывания конфигурации, и третий для чтения значений). Бывают исключения, но у нас же не десяток внешних контроллеров на шине?
И еще вопросик - почему если ESP перезапустить без доп питания на пятую ногу, то область памяти RTC не обнуляется, а захламляется случайными значениями?
По тому что питания на RTC у вас нет. Не надо трогать CHIP_EN и всё будет хорошо, если общее питание всегда идет. Он отключает внутренний стабилизатор на 1.1В питания RTC
 
Сверху Снизу