WB3.5
Подключил SDM120, выбрал шаблон, скорость 2400 (по паспорту) - через несколько секунд появились значения 3х параметров, остальные не появляются.
В логах сыплет ошибками:
Sep 3 20:46:46 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 30 of slave modbus:1
Sep 3 20:46:46 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 70 of slave modbus:1
Sep 3 20:46:46 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 342 of slave modbus:1
Sep 3 20:46:46 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 0 of slave modbus:1
Sep 3 20:46:46 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 6 of slave modbus:1
Sep 3 20:46:47 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 12 of slave modbus:1
Sep 3 20:46:47 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 18 of slave modbus:1
Sep 3 20:46:47 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 24 of slave modbus:1
Sep 3 20:46:47 wirenboard-AQY4Q7P2 user.notice serial: TModbusDevice::ReadRegisterRange(): failed to read 2 input(s) @ 30 of slave modbus:1
sdm120_1 Active Power power (ro) /devices/sdm120_1/controls/Active Power 0 Error: r
sdm120_1 Apparent Power power (ro) /devices/sdm120_1/controls/Apparent Power 430.4 Error: r
sdm120_1 Current current (ro) /devices/sdm120_1/controls/Current 238.6 Error: r
sdm120_1 Line Frequency value (ro) /devices/sdm120_1/controls/Line Frequency 0 Error: r
sdm120_1 Power Factor value (ro) /devices/sdm120_1/controls/Power Factor 0 Error: r
sdm120_1 Reactive Power power (ro) /devices/sdm120_1/controls/Reactive Power 0 Error: r
sdm120_1 Total active energy value (ro) /devices/sdm120_1/controls/Total active energy 0 Error: r
sdm120_1 Voltage voltage (ro) /devices/sdm120_1/controls/Voltage 50 Error: r
Cтоп битов 2.
SDM120 подлючен ко второму порту.
Стали меняться значения, но так - одно поле меняется на реальное, другое на ошибку.
И названия полей не соответствуют значениям.
Что можно сделать?
Я использовал https://github.com/gianfrdp/SDM120C (вот бинарник https://transfer.sh/9MEyw/sdm120c, если повезёт, то запустится), там понятная справка, а так я уже не подскажу, какие именно параметры использовал. Перед запуском нужно переключить счётчик в “режим настройки”, делается это 3-секундным нажатием на кнопку. Он автоматически выходит из этого режима спустя какое-то время.
Этой же утилиткой я менял адрес счётчика.
Для чтения данных кнопку жать не надо, читать можно в режиме по умолчанию. Для изменения настроек нужно перевести счётчик в режим конфигурирования (как раз длинным нажатием, пока на экране не загорится надпись set, или как-то так).
С повтором 3 раза -z3 отсеивает ошибки (2 уже не все читает).
-z num_retries Try to read max num_retries times on bus before exiting
with error. Default: 1 (no retry)
root@wirenboard-AQY4Q7P2:~# ./sdm120c -PN -S1 -p -v -c -f -t -z3 /dev/ttyNSC1
Voltage: 1386.23 V
Current: 1.69 A
Power: 321.60 W
Frequency: 50.00 Hz
Total Active Energy: 1386236 Wh
OK
root@wirenboard-AQY4Q7P2:~#
Тут я уже не подскажу: единственное, что я менял на счётчиках — увеличил скорость обмена до 9600. Ну и в шаблонах удалил всякие поля, которые мне не нужны.
У меня на линии стоит 2 SDM120, 2 Пульсара и Милур 105 — работает всё достаточно стабильно, разве что примерно раз в 10 минут пара регистров не читается, но в целом норм.
Держите кнопку SET в течение 3 сек. и войдете в режим изменения настроек.
Или через Wirenboard:
Узнайте какой сейчас адрес и baudrate нажимая кнопку SET до нужных мест.
Затем запишите нужные значения командой modbus_client в соответствующие регистры:
удерживал кнопку - устройство переходит в в режим “set” на экране
адрес 001 baudrate 2400
командой modbus_client:
modbus_client --debug -mrtu -b2400 -pnone -s2 /dev/ttyRS485-2 -a0x001 -t0x06 -r110 96
выдает ошибку
подскажите правильность написания пожалуйста