AnnexF/lag1_st.txt
author Edouard Tisserant
Fri, 19 Oct 2012 12:10:32 +0200
changeset 634 736b36a83548
parent 0 fb772792efd1
permissions -rwxr-xr-x
Added double curly braces for pragma (kept single curly braces for compatibility). Added macro def and undef surrounding pragma to simplify user code. Moved useless comment from generated code back to code generator.
 FUNCTION_BLOCK LAG1
   VAR_INPUT
     RUN : BOOL ;     (* 1 = run, 0 = reset *)
     XIN : REAL ;     (* Input variable *)
     TAU : TIME ;     (* Filter time constant *)
     CYCLE : TIME ;   (* Sampling time interval *)
   END_VAR
   VAR_OUTPUT XOUT : REAL ; END_VAR  (* Filtered output *)
   VAR K : REAL ;     (* Smoothing constant, 0.0<=K<1.0 *)
   END_VAR
   IF RUN THEN XOUT := XOUT + K * (XIN - XOUT) ;
   ELSE XOUT := XIN ;
        K := TIME_TO_REAL(CYCLE) / TIME_TO_REAL(CYCLE + TAU) ;
   END_IF ;
 END_FUNCTION_BLOCK