[Модуль] ModBus (modbus)
Модератор: immortal
-
- Сообщения: 136
- Зарегистрирован: Вс июл 14, 2013 2:42 pm
- Благодарил (а): 6 раз
- Поблагодарили: 26 раз
Re: модуль modbus
Проси даташит на девайс у китайца. Мне так диммер пришел... просто диммер.. а какой адрес, что слать, какие регистры.. пару дней колупал китайца, потом он мне прислал мануал.
Попробуй Mosbus Poll под виндой самая нормальная софтина для отладки.
Есть у меня китайский модуль для подключения 8 штук ds1820 и на выходе у него modbus rtu (rs485) так вот у него структура регистров такая 0 - температура первого входа(без точки типа если 29.5 в регистре будет 295) 1 - знак первого входа(если выше нуля то тут 0, если ниже то 1) и так далее для всех 8 входов
Попробуй Mosbus Poll под виндой самая нормальная софтина для отладки.
Есть у меня китайский модуль для подключения 8 штук ds1820 и на выходе у него modbus rtu (rs485) так вот у него структура регистров такая 0 - температура первого входа(без точки типа если 29.5 в регистре будет 295) 1 - знак первого входа(если выше нуля то тут 0, если ниже то 1) и так далее для всех 8 входов
- cepxuo
- Сообщения: 98
- Зарегистрирован: Вт май 02, 2017 7:31 am
- Благодарил (а): 31 раз
- Поблагодарили: 6 раз
Re: модуль modbus
Делюсь новостями. Опытным путём выяснилось, что первые 2 значения это влажность х 10 и температура х 10.
Так как я переезжаю на Raspberry Pi, все настройки привожу для неё. Для работы с Modbus RTU нашёл утилитку mbpoll, которая по сути тот же modpoll, что и для винды. Данные, полученные этой утилиткой, я отправляю брокеру MQTT вот этим скриптом:
Так как это просто температура и влажность - запускать скрипт можно и кроном раз в минуту 
Так как я переезжаю на Raspberry Pi, все настройки привожу для неё. Для работы с Modbus RTU нашёл утилитку mbpoll, которая по сути тот же modpoll, что и для винды. Данные, полученные этой утилиткой, я отправляю брокеру MQTT вот этим скриптом:
Код: Выделить всё
#!/bin/bash
#Получаем данные
hum1=`/usr/local/bin/mbpoll -1 -t 3 -c 2 -m rtu -b 9600 -P none -4 /dev/ttyUSB0 | /bin/grep 1]: | /usr/bin/awk {'print $2'}`
tmp1=`/usr/local/bin/mbpoll -1 -t 3 -c 2 -m rtu -b 9600 -P none -4 /dev/ttyUSB0 | /bin/grep 2]: | /usr/bin/awk {'print $2'}`
#Приводим данные в надлежащий вид (делим на 10 и добавляем дробную часть)
hum="$((hum1 / 10)).$((hum1 % 10))"
tmp="$((tmp1 / 10)).$((tmp1 % 10))"
#Публикуем значения по MQTT
/usr/bin/mosquitto_pub -t SNS/HUM1 -m $hum
/usr/bin/mosquitto_pub -t SNS/TMP1 -m $tmp

- cepxuo
- Сообщения: 98
- Зарегистрирован: Вт май 02, 2017 7:31 am
- Благодарил (а): 31 раз
- Поблагодарили: 6 раз
Re: модуль modbus
в mbpoll есть параметр -t 4 для отправки 16-битных данных и -t 4:int или 4:float или 4:hex для отправки 32-битных данных.SerG123 писал(а):Как отправить с брокера MQTT обратно в mbpoll?
Ну а как читать брокера средствами mosquitto я не нашёл. Всё, что попадалось - отсылки в сторону MQTT-клиентов, например http://www.eclipse.org/paho/
- Рейтинг: 1.16%
-
- Сообщения: 5
- Зарегистрирован: Пт июн 16, 2017 12:12 pm
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Re: модуль modbus
Нашёл такой пример:
Скрипт подписывается на топик и отправляет значение сообщение в mbpoll.
Код: Выделить всё
#!/bin/bash
while read msd
do
mbpoll -m tcp -t4 -r2 192.168.0.100 $msd
echo $msd
done < <(mosquitto_sub -t REG1)
- Рейтинг: 1.16%
-
- Сообщения: 5
- Зарегистрирован: Пт июн 16, 2017 12:12 pm
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Re: модуль modbus
Для тех, кому нужен рабочий шлюз Modbus TCP / RTU на esp8266 https://esp8266.ru/forum/threads/modbus ... erver.911/
- Рейтинг: 1.16%
- cepxuo
- Сообщения: 98
- Зарегистрирован: Вт май 02, 2017 7:31 am
- Благодарил (а): 31 раз
- Поблагодарили: 6 раз
Re: модуль modbus
а я буду такую схемку собирать. https://www.youtube.com/watch?v=hg7qX342Iw4SerG123 писал(а):Для тех, кому нужен рабочий шлюз Modbus TCP / RTU на esp8266
Жду детальки из Китая
-
- Сообщения: 5
- Зарегистрирован: Пт июн 16, 2017 12:12 pm
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Re: модуль modbus
Я его тоже собирал.Только модуль modbus в majordomo плохо работает со шлюзами Modbus TCP--RTU.
-
- Сообщения: 5
- Зарегистрирован: Пт июн 16, 2017 12:12 pm
- Благодарил (а): 1 раз
- Поблагодарили: 2 раза
Re: модуль modbus
Оба шлюза считывают регистры хорошо. Но стоит только быстро записывать, то есть быстро нажимать выключатели в панели или на сцене, начинаются глюки.
В первом варианте: majordomo зависает на несколько минут. https://esp8266.ru/forum/threads/modbus ... erver.911/
Во втором варианте: все выключатели, димеры в панели и на сцене сбрасываются в ноль, после всё виснет на несколько минут. https://www.youtube.com/watch?v=hg7qX342Iw4
Оба шлюза в modbus poll работают без глюков.
P.S. Модуль modbus в majordomo заточен только под устройства modbus tsp, работающие без конвертации в modbus rtu.
В первом варианте: majordomo зависает на несколько минут. https://esp8266.ru/forum/threads/modbus ... erver.911/
Во втором варианте: все выключатели, димеры в панели и на сцене сбрасываются в ноль, после всё виснет на несколько минут. https://www.youtube.com/watch?v=hg7qX342Iw4
Оба шлюза в modbus poll работают без глюков.
P.S. Модуль modbus в majordomo заточен только под устройства modbus tsp, работающие без конвертации в modbus rtu.
- cepxuo
- Сообщения: 98
- Зарегистрирован: Вт май 02, 2017 7:31 am
- Благодарил (а): 31 раз
- Поблагодарили: 6 раз
Re: модуль modbus
Ну мне как раз только читать и надо. Буду брать показания с такого же счётчика и с датчика температуры/влажности, который взял на пробу, пощупать что такое modbus. Вот и пригодится в коридоре 
