对洗衣机的控制要求如下:
按一下启动按钮,开始“进水”了,水满到一定程度后(也就“高水位”),进水停止,同时洗衣机开始洗涤“正
转”了,正转5秒后暂停,暂停3秒后开始洗涤“反转”了; 同样“反转”5秒后,暂停3秒;假如正、反洗没有达到3次,那么返
回从正转重新开始动作;假如,正、反洗达到3次了,那么进行下一步“排水”,当然水位一直下降,降到“低水位”时,开始
“脱水”并继续“排水”,脱水10秒即完成一次从进水到脱水的大循环过程。假如没有完成3次大循环,那么重新返回到进水开
始时的状态(也就又要从进水开始了);如果完成3次这样的大循环,那么进行下一步,要它洗完报警(也就提示你洗好了)。
报警10秒后,结束全部过程,自动停机! (前面是自动的)另外加一点,可以用手动按钮来实现手动排水功能,一按停止按钮
呢,以实现手动停止进水,排水,脱水及报警(也就让洗衣机一切停止了!)。
输入I: 启动:0.00 输出O: 进水: 100.00
停止:0.01 正转: 100.01
高水位:0.02 反转: 100.02
低水位:0.03 排水: 100.03
手动排水按钮:0.04 脱水: 100.04
&nb
PROGRAM MAIN
VAR
x0:BOOL;(*启动按钮*)
x1:BOOL;(*水位满信号*)
x2:BOOL;(*停止按钮*)
y0:BOOL;(*供水水泵*)
y1:BOOL;(*漂洗电机正转*)
y2:BOOL;(*漂洗电机反转*)
y3:BOOL;(*出水控制阀门电机*)
y4:BOOL;(*声光报警器*)
a:BYTE;
lucy1: BOOL;
tony1: TON;
tony2: TON;
CTU1: CTU;
cv1: WORD;
y2rt: R_TRIG;
a1: BYTE;
ton1: TON;
tony3: TON;
timer: TIME;
END_VAR
CASE a OF
0:
IF x0 THEN
IF NOT x1 THEN
y0:=TRUE;
ELSE
y0:=FALSE;
y1:=TRUE;
a:=1;
END_IF
END_IF
1:
ton1(in:=TRUE,pt:=timer);
IF NOT ton1.Q THEN
CASE a1 OF
0:
tony1(in:=TRUE,pt:=t#1s);
IF tony1.Q THEN
y1:=FALSE;
y2:=TRUE;
tony1(in:=FALSE);
a1:=1;
END_IF
1:
tony2(in:=TRUE,pt:=t#1s);
IF tony2.Q THEN
y1:=TRUE;
y2:=FALSE;
tony2(in:=FALSE);
a1:=0;
END_IF
END_CASE
ton1(in:=TRUE);
ELSE
y1:=FALSE;
y2:=FALSE;
y3:=TRUE;
x1:=FALSE;
x0:=FALSE;
a:=2;
END_IF
2:
IF ton1.Q THEN
tony3(in:=TRUE,pt:=t#10s);
IF tony3.Q THEN
y3:=FALSE;
y4:=TRUE;
a:=0;
END_IF
END_IF
END_CASE
LD 00000
OR 01000
OR TIM005
AND NOT 00002
OUT 01000 进水
LD 00002
OR 20002
OR 01000
AND NOT 20000
AND NOT TIM004
OUT 01000 正转
TIM000#0050
............................
...............................
....................................................................................