用西门子PLC St语言编写当按下启动按钮后,3盏彩灯相隔1s依次点亮,各点亮2s后熄灭,循环往复10次后,3盏彩灯全亮。当按下关闭按钮时,所有的灯熄灭
时间: 2023-09-23 19:03:41 浏览: 288
以下是基于西门子S7-1200 PLC的ST语言代码实现:
```
VAR
StartButton: BOOL := FALSE; // 启动按钮
StopButton: BOOL := FALSE; // 关闭按钮
LED1: BOOL := FALSE; // 彩灯1
LED2: BOOL := FALSE; // 彩灯2
LED3: BOOL := FALSE; // 彩灯3
Counter: INT := 0; // 计数器
Timer: TON; // 定时器
END_VAR
// 按钮检测
StartButton := I0.0; // 启动按钮连接到输入I0.0
StopButton := I0.1; // 关闭按钮连接到输入I0.1
// 彩灯控制
IF StartButton THEN // 启动按钮按下时
IF NOT Timer.IN THEN // 定时器未开始计时时
Timer(IN:=TRUE, PT:=T#1s); // 启动定时器,1s计时
END_IF
IF Timer.Q THEN // 定时器计时结束时
Timer(IN:=FALSE); // 停止定时器
Counter := Counter + 1; // 计数器加1
CASE Counter OF
1: LED1 := TRUE;
2: LED2 := TRUE;
3: LED3 := TRUE;
4: BEGIN // 所有彩灯熄灭
LED1 := FALSE;
LED2 := FALSE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
5: BEGIN // 彩灯1亮起
LED1 := TRUE;
LED2 := FALSE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
6: BEGIN // 彩灯2亮起
LED1 := FALSE;
LED2 := TRUE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
7: BEGIN // 彩灯3亮起
LED1 := FALSE;
LED2 := FALSE;
LED3 := TRUE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
8: BEGIN // 所有彩灯熄灭
LED1 := FALSE;
LED2 := FALSE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
9: BEGIN // 彩灯1亮起
LED1 := TRUE;
LED2 := FALSE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
10: BEGIN // 彩灯2亮起
LED1 := FALSE;
LED2 := TRUE;
LED3 := FALSE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
11: BEGIN // 彩灯3亮起
LED1 := FALSE;
LED2 := FALSE;
LED3 := TRUE;
Timer(IN:=TRUE, PT:=T#2s); // 启动定时器,2s计时
END;
12: BEGIN // 所有彩灯全亮
LED1 := TRUE;
LED2 := TRUE;
LED3 := TRUE;
Counter := 0; // 计数器清零
END;
END_CASE
END_IF
ELSE // 启动按钮未按下时
Timer(IN:=FALSE); // 停止定时器
Counter := 0; // 计数器清零
LED1 := FALSE; // 所有彩灯熄灭
LED2 := FALSE;
LED3 := FALSE;
END_IF
IF StopButton THEN // 关闭按钮按下时
LED1 := FALSE; // 所有彩灯熄灭
LED2 := FALSE;
LED3 := FALSE;
END_IF
// 彩灯输出
Q0.0 := LED1; // 彩灯1连接到输出Q0.0
Q0.1 := LED2; // 彩灯2连接到输出Q0.1
Q0.2 := LED3; // 彩灯3连接到输出Q0.2
```
注意,以上代码只是一个简单的例子,实际应用中需要考虑更多的因素,例如按键去抖动、输入输出口的保护等。
阅读全文