Я пытаюсь считать данные с счетчика электроэнергии GE-PQM II. Счетчик энергии поддерживает мониторинг в реальном времени через 2-проводное соединение RS-485 MODBUS. Я использую библиотеку libmodbus в c для чтения регистров Modbus.
В руководстве по коммуникациям GE (https://www.ccontrols.com/support/dp/GEK-113532.pdf) адрес регистра дан в шестнадцатеричном формате. Я преобразовал шестнадцатеричный формат в десятичный.
Я пытаюсь прочитать значения из регистра Modbus (02F0,02F1) - соответствующие десятичные значения 752,753
Мой код:
rc = modbus_read_registers(ctx, 752, 753, clock);
выход :
ERROR Too many registers requested (753 > 125)
Too many data
Что-то не так с шестнадцатеричным преобразованием? или еще где-нибудь?
int modbus_read_registers(modbus_t *ctx, int addr, **int nb**, uint16_t *dest);
параметрnb
- это номер регистра для чтения, и он должен быть равен 2 а не 753. - person imbearr   schedule 02.07.2016