前言
本指南将介绍如何使用信捷 PLC 对八路灯进行编程控制,实现以下五种状态:
- 一路亮延时2s灭,二路亮延时2s灭,直到八路。
- 一路亮,延时2s二路亮,延时2s三路亮,直到八路全亮。延时2s全灭。
- 一二路同时亮2s灭,三四路同时亮2s灭,直到八路。
- 一二路同时亮,2s后三四路同时亮,2s后五六路同时亮,直到八路。延时2s,全灭。
- 一三路同亮,2s后,三路灭,二四路同亮。2s后,四路灭,三五路同亮。直到八路。延时2s全灭。以上程序从八路开始到一路,逆运行一次。连续循环以上过程。
硬件要求
- 信捷 PLC
- 八路灯具
- 连接线缆
编程
PLC 梯形图程序如下:
// 声明输入变量 BOOL IN_Start; BOOL IN_Stop; // 声明输出变量 BOOL OUT_Lamp1; BOOL OUT_Lamp2; BOOL OUT_Lamp3; BOOL OUT_Lamp4; BOOL OUT_Lamp5; BOOL OUT_Lamp6; BOOL OUT_Lamp7; BOOL OUT_Lamp8; // 声明中间变量 INT Counter; INT State; // 主程序 MAIN_PROGRAM: // 读取输入信号 IN_Start := In(0); IN_Stop := In(1); // 根据输入信号判断是否启动或停止 IF (IN_Start = TRUE) THEN State := 1; END_IF; IF (IN_Stop = TRUE) THEN State := 0; END_IF; // 根据状态执行相应的程序 CASE State OF 1: // 一路亮延时2s灭,二路亮延时2s灭,直到八路 // 递增计数器 Counter := Counter + 1; // 设置输出 OUT_Lamp1 := TRUE; IF (Counter >= 200) THEN OUT_Lamp1 := FALSE; Counter := 0; CASE OUT_Lamp2 := TRUE; END_CASE; END_IF; OUT_Lamp3 := OUT_Lamp2; OUT_Lamp4 := OUT_Lamp3; OUT_Lamp5 := OUT_Lamp4; OUT_Lamp6 := OUT_Lamp5; OUT_Lamp7 := OUT_Lamp6; OUT_Lamp8 := OUT_Lamp7; 2: // 一路亮,延时2s二路亮,延时2s三路亮,直到八路全亮。延时2s全灭 // 递增计数器 Counter := Counter + 1; // 设置输出 OUT_Lamp1 := TRUE; IF (Counter >= 200) THEN OUT_Lamp2 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp3 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp4 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp5 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp6 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp7 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp8 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp1 := FALSE; OUT_Lamp2 := FALSE; OUT_Lamp3 := FALSE; OUT_Lamp4 := FALSE; OUT_Lamp5 := FALSE; OUT_Lamp6IF (Counter >= 200) THEN OUT_Lamp1 := FALSE; OUT_Lamp2 := FALSE; Counter := 0; CASE OUT_Lamp3 := TRUE; OUT_Lamp4 := TRUE; END_CASE; END_IF; OUT_Lamp5 := OUT_Lamp3; OUT_Lamp6 := OUT_Lamp4; OUT_Lamp7 := OUT_Lamp5; OUT_Lamp8 := OUT_Lamp6; 4: // 一二路同时亮,2s后三四路同时亮,2s后五六路同时亮,直到八路。延时2s,全灭 //递增计数器 Counter := Counter + 1; // 设置输出 OUT_Lamp1 := TRUE; OUT_Lamp2 := TRUE; IF (Counter >= 200) THEN OUT_Lamp3 := TRUE; OUT_Lamp4 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp5 := TRUE; OUT_Lamp6 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp7 := TRUE; OUT_Lamp8 := TRUE; Counter := 0; CASE IF (Counter >= 200) THEN OUT_Lamp1 := FALSE; OUT_Lamp2 := FALSE; OUT_Lamp3 := FALSE; OUT_Lamp4 := FALSE; OUT_Lamp5 := FALSE; OUT_Lamp6 := FALSE; OUT_Lamp7 := FALSE; OUT_Lamp8 := FALSE; Counter := 0; State := 1; END_IF; END_CASE; END_IF; END_CASE; END_IF; END_CASE; END_IF; 5: // 一三路同亮,2s后,三路灭,二四路同亮。2s后,四路灭,三五路同亮。直到八路。延时2s全灭。以上程序从八路开始到一路,逆运行一次。连续循环以上过程 // 递增计数器 Counter := Counter + 1; // 设置输出 OUT_Lamp1 := TRUE; OUT_Lamp3 := TRUE; IF (Counter >= 200) THEN OUT_Lamp3 := FALSE; Counter := 0; CASE OUT_Lamp2 := TRUE; OUT_Lamp4 := TRUE; END_CASE; END_IF; OUT_Lamp5 := OUT_Lamp2; OUT_Lamp6 := OUT_Lamp4; OUT_Lamp7:= OUT_Lamp5; OUT_Lamp8 := OUT_Lamp
本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!
添加新评论