Почему в WB-MAI6 нет поддержки стандартных датчиков с выходом 0.5-4.5В?
Зато есть какие-то 0-1В и 0-10В.
Добрый день.
А что за стандарт датчиков?
Вообще - совершенно ничего не мешает использовать пересчет
Датчиков с выходом 0.5-4.5В сотни.
И на алиэкспрессе можно найти и заказать и просто в промышленном применении на машинах, станках. Где угодно
А датчиков с выходом 0-1 и 0-10 я вообще никогда не видел.
С пересчётом возиться очень удобно конечно. Это аргумент.
как я интересно буду делать пересчёт, если у меня выходного сигнала 0 вообще не бывает?
Vout начинается только от 0,5В
Vcc = 5В
Vout = Vcc x (0,6667xP + 0,1)
это вот так пересчёт работает?
И ещё почему в топике wb-mai6_51/IN 6 P Voltage я вижу напряжение с тремя цифрами после запятой, а пересчитанное значение всегда целое?
Точность нулевая.
Надо хоть одну цифру после запятой сделать
вот пожалуйста о чём я и говорил
Есть 2 датчика 0.5…4.5В.
Сигнал 0.5В соответствует давлению 0 бар.
Сигнал 4.5В соответствует давлению 12 бар.
Прямая пропорциональная зависимость описывается формулой Vout = Vcc x (0,6667xP/10 + 0,1)
Vcc = 5В
Р - давление в бар
Если подставить 0В, то минимальное значение должно быть -1,5 бар.
Если подставить 10В, то максимальное значение должно быть 28,5 бар.
В настройках wb-mai6 можно выбрать только 0-10В и минимальное и максимальное значение только целые.
Подставляю -1 и 28.
И в топиках MQTT вижу результат
А теперь проверяем по формуле, которую выводим из первоначальной P = (Vout / Vcc - 0,1) x 10 / 0,6667
Если подставить 0,883В, то давление должно быть 1,149 бар, а /devices/wb-mai6_51/controls/IN 5 P Value = 2
Если подставить 1,164В, то давление должно быть 1,992 бар.
Нормальное округление
Потому что значение в регистрах - целое.
Типичная настройка для подобных датчиков - указать минимальное ожидаемое значение в Х408 регистр, максимальное - в Х40a
Соответственно 500 и 4500, в милливольтах.
где эти регистры настраивать?
С помощью modbus_client, например.
Допустим я что-то поменяю в регистрах устройства.
Как мне потом проверить, что всё правильно изменилось?
И как в случае чего сбросить в заводские настройки?
Самый первый пример чтения адреса при помощи modbus_client у меня вызывает большие вопросы.
В примере команда modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a2 -t0x03 -r128 даёт результат
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[02][03][00][80][00][01][85][D1]
Waiting for a confirmation...
<02><03><02><00><02><7D><85>
SUCCESS: read 1 of elements:
Data: 0x0002
Насколько я понял параметр -a2 означает, что мы запрашиваем адрес устройства, у которого на корпусе написан ID2 и получаем ответ Data: 0x0002
А у меня WB-MAI6 имеет ID51 , но команда modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a51 -t0x03 -r128 выдаёт ответ Data: 0x0033
root@wirenboard-AM363YRR:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a51 -t0x03 -r128
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[33][03][00][80][00][01][81][F0]
Waiting for a confirmation...
<33><03><02><00><33><C1><95>
SUCCESS: read 1 of elements:
Data: 0x0033
А по остальным вопросам?