1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
// single line comment
(*
Block comment
*)
FUNCTION_BLOCK SAMPLE
TITLE='Sample function block'
VERSION : '1.0'
AUTHOR : 'Rouge'
FAMILY: 'sample'
CONST
Thousand : INT := 1_000;
TwoFiftyFive : BYTE := BYTE#255;
InHex : BYTE := 16#FF;
WithType : BYTE := BYTE#16#FF;
InBinary : BYTE := 2#1111_1111;
PI : REAL := 3.141592;
OneBillion : REAL := 1_000_000_000;
WithExponent : REAL := REAL#1e+9;
END_CONST
VAR_INPUT
a : REAL;
b : REAL;
limit : REAL;
END_VAR
VAR_OUTPUT
valid : BOOL;
END_VAR
VAR
last: REAL := 0.0;
END_VAR
VAR_TEMP
value: REAL;
END_VAR
BEGIN
IF a > 0 AND b > 0 THEN
value := sum / 2;
ELSIF a > 0 THEN
value := a;
ELSIF b > 0 THEN
value := b;
ELSE
value := last;
END_IF
last := value;
valid := value < limit;
END_FUNCTION_BLOCK
|