S7-200做流量累加程序

如题,使用50ms中断,瞬时流量/72000,然后进行实数累加。出现意外,因为瞬时值太小,导致累计值与瞬时值相加时基本忽略了瞬时值。换思路,改为瞬时流量相加,结果/72000,问题解决,累计值正常。但一段时间后,累计值在很大的时候,将其与瞬时流量相加时,因为差距过大,又会将其忽略,累计流量长时间不变。有没有遇到类似情况的?如果没有别的思路,只能通过多段累计来实现了。(以前的程序不想去修改)

最佳答案

这个主要是算法问题,你的最基本算法是没有,问题的,但是 你忽视了一个浮点数的问题,浮点数的有效位数是6位,比如,当你的累积重量达到 9999999.0后 ,你的50MS累积量为0.01时,2数相加,结果还是9999999.0,因为有效位数的原因被省去了,为了改变这个情况,你可以,将没50MS的累积量先放到另外一个分量内存中,累积到一定量以上后,再加到重量上去。然后这个分量再清零。但是这种方法还是会出现大数加小数结果被省去的情况,比如9999999999.9+10.0。10还是被省去了。
最终的解决办法 还是将总量分为整数和小数部分。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月6日
下一篇 2017年11月6日

相关推荐

  • S7-200 LAD编程符号问题

    请问: 用LAD编程,程序中“( )”上方显示M3.0、M8.7、M8.1等等表示什么意思? 另外“(S)”上方标注M8.0、下方标注1又是什么意思?…

    SIMATIC S7-200 2021年7月5日
  • 怎么下载200软件

    请问西门子200编程控制器软件支持W7系统工作不能下载吗 钻石用户推荐最佳答案 试试看:1、此版本支持win7操作系统(非64位操作系统):http://www.ymmfa.com…

    SIMATIC S7-200 2021年7月5日
  • 字传送

    什么情况下该用字传送,字节传送,双字传送 最佳答案 这都是根据实际的需要。例如传送16位整数型数据用字、浮点数用双字、2位BCD码用字节。总之,是根据所要传送数据的类型、格式、长度…

    SIMATIC S7-200 2017年11月16日
  • s7-200f1帮助文档无法使用

    西门子s7-200 编程软件中的f1帮助文档win10操作系统下无法打开,无法使用,不能很好的使用编程软件,望西门子公司的软件工程师能帮助解决,谢谢。 最佳答案 在安装西…

    SIMATIC S7-200 2017年6月3日
  • PT100怎么接线,怎么接到SMART 200

    硬件:FK-TP/200风管式温度传感器,PLC SMART 200  模拟量模块,EM AE04,  &nb…

    SIMATIC S7-200 2021年7月5日
  • S7-200脉冲数量

    不知道西门子S7-200PLC有不有可以看到当前的发脉冲数量,我不是指SMD72,因为SMD72设定2000个脉冲,PLC就输出2000个脉冲。我是想有不有可以看到脉冲数量从0到2…

    SIMATIC S7-200 2020年10月31日
  • 跪求s7-200温度模拟量梯形图程序,发我邮箱jiangwei1314aini@163.com

    刚学s7-200搞不懂温度模拟量,电压2-10V 大于20度小于80度 Q0.0工作如何编写 最佳答案 初学者的急切心情可以理解,只是希望以后把标题前面的两个字…

    SIMATIC S7-200 2020年10月31日
  • 请大家帮忙看下这样的设计是否合理

    下面这个图片的设计是否合理?是否会对PLC产生影响?先谢谢大家 问题补充:刚才图片没上传 图片说明:    最佳答案 首先,看图标识就知道是非标图,而且很不专业…

    2017年12月21日
  • S7-200左移位指令的移位次数

    S7-200的左移位指令SHL_W,手册上的指令的EN端是连接一个I4.0,当这个触点为“1”,N=3的时候,VW200里面的数字量会在三个扫描周期中左移三次。如果我在I4.0&n…

    SIMATIC S7-200 2020年10月31日
  • s7-200的MODBUS RTU协议问题

    各位老师,您好,我是个新手,现在在做一个项目,就是用西门子s7-200的与一个modbus协议,我弄了将近一个月了,还是弄不好啊!请大家帮帮忙啊! 我用的是s7-200中…

    SIMATIC S7-200 2020年11月1日