644 B
644 B
FUNCTION_BLOCK "Integral"
{ S7_Optimized_Access := 'FALSE' }
AUTHOR : 'Author'
FAMILY : 'Function'
NAME : 'Name'
VERSION : 1.0
VAR_INPUT
i_NewValue : Real;
i_IntCycle : Real;
END_VAR
VAR_IN_OUT
Out_Integral : Real;
END_VAR
VAR
mOldValue : Real;
END_VAR
BEGIN
//Trapezoidal Integral Method
(* classic code: #Out_Integral := #Out_Integral + ( #mOldValue + (#i_NewValue - #mOldValue ) * 0.5 ) * #i_IntCycle;*)
#Out_Integral := #Out_Integral + ( #mOldValue + (#i_NewValue - #mOldValue ) * REAL#0.5 ) * #i_IntCycle;
#mOldValue := #i_NewValue;
END_FUNCTION_BLOCK