[西门子] 五层双梯PLC控制——纯干货分享

[复制链接]
查看214 | 回复0 | 2024-9-16 22:01:07 | 显示全部楼层 |阅读模式
五层双梯PLC(可编程逻辑控制器)控制系统通常指的是在一个五层的建筑中安装了两部电梯,并且这两部电梯由PLC进行自动化控制。这种系统可以用于楼宇自动化,提高电梯运行的效率和服务质量。下面是一些关于五层双梯PLC控制系统的基本概念和技术要点:


系统组成

  • PLC控制器:作为系统的“大脑”,负责处理来自传感器的信息并根据预设的程序来控制电梯的动作。

  • 传感器:包括但不限于位置传感器(检测电梯在楼层的位置)、门状态传感器(检测电梯门是否关闭)等。

  • 驱动系统:控制电梯电机的启动、停止及速度调整。

  • 用户界面:包括电梯内的按钮面板以及楼层外的呼叫按钮。

  • 安全系统:确保电梯在各种情况下的安全运行,如超速保护、紧急停止等。

控制逻辑

PLC控制电梯系统的核心是其控制逻辑。对于一个五层楼高并且有两个电梯的系统来说,控制逻辑会更加复杂,因为它需要协调两个电梯的工作,以达到最佳的服务效果。这可能包括:

  • 任务分配:决定哪个电梯响应特定的呼叫请求。

  • 路径优化:计算最有效的运行路径,减少乘客等待时间。

  • 负载平衡:考虑电梯的负载情况,避免过度拥挤。

  • 故障管理:当一部电梯出现故障时,能够自动调整策略,让另一部电梯承担更多的任务。

设计与实现

设计这样的系统需要考虑多个方面,包括硬件选择、软件编程、安全措施等。例如,选择合适的PLC型号,编写高效的控制程序,确保系统的可靠性和稳定性。此外,还需要考虑到未来维护和扩展的可能性。

一、调度算法

五层双梯PLC控制中的调度算法主要用于优化电梯服务质量和提升乘客体验。电梯调度算法的设计目标是在保证安全的前提下尽可能减少乘客的等待时间和行程时间。以下是一些基本的电梯调度算法概念及其应用到五层双梯系统中的方法:

(一)、基本电梯调度算法

  1. 最近者优先(Nearest Neighbor, NN)

    • 这是最简单的调度算法之一,它总是选择距离乘客最近的电梯来响应呼叫。

    • 对于五层双梯系统,如果一部电梯正在上行或下行过程中接到了新的召唤请求,那么该算法会选择离召唤点最近的电梯去响应。

  2. 先来先服务(First-Come-First-Served, FCFS)

    • 按照召唤请求到达的顺序来调度电梯,类似于排队系统。

    • 在五层双梯系统中,FCFS算法可能会导致一些电梯在高峰时段过载,而其他电梯则可能处于闲置状态。

  3. 最小行程时间(Minimum Travel Time, MTTR)

    • 考虑到电梯到达召唤点所需的实际时间,选择能使总行程时间最短的电梯。

    • 在多电梯系统中,MTTR算法有助于均衡电梯之间的负载。

(二)、高级电梯调度算法

  1. 分区调度(Zone Scheduling)

    • 将建筑分成若干区域,每部电梯负责不同的区域,从而减少电梯之间的冲突。

    • 在五层双梯系统中,可以将电梯分为上行和下行专用电梯,或者根据楼层高低分配不同的电梯。

  2. 动态分区(Dynamic Zone Scheduling)

    • 根据实时的乘客流量和分布情况动态地调整电梯的负责区域。

    • 这种算法需要更复杂的计算能力,但对于提高效率非常有效。

  3. 目的地调度(Destination Dispatch, DD)

    • 乘客在进入电梯之前就指定其目的地,系统据此对电梯进行调度,以减少中途停靠次数。

    • 对于五层双梯系统,DD算法可以帮助减少电梯内部的换乘需求,提高整体效率。

(三)、实现考虑

  • 负载平衡:确保两部电梯之间的使用频率相对平均,避免一部电梯过度使用而另一部闲置。

  • 预测性调度:利用历史数据预测高峰时段,并提前做好准备。

  • 冗余与故障恢复:设计算法时要考虑单个电梯故障情况下的应急调度策略。

在实际应用中,这些算法往往会被组合使用,形成更为复杂的调度机制。PLC可以通过接收传感器数据和用户输入信号,执行上述算法中的逻辑判断,进而控制电梯的运行。为了实现这些算法,需要在PLC编程中实现相应的逻辑控制流程,并且根据实际情况不断调整优化算法参数。

二、HMI页面

三、程序

调度算法
  if ( B[15] )
    //A梯楼层差
    {
        if ( B[97] == 0&&B[123]==0&&B[124]==0&&B[133]==0&&B[157]==0 )//满足呼叫条件
        {
            if ( ( B[33] && floor > onefloor ) || ( B[33] && floor == onefloor && B[7] == 0 ) || ( B[32] && floor < onefloor ) || ( B[32] && floor == onefloor && B[6] == 0 )||(B[72]==1&&B[206]==0) )//呼叫楼层不满足
            {
                onefloorcha = 100;
            }
            else
            {
                onefloorcha = abs ( floor - onefloor );
            }
        }
        else
        {
            onefloorcha = 200;
        }
        //B梯楼层差
        if ( B[206] == 0&&B[213]==0&&B[214]==0&&B[138]==0 &&B[219]==0   )//满足呼叫条件
        {
            if ( ( B[203] && floor > twofloor ) || ( B[203] && floor == twofloor && B[205] == 0 ) || ( B[202] && floor < twofloor ) || ( B[202] && floor == twofloor && B[204] == 0 )||(B[220]==1&&B[97]==0) )//呼叫楼层不满足
            {
                twofloorcha = 100;
            }
            else
            {
                twofloorcha = abs ( floor - twofloor );
            }
        }

        if ( onefloorcha <= twofloorcha )//判断楼层差最小值
        {
            smallfloorcha = onefloorcha;
        }

   //满足条件的最高楼和最低楼     
        tallfloor = floor + smallfloorcha ;
        lowfloor = floor - smallfloorcha ;
    }
关注公众号免费学习工控知识、每天分享干货
用最简单的方式教最有用的东西
需要相关项目可以联系代做、可以更具需求封装西门子、信捷、codesys等FB块



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则