ModBus
ModBus — это программная подсистема прошивки Lavritech, которая отвечает за работу контроллера с ModBus устройствами. Настройку этой подсистемы можно разделить на несколько этапов:
- Аппаратный модуль ModBus
- Предустановки ModBus в «Конструкторе прошивок»
- Общие настройки ModBus
- Настройки «Discrete device»
Аппаратный модуль ModBus
Для того, чтобы контроллер Lavritech мог работать с ModBus, в него должен быть установлен соответствующий модуль. Например, один из типовых модулей LTE2-RS485-SM или LTE2-RS485-ISO.
Как правило, такие модули устанавливаются в SOCKET1 в разъём WB1.1 или WB1.2. По умолчанию — в разъём WB1.2. В зависимости от места установки аппаратного модуля, отличаются и номера GPIO, обслуживающие работу ModBus.
Разъём WB1.1 — RXD(25), TXD(26)
Разъём WB1.2 — RXD(16), TXD(17) *по умолчанию
Примечание. Для работы с ModBus соответствующий разъём (WB1.1 или WB1.2) должен быть при помощи резисторов на плате сконфигурирован как UART.
Предустановки ModBus в «Конструкторе прошивок»
Обычно пользователь получает контроллер Lavritech с уже установленной прошивкой и ему не требуется производить какие-либо действия в «Конструкторе прошивок». Это может понадобиться только в особых случаях при перекомпиляции прошивки. Информация в этом разделе представлена только для ознакомления — вам скорее всего не понадобиться перекомпилировать прошивку.
Здесь:
RXD/TXD — задаются номера RXD(16), TXD(17) *по умолчанию.
RTS — номер GPIO, который используется для контроля направления потока передачи данных. В контроллерах Lavritech обычно используются модули с автоматическим контролем направления передачи, поэтому значение этого поля «-1».
Номер UART — это номер UART микроконтроллера ESP32 (по умолчанию, 2).
Количество устройств Input Registers — здесь указывается максимальное количество ModBus устройств с которыми может работать контроллер.
2 stop bits — настройка ModBus протокола (по умолчанию включена).
Количество дискретных модулей — максимальное количество ModBus устройств с «цифровыми» регистрами.
старый формат — настройка для старых типов модулей (не актуально для контроллеров Lavritech).
Общие настройки ModBus
Настройки ModBus контроллеров Lavritech находятся в соответствующем пункте меню веб-интерфейса.
При нажатии на этот пункт меню открывается страница общих настроек ModBus, которая разделена на несколько частей:
В первом блоке:
Scan devices — сканер ModBus устройств, пока находится в разработке (временно нефункционален).
Discrete device — о настройках устройств с цифровыми регистрами см. раздел ниже на этой странице.
В следующем разделе представлен интерфейс настройки работы с ModBus устройствами. На скриншоте видно, что в данной конфигурации нам доступа работа с тремя ModBus устройствами (см. настройку в «Конфигураторе прошивок» выше).
Здесь можно выбрать готовый шаблон для работы с устройством и задать его адрес на шине.
Выбор шаблона Modbus устройства
Список шаблонов и описание метрик поддерживаемых устройств
Тут представлен довольно обширный список популярных Modbus устройств, на данный момент поддерживаемых системой. Этот список постоянно расширяется.
Список шаблонов и описание метрик поддерживаемых устройств
С использованием выбранного шаблона, Modbus устройство легко распознаётся и встраивается в экосистему. Для каждого из поддерживаемых устройств реализовано считывание основных параметров, с возможностью вывода информации в веб-интерфейс, а также множеством других способов. Таким образом упрощается работа с устройством, и от пользователя не требуется изучать описание карты Modbus-регистров на устройство и самостоятельно программировать работу с ним.
Примечание. Если Вашего конкретного устройства нет в списке, то можно обратиться в тех. поддержку Lavritech и согласовать с ней добавление соответствующего шаблона в прошивку.
Write register
Следующий раздел общих настроек предоставляет интерфейс для изменения значений отдельных регистров Modbus устройств.
Это может понадобиться в случае тонкой настройки подключённых ModBus устройств, когда требуется изменить значение конкретного регистра(ов).
Настройки «Discrete device»
Настройка работы устройств с «цифровыми регистрами» («Discrete device») осуществляется на отдельной странице. На скриншоте ниже видно, что в нашем распоряжении имеется до четырёх таких устройств (см. выше на этой странице настройки в «Конфигураторе прошивок»). Обычно это блоки реле на выход и «Digital Input» устройства на вход.
Каждому устройству можно задать работу с конкретным типом регистров («Discrete Coils» или «Discrete Input») или отключить работу с устройством («Disable»).
Здесь также можно задать адрес ModBus устройства на шине, стартовый регистр (обычно «0» для устройств Wiren Board) в выбранном типе (пуле) регистров и количество регистров для одновременного чтения (*6 в данном случае).
Система также информирует нас о том, что шести выбранным значениям соответствуют виртуальные GPIO с номерами от 180 до 185.
Примечание. Если требуется работа с большим количеством регистров, то общее их количество можно разбить на меньшие диапазоны и присвоить их разным отдельным устройствам (1-4).
Управление через GET запрос
Запись RAW данных http://[IP]/modbus&write=данные в hex строкой, crc считается автоматически, его передавать не требуется! В ответ на запрос должен прийти ответ в hex формате (у noOS нет ответа).
Запись регистра http://[IP]/modbus?addr=X?reg=Y&data=Z Где X- адрес устройства, Y - номер регистра. Z - значение.
Запись метрики http://[IP]/modbus&dev=X&num=Y&data=Z Где X- номер устройства, Y - номер метрики. Z - значение, может быть дробное число. Поддерживается запись только у типа регистров Holding Registers. Поддерживается на данный момент только тип шаблона r.
Управление через MQTT
Топик login/hostname/mbraw - запись raw данных hex строкой, crc считается автоматически, его передавать не требуется!
Топик login/hostname/mbregX/Y - запись регистра. Где X- адрес устройства, Y - номер регистра
Если тип регистра настроенных данных Holding Registers , то в его топик можно записать новое значение. Поддерживается на данный момент только тип шаблона r.
Связанные темы
Modbus шаблоны
Настройка опций
MCP23008
Где купить
Купить оборудование Lavritech можно в официальном интернет-магазине.