0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子PLC 64位浮点数转32位浮点数程序分享

feichangkuai 来源:郑州PLC工控 2023-03-29 09:39 次阅读

西门子S7-200测试通过,程序网上而来,献给有需要的各位!

一、主程序调用:

64位浮点数保存于VB0开始的存储区中,转换得出的32位浮点数保存于VD100中。

572746ec-cdaa-11ed-bfe3-dac502259ad0.png

二、子程序符号表:

57743876-cdaa-11ed-bfe3-dac502259ad0.jpg

三、子程序网络1:

1.把双精度浮点数的高16位读取出来;

2.左移1位,右移5位之后取到双精度浮点数的指数部分;

3.双精度浮点数指数减去1023,再加上127得到单精度浮点数的指数部分。

5796be50-cdaa-11ed-bfe3-dac502259ad0.png

57ccf236-cdaa-11ed-bfe3-dac502259ad0.jpg

四、子程序网络2:

取出双精度浮点数的高8位。

57ed4298-cdaa-11ed-bfe3-dac502259ad0.jpg

五、子程序网络3:

双精度浮点数指针后移一个字节。

580c1a9c-cdaa-11ed-bfe3-dac502259ad0.jpg

六、子程序网络4:

左移4位,右移8位得到单精度浮点数的小数部分。

58355ca4-cdaa-11ed-bfe3-dac502259ad0.jpg

七、子程序网络5:

把单精度浮点数的指数部分加上,右移1位空出符号位。

585cf5c0-cdaa-11ed-bfe3-dac502259ad0.jpg

八、子程序网络6:

传送符号位。

587c40e2-cdaa-11ed-bfe3-dac502259ad0.jpg

九、子程序网络7:

最终结果。

5897c6dc-cdaa-11ed-bfe3-dac502259ad0.jpg

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    4975

    文章

    12254

    浏览量

    454907
  • 西门子
    +关注

    关注

    91

    文章

    2849

    浏览量

    113766
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79541
  • 浮点数
    +关注

    关注

    0

    文章

    58

    浏览量

    15792
  • S7-200
    +关注

    关注

    13

    文章

    405

    浏览量

    49629

原文标题:西门子PLC 64位浮点数转32位浮点数程序分享

文章出处:【微信号:郑州PLC工控,微信公众号:郑州PLC工控】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求推荐一款可计算64浮点数(double)的DSP

    最新做高精度的控制算法,需要做比较高阶的数字滤波器,用的是2812,计算浮点数乘法非常的慢,关键是只能计算32浮点数乘法,造成数字滤波器的特性都和原来的设计有偏差。大家推荐一款可计算64
    发表于 12-15 21:04

    浮点数如何存储?

    浮点数如何存储玩转浮点数
    发表于 12-30 07:10

    浮点数的表示方法

    浮点数的表示方法  浮点数,是指小数点在数据中的位置可以左右移动的数据。它通常被表示成:    N = M* RE  这里的M(Mantissa)被称为浮点数
    发表于 10-13 17:13 1.6w次阅读
    <b class='flag-5'>浮点数</b>的表示方法

    modbus 如何读取浮点数

    本文为大家介绍modbus读取浮点数的两个程序设计。
    发表于 02-08 10:03 1.4w次阅读

    单片机浮点数运算的源码设计

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。本文详细介绍了浮点数在单片机中的表示方式和汇编子程序浮点数比定
    的头像 发表于 03-07 15:19 9541次阅读
    单片机<b class='flag-5'>浮点数</b>运算的源码设计

    深度剖析PLC编程中的浮点数

    PLC 必须处理三种主要类型的值:布尔值、整数和浮点数。这些最后的浮点值会给程序员和技术人员带来最大的困惑。
    的头像 发表于 04-29 16:20 1.5w次阅读
    深度剖析<b class='flag-5'>PLC</b>编程中的<b class='flag-5'>浮点数</b>

    谈一谈浮点数的精度问题

    还是要从浮点数的存储和标识出发来处理该问题,既然浮点数天然就存在一定的误差,而有时候计算又无法获得唯一的数值,如下图所示,浮点数计算出来的实轴上的值都会因为浮点数无法存储标识而近似到其
    的头像 发表于 08-11 14:28 3413次阅读
    谈一谈<b class='flag-5'>浮点数</b>的精度问题

    什么是浮点数浮点数在内存中的存储

    浮点型简单讲就是实数的意思。浮点数在计算机中用以近似表示任意某个实数。
    的头像 发表于 11-09 11:07 3680次阅读
    什么是<b class='flag-5'>浮点数</b>?<b class='flag-5'>浮点数</b>在内存中的存储

    什么是浮点数

    Python数据类型第一种:字符串(str)。 Python数据类型第二种:整数(int)。 Python数据类型第三种:浮点数浮点数的英文名是float,浮点数没有简写。
    的头像 发表于 02-23 14:58 3742次阅读

    西门子PLC读取的仪表数据(浮点数)如何转换为整数

    看到一个网友的问题,西门子200PLC采用MODBUS RTU协议采集多功能仪表的数据,接收的数据均是32位的单精度浮点数,我怎么在PLC程序
    的头像 发表于 06-01 10:18 3325次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b>读取的仪表数据(<b class='flag-5'>浮点数</b>)如何转换为整数

    西门子PLC浮点数程序案例分享

    64浮点数保存于VB0开始的存储区中,转换得出的32位浮点数保存于VD100中。
    发表于 10-27 17:07 1432次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>PLC</b><b class='flag-5'>浮点数</b><b class='flag-5'>程序</b>案例分享

    单精度和双精度浮点数的区别

    。 一、表示范围 单精度浮点数(float)通常使用32位来表示,其范围在1.17549435E-38F至3.40282347E+38F之间。而双精度浮点数(double)通常使用64位来表示,其范围在2.22507385850
    的头像 发表于 12-13 10:55 1487次阅读

    单精度和双精度浮点数的区别

    单精度和双精度是计算机中表示浮点数的两种不同的精度。在计算机中,浮点数用来表示带有小数部分的实数,而单精度和双精度用来表示浮点数的精确程度不同。在以下文章中,我将详细介绍单精度和双精度浮点数
    的头像 发表于 12-15 10:25 2580次阅读

    modbus浮点数怎么读取

    Modbus是一种通信协议,常用于工业自动化系统中的设备之间的通信。它支持多种数据类型,包括整数、浮点数、字符串等。浮点数在工业领域中广泛应用,因此了解如何读取和处理Modbus浮点数是非
    的头像 发表于 12-28 14:38 1665次阅读

    一文带你秒懂IEEE 754浮点数

    一、简介1、常见的浮点数表示方式是IEEE754标准,它规定了浮点数的存储格式和运算规则,这个标准定义了两种浮点数表示:单精度和双精度。2、任何一个浮点数的二进制数可以写为:NUM
    的头像 发表于 03-18 08:09 897次阅读
    一文带你秒懂IEEE 754<b class='flag-5'>浮点数</b>