双精度(64位)浮点数转单精度(32位)浮点数-附官方程序

已锁定

RENHQ

西门子1847工业学习平台

  • 帖子

    13844
  • 精华

    61
  • 被关注

    2189

论坛等级:至圣

注册时间:2008-12-28

钻石 钻石 如何晋级?

双精度(64位)浮点数转单精度(32位)浮点数-附官方程序

13749

10

2016-11-19 21:37:49

唉,这两天在全球技术资源里面发现了官方的一个关于64位浮点数的方法,比我的还全面,请大家参考:


如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V5.5 中处理 64 位浮点数?

https://support.industry.siemens.com/cs/cn/zh/view/56600676

如何通过 SIMATIC S7-300/400 CPU 在 STEP7 V11 中处理 64 位浮点数?

https://support.industry.siemens.com/cs/cn/zh/view/56098697


不过算是学习了各个数据格式和计算方法

题记:从找答案上看到有问PLC双精度浮点数怎么转单精度浮点数的,找了找没有找到现成的功能块于是自己就想没事做个,顺便学习一下浮点数的格式。

1、浮点数格式:

 64位浮点数(双精度)格式为:http://baike.baidu.com/item/双精度浮点数


1位                                        11位                               52位

 S(符号位),编号63        E(阶码位),编号62 ~52        M(小数位),编号51 ~ 0

0表示正,1表示负        ?1022~+1023加上1023    任意

   


范围:4.9x10^-324 ~ 1.7x10^308



32位浮点数格式(单精度)格式:STEP7帮助

 


范围:3.4×10^38…3.4×10^38

 

2、思路:

双精度浮点数和单精度浮点数区别在于:

一是指数,双精度指数11位,最大为308计算为:(指数11位形成的数值-1027),单精度浮点数8位,最大38,计算:(8位形成的数值-127),双精度转单精度的指数计算是:(指数11位形成的数值-1027)+127.

二是小数,不管单精度还是双精度小数部分计算方式一样,所以,可以直接从双精度浮点数小数位中截取前23位即可,

3、编程

 FC1:

IN:

OUT:

TEMP:

程序,为了好看,以图片形式



 

4、执行结果:

 



5、结束语

 

不经常做程序,语句表用起来还是很费劲的,而且第一次用any类型的数据,以前也不了解浮点数的数据结构,再进行计算,就利用模拟器,做各种测试,经过前后一天半时间,总算搞明白了点。通过此次编程,倒是涨了很多知识,对数据结构也加深了了解。

水平较低,程序编的还不是很完整,请高手指正。


双精度(64位)浮点数转单精度(32位)浮点数-附官方程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54774条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。