技术论坛

分享一段小程序30秒平均值

作者 主题
侠圣

经验值: 2551
发帖数: 299
精华帖: 3
主题:【分享】分享一段小程序30秒平均值
精华帖精华帖星级2级 推荐帖


只看楼主 只看精华 楼主 2017-10-12 11:06:40
标签:

FUNCTION_BLOCK "DW_Mean30Seconds"

{ S7_Optimized_Access := 'TRUE' }

VERSION : 0.1

   VAR_INPUT 

      IN : Real;

   END_VAR


   VAR_OUTPUT 

      OUT : Real;

   END_VAR


   VAR 

      i : Int := 1;

      k : Int := 1;

      iArrayMean30Seconds : Array[1..30] of DInt;

      iSumArrayMean30Seconds : DInt;

      IEC_Timer_0_Instance_1 {OriginalPartName := 'IEC_TIMER'; LibVersion := '1.0'} : TON_TIME;

   END_VAR



BEGIN

#IEC_Timer_0_Instance_1(IN := 1,

                       PT := t#1s);

If #IEC_Timer_0_Instance_1.Q = TRUE Then

   (***********************     修改部分  *****************************************

   定时器输入复位要用  #IEC_Timer_0_Instance_1(IN := 0, PT := t#1s);形式

             #IEC_Timer_0_Instance_1.IN:=0;    写法无法把定时器Q断开。             之前程序确实执行不正确,原因就是定时器语法问题。                                                        

   ***********************************************************************************)

   #IEC_Timer_0_Instance_1(IN := 0,

                           PT := t#1s);

   #iSumArrayMean30Seconds := #iSumArrayMean30Seconds - #iArrayMean30Seconds[#i];

   #iArrayMean30Seconds[#i] := REAL_TO_DINT(#IN * 100);

   #iSumArrayMean30Seconds := #iSumArrayMean30Seconds + #iArrayMean30Seconds[#i];

   #OUT := DINT_TO_REAL(#iSumArrayMean30Seconds) / (#k * 100);

   

   If #i < 30 Then

       #i := #i + 1;

   Else

       #i := 1;

   End_If;

   

   (*Anzahl der Werte im Array*)

   If #k < 30 Then

       #k := #k + 1;

   Else

       #k := 30;

   End_If;

 

End_If;

(*----------END FUNKTIONBLOCK----------*)

END_FUNCTION_BLOCK

以上是一段老外编写的30S平均值得程序,这时大概10年前编的,用的是巴赫曼PLC写的,我给编译成TIA14的,编译时仅仅改动一点点,真是太方便了。以下是源程序截图。




 
精华帖版主置评: 你写一小段分享,他写一小段分享。共同丰富我们共享库。奖励一下。-yming
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1429760&b_id=66&s_id=0&num=45

至圣

经验值: 127355
发帖数: 22002
精华帖: 824
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 1楼 2017-10-12 16:55:51

 不错!

我倒是正在琢磨一个事儿怎么写呢。

连续5天的每小时(0时 - 23时)气温的(连续移动)平均值怎么写呢。




学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
至圣

经验值: 11495
发帖数: 1028
精华帖: 39
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 2楼 2017-10-12 17:38:58
收藏了。写的挺好的。就是时间窗的大小被限制死了。要是活动的就棒了。缓冲区只有30个数据可以看也想延长点。我正准备写一个类似的
 
以下网友喜欢您的帖子:

  
至圣

经验值: 43597
发帖数: 15780
精华帖: 61
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 3楼 2017-10-12 19:01:11

fifo队列保存数据,然后队列求平均。


活到老,学到老!为了生活学习吧!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2551
发帖数: 299
精华帖: 3
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 楼主 4楼 2017-10-12 20:20:02
在我的crc效验的帖子里有可变化数组的使用,是yming说v14增加了可变数组的!用着确实方便,这个程序是用巴赫曼PLC编的程序,我本意是想跨平台移植一些程序,本以为很费劲呢!没想到仅仅一些少量的语法不同,我发现TIA把很多友商的优秀功能都加进来了,而且越来越向标准化靠近了!
 
以下网友喜欢您的帖子:

  
至圣

经验值: 23907
发帖数: 2059
精华帖: 78
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 5楼 2017-10-13 06:15:27


感谢您的分享


网鱼能够改善伙食,还能释放工作中的压力。
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 6楼 2017-10-13 07:18:10

 写的挺好


海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2327
发帖数: 77
精华帖: 3
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 7楼 2017-10-13 07:51:15


学习高手的编程思想也是一种享受。


学海无涯
以下网友喜欢您的帖子:

  
奇侠

经验值: 8624
发帖数: 688
精华帖: 0
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 8楼 2017-10-13 08:38:00

好帖子,值得学习,


每天更新
以下网友喜欢您的帖子:

  
至圣

经验值: 37447
发帖数: 5133
精华帖: 47
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 9楼 2017-10-13 08:46:55


感谢分享!!


工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
侠客

经验值: 724
发帖数: 68
精华帖: 0
回复:分享一段小程序30秒平均值


只看楼主 只看精华 10楼 2017-10-13 08:54:32
学习,感谢分享!
 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3003
发帖数: 455
精华帖: 0
回复:分享一段小程序30秒平均值


只看楼主 只看精华 11楼 2017-10-13 09:10:17

高手的感觉,


Automation
以下网友喜欢您的帖子:

  
侠圣

经验值: 3723
发帖数: 486
精华帖: 1
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 12楼 2017-10-13 09:37:39

不错,感谢分享。


永无止境!
以下网友喜欢您的帖子:

  
游士

经验值: 299
发帖数: 29
精华帖: 0
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 13楼 2017-10-13 10:25:48


感谢楼主分享


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1438
发帖数: 86
精华帖: 0
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 14楼 2017-10-13 11:30:07

 以前做过一个一分钟内连续取每秒平均值的。

方法都差不多,只是多了一分钟之后丢弃最早值,更新实际值,和重新计算的功能。


以下网友喜欢您的帖子:

  
奇侠

经验值: 5313
发帖数: 617
精华帖: 0
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 15楼 2017-10-13 12:00:18

感谢分享!谢谢


决不为短期利益而牺牲未来
以下网友喜欢您的帖子:

  
侠圣

经验值: 3893
发帖数: 236
精华帖: 1
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 16楼 2017-10-13 12:29:21

 举一反三学习


Stay Hungry ,Stay Foolish .
以下网友喜欢您的帖子:

  
至圣

经验值: 18079
发帖数: 1524
精华帖: 2
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 17楼 2017-10-13 13:48:11

感谢分享,收藏了。


我回来了!继续努力!
以下网友喜欢您的帖子:

  
侠圣

经验值: 2284
发帖数: 20
精华帖: 0
回复:分享一段小程序30秒平均值


只看楼主 只看精华 18楼 2017-10-14 08:30:04

感谢楼主分享!


never say never
以下网友喜欢您的帖子:

  
奇侠

经验值: 6153
发帖数: 549
精华帖: 1
回复:分享一段小程序30秒平均值
推荐帖


只看楼主 只看精华 20楼 2017-10-14 10:45:02


这个好,好长时间一直想找这个,可以借鉴学习。


眼前不苟且,未来不将就
以下网友喜欢您的帖子:

  
收起
分享一段小程序30秒平均值
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。