PLC课设编程实例:红绿灯控制系统

引言

在自动化控制系统中,PLC(可编程逻辑控制器)是一种广泛应用的工业自动化设备。本篇博客将介绍如何使用PLC编程创建一个简单而实用的红绿灯控制系统。通过这个实例,你将了解PLC编程的基本概念和在实际应用中的运用。

注释:这里我使用的是一种不常用的方法(FB块和SCL语言),梯形图的方法在其他的文章里也有介绍,关注我的其他文章。

主要是梯形图编程的红绿灯过于简单和重复,不容易通过老师的审核;这里采用了新的方法,也方便理解其他的编程,方便资深梯形图的编程者学习新技术,以便工作转型

1. 什么是PLC?

PLC是一种专门设计用于工业自动化和控制系统的电子设备。它通过可编程的方式,根据输入信号的状态来控制输出设备的行为,从而实现对工业过程的精确控制。

2. 编写一个红绿灯控制系统

2.1 编程准备

在开始编写PLC程序之前,我们需要准备以下环境:

  • 博途软件
  • 能力要求:(需要基本了解博途或者其他编程软件,不然可能难上手)
  • 注意:目前主流的PLC编程用的软件有以下几个:1、西门子TIA Portal;2、西门子step7;3、三菱GX works。作者只是使用博途V18版本的

PLC课设编程实例:红绿灯控制系统_第1张图片

                                                    图1 博途V18的编程环境

2.2 红绿灯控制系统设计

我们的目标是创建一个交替显示红绿灯的系统,即绿灯亮3S,黄灯亮3S,红灯亮3S,如此反复。

2.3 PLC编程

在PLC编程中,我们使用类似于 ladder diagram(梯形图)的图形语言。以下是一个简单的PLC程序块,用于实现红绿灯的交替控制:

PLC课设编程实例:红绿灯控制系统_第2张图片

                                                         图2 FB块

在图1中的添加新块中添加FB块;

PLC课设编程实例:红绿灯控制系统_第3张图片

                                                       图3 添加需要的块

双击新增的块,如下图

PLC课设编程实例:红绿灯控制系统_第4张图片

                                                     图4 块的变量命名

先定义变量;

input :输入变量:开关

output:输出变量:绿、黄、红

static:内部变量:A、B、C(A是绿灯标志、B是黄灯标志、C是红灯标志)

编程:PLC中的SCL语言与C语言逻辑类似,学过C语言容易上手

首先用IF语句(可以点击上方的快捷栏的IF)

    IF #开关 THEN
        ;
    END_IF;
 

PLC课设编程实例:红绿灯控制系统_第5张图片

                                                图5 IF语句

如果开关为真;执行空指令。在IF这里面编写红绿灯的程序。

(将开关的值赋给#A;)

 #A := #开关;

定时器,IN := #A是启动开关;  PT := T#3S是定时3S后,定时器的输入由0变成1

"T1".TON(IN := #A,
                 PT := T#3S);

下面的程序是指开关为1时,定时器启动,再用IF语句判断定时器的输出Q:   "T1".Q   是真的话,说明已经过去了3S; #绿 := 1;让绿灯亮;

#B := 1;   是让下一个定时器的开关启动

  #A := false;是将定时器T1的开关复位;

#红 := 0;是将红灯复位
       

 #A := #开关;
        "T1".TON(IN := #A,
                 PT := T#3S);
        IF "T1".Q THEN
            #绿 := 1;
            #B := 1;       
            #A := false;
            #红 := 0;
        END_IF;

由于执行上述程序,令#B等于1;

定时器T2启动

3S后让黄灯亮,绿灯灭,让下一个的定时器T3启动,复位#B;

这样就实现绿灯亮3S后熄灭,黄灯亮

"T2".TON(IN := #B,
                 PT := T#3S);
        IF "T2".Q THEN
            #黄 := 1;
            #C := 1;
            #B := false;
            #绿 := 0;
        END_IF;

同理,下面程序实现黄灯亮3S后熄灭,红灯灯亮;

 "T3".TON(IN := #C,
                 PT := T#3S);
        IF "T3".Q THEN
            #红 := 1;
            #A := 1;
            RESET_TIMER(TIMER := "T1"); //复位
            #C := false;
            #黄 := 0;
        END_IF;

RESET_TIMER(TIMER := "T1"); //复位

注意:复位程序是因为,定时器T1的启动开关读取的是input :输入变量:开关。这是一直是1的;所以需要一个复位程序函数将T1强制复位,这样就可以反复的循环运行了;

这是所有的程序内容

    
    IF #开关 THEN
        #A := #开关;
        "T1".TON(IN := #A,
                 PT := T#3S);
        IF "T1".Q THEN
            #绿 := 1;
            #B := 1;
           
            #A := false;
            #红 := 0;
        END_IF;
        "T2".TON(IN := #B,
                 PT := T#3S);
        IF "T2".Q THEN
            #黄 := 1;
            #C := 1;
            
            #B := false;
            #绿 := 0;
        END_IF;
        "T3".TON(IN := #C,
                 PT := T#3S);
        IF "T3".Q THEN
            #红 := 1;
            #A := 1;
            RESET_TIMER(TIMER := "T1"); //复位
            #C := false;
            #黄 := 0;
        END_IF;
    END_IF;

    
    

3. 调试和运行

在PLC编程完成后,我们需要将程序下载到PLC控制器中,并进行调试。但是需要注意的是,新建的块需要你选中后拖动到程序中,才会在主程序中(Main)中出现;编译后下载;

开关的值设为1;

通过监视输入和输出信号的状态,我们可以确保程序按预期运行。

注意:这个程序虽然实行了红绿灯的功能,但是有一个小BUG哦!大家可以尝试修改一下;

当然可以!下面是一篇关于PLC编程的博客,主题是编写一个红绿灯的例子。

结论

通过这个简单的红绿灯控制系统实例,我们学到了如何使用PLC编程实现一个基本的工业控制应用。PLC编程是工业自动化中的重要一环,掌握这项技能将使你能够参与更复杂的自动化系统的设计和开发。

希望这篇博客对你理解PLC编程有所帮助。如果你有任何问题或需要进一步的解释,请随时留言。

QQ联系方式:2713338087(添加请备注验证信息:竹字头虫字底)不然有可能不通过

本人也是初学者,重在学习交流,有错误请谅解

你可能感兴趣的:(前端,javascript,开发语言)