3

libmodbusライブラリを使用して、Modbus インターフェイス (SMA) を備えたソーラー インバーターと通信しています。Modbus 仕様ドキュメントでは、特定のユニット ID を使用してデバイスのレジスタを読み取る必要があると指定されています。このデバイスは、modbus 用の TCP インターフェースを提供します。

libmodbus ライブラリのユニット ID を変更するコードが見つかりません。modbus_set_slave()関数ですか? または、ここで不足している別の機能がありますか?

4

1 に答える 1

3

用語は違いますが modbus_set_slave() 関数だと思います。ただし、概念的には、スレーブ ID またはユニット ID のいずれかが受け入れられる用語です。

興味がある場合は、その使用例を次に示します: https://github.com/stephane/libmodbus/blob/master/tests/unit-test-client.c

編集: オープン ソースの利点は、簡単に確認できることです。https://github.com/stephane/libmodbus/blob/master/src/modbus-tcp.cで、 modbus_set_slave () によって設定された ctx->slave がリクエスト パケットに設定されていることを確認します。

于 2016-03-01T07:11:51.710 に答える