ParamManagerScripts/backend/script_groups/TwinCat/.example/INTEGRAL.EXP

21 lines
430 B
Plaintext

(* @PATH := '\/Functions_Collection' *)
(* @SYMFILEFLAGS := '4096' *)
FUNCTION_BLOCK Integral
VAR_INPUT
i_NewValue : REAL;
i_IntCycle : REAL ;
END_VAR
VAR_IN_OUT
Out_Integral : REAL;
END_VAR
VAR
mOldValue : REAL;
END_VAR
(* @END_DECLARATION := '0' *)
(* Trapezoidal Integral Method *)
Out_Integral := Out_Integral + ( mOldValue + (i_NewValue - mOldValue ) * 0.5 ) * i_IntCycle;
mOldValue := i_NewValue;
END_FUNCTION_BLOCK