------------------------------------------------------
------------------------------------------------------
INTERFACE I_count
METHOD M_count : INT
VAR_INPUT
num1:INT;
num2:INT;
END_VAR
PROPERTY Comment : STRING
PROPERTY Count : INT
------------------------------------------------------
------------------------------------------------------
FUNCTION_BLOCK FB_ADD IMPLEMENTS I_count
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
temp:INT;
END_VAR
METHOD M_count : INT
VAR_INPUT
num1:INT;
num2:INT;
END_VAR
temp:=num1 + num2;
M_count:=0;
IF temp >= 0 THEN
M_count:=1;
ELSE
M_count:=-1;
END_IF
PROPERTY Comment : STRING
Comment:='ADD';
PROPERTY Count : INT
Count:=temp;
------------------------------------------------------
------------------------------------------------------
FUNCTION_BLOCK FB_SUB IMPLEMENTS I_count
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
temp:INT;
END_VAR
METHOD M_count : INT
VAR_INPUT
num1:INT;
num2:INT;
END_VAR
temp:=num1 - num2;
M_count:=0;
IF temp >= 0 THEN
M_count:=1;
ELSE
M_count:=-1;
END_IF
PROPERTY Comment : STRING
Comment:='SUB';
PROPERTY Count : INT
Count:=temp;
------------------------------------------------------
------------------------------------------------------
PROGRAM P_test
VAR
change:BOOL;
Icount:I_count;
FbAdd:FB_ADD;
FbSub:FB_SUB;
count:INT;
result:INT;
comment:STRING;
END_VAR
IF change THEN
Icount:=FbAdd;
ELSE
Icount:=FbSub;
END_IF
result:=Icount.M_count(150,200);
count:=Icount.Count;
comment:=Icount.Comment;