FUNCTION_BLOCK fb1
VAR_INPUT
in1:int;
time1 : TIMER;
time2 : TIMER;
END_VAR
VAR_IN_OUT
v_1:int;
v_2:INT;
v_3:INT;
end_var
VAR_TEMP
a : BOOL;
b : BOOL;
temp1 : WORD;
temp2 : WORD;
currtime1 : S5TIME;
currtime2 : S5TIME;
END_VAR
BEGIN
WHILE in1 <> v_3 DO
IF i0.0 THEN
q[v_2,v_1]:=1;
currtime1 := S_ODTS(T_NO :=time1,
S :=i0.0,
TV :=T#3s,
R :=i0.1,
BI :=temp1,
Q :=a);
IF a THEN q[v_2,v_1]:=0;
currtime2 := S_ODTS(T_NO :=time1,
S :=i0.0,
TV :=T#3s,
R :=i0.1,
BI :=temp1,
Q :=b);
IF b OR v_1<8 THEN v_1:=v_1+1;
v_3:=v_3+1;
q[v_2,v_1]:=1;
ELSIF b OR v_1>=8 THEN v_2:=v_2+1;
v_3:=v_3+1;
v_1:=0;
q[v_2,v_1]:=1;
END_IF;
END_IF;
END_IF;
END_WHILE;
END_FUNCTION_BLOCK