PLC ST Basic 8

Function

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

Last updated

Was this helpful?