35 lines
644 B
Markdown
35 lines
644 B
Markdown
```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
|
|
|
|
|
|
```
|