Подскажите, пож-та, как правильно считать (точнее отобразить с возможностью обратного преобразования при записи) данные из регистра, определенные как FLOAT32?
root@wirenboard:~# modbus_client --debug -mtcp -t0x03 -r0x1011 -p502 10.10.87.10 -a78 -c2
Connecting to 10.10.87.10:502
[00][01][00][00][00][06][4E][03][10][11][00][02]
Waiting for a confirmation…
<00><01><00><00><00><07><4E><03><04><00><00><41><80>
SUCCESS: read 2 of elements:
Data: 0x0000 0x4180
В шаблоне устройства все в лоб:
{
“id” : “SP1”,
“group”: “input1”,
“address” : “0x1011”,
“format” : “float”,
“name” : “setting_channel1”,
“reg_type” : “holding”,
“type” : “value”
}
В веб-морде отображается как 2.349697e-41 (правильно 16 в десятичной системе)
Спасибо за ответ. Насчет порядка байт проверю вечером, но если по-умолчанию старший вперед, то так и есть - я не менял этот параметр. То, что 4180hex <> 16deс я и так вижу, но вывод в интерфейс еще более странный. Отпишусь.
Если через интерфейс WB поставить какое-то число (то же 16, например), то прибор показывает 0.
Если через прибор поставить 16, то в интерфейсе 2.349697e-41
Спасибо за помощь, сработало!
Если кому нужно - прикрепляю шаблон (параметров вытянул много, но вариант не универсальный). config-2trm1u2.json (24.0 KB)