使用scl编写天塔之光&数码管显示&液体混合&水塔水位
文章目录
目录
文章目录
前言
一、案例1:天塔之光
1.控制要求
2.编写程序
3.效果
二、案例2:液体混合
1.控制要求
2.编写程序
三、案例3:数码管显示
1.控制要求
2.编写程序
3.效果
四、案例4:水塔水位
1.控制要求
2.编写程序
总结
前言
这里将剩余的四个小案例:天塔之光&数码管显示&液体混合&水塔水位,写在这里,比较简单易懂,大家可以自己编写一下!
一、案例1:天塔之光
1.控制要求
按下启动按钮,L10 亮 0.5S 后灭→L9 亮 0.5S 后灭→L1 亮 0.5S 后灭→L2、L3、L4、L5
亮 0.5S 后灭→L6、L7、L8、L9 亮 0.5S 后灭→L10 亮 0.5S 后灭,以此循环下去.........
按下停止,全部灯灭
2.编写程序
这一个比较简单,我们继续使用脉冲和case语句就可以啦!
//停止
IF #OFF THEN
#S := 0;
#ZJ1 := 0;
#ZJ2 := 0;
#L1 := 0;
#L2 := 0;
#L3 := 0;
#L4 := 0;
#L5 := 0;
#L6 := 0;
#L7 := 0;
#L8 := 0;
#L9 := 0;
#L10 := 0;
END_IF;
//定时器
#T[0].TON(IN := #ZJ1 & NOT #ZJ2,
PT := T#1s,
Q => #ZJ2);
IF #ZJ1 THEN
#P[0](CLK := #ZJ2);
END_IF;
IF #P[0].Q THEN
#S := #S + 1;
END_IF;
//启动接通中继
IF #ON THEN
#ZJ1 := 1;
#L10 := 1;
END_IF;
//指示灯运行部分
CASE #S OF
1:
#L10 := 0;
#L9 := 1;
2:
#L9 := 0;
#L1 := 1;
3:
#L1 := 0;
#L2 := 1;
#L3 := 1;
#L4 := 1;
#L5 := 1;
4:
#L2 := 0;
#L3 := 0;
#L4 := 0;
#L5 := 0;
#L6 := 1;
#L7 := 1;
#L8 := 1;
#L9 := 1;
5:
#L6 := 0;
#L7 := 0;
#L8 := 0;
#L9 := 0;
#L10 := 1;
6:
#L10 := 0;
#S := 1;
END_CASE;
3.效果
二、案例2:液体混合
1.控制要求
S1、S2、S3 为液面传感器,液体 1、2 阀门与混合液阀门由电磁阀 Y1、Y2、Y3 控制,
M 为搅动电机,控制要求如下:
按下启动按钮, 液体 Y1 阀门打开,液体 1 流入容器。当液面到达 S2 时,Y2 接通,关
闭液体 1 阀门,打开液体 Y2 阀门。液面到达 S1 时,关闭液体 Y2 阀门,搅动电机 M 开始
搅动。搅动电机工作 6 秒后停止搅动,混合液体阀门 Y3 打开,开始放出混合液体。当液面
下降到 S3 时,再过 2 秒后,容器放空,混合液阀门关闭,开始下一周期。
按下停止按钮,停止操作。
2.编写程序
这个也是可以用case语句来完成的!
//停止按钮
IF #OFF THEN
#Y1 := 0;
#Y2 := 0;
#Y3 := 0;
#M := 0;
#BSF1 := 0;
#BSF2 := 0;
#X := 0;
END_IF;
//两个定时器
#T[0].TON(IN := #BSF1,
PT := T#6s);
#T[1].TON(IN := #BSF2,
PT := T#2s);
//流程步
CASE #X OF
0:
IF #ON THEN
#X := 1;
END_IF;
1:
#Y1 := 1;
IF #S2 THEN
#Y1 := 0;
#Y2 := 1;
#X := 2;
END_IF;
2:
IF #S1 THEN
#Y2 := 0;
#M := 1;
#BSF1 := 1;
#X := 3;
END_IF;
3:
IF #T[0].Q THEN
#M := 0;
#BSF1 := 0;
#Y3 := 1;
#X := 4;
END_IF;
4:
IF #S3 THEN
#BSF2 := 1;
#X := 5;
END_IF;
5:
IF #T[1].Q THEN
#Y3 := 0;
#X := 6;
END_IF;
6:
#BSF1 := 0;
#BSF2 := 0;
#X := 1;
END_CASE;
三、案例3:数码管显示
1.控制要求
按下开关 ON,LED 灯显示 1→2→3→4→5→6→7→8→9→0→1→2......依次循环下去,
按下开关 OFF,灯全灭。
2.编写程序
以数字1来举例,只要f,e 得电,就显示数字1,那么后面的数字都是用相应的字母的灯表示就可以啦!
IF #OFF THEN
#a := 0;
#b := 0;
#c := 0;
#d := 0;
#e := 0;
#f := 0;
#g := 0;
#h := 0;
#KS1 := 0;
#K := 0;
END_IF;
#T.TON(IN := #KS1 & NOT #SC1,
PT := T#1s,
Q => #SC1);
#P(CLK := #SC1);
IF #P.Q THEN
#K := #K + 1;
END_IF;
CASE #K OF
0:
IF #ON THEN //数字1
#KS1 := 1;
#f := 1;
#e := 1;
END_IF;
1: //灭1亮2
#f := 0;
#e := 0;
#a := 1;
#b := 1;
#g := 1;
#e := 1;
#d := 1;
2: //灭2亮3
#a := 0;
#b := 0;
#g := 0;
#e := 0;
#d := 0;
#a := 1;
#b := 1;
#g := 1;
#c := 1;
#d := 1;
3: //灭3亮4
#a := 0;
#b := 0;
#g := 0;
#c := 0;
#d := 0;
#f := 1;
#g := 1;
#b := 1;
#c := 1;
4:
#f := 0;
#g := 0;
#b := 0;
#c := 0;
#a := 1;
#f := 1;
#g := 1;
#c := 1;
#d := 1;
5:
#a := 0;
#f := 0;
#g := 0;
#c := 0;
#d := 0;
#a := 1;
#f := 1;
#g := 1;
#c := 1;
#d := 1;
#e := 1;
6:
#a := 0;
#f := 0;
#g := 0;
#c := 0;
#d := 0;
#e := 0;
#a := 1;
#b := 1;
#c := 1;
7:
#a := 0;
#b := 0;
#c := 0;
#a := 1;
#b := 1;
#c := 1;
#d := 1;
#e := 1;
#f := 1;
#g := 1;
8:
#a := 0;
#b := 0;
#c := 0;
#d := 0;
#e := 0;
#f := 0;
#g := 0;
#a := 1;
#b := 1;
#c := 1;
#d := 1;
#f := 1;
#g := 1;
9:
#a := 0;
#b := 0;
#c := 0;
#d := 0;
#f := 0;
#g := 0;
#a := 1;
#f := 1;
#e := 1;
#d := 1;
#c := 1;
#b := 1;
10:
#a := 0;
#f := 0;
#e := 0;
#d := 0;
#c := 0;
#b := 0;
11:
#f := 1;
#e := 1;
12:
#K := 1;
END_CASE;
3.效果
四、案例4:水塔水位
1.控制要求
当水池水位低于水池低水位界(S4 为 OFF 表示),阀 Y 打开进水(Y 为 ON)定时器
开始定时,5 秒后,如果 S4 还不为 ON,那么阀 Y 指示灯闪烁,表示阀 Y 没有进水,出现
故障。
S3 为 ON 后,阀 Y 关闭(Y 为 OFF)。当 S4 为 ON 时,且水塔水位低于水塔低水位界
时 S2 为 OFF,电机 M 运转抽水。当水塔水位高于水塔高水位界时 S1 为 ON 电机 M 停止。
2.编写程序
IF #OFF THEN
#BZ1 := 0;
#BZ2 := 0;
#BZ3 := 0;
#M := 0;
#P := 0;
END_IF;
#Y := #BZ2 OR #BZ3 & "Clock_1Hz" ;
#T[1].TON(IN := #BZ2,
PT := T#3s);
IF #ON THEN
#BZ1 := 1;
#BZ2 := 0;
#BZ3 := 0;
#M := 0;
END_IF;
CASE #P OF
0:
IF #BZ1 THEN
#P := 1;
END_IF;
1:
IF #S4 = 0 THEN
#BZ2 := 1;
END_IF;
IF #T[1].Q & #S4 = 0 THEN
#BZ2 := 0;
#BZ3 := 1;
#P := 2;
END_IF;
2:
IF #S3 THEN
#BZ3 := 0;
#BZ2 := 0;
#P := 3;
END_IF;
3:
IF #S4 & #S2 = 0 THEN
#M := 1;
#P := 4;
END_IF;
4:
IF #S1 THEN
#M := 0;
#P := 5;
END_IF;
5:
#BZ2 := 0;
#BZ3 := 0;
#M := 0;
#P := 0;
#P := 0;
END_CASE;
总结
上面就是这四个小案例的所有内容啦!