富士電機

富士電機

  • 文字サイズ変更
  • S
  • M
  • L
  • No : 4901
  • 公開日時 : 2023/08/08 20:14
  • 更新日時 : 2023/08/29 14:27
  • 印刷

デジタルパワーメータ(PM5000シリーズ、PM8000シリーズ)から通信で、データ型が浮動小数32ビット(FLOAT32)型のレジスタを読み出しました。この値を読み解くには、どのようにしますか。

デジタルパワーメータ(PM5000シリーズ、PM8000シリーズ)から通信で、データ型が浮動小数32ビット(FLOAT32)型のレジスタを読み出しました。この値を読み解くには、どのようにしますか。
カテゴリー : 

回答

デジタルパワーメータ(PM5000シリーズ、PM8000シリーズ)から通信で値を読み出す際、

データ型が浮動小数32ビット(FLOAT32)型のレジスタの読み解き方について説明します。

FLOAT32の定義(IEEE754形式)に従って読み解きます。



例)

●「Voltage L-N Avg」(N相間電圧の3相平均)

●レジスタ番号:3036番(10進)

●FLOAT32型

●長さ:2ワード

のレジスタを読み出す場合。



読み出しリクエストのフレームは以下となります。このとき、読み出し開始アドレスは、1を引いた値

3036 - 1 = 3035(10進) = 0x0BDB

をフレームに入れます。

ファンクションコードは、「0x03:保持レジスタの読み出し」を使用します。



 <読み出しフレーム>

  ・ファンクションコード:0x03

  ・読み出し開始アドレス:0x0BDB

  ・読み出しレジスタ数 :0x0002



この応答として、以下の応答フレームを受け取ったとします。



 <応答フレーム>

  ・ファンクションコード:0x03

  ・読み出しバイト数  :0x04

  ・読み出したデータ  :0x42d875b1



ここでは、

 レジスタ番号:3036番

 レジスタ番号:3037番

の2つのレジスタを読み出しましたが、応答では、レジスタ番号の

 ”若い番号の内容が先”

に格納されています。つまり、以下の内容となります。

 レジスタ番号 3036番の内容:0x42d8

 レジスタ番号 3037番の内容:0x75b1



・読み出したデータ  :0x42d875b1

をFLOAT32の定義(IEEE754形式)に従って読み解きます。



 16進:42 d8 75 b1

 2進:01000010 11011000 01110101 10110001



これを、符号部(1ビット)、指数部(8ビット)、仮数部(23ビット)で分けると、上位ビットから区切り、

以下となります。



 符号部(1ビット)、指数部(8ビット)、仮数部(23ビット)

 「0」 「1000010 1」 「1011000 01110101 10110001」



つまり、以下の内容となります。

 ・符号部=0

 ・指数部=10000101(2進)=133(10進)

 ・仮数部は、整数部分が 1 であるような2進小数の小数部分を表し、この部分の計算は

  下記「関連資料」をご参照下さい。 この例で計算すると、0.691091656684875 となります。



浮動小数32ビット(FLOAT32)型の値は



{(-1)^符号部} × {2^(指数部-127)} × (1+仮数部)



と表されるため、従って、

{(-1)^0} × {2^(133-127)} × (1+0.691091656684875)

=108.2298660278320

つまり、

  約 108.23 V

となります。
 
浮動小数FLOAT32 変換_例.xlsx

第一カテゴリ:製品仕様

疑問・課題は解決されましたか?解決されない場合は、以下のサポート窓口にご連絡ください。

仕様・機能に関するお問い合わせ

技術相談窓口

ご購入・お見積りに関するお問い合わせ

営業窓口

アンケート:ご意見をお聞かせください

ご意見・ご感想をお寄せください お問い合わせを入力されましてもご返信はいたしかねます