LabVIEWで2つの16ビット符号なし整数を32ビット浮動小数点数に変換する

更新しました Jun 19, 2019

使用製品

Software

  • LabVIEW

問題

32ビットの浮動小数点数に変換する必要がある16ビットの符号なし整数のペアを受け取りました。 32ビット単精度浮動小数点に設定された型変換関数に配列を送信しようとしましたが、正しいデータが返されませんでした。これらの2つの数値を32ビットの単精度浮動小数点数に変換するにはどうすればよいですか?

解決策

2つの16ビット数は、32ビット数の上半分と下半分を提供します。これらの2つの数値を32ビットの単一浮動小数点数に変換する手順は、下記のとおりです。
  1. 32ビット整数を作成するには、数値結合関数を使用して16ビットの数値を結合する必要があります。
  2. 対象のデータや他の操作の形式に応じて、ワードスワップ関数を使用して正しい値を取得する必要があります。
     
  3. その後、整数を型変換関数に渡して、適切な形式表記を指定することができます。
  4. 型変換関数のタイプ入力に数値定数で配線することによって、型変換するデータタイプを設定します。次に、数値定数を右クリックして表記法に移動し、SGL(単精度)を選択します。


下図は、上記手順で作成した簡単な例を示しています。データ形式によっては、ワードスワップ関数を使用する必要はないことに注意してください。
 

追加情報

Modbus IOサーバを使用している場合は、Fアドレス指定を使用して同様の処理しているため、この操作は不要です。使用方法の詳細については、LabVIEW DSC Help: Using Modbus I/O Servers (DSC Module or Real-Time Module)を参照してください。浮動小数点値は、デバイスに応じてスワップする必要があります。このトピックの詳細については、Modbus浮動小数点値のレジスタをスワップする方法を参照してください。

この記事はお役に立ちましたか?

いいえ