AnnexF/derivative_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 DERIVATIVE
   VAR_INPUT
     RUN : BOOL ;          (* 0 = reset                  *)
     XIN : REAL ;          (* Input to be differentiated *)
     CYCLE : TIME ;        (* Sampling period            *)
   END_VAR
   VAR_OUTPUT
     XOUT : REAL ;         (* Differentiated output      *)
   END_VAR
   VAR X1, X2, X3 : REAL ; END_VAR
   IF RUN THEN
      XOUT := (3.0 * (XIN - X3) + X1 - X2)
              / (10.0 * TIME_TO_REAL(CYCLE)) ;
      X3 := X2 ; X2 := X1 ; X1 := XIN ;
   ELSE XOUT := 0.0; X1 := XIN ; X2 := XIN ; X3 := XIN ;
   END_IF ;
 END_FUNCTION_BLOCK