Solution Explorer -> POUs -> Add -> POU -> change name & click function & set return type
---------------------------------
FUNCTION IsGreater : BOOL MAIN
VAR_INPUT
in1 : DINT;
in2 : DINT;
END_VAR
VAR
END_VAR
---------------------------------
IF in1 > in2 THEN
IsGreater := TRUE;
ELSE
IsGreater := FALSE;
END_IF
---------------------------------
---------------------------------
PROGRAM MAIN
VAR
result : BOOL;
END_VAR
---------------------------------
result := IsGreater(1, 2);
---------------------------------
Function Block - like class, persist memory
Solution Explorer -> POUs -> Add -> POU -> change name & click function block
---------------------------------
PROGRAM MAIN
VAR
fbMyPizzaOven : ARRAY [0..10] OF FB_PIZZA_OVEN; // Instances of ovens
bLoadPizza : BOOL
bRemovePizza : BOOL;
out1 : BOOL;
out2 : BOOL;
END_VAR
---------------------------------
FOR i := 0 TO 10 DO
fbMyPizzaOven[i](bLoadPizza:=bLoadPizza , bRemovePizza:=bRemovePizza, outA=>out1, outB=>out2);
END_FOR
---------------------------------