//**************泡沫输送链*********
//
#使能状态 := #使能 OR #s_bTest;
#s_tonFullFoamSensor(IN := #泡沫链满泡沫检测 AND #泡沫链满泡沫检测2,
PT := T#1S);
IF #使能 THEN
#s_bTest := FALSE;
END_IF;
CASE #分泡沫步 OF
0:
#止下泡沫气缸 := TRUE;
#下泡沫气缸 := FALSE;
#下泡沫吹气 := FALSE;
IF #使能状态 (*不启用时, 执行完当前循环后, 停止*)
THEN
IF NOT #下泡沫气缸处有泡沫 THEN
#吹泡沫延时(IN := FALSE,
PT := t#10ms);
#分泡沫步 := 10;
END_IF;
ELSE
#吹泡沫延时(IN := FALSE,PT := t#10ms);
END_IF;
10: (**)
#止下泡沫气缸 := TRUE;
#s_bFoamConvStart := TRUE;
#s_tonFoamReady(IN := #泡沫到泡沫仓,
PT := T#300MS);
IF #s_tonFoamReady.Q THEN
#s_tonFoamReady(IN := FALSE,PT:=t#10ms);
#分泡沫步 := 20;
END_IF;
20:
#止下泡沫气缸 := FALSE;
#s_bFoamConvStart := FALSE;
IF NOT #止下泡沫气缸 THEN
#下泡沫气缸 := TRUE;
END_IF;
#s_tonStopFoam(IN := #下泡沫气缸下到位,
PT := T#100MS);
#s_tonLimit(IN := TRUE,
PT := T#3S);
IF #s_tonStopFoam.Q THEN
#止下泡沫气缸 := TRUE;
#s_tonFoamReady(IN := #止下泡沫气缸,
PT := T#200MS);
IF #s_tonFoamReady.Q THEN
#下泡沫气缸 := FALSE;
#s_tonStopFoam(IN := FALSE, PT := t#10ms);
#s_tonFoamReady(IN := FALSE, PT := t#10ms);
#s_tonLimit(IN := FALSE, PT := t#10ms);
#分泡沫步 := 25;
END_IF;
END_IF;
IF #s_tonLimit.Q THEN
#下泡沫气缸 := FALSE;
#s_tonStopFoam(IN := FALSE,PT:=t#10ms);
#s_tonFoamReady(IN := FALSE,PT:=t#10ms);
#s_tonLimit(IN := FALSE,PT:=t#10ms);
#分泡沫步 := 0;
END_IF;
25:
#s_tonLimit(IN := NOT #下泡沫气缸处有泡沫,
PT := T#3S);
#s_tonFoamReady(IN := #下泡沫气缸处有泡沫,
PT := T#100MS);
IF #s_tonFoamReady.Q OR #s_tonLimit.Q THEN
#s_tonLimit(IN := FALSE,PT:=t#10ms);
#s_tonFoamReady(IN := FALSE,PT:=t#10ms);
#分泡沫步 := 30;
END_IF;
30: (*吹气*)
#吹泡沫延时(IN := TRUE,
PT := T#600MS);
#无泡沫延时(IN := NOT #下泡沫气缸处有泡沫,
PT := T#300MS);
(*bStopFoamCy := FALSE;*)
#下泡沫气缸 := FALSE;
#下泡沫吹气 := TRUE;
IF #吹泡沫延时.Q OR #无泡沫延时.Q THEN
#吹泡沫延时(IN := FALSE,PT:=t#10ms);
#无泡沫延时(IN := FALSE,PT:=t#10ms);
#下泡沫吹气 := FALSE;
#分泡沫步 := 0;
END_IF;
END_CASE;
#泡沫链满检测延时(IN := #泡沫链满泡沫检测 AND #泡沫链满泡沫检测2,
PT := #泡沫链满延时停输泡沫);
#泡沫链空检测延时(IN := NOT #泡沫链满泡沫检测 OR NOT #泡沫链满泡沫检测2,
PT := #缺泡沫延时启动输泡沫);
IF #泡沫链满检测延时.Q AND NOT #s_bFoamConvStart OR NOT #使能 THEN
#输泡沫链 := FALSE;
END_IF;
IF (#泡沫链空检测延时.Q OR #s_bFoamConvStart) AND #使能 THEN
#输泡沫链 := TRUE;
END_IF;