pvvx
Активный участник сообщества
Web интерфейс с Modbus TCP и шлюзом на RTU RS-485.
Исходники и прошивки (начиная с версии 0.5.6 исходники и прошивки объединены с TCP2UART)
Вложена программа создания диска для Web-страниц (Windows).
Описание переменных находится в WebVars.xlsx архива и в самой прошивке Web-сервера.
Основа на библиотеке малого Web-сервера обсуждаемого в теме Разработка ‘библиотеки’ малого webсервера на esp8266.
Отличия проекта Modbus TCP RTU RS-485 от Web/TCP2UART всего в файле include\user_config.h, файлах web-диска (папка WEBFilesRS485) и webvars_rs485.xlsx.
Переключение проекта с TCP2UART на MODBUS RS-485 производится в include/user_config.h
Создание файла диска в make_webfs_rs485.bat или с помощью WEBFS22.exe, установив опции каталогов и других переменных.
1) При прошивке всегда ставим размер Flash 512 Кбайт (4Mbit)! Реальный размер определяется автоматически самой прошивкой.
2) Если Flash на модуле более 512 Кбайт, то после подключения к AP "ESP8266" требуется заливка диска программой WEBFS22.exe или эксплорером набрав http://192.168.4.1/fsupload. Можно записать WEBFiles.bin и программатором по адресу 0x80000.
При первом старте, после прошивки программы или сбросу установок, имеем AP станцию:
SSID/Name: ESP8266
Password: 0123456789
Режим доступа к AP по умолчанию 'OPEN'.
Имя AP и её пароль является именем и паролем для входа на "защищенные" страницы сервера и используется для записи диска по http://192.168.4.1/fsupload.
Настройки Web и прочие аналогично обсуждаемому в теме "Разработка ‘библиотеки’ малого webсервера на esp8266".
ESP имеет встроенное устройство Modbus. Номер этого устройства задается на странице настройки. Описание modbus переменных вложено на первой странице по ссылке "Info" или смотрите WebVars_RS485.xlsx (он вложен в архив). Данное устройство имеет 1000 ячеек для обмена между интерфейсами. Доступ к ним возможен из Modbus TCP, со стороны Modbus RTU RS-485 и через Web. Пример обращения из Web к переменным дан в http://192.168.4.1/sample.htm (ссылка в Web: "Debug and Test" -> Page Sample).
Варианты подключения полудуплексного интерфейса по UART (RS-485) к ESP8266:
1) К микросхеме драйвера шины RS-485 - без развязки: ADM3072E или SN65HVD12D, с развязкой: ADM2483BRWZ, и т.д. Тогда используются 3 сигнала от ESP: RX, TX, WR/RD_ENABLE
2) Напрямую c внешним устройством, как RX и TX. Линия TX, при больших скоростях, может потребовать дополнительной подтяжки к +3.3В, т.к. во время приема переключается как вход. Сигнал WR/RD_ENABLE не используется.
3) Напрямую c внешним устройством по одному проводу. Линия TX соединяется с RX. Сигнал WR/RD_ENABLE не используется. Но вешнее устройство тоже должно уметь работать по одному проводу.
Сигнал WR/RD_ENABLE (направление передачи) выставляется в "1" когда идет передача c вывода TX. Всё остальное время (чтение данных с RS-485) на нем "0".
Далее пытаемся из ESP8266 сделать "Панель Оператора" с макросами и обращениями к шине RS-485 как master. Пока реализована простая схема работы с "транзакторами", но прорабатывается как и что сделать для расширенного варианта и приветствуются разные предложения по этому вопросу.
---
Пример работы с внутренними переменными Modbus:
ESP8266 на шине Modbus RTU RS-485 как slave и данные в буфере обмена mdb[0..1000] имеют доступ со стороны внешнего устройства... Так-же доступ к любым внутренним переменным Modbus ESP имеется через Modbus TCP или Web.
Help:
Вики: Modbus
Установки Modbus.
Буфер обмена на 1000 ячеек Modbus ESP.
Modbus транзакторы.
Про Modbus буфер RTC памяти
Исходники и прошивки (начиная с версии 0.5.6 исходники и прошивки объединены с TCP2UART)
Вложена программа создания диска для Web-страниц (Windows).
Описание переменных находится в WebVars.xlsx архива и в самой прошивке Web-сервера.
Основа на библиотеке малого Web-сервера обсуждаемого в теме Разработка ‘библиотеки’ малого webсервера на esp8266.
Отличия проекта Modbus TCP RTU RS-485 от Web/TCP2UART всего в файле include\user_config.h, файлах web-диска (папка WEBFilesRS485) и webvars_rs485.xlsx.
Переключение проекта с TCP2UART на MODBUS RS-485 производится в include/user_config.h
Код:
#define PROGECT_NUMBER 1
// 0 -> проект "TCP2UART"
// 1 -> проект MODBUS-"RS485"
1) При прошивке всегда ставим размер Flash 512 Кбайт (4Mbit)! Реальный размер определяется автоматически самой прошивкой.
2) Если Flash на модуле более 512 Кбайт, то после подключения к AP "ESP8266" требуется заливка диска программой WEBFS22.exe или эксплорером набрав http://192.168.4.1/fsupload. Можно записать WEBFiles.bin и программатором по адресу 0x80000.
При первом старте, после прошивки программы или сбросу установок, имеем AP станцию:
SSID/Name: ESP8266
Password: 0123456789
Режим доступа к AP по умолчанию 'OPEN'.
Имя AP и её пароль является именем и паролем для входа на "защищенные" страницы сервера и используется для записи диска по http://192.168.4.1/fsupload.
Настройки Web и прочие аналогично обсуждаемому в теме "Разработка ‘библиотеки’ малого webсервера на esp8266".
ESP имеет встроенное устройство Modbus. Номер этого устройства задается на странице настройки. Описание modbus переменных вложено на первой странице по ссылке "Info" или смотрите WebVars_RS485.xlsx (он вложен в архив). Данное устройство имеет 1000 ячеек для обмена между интерфейсами. Доступ к ним возможен из Modbus TCP, со стороны Modbus RTU RS-485 и через Web. Пример обращения из Web к переменным дан в http://192.168.4.1/sample.htm (ссылка в Web: "Debug and Test" -> Page Sample).
Варианты подключения полудуплексного интерфейса по UART (RS-485) к ESP8266:
1) К микросхеме драйвера шины RS-485 - без развязки: ADM3072E или SN65HVD12D, с развязкой: ADM2483BRWZ, и т.д. Тогда используются 3 сигнала от ESP: RX, TX, WR/RD_ENABLE
2) Напрямую c внешним устройством, как RX и TX. Линия TX, при больших скоростях, может потребовать дополнительной подтяжки к +3.3В, т.к. во время приема переключается как вход. Сигнал WR/RD_ENABLE не используется.
3) Напрямую c внешним устройством по одному проводу. Линия TX соединяется с RX. Сигнал WR/RD_ENABLE не используется. Но вешнее устройство тоже должно уметь работать по одному проводу.
Сигнал WR/RD_ENABLE (направление передачи) выставляется в "1" когда идет передача c вывода TX. Всё остальное время (чтение данных с RS-485) на нем "0".
Далее пытаемся из ESP8266 сделать "Панель Оператора" с макросами и обращениями к шине RS-485 как master. Пока реализована простая схема работы с "транзакторами", но прорабатывается как и что сделать для расширенного варианта и приветствуются разные предложения по этому вопросу.
---
Пример работы с внутренними переменными Modbus:
HTML:
Write Mdb[68] string 'Hello!'<br>~mdba68=Hello!~
Read Mdb[68] string: '~mdba68~'<br>
<hr>
Write Mdb[0] dword -12345678<br>~mdbd0=-12345678~
Read Mdb[0] unsigned dword = ~mdbud0~<br>
Read Mdb[0] signed dword = ~mdbsd0~<br>
Read Mdb[0] hex dword = 0x~mdbhd0~<br>
Read Mdb[0] unsigned word = ~mdbuw0~<br>
Read Mdb[1] unsigned word = ~mdbuw1~<br>
Read Mdb[0] signed word = ~mdbsw0~<br>
Read Mdb[1] signed word = ~mdbsw1~<br>
Read Mdb[0] hex word = 0x~mdbhw0~<br>
Read Mdb[1] hex word = 0x~mdbhw1~<br>
<hr>
Write Mdb[4] 1,2,3,4,,555<br>~mdbw4=1,2,3,4,,555~
Mdb[4] = 0x~mdbhw4~<br>
Mdb[5] = 0x~mdbhw5~<br>
Mdb[6] = ~mdbxw6~<br>
Mdb[7] = ~mdbxw7~<br>
Mdb[8] = 0x~mdbhw8~<br>
Mdb[9] = 0x~mdbhw9~<br>
Help:
Вики: Modbus
Установки Modbus.
Буфер обмена на 1000 ячеек Modbus ESP.
Modbus транзакторы.
Про Modbus буфер RTC памяти
Последнее редактирование: