diff -r 0941a912dcae -r c6c2a3d487ac lib/integral_st.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/integral_st.txt Wed Jun 10 15:02:14 2009 +0200 @@ -0,0 +1,18 @@ + FUNCTION_BLOCK INTEGRAL + VAR_INPUT + RUN : BOOL ; (* 1 = integrate, 0 = hold *) + R1 : BOOL ; (* Overriding reset *) + XIN : REAL ; (* Input variable *) + X0 : REAL ; (* Initial value *) + CYCLE : TIME ; (* Sampling period *) + END_VAR + VAR_OUTPUT + Q : BOOL ; (* NOT R1 *) + XOUT : REAL ; (* Integrated output *) + END_VAR + Q := NOT R1 ; + IF R1 THEN XOUT := X0 ; + ELSIF RUN THEN XOUT := XOUT + XIN * TIME_TO_REAL(CYCLE); + END_IF ; + END_FUNCTION_BLOCK +