問:剛接觸西門子S7-300 PLC與MM440變頻器通過DP通信,其中資料提到PKW PZD,比如在讀寫0002-1999的參數(shù)時,"如讀P1082, 1082=43A(HEX)
PLC PKW輸出=143A,0000,0000,0000 1為讀請求。PLC PKW輸入=243A,0000,4248,0000 返回2為雙字長。值為42480000(HEX)=50.0(REAL)"其中“值為42480000(HEX)=50.0(REAL)是怎么算的?
答:實數(shù)也稱單精度數(shù) 符號位1位,階碼8位,尾數(shù)23位
第一步,化為2進制
第二步:因為IEEE754使用1個符號,8個階碼,23個尾數(shù),
第三步:根據(jù)公式寫出實際數(shù)值大小
二:基礎(chǔ)知識擴展
-----------------------------------------------------------------------
值 存儲為 指數(shù)偏移量
real*4 1位符號位(s)、8位指數(shù)(e),23位尾數(shù)(m,共32位) 127(7FH)
real*8 1位符號位(s)、11位指數(shù)(e),52位尾數(shù)(m,共64位) 1023(3FFH)
real*10 1位符號位(s)、15位指數(shù)(e),64位尾數(shù)(m,共80位) 16383(3FFFH)
-----------------------------------------------------------------------
符號位1位,階碼8位,尾數(shù)23位
30.0
十進制30.0轉(zhuǎn)換成二進制
11110.0
規(guī)格化二進制數(shù)
1.1110*2^4
計算指數(shù)
4+127=131
符號位 指數(shù)部分 尾數(shù)部分
0 10000011 11100000000000000000000
以單精度(real*4)浮點格式存儲該數(shù)
0100 0001 1111 0000 0000 0000 0000 0000
4 1 F 0 0 0 0 0
十六進制表達式為41F0 0000H
50.0
十進制50.0轉(zhuǎn)換成二進制
110010.0
規(guī)格化二進制數(shù)
1.10010*2^5
計算指數(shù)
5+127=132
符號位 指數(shù)部分 尾數(shù)部分
0 10000100 10010000000000000000000
以單精度(real*4)浮點格式存儲該數(shù)
0100 0010 0100 1000 0000 0000 0000 0000
4 2 4 8 0 0 0 0
十六進制表達式為4248 0000H
問題補充:
DW#16#42480000用2進制表示是0100 0010 0100 1000 0000 0000 0000 0000.
根據(jù)IEEE(32)REAL的定義你可以手動進行計算把這些2進制轉(zhuǎn)為REAL=[1+(2的22次方+2的19次方)*2的(-23)次方]*2的(132-127)次方=50.0










