```pascal 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 ```