AnnexF/lag1_st.txt
changeset 0 fb772792efd1
equal deleted inserted replaced
-1:000000000000 0:fb772792efd1
       
     1  FUNCTION_BLOCK LAG1
       
     2    VAR_INPUT
       
     3      RUN : BOOL ;     (* 1 = run, 0 = reset *)
       
     4      XIN : REAL ;     (* Input variable *)
       
     5      TAU : TIME ;     (* Filter time constant *)
       
     6      CYCLE : TIME ;   (* Sampling time interval *)
       
     7    END_VAR
       
     8    VAR_OUTPUT XOUT : REAL ; END_VAR  (* Filtered output *)
       
     9    VAR K : REAL ;     (* Smoothing constant, 0.0<=K<1.0 *)
       
    10    END_VAR
       
    11    IF RUN THEN XOUT := XOUT + K * (XIN - XOUT) ;
       
    12    ELSE XOUT := XIN ;
       
    13         K := TIME_TO_REAL(CYCLE) / TIME_TO_REAL(CYCLE + TAU) ;
       
    14    END_IF ;
       
    15  END_FUNCTION_BLOCK
       
    16