Как стать автором
Обновить

HTTP <AntexGate> Modbus конвертор Linux

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

В мире промышленной автоматизации интерфейсы HMI устарели, выглядят пугающе и бытует мнение, что чем дороже программно-аппаратный комплекс, тем лучше он будет работать. Молодёжь, которая умеет рисовать красивые "WEB-морды" в этот бизнес не суется, всех пугает так называемые Machine to machine протоколы и интерфейсы, индустрия обросла опытными мужиками, которые понимают как выглядит два байта данных в одном регистре Modbus.

Итак статья для тех, кто столкнулся с задачей преобразовать Modbus RTU TCP в протокол HTTP, который уже можно вытянуть на любую красочную "web-морду", либо другой сервис.

Представим, что вы пришли на производство, в котором уже стоят промышленные приборы - датчики температуры, станки, принимающие\передающие данные по протоколу Modbus RTU TCP, а Вам нужно закинуть некоторые данные в систему мониторинга. Действительно подавляющее большинство систем мониторинга не смогут опросить устройства по Modbus без специального программно-аппаратного шлюза.

Предлагаем бесплатное программное обеспечение Node-Red и контроллер AntexGate и получаем мощный программно-аппаратный комплекс для преобразования различных протоколов. В предыдущей статье мы уже рассмотрели конвертацию ModbusTCP2ModbusRTU.

Первое, что необходимо – это установить программный продукт Node-Red, это делается одним скриптом:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Сделать Node-Red после установки сервисом:

sudo systemctl enable nodered.service

Перезагружаем "железяку":

sudo reboot

Теперь попадаем в среду нашего программного конвертора Node-Red через web браузер по ссылке ip шлюза:1880

В настройках справа устанавливаем плагин node-red-contrib-modbus.

Установка node-red-contrib-modbus
Установка node-red-contrib-modbus
Установка node-red-contrib-modbus
Установка node-red-contrib-modbus

После того, как плагин установлен приступаем к настройке, делается это так же просто из web интерфейса. Нажимаем кнопку меню, импорт, примеры, Modbus-HTTP, импорт.

Импортируем пример Modbus-HTTP
Импортируем пример Modbus-HTTP
Импортируем пример Modbus-HTTP
Импортируем пример Modbus-HTTP

Итак, настройка почти закончилась, нам остается настроить наши модули опроса и записи на нужные параметры Modbus соединения.

Настройка Modbus RTU
Настройка Modbus RTU
Настройка Modbus RTU узел чтения 4 регистров, начина с 512
Настройка Modbus RTU узел чтения 4 регистров, начина с 512

Итак мы настраиваем все 4 узла. В моем случае это опрос Modbus RTU устройства с параметрами аппаратного порта /dev/ttyRS485-1 115200 - 8 - 1 - N. Еще 2 узла отвечают за автоматическое чтение из предустановленных регистров, поэтому я сразу настроил чтение массива 4х регистров начиная с 512, функцией (3) Read Holding Register. Кстати не забудьте собственно подключить конечное устройство к RS485 шине.

Теперь в блоке комментариев вы можете встретить API HTTP для взаимодействия, ниже с ними познакомимся.

## Read

### Flex Read

http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=3&address=0&quantity=1

http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=4&address=0&quantity=1

http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=3&address=0&quantity=5

http://ip:1880/modbus/flex/read?value=0&unitid=1&fc=4&address=0&quantity=5

### Read

http://ip:1880/modbus/read

## Write

### Test HTTP without Modbus

http://ip:1880/modbus/flex/write/test?value=[1,2,3,4,5]&unitid=1&fc=16&address=0&quantity=5


### Flex Write

http://ip:1880/modbus/flex/write?value=10&unitid=1&fc=6&address=0&quantity=1

http://ip:1880/modbus/flex/write?value=[1,2,3,4,5]&unitid=1&fc=16&address=0&quantity=5

### Write

http://ip:1880/modbus/write

Мне были интересны пару запросов, которые прекрасно сработали.

Сначала тестируем функцию записи - пишем значение 123 в Modbus RTU устройство с адресом 16 функцией 6 в регистр 512 ну и длина записи 1 значение. Можно писать и сразу массивы функцией 16 например [1,2,3,4,5] тогда и длина записи соответственно 5.

HTTP запрос записи
HTTP запрос записи

Теперь проверим, записалось ли наше значение в нужное адресное пространство и прочитаем состояние 5-ти регистров начиная с 512 функцией 3.

HTTP запрос чтения
HTTP запрос чтения

Как видим значение записалось. Теперь мы можем внедрить наши данные в любое web приложение.

Контроллер AntexGate в связке с Node-Red или другим софтом является отличным универсальным решением для обработки, пересылки и хранения данных. Прошу прощения за рекламу, однако выше представленный проект Вы можете реализовать на любом "железе" и любой ОС.

Присоединяйтесь к нашему сообществу в Telegram там инструкция к контроллеру.

"Железо" можно получить на тесты, пишите на почту: info@antexcloud.ru (на три месяца для ЮР лиц и ИП)

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Как вы работаете с Modbus RTU TCP на верхнем уровне?
57.14% Через OPC сервер4
28.57% СКАДА напрямую поддерживает2
14.29% Через конвертор протоколов1
14.29% С помощью Node-Red1
0% С помощью другого Open Source софта0
14.29% Панель HMI поддерживает1
0% С этим протоколом только динозавры работают0
Проголосовали 7 пользователей. Воздержались 2 пользователя.
Теги:
Хабы:
+2
Комментарии4

Публикации

Истории

Работа

Ближайшие события