有个学员问我,他在用S7-300读取变频器的参数P1082时(1082=16#43A),PLC 发送的4个字为16#143A 0000 0000 0000,变频器返回的为16#243A 0000 4248 0000。变量的浮点数值为16#42480000,对应的浮点数到底是多少?
在监视用的变量表中,将十六进制双字16#42480000的显示格式改为FLOATING_POINT(浮点数),就可以看到对应的浮点数为50.0。
浮点数又称为实数(REAL),用32位二进制数表示。浮点数表示为1.m 乘以2的E次方。其中尾数1.m和指数E均为二进制数,E可能是正数,也可能是负数。 ANSI/IEEE 754-1985标准格式的32位实数的格式为1.m乘以2的e次方,式中指数e = E +127为8位正整数。
尾数的小数部分m为第0~22位,第23~30位为指数e,最高为符号位。
在西门子的软件中,一般并不使用二进制格式或十六进制格式的浮点数,而是用十进制小数来输入或显示浮点数,例如在STEP 7中,50为16位整数,而50.0为浮点数。