登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:浮点数的表示方法

点击:9357 回复:3

   有个学员问我,他在用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为浮点数。
11-08-30 20:33
廖老师的帖子,看到了就顶一下!

11-08-30 21:21

引用 liaosun 在 2011/8/30 20:33:04 发言【内容省略】

呵呵,没有一家PLC厂商的软件显示使用二进制或者16进制的浮点数,这里指的二进制的浮点数是指浮点数在PLC的存储格式,而非显示格式。
11-08-31 05:32
浮点数的存储都是按照国际标准的,需要转换才能将其数值显示成我们可以直接读取的16进制数值.
11-08-31 08:58

工控新闻

更多新闻资讯