Я пытаюсь прочитать данные из измерителя энергии GE-PQM II. Счетчик энергии поддерживает мониторинг в реальном времени через 2-проводное соединение RS-485 MODBUS. Я использую библиотеку libmodbus в c для чтения регистров Modbus.modbus Hex address Conversion
В руководстве по связи GE (https://www.ccontrols.com/support/dp/GEK-113532.pdf) адрес регистра указан в шестнадцатеричном формате. Я преобразовал hex в десятичный.
Я пытаюсь прочитать значения из регистра MODBUS (02F0,02F1) - соответствующие десятичные значения являются 752753
Мой код:
rc = modbus_read_registers(ctx, 752, 753, clock);
выход:
ERROR Too many registers requested (753 > 125)
Too many data
Что-то не так в шестнадцатеричном преобразовании? или где-то еще?
ли вы на самом деле читать [документации для modbus_read_registers] (HTTP : //www.unix.com/man-page/debian/3/modbus_read_registers/)? Когда есть ошибка, первое, что нужно сделать, - это ознакомиться с документацией. Проверьте, каким должен быть третий параметр. – kaylum
Если вы используете этот [libmodbus] (http://libmodbus.org/), то в вызове функции 'int modbus_read_registers (modbus_t * ctx, int addr, ** int nb **, uint16_t * dest);' parameter 'nb '- номер регистра для чтения, и он должен быть равен 2, а не 753. – imbearr
Спасибо за ответ! – Leaner