• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 Просмотры: 121

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
 
Сверху Снизу