• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужен Шлюз ModbusRTU-MQTT

max_code

New member
Добрый день.
Планирую использовать стандартное железо ESP8266, nodemcu, wemos + TTL -> RS485.
Назовем его "ESP"
Необходимо разработать прошивку:
или предложить другое железо цена/надежность/качество.

Железка нужна для управления и сбора данных с ряда устройств: Расходомер, Контроллер, Преобразователь частоты .. и т.д. Все они с интерфейсом RS485 и протоколом MODBUS RTU.

ТЗ на примере работы ESP и "Контроллера":
Существует контроллер 8 входов, 8 выходов.
Он работает по своей программе и справляется с локальным управлением. Планируется расположить рядом "ESP", который с одной стороны общается с "контроллером" по Modbus RTU, а с другой с брокером по MQTT. Нужно смотреть состояние входов и смотреть или изменить состояние выходов.

Данные 16 битные (каждый бит соответствует состоянию входа или выхода)
Входы можно только читать (функция 03H)
Выходы можно и читать, и писать (функции 03H, 06H)

Устройство "ESP" является шлюзом между Контроллером, MQTT брокером (например cloudmqtt.com или развернутым на основе Mosquitto или любой другой) и стандартной программой MQTT клиент на мобильном устройстве (например IoTmanager, Linear MQTT Dashboard).

Получается цепочка:
Контроллер -- "ESP" -- MQTT broker -- MQTT client

Каждой MOBDUS команде соответствует MQTT топик.

Пример:
MQTT client отправляет топик - client/q1/1, "ESP" читает топик и формирует modbus команду (010600070001F9CB), посылает ее контроллеру, ждет ответ и если все хорошо, то отправляет брокеру подтверждение plc/q1/1.

Путем замены файла\таблицы конфигурации, последующей перекомпиляции и заливки в "ESP" можно изменить список MQTT топиков и соответствующим им MODBUS командам.

Пример файла\таблицы конфигурации (можно и без него):

[Serial port]

Baud 9600

DataBits 8

StopBits 1

[Addr1]

Addr1 1

[MQTT1]

client/q1/1 (Addr0600070001)

plc/q1/1

client/q1/0 (Addr0600070000)

plc/q1/0

client/q2/1 (Addr0600070001)

plc/q2/1

client/q2/0 (Addr0600070000)

plc/q2/0



client/i1 (Addr0300050001)

plc/i1/x

client/i2 (Addr0300050001)

plc/i2/x



[Addr2]
...

[MQTT2]



Сколько это будет стоить? Отзовитесь если кому интересно.
 
Сверху Снизу