AnnexF/integral_st.txt
changeset 0 fb772792efd1
equal deleted inserted replaced
-1:000000000000 0:fb772792efd1
       
     1  FUNCTION_BLOCK INTEGRAL
       
     2    VAR_INPUT
       
     3      RUN : BOOL ;       (* 1 = integrate, 0 = hold *)
       
     4      R1 : BOOL ;        (* Overriding reset        *)
       
     5      XIN : REAL ;       (* Input variable          *)
       
     6      X0  : REAL ;       (* Initial value           *)
       
     7      CYCLE : TIME ;     (* Sampling period         *)
       
     8    END_VAR
       
     9    VAR_OUTPUT
       
    10      Q : BOOL ;         (* NOT R1                  *)
       
    11      XOUT : REAL ;      (* Integrated output       *)
       
    12    END_VAR
       
    13    Q := NOT R1 ;
       
    14    IF R1 THEN XOUT := X0 ;
       
    15    ELSIF RUN THEN XOUT := XOUT + XIN * TIME_TO_REAL(CYCLE);
       
    16    END_IF ;
       
    17  END_FUNCTION_BLOCK
       
    18