回复:如何简单计算 多路PT温度平均值

liqr

  • 帖子

    155
  • 精华

    2
  • 被关注

    5

论坛等级:游侠

注册时间:2009-07-29

普通 普通 如何晋级?

发布于 2013-12-10 15:35:16

7楼

目前的做法:
1.数字量转换为工程量。
这一步是前提。列位看官想想有没有其它方法。
假设各个通道地址是连续的,就可以使用指针循环调用功能块的方法(或者按条件分组计算,比如分成4组:T1-T25、T26-T50、……顺序计算,这样要4个扫描周期采集一次完整数据,以期减少扫描时间),得到地址连续的100个温度值T1-T100(故障T=0),以及100个标志位(故障=1),依次存放在M100.0、1、2.……中。

2.计算通用公式:Tave=(T1+T2+...+T100)/(100-故障个数N)
问题就转换为求MD100、MD104、MD108中1的个数。

求二进制数据中1的个数……有没有很耳熟?
给大家推荐一个当年惊为天人的算法:
*****
MD100=MD100 & (MD100-1)
N=N+1
*****
直到MD100变为0,以此求出MD100中1的个数,而且循环次数=1的个数,大大大大减少了计算量(相较于最常见的逐位比较法)。
其它算法可参考:http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html 诸位感受一下。

至此,计算完毕。

列位还有没有其它简便的方法??????????????????????????????????
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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