八路花样循环彩灯控制程序 (八路循环彩灯控制电路图)

前言

本指南将介绍如何使用信捷 PLC 对八路灯进行编程控制,实现以下五种状态:

  1. 一路亮延时2s灭,二路亮延时2s灭,直到八路。
  2. 一路亮,延时2s二路亮,延时2s三路亮,直到八路全亮。延时2s全灭。
  3. 一二路同时亮2s灭,三四路同时亮2s灭,直到八路。
  4. 一二路同时亮,2s后三四路同时亮,2s后五六路同时亮,直到八路。延时2s,全灭。
  5. 一三路同亮,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网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论