--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/AnnexF/lag1_st.txt Wed Jan 31 15:32:38 2007 +0100
@@ -0,0 +1,16 @@
+ 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
+