电梯自动化控制系统已经成为计算机技术应用领域中的相当重要的一个分支。为适应电梯的安全性、可靠性和功能灵活性等需求,系统多以微型计算机为核心。这种系统是将计算机技术、自动控制技术、通信技术以及转换技术高度整合的体系。

电梯是楼宇自动化中重要的一部分,那么对于电梯楼层的控制算法是电梯运行的核心部分。那么今天介绍的是电梯自动控制中最基本的单部电梯楼层控制算法,这种算法运用环形队列的思想予以实现。电梯楼层控制,是指乘客按下按键后,电梯按照一定响应顺序来移动电梯完成乘客的运送需求。

目录

一、电梯总体结构

二、电梯与楼层控制相关的组成部分

1、选层按键

2、呼梯按键

3、平层感应器

4、电梯控制器

三、单部电梯楼层控制基本算法

1、电梯运行的特点

(1)上行区间

(2)下行区间

(3)上行指令

(4)下行指令

2、下边给初电梯运行的原则

(1)电梯就近响应指令

(2)电梯运行区间的切换

3、楼层序号

4、指令数组

5、楼层序号和指令数组序号的关系

6、具体算法

(1)初始化

(2)检测轿厢所在楼层curfloor

(3)检测呼梯按键信号

(4)检测选层按键信号

(5)搜索下一个指令

(6)移动电梯

(7)重复步骤(2)-(6)


一、电梯总体结构

电梯的总体结构如图1所示,其中轿厢是承载人或者货物的部分,厅门是指安装在每层楼电梯口的门,轿厢本身也有自己的门,所以当电梯门打开或者关闭时,实际是轿厢门和厅门同时开关。

图1 电梯总体结构图

二、电梯与楼层控制相关的组成部分

1、选层按键

选层按键如图2所示,这个键盘安装在轿厢内,作用是让已经进入电梯轿厢的人通过此键盘设定目的楼层。

图2 电梯轿厢选层按键

2、呼梯按键

呼梯按键安装在厅门边上,作用是让每层楼电梯厅内想要乘坐电梯的人用来设置上楼或者下楼的指令。

图3 电梯厅门呼梯按键

3、平层感应器

平层感应器的作用是用来确定电梯轿厢所在的楼层。平层感应器实物如图3所示,原理如图4所示,感应器和隔磁板相互配合才能正常工作。电梯一般是在轿厢顶安装平层感应器,在主导轨每层平层位置装上隔磁板,当感应器进入隔磁板时开始计脉冲数,运行到设置好的脉冲值位置停车,就是平层位置。

图4 平层传感器

图4 平层传感器原理

4、电梯控制器

电梯的控制器一般都是PLC,用来接收电梯系统的呼梯按键、选层按键、开关门按键信号、平层传感器信号和其他一些功能按键的信号,以及控制电梯的运动,轿门、厅门的开关、呼梯按键、选层按键灯的亮灭、楼层数码管的显示等。

三、单部电梯楼层控制基本算法

电梯楼层的控制算法目前已经发展的很成熟,尤其是多部电梯的集群控制,已经逐渐智能化,基于专家系统、模糊逻辑等技术的电梯群控系统可以适应电梯交通的不确定性、控制目标的多样化、非线性表现等动态特性。

那么单部电梯的是集群控制的基础,下边介绍一下用环形队列的方法实现单部电梯楼层控制的算法。

1、电梯运行的特点

为了解释的更清楚,先定义两个概念:

(1)上行区间

指电梯处于由低楼层向高楼层移动的过程。

(2)下行区间

指电梯处于由高楼层向低楼层移动的过程。

(3)上行指令

指电梯轿厢所在位置以上楼层呼梯按钮的上行指令,和轿厢内选层按钮设置的目的楼层高于电梯轿厢所在位置的指令。

(4)下行指令

指电梯轿厢所在位置以下楼层呼梯按钮的下行指令,和轿厢内选层按钮设置的目的楼层低于电梯轿厢所在位置的指令。

乘客对电梯的楼层控制是通过呼梯或者选层按键来下达的,这个按键的指令实际就是对电梯下达一个平层的指令,电梯要对一系列平层指令按照顺序进行响应。为了提高电梯的运行效率,电梯响应平层指令不是按照指令下达的先后顺序来执行的,而是按照电梯的运行区间(上行或者下行)和指令的种类(上行或者下行)之间关系,把指令进行排序后依次执行的。

2、下边给初电梯运行的原则

(1)电梯就近响应指令

