浮点数处理的不知名错误

最近再作一个项目的时候(smart 200,并且再1200上也测试了),发现了1个问题,浮点数相加的指令: 
LD     T33 // T33通200ms 断200ms
EU
+R     VD216, VD310
如果 VD216里是0.0004,VD310是VD8191.9 , 会在VD310累计到 8192后就不再累计了。
有这么几个情况:
如果是VD216里为0.00049 就可以继续累计。
如果VD310里小于8120 也可以累计。

根据手册里说的精确到小数点后6位,不能解释这个问题!

有厂家的技术人员提供了两个方向:
1.整数位和小数位差的太大 会出现这个问题!
2.再运算符点数时 ,涉及到2 或者2的倍数,就会进入死循环(这点完全不懂)

请问这到底是什么问题,有没有技术性的文件可以阅读!

问题补充:
没弄明白这个是不是不能回复答题的人,补充说明一下,现在已经处理了问题,所以这个问题不是要知道处理的方法,是想知道怎么造成的这个问题,是什么原理。谢谢!!!

钻石用户推荐最佳答案

这是实数相加的原理决定的,实数相加,是按科学计数法,先指数对齐,再加前面的小数计数部分。累加器只有8位,能够累加的只有7位,当相加的两个数相差超过10^7时指数对齐后,小数就变成了0,所以不能累加了。为了避免出现这样的问题,可以采用多次累加,sum=sum+pv;
sum>sum_sp则sum1=sum1+sum,sum=0,重新累加。
sum1>sum1_sp则sum2=sum2+sum1,sum1=0,重新累加。
.........
最后总的累加值就是Σsum。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午2:50
下一篇 2021年7月5日 下午2:50

相关推荐

  • S7-200与WINCC通讯做组态的相关问题

    小弟手头有个污水处理的小程序,原来是用威纶通的触屏做的,但是触屏坏了,现在我手头有限制的破电脑,想用WINCC重新做个组态,简单的几个监视画面,然后再加几个控制点,请教一下200与…

    SIMATIC S7-200 2020年11月1日
  • plc直流输入端L M电源端的压敏电阻如何选配呢?

    我这个压敏电阻烧坏了,看不清型号,我要更换一个,不知如何选型?这个压敏电阻有无直流交流之分呢? 最佳答案 转帖压敏电阻的选用,一般选择标称压敏电压V1mA和通流容量两个参数。  1…

    SIMATIC S7-200 2020年10月31日
  • S7-200的通讯线

    各位老师,我想把S7-222通过通讯线接到电脑的串口上,通过电脑界面操控PLC,软件用组态王是否可以?通讯线是否可以自制,如可以的话,请告诉我PLC侧以及PC侧的针脚怎样接,除了“…

    SIMATIC S7-200 2021年7月5日
  • s7-200内置脉冲输出控制方式

    s7-200内置PTO脉冲输出控制步进电机或伺服电机,有几种方式可以实现?以Q0.0为例第一种方式:通过控制特殊寄存器SMB66,SMB67,SMW68,SMD72,SMB166,…

    SIMATIC S7-200 2017年12月9日
  • S7-200软件修改符号地址?

    S7-200软件修改符号地址后,绝对地址就会丢失,请问怎么操作好。如果定义了符号地址?谢谢! 最佳答案 1、修改符号前点击菜单栏“查看”、取消弹出的菜单中“符号寻址”前的√。2、打…

    SIMATIC S7-200 2021年7月5日
  • 请教指针怎么用?

    请教在西门子编程环境下指针怎么用呢?最好能举个例子说明一下什么时候是地址,什么时候是地址所指的内容,谢谢了 最佳答案 在S7-200中难道不能直接把VB200传送到AC0吗?&nb…

    SIMATIC S7-200 2020年11月1日
  • 程序编译时出现的问题

    我在编完程序后进行编译,然后出现对话框1,我点确定后就出现对话框2,如图片所示,这是为什么呢?希望各位朋友帮忙看看,我不知道怎么传附件,没办法传上程序,我的QQ是421066575…

    2020年10月31日
  • MBUS_INITmaxhold和holdst~是什么关系啊

    我在用S7200 226PLC做从站,请问modbus从站指令中,MBUS_INIT块里“holdst~”是表示主站可访问PLC的起始地址的意思吗?“maxhold”是表…

    SIMATIC S7-200 2021年7月5日
  • s7-200 DP 错误

    S7-216+EM277+Y-LINK,和400H cpu 通讯,能够进行数据交换,但是CPU报SM5.7错误。如何解决?  最佳答案 只要数据能连续…

    SIMATIC S7-200 2021年7月4日
  • S7-224XP与ADAM4015(支持MODBUS-RTU)

    前辈,学生出现了这样一个问题。S7-224XP与ADAM-4015通信时得到的数据为负数。PT100的量程为-200到200   模块采集后对应的整数…

    2017年7月26日

发表回复

登录后才能评论