频繁波动液位测量

s7300,双法兰测液位,因搅拌原因液位频繁小范围波动,想设计个程序一段时间数据累加求平均值,或者增加阻尼,想简单点稳定点,先过来看的谢谢高手们,更谢谢给我建议的高手

最佳答案

建议可以通过西门子的间接寻址(在STL编辑器中实现)或者通过SCL编程语言实现
即通过指针的方式指向起始地址,然后通过改变指针指向下一个地址,进行数据的存储
我这里有一个数字滤波的程序,使用SCL写的,供参考(实现功能:取最近的十个数据,然后去掉最大值和最小值,然后剩下的八个数据相加后取平均值,其中的SCALE函数为模拟量线性转换函数,需要先在程序中添加FC105):
FUNCTION_BLOCK FB180

// Block Parameters
VAR_INPUT
    PIW_IN: INT;  
    HI_LIM_IN: REAL :=100.0;
    LO_LIM_IN: REAL :=0.0;// Input Parameters
    BIPOLAR_IN: BOOL :=FALSE;

  END_VAR

VAR_IN_OUT
  // I/O Parameters
END_VAR

VAR_OUTPUT
 // Output Parameters
    SCALED_VAL: REAL;
    SCALED_FILTED: REAL;
    ERR: BOOL;
 
END_VAR
VAR_TEMP
    RET_VAL_105:    WORD; // Temporary Variables
    LOOP_COUNT:     INT;
    MAX_DATA:      REAL;
    MIN_DATA:      REAL;
    TOTAL:          REAL;
    TOTAL_FILTERD:    REAL;
END_VAR
VAR
DATA_STORE: ARRAY[0..9] OF REAL;
  // Static Variables

END_VAR

 RET_VAL_105:=SCALE(IN :=PIW_IN// IN: INT
        ,HI_LIM := HI_LIM_IN// IN: REAL
        ,LO_LIM := LO_LIM_IN // IN: REAL
        ,BIPOLAR :=  BIPOLAR_IN// IN: BOOL
        ,OUT := SCALED_VAL// OUT: REAL
        ); // WORD
 
  
IF RET_VAL_105<> 0  THEN ERR:=TRUE;
   
    ELSE
        ERR:=FALSE;
END_IF;
 
        MAX_DATA:=DATA_STORE[0];
        MIN_DATA:=DATA_STORE[0];
        TOTAL:=0.0;
        TOTAL_FILTERD:=0.0; 
 
 FOR LOOP_COUNT:= 0 TO  8 BY 1 DO
    // Statement Section
      DATA_STORE[LOOP_COUNT]:=DATA_STORE[LOOP_COUNT+1];
 END_FOR;
       
       DATA_STORE[9]:=SCALED_VAL;
           
 FOR LOOP_COUNT:= 0 TO  9 BY 1 DO
    // Statement Section
      IF MAX_DATA < DATA_STORE[LOOP_COUNT] THEN MAX_DATA:=DATA_STORE[LOOP_COUNT];
      END_IF;
      
      IF MIN_DATA > DATA_STORE[LOOP_COUNT] THEN MIN_DATA:=DATA_STORE[LOOP_COUNT];
      END_IF;
       
      TOTAL:=TOTAL+DATA_STORE[LOOP_COUNT];       
                
 END_FOR;
          
       TOTAL_FILTERD:=TOTAL- MIN_DATA- MAX_DATA;

       SCALED_FILTED:=TOTAL_FILTERD/8.0;

END_FUNCTION_BLOCK

关于STL中的间接寻址,可以参考本网站下载中心文档编号为 F0215 的文章

提问者对于答案的评价:
虽然不太懂,但是很感谢。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:55
下一篇 2020年10月31日 下午3:56

相关推荐