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

已锁定

v_wind

  • 帖子

    299
  • 精华

    3
  • 被关注

    36

论坛等级:侠圣

注册时间:2013-03-08

黄金 黄金 如何晋级?

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

4963

45

2017-10-12 11:06:40

star star

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的,编译时仅仅改动一点点,真是太方便了。以下是源程序截图。



分享一段小程序30秒平均值 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8667条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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