ADD指令问题

我的西门子1500程序里写了一段累加计数的程序,就是每一个信号上升沿加0.01,怎么加到262144就不再累加了,是怎么回事啊。ADD指令达到加上限了吗?

最佳答案

从你的表述看,内部计数是使用real(32位浮点数),加到一个大数后(262144),就进入到所谓的浮点数陷阱了。原因就是262144用浮点数表示后,其最小的有效位已经大于0.01了,导致后续累加数据不变。
请参考浮点数的国际标准。
可以在内部采用DINT数据格式,每次加1,输出结果=DINT*0.01。这样最大可以加到21474836.47
若还不够,可以采用64位的数据格式(Lint)。另外,使用64位双精度浮点数(Lreal),也可以延长进入陷阱的时间。S7-1500已经支持64位的数据了。
另外,用浮点数做累加,本身是一个不严谨的做法,这涉及到大数量级差的浮点数相加,从算法原理上,就是一个可能产生大误差的计算过程。

提问者对于答案的评价:
谢谢!答案非常满意!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc165557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月10日 下午12:19
下一篇 2017年6月10日

相关推荐

  • s7-1500跟台式电脑通讯的问题

    小弟我用世纪星组态软件做一个工程,这个工程跟笔记本用网线连接,上位机显示各个寄存器,I,O变量都正常连接。如果用同样的方法跟台式电脑连接,上位机各个寄存器,I,O变量都不能连接。我…

    SIMATIC S7-1500 2017年6月10日
  • ET200SP DQ16硬件升级

    急求ET200SP DQ16硬件升级包,模块订货号6ES7132-6BH00-0BAO,最好有ET200SP相关模块的所用固件升级文件。谢谢 问题补充:我是升级硬件,不是…

    SIMATIC S7-1500 2017年6月1日
  • 求助给为大佬1511C-1 PN 是否带有高速脉冲

    最近有个项目需要用1500的PLC选型为 1511C-1 PN 6ES7 512-1CK01-0AB0 ,因为需要控制一个伺服电机…

    SIMATIC S7-1500 2021年7月5日
  • 关于loop循环的问题

    原来一段三菱的程序,现在PLC换成了西门子s71500,其中有一段关于循环的指令,就是当点击触屏上的一个按钮时将一连串的寄存器的当前设定值加上一个常数(有连续的挨着的,如&nbsp…

    SIMATIC S7-1500 2017年6月11日
  • S7通讯中分段发送与接收

    为什么错啦,该怎么填 问题补充:提示:不允许在具有优化访问的块中对数据进行绝对寻址 图片说明:    最佳答案 你可以在DB1中建立一个数组 RCV[…

    2017年5月31日
  • TIAV14_UPD2 1500控制V90_PN两个轴同步的几个问题

    1.  TIAV14支持 轴工艺对象用DB_ANY做输入,那么我要做一个标准块,我肯定要读取工艺块里面的一些实时数据,这个应该怎么通过DB_ANY这个…

    2017年6月1日
  • s7-1500做profibus主站

    请问我使用S7-1500PLC通过CP-1542做主站与三菱的PLC进行profibus通讯,在1500侧(主站侧)除了硬件组态还需要有软件编写吗? 最佳答案 不需要,配置三菱的g…

    SIMATIC S7-1500 2017年6月10日
  • 1500相关问题

    谁有  15000 scl  编程基础文档等都可以,还有就是在1500里面 能不能把梯形图职介转换成stl语言 最佳答案…

    SIMATIC S7-1500 2017年6月11日
  • 请教个PCS7的Simatic管理器打不开问题

    打开PCS7的Simatic管理器提示授权管理器有问题,我把它卸载了,重新安装S7软件,但是提示已经安装了更新版的授权管理器见截图?请问我该怎么做?谢谢! 最佳答案 参考:如何完全…

    SIMATIC S7-1500 2017年6月5日
  • 博图读取excel表格里的数据

    用的1517plc想通过excel表格将数据写到plc里,每次改数据改excel然后传到plc的db块里,怎么将excel与db块链接或博图wincc也行。 最佳答案 看看这个能不…

    SIMATIC S7-1500 2017年6月1日