Изменение идентификатора модуля libmodbus

Я использую библиотеки libmodbus для связи с солнечным инвертором с интерфейсом Modbus (SMA). В документе спецификации Modbus указано, что для чтения регистров на устройстве следует использовать определенный идентификатор устройства. Устройство предлагает интерфейс TCP для Modbus.

Я не могу найти код для изменения идентификатора устройства для библиотек libmodbus. Это функция modbus_set_slave()? Или есть другие функции, которые мне здесь не хватает?


person Cornel Verster    schedule 01.03.2016    source источник


Ответы (1)


Я считаю, что это функция modbus_set_slave(), хотя терминология другая. Однако концептуально приемлема терминология либо Slave ID, либо Unit ID.

Вот пример его использования, если вам интересно: https://github.com/stephane/libmodbus/blob/master/tests/unit-test-client.c

РЕДАКТИРОВАТЬ: Преимущество открытого исходного кода - простое подтверждение. Смотрите в https://github.com/stephane/libmodbus/blob/master/src/modbus-tcp.c, что ctx->slave, установленный modbus_set_slave(), установлен в пакете запроса.

person Jarra McIntyre    schedule 01.03.2016