2017-06-19 6 views
0

レジスタにデータを書き込むためにModbusスレーブを作成しました。 スレーブ側からfloat値と整数値の両方を書き込むことができます。MODBUS-tkマスタのスレーブから浮動小数点値を読み込みます。

modbusマスターでは、整数値のみにアクセスできますが、浮動小数点値は読み取れません。

私はこのhttps://github.com/ljean/modbus-tk/issues/72を通過しましたが、それは私の問題を解決しませんでした。

整数値の読み取りについては、私は以下のコードを使用して値を読み取ることができます。

master = modbus_tcp.TcpMaster() 
master.set_timeout(time_out_period) 
result = master.execute(slave = 100, function_code = 3 , starting_address = 0, quantity_of_x = 25) 

浮動小数点値については、上記のコードと以下のコードの両方を使用しました。

master = modbus_tcp.TcpMaster() 
master.set_timeout(time_out_period) 
result = master.execute(slave = 100, function_code = 3 , starting_address = 0, quantity_of_x = 25 , data_format='>f') 

フロートを読みながら

アンパックは、xの量がフロートため2の倍数でなければならない長さ4

+0

書き込みしようとしている浮動小数点値は何ですか? – Sanju

答えて

0

のバイトオブジェクトを必要として、私はエラーを取得します2つの16ビットレジスタまたはワードを必要とするので、25を使用する場合は50にする必要があります。

関連する問題