当电梯处于上行区间时,电梯只响应上行指令,且按照上行指令目的层由低到高依次执行;当电梯处于下行区间时,只响应下行指令,且按照下行指令目的层由高到低依次执行。

(2)电梯运行区间的切换

电梯处于上行区间时,执行完最后一条上行指令后,运行区间变换为下行;电梯处于下行区间时,执行完最后一条下行指令后,运行区间变换为上行。

3、楼层序号

假如某电梯一共n层,最低一层序号为0,最高一层序号为n-1。电梯轿厢所在楼层变量定义为curfloor,轿厢移动目的楼层变量定义为desfloor。电梯的楼层控制实际就是首先由平层传感确定curfloor,然后根据算法确定desfloor,控制电梯轿厢由curfloor移动到desfloor。

4、指令数组

观察电梯厅门的呼梯按键可以发现,最低层只有一个上行按钮,最高层只有一个下行按钮。其余楼层均有上行、下行两个按钮。也就是呼梯一共有(n-2)*2+2=2n-2个按钮。再观察轿厢内的选层按钮,只有最低一层至最高一层n个按钮,但除了最低一层和最高一层之外,每个按键实际也是两种指令,如果所选楼层低于当前层,实际上是一个下行指令,如果所选楼层高于当前层,那么指令是上行指令。也就是说,无论呼梯按键还是选层按键,实际上的指令个数都是相同的,都是2n-2个。

那么电梯的楼层控制实际就是按照一定顺序响应这些指令,将电梯轿厢移动到相应楼层,也就是电梯的运行状态要时刻跟随指令。

电梯效率最高的运行模式是按照由最低层到最高层,再由最高层到最低层的环状顺序依次响应指令,所以我们以构造环形数组来存放指令,电梯轿厢依次执行环形数组内的指令,对指令进行顺序响应,移动到相应楼层。

环形数组是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。

我们构造的环形数组如图所示,一共2n-2个元素,每一个元素存放相应的控制电梯指令。比如,a[0]存放的控制电梯移动到0层的指令,a[1]存放1层呼梯键上行键的指令,或者轿厢低于1层时选层键1的指令,a[2n-3]存放1层呼梯键下行键的指令,或者轿厢高于1层时选层键1的指令。同样,a[2]存放2层呼梯键上行键的指令,或者轿厢低于2层时选层键2的指令;a[2n-4]存放2层呼梯键下行键的指令,或者轿厢高于2层时选层键2的指令。

该数组中存放的数据类型为布尔型,内容存放0或者1,1代表有指令,0代表没有指令。需要注意的是,指令存放的位置是固定的,a[0]存放最低楼层(0层)平层指令,a[n-1]存放最高层平层指令。a[1]——a[n-2]存放第1层至第n-2层上行平层指令,a[n]——a[2n-3]存放第n-2层至第1层的下行平层指令。可以用a[i](0<=i<=2n-3)来表示第i中状态。

5、楼层序号和指令数组序号的关系

当前楼层或目的楼层数计算方法如下:

当0<=i<=n-1时,楼层数=i;

当n-1<i<=2n-3时,楼层数=2n-2-i;

6、具体算法

(1)初始化

desfloor=0,电梯移动到0层;a[0]——a[2n-3]均置0;当前执行的指令数组序号cur_cmd_no=0;

(2)检测轿厢所在楼层curfloor

(3)检测呼梯按键信号

检测2n-2个呼梯按键,如果序号为call_no的按键按下了,则相应的a[call_no]置1;

(4)检测选层按键信号

检测n个呼梯按键,如果有按键按下了,判断按键序号select_no和轿厢所在楼层序号curfloor的大小关系;select_no>curfloor,那么a[select_no]=1;如果select_no<curfloor,那么a[2n-2-select_no]=1;

(5)搜索下一个指令

从a[cur_cmd_no]开始,顺时针搜索环形数组,如果遇到数组a[i]内数值为1,则停止搜索。

根据“5.楼层序号和指令数组序号的关系”,确定目的楼层序号desfloor。

(6)移动电梯

执行电梯由curfloor层移动到desfloor;

cur_cmd_no=i;

curfloor=desfloor;

a[i]=0;

(7)重复步骤(2)-(6)

(全文结束)

