洗衣机的PLC编程!交流交流.. 点击:607 | 回复:6



中国工控网_2009

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2009-06-07 15:55:59
楼主

对洗衣机的控制要求如下:

                   按一下启动按钮,开始“进水”了,水满到一定程度后(也就“高水位”),进水停止,同时洗衣机开始洗涤“正

转”了,正转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




zhaozhiliang370

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2009年4月10日
发表于:2009-08-04 12:17:33
1楼

这个程序很简单,很容易实现,QQ:465196764山东青岛

luchunhua

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 29回
  • 年度积分:0
  • 历史总积分:90
  • 注册:2006年12月12日
发表于:2009-08-04 14:42:48
2楼

恩!很簡單,以前寫過!

 

luchunhua

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 29回
  • 年度积分:0
  • 历史总积分:90
  • 注册:2006年12月12日
发表于:2009-08-04 14:44:35
3楼

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

luchunhua

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 29回
  • 年度积分:0
  • 历史总积分:90
  • 注册:2006年12月12日
发表于:2009-08-04 14:45:23
4楼

這是以前我用德國倍福的twincat寫的!語言是st,跟c語言差不多!

 

luchunhua

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 29回
  • 年度积分:0
  • 历史总积分:90
  • 注册:2006年12月12日
发表于:2009-08-04 14:46:20
5楼

可能有點不一樣,但是原理是不變的!

 

zhaozhiliang370

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2009年4月10日
发表于:2009-08-04 16:42:48
6楼

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

............................

...............................

....................................................................................


热门招聘