利用环形数组实现单部电梯选层控制算法相关推荐

  1. 基于S7–1500的单部六层电梯教程(一)

    Background: 该系列文章写于2020/8月,西门子智能制造线上赛期间. 疫情原因,西门子智能制造挑战赛于2020年发起了一次线上赛.线上赛的资格赛就是利用EET评分的单部六层电梯的程序编写. ...

  2. 3部联动19层电梯控制器的验证计划

    目录 一.设计指标 1.设计概述 2.输入输出 (1)输入 (2)输出 3.系统示意图 (1)单厢电梯的状态转移图 (2)三厢电梯控制器的系统框图 4.系统功能实现 二.验证计划 1.验证策略 2.待 ...

  3. 基于S7–1500的单部六层电梯教程(三)

    教程继续更新ing 程序思路讲解 基于S7–1500的单部六层电梯教程(一) 基于S7–1500的单部六层电梯教程(二) 基于S7–1500的单部六层电梯教程(三) 基于S7–1500的单部六层电梯教 ...

  4. 基于S7–1500的单部六层电梯教程(二)

    此文开始讲解[单部六层电梯]的程序编写思路,由于自身能力限制,许多编写思路不一定足够严谨,但是足够起到入门效果.(初学时,俺直接拿着六部十层的程序啃,痛苦无比.) 依旧以西门子去年的线上资格赛为背景( ...

  5. 基于S7–1500的单部六层电梯教程(六)

    此文主要用于解答大家的一些常见的疑惑. 此文原文: 内容包括 部分程序讲解.下载的程序如何打开等. https://zhuanlan.zhihu.com/p/367266801 Q1: 参考程序运行起 ...

  6. PLC西门子电梯PLC程序,有单部六层,三部十层

    PLC西门子电梯PLC程序,有单部六层,三部十层,六部十层等,带wincc画面,包含西门子中智赛获奖程序 YID:7219671689574152

  7. PLC西门子电梯PLC程序,有单部六层,三部十层,六部十层等

    PLC西门子电梯PLC程序,有单部六层,三部十层,六部十层等,带wincc画面,包含西门子中智赛获奖程序 YID:7219671689574152自动化大学仕

  8. 基于S7–1500的单部六层电梯教程(五)

    前面的内容 基于S7–1500的单部六层电梯教程(一) 基于S7–1500的单部六层电梯教程(二) 基于S7–1500的单部六层电梯教程(三) 基于S7–1500的单部六层电梯教程(四) 基于S7–1 ...

  9. 博图V15,V16,单部六层电梯控制SCL实现, 方便适配多部电梯,带注释。

    博图V15,V16,单部六层电梯控制SCL实现, 方便适配多部电梯,带注释. ID:6966621318999352冰河世纪KK

最新文章

  1. mysql create table()_MySQL Create Table创建表
  2. 关于键盘上方创建返回按钮
  3. 分类算法之贝叶斯网络(Bayesian networks)
  4. 华为认证数通专家HCIE-Datacom 11月30日发布
  5. 极度丝滑!CentOS/Unbuntu系统下快速设置虚拟内存,一行命令快速搞定!!!
  6. qt tableview修改表格内容_如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改
  7. 优秀的功能测试也可以胜任技术测试者的工资
  8. android编译的错误日志,android编译遇到错误
  9. 人人讲思政 门门谈育人文章计算机专业,材有新闻|我院开展“课程门门有思政,教师人人讲育人”大讨论活动...
  10. [转] 数学专业参考书整理推荐
  11. 学习计算机编程(IT、偏网站开发)的参考学习网址syk
  12. 电脑开机密码忘记了怎么解除
  13. Centos7部署Mantis
  14. kettle-java代码执行hive相关ktr时报错: database type with plugin id [HIVE2] couldn‘t be found!
  15. latex写加上标题不显示页眉页脚
  16. 联盟链电子保函 变色龙哈希函数
  17. saprk 提交远程作业_如何准备远程作业搜索
  18. 计算机农业应用答案,东北农业大学计算机应用技术网上作业及答案.doc
  19. 编程计算机公司加乘,实训一计算器编程的实现
  20. 非侵入性脑刺激和太空探索

热门文章

  1. 部分国外邮箱服务商简介
  2. 【Python】“大润发”、“沃尔玛”、“好德”和“农工商”四个超市都卖苹果、梨、香蕉、橘子和芒果五种水果。使用NumPy的ndarray实现以下功能。
  3. centos-系统删除多余网卡的方法
  4. 计算机cpu的原理,【图片】转一篇老帖,从intel 8086 CPU看待计算机系统工作原理【cpu吧】_百度贴吧...
  5. java url类_Java中的URL类和示例 - Break易站
  6. 说说短线,交易模型与交易系统
  7. 爱情有四个阶段,熬过去就会永远在一起
  8. 《Adobe Flash CS5中文版经典教程》——1.10 发布影片
  9. 真实的生活比戏剧更残酷
  10. mongodb java 更新数据_MongoDB JAVA API更新数据示例