利用OO方法实现电梯控制系统的模拟

2014-06-21 12:43陈纪龙孟洪兵
塔里木大学学报 2014年1期
关键词:电梯门楼层按钮

陈纪龙 孟洪兵

1 电梯模拟系统研究现状

随着科学技术和社会经济的发展,建筑物的高层化已成为现代城市的标志。电梯作为上下运输工具,承担着大量的人流和物流的输送,其作用在建筑物中至关重要。近年来,国内外的电梯生产技术得到了迅速发展。一些电梯生产商也在不断改进设计、修改工艺、更新换代,生产新型的电梯[1]。电梯系统主要分为控制系统与机械系统两大部份,随着自动控制理论与微电子技术的发展,电梯的控制手段与拖动方式均发生了很大的变化,交流调速是当前电梯拖动的主要发展方向。目前电梯控制系统主要有三种控制方式:微型计算机控制系统、PLC控制系统、继电器逻辑控制系统。微机控制系统虽在智能控制方面有较强的功能[2],但也存在抗干扰性差、系统设计复杂、一般维修人员难以掌握其维修技术等缺陷;PLC控制系统电路设计简单,但成本比较高,硬件设计也不够灵活[3];继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰[4]。综上所述,本研究采用面向对象方法实现电梯控制系统的模拟,程序简单,运行方便,成本低。通过本系统的设计可进一步加深对面向对象技术的理解和掌握,对于完善其控制功能具有重要意义。

2 研究目的和意义

本研究的目标是模拟电梯控制系统。本文设计了电梯调度算法及调度策略,利用Java语言作为开发工具[5],实现了系统的界面、功能模块设计。该设计主要模拟电梯内部的数字键及对应的操作,电梯开门、关门按钮及其相应操作,电梯外部上下行按钮及其操作,电梯当前运行状态的显示,电梯到达相应楼层后开关门的提示音等。该系统结构合理,操作简单,效果良好,建模方法具有一定的通用性[6]。本系统的设计思想与方法对实际电梯的运行具有一定的指导意义[7]。

3 系统设计方案

一台电梯对应一个控制系统,一个轿箱,有N个楼层。每个楼层对应一个电梯门,当在某楼层接受到闭门、开门信号时,将执行相应操作,若电梯门处于打开状态,且未收到闭门信号,等待一段时间后,电梯门仍将自动关闭。(本系统中N=6)

3.1 系统性能需求分析

方向检测:是通过电梯初始所在楼层和目标楼层来确定电梯的运动方向的检测。

目标楼层:将多用户同时所请求的不同楼层按照优先级的高低进行排序所得到的电梯当前要执行的楼层。

暂停控制:当电梯接收到超重信号时,发出报警信号,同时电梯保持开门,直到超重信号消失才会恢复正常的这样一种状态。

开门和关门按钮:在电梯内部有开门和关门的按钮,开门按钮能够延迟关门时间让乘客进入或走出电梯,关门按钮可以加速电梯关门让电梯进入运行状态,节省时间。

向上按钮和向下按钮:除最低层和最顶层只有一个按钮外,每个楼层都有两个按钮,分别指示上楼请求和下楼请求。

楼层按钮:每个电梯里面都有一些按钮,每个按钮对应一个楼层。

优先处理:在遇到有冲突请求的情况下,如果两楼层同时发出请求,可以让电梯正常运行,按照优先级的高低进行排序,从而按照排序执行相应的请求。

3.2 系统逻辑需求分析

3.2.1 电梯的初始状态是位于第一层,所有按钮都没有被按下,电梯门处于关闭状态。

3.2.2 乘客可以在任意时刻按任何一个目标楼层按钮和呼叫按钮。假设乘客在某一时刻按下某按钮,则此时将存在以下情况:

3.2.2.1 呼叫和目标对应的楼层可能是电梯当前运行方向可达到的楼层,则按电梯调度算法的相关策略处理。

3.2.2.2 呼叫和目标对应的楼层可能不是电梯当前运行方向可达到的楼层,也按电梯调度算法的相关策略处理。

3.2.2.3 如果电梯正好经过第n层,且第n层不是最上层或最下层,则出于安全考虑,不再响应此时所发出第n层的呼叫和目标请求。

3.2.2.4 乘客按下错误按钮:电梯在运行时,乘客按下开门或闭门按钮,不响应该请求。

3.3 算法设计

电梯模拟系统的核心是电梯调度算法。该算法的基本思想是:本研究设计了一部电梯,通过往返寻找路径的方法,即先查询电梯运行方向的楼层是否有其他按键被按下,有就将该请求加入到电梯请求的队列中并按距离最短进行排序,并一一到达相应请求楼层。如果没有就查询电梯运行反方向的楼层是否有按键被按下,如果有电梯就改变方向,反向运行。如果没有电梯就停止在该楼层。同时,电梯乘客所去的楼层方向与电梯当前方向一致的话,则电梯优先搭载该乘客,等响应当前方向的请求后,再搭载去反方向的乘客,实现电梯的升降操作。

本研究运用以下两个策略,配合电梯调度算法使用:

3.3.1 确定新目标楼层的策略:

如果电梯向上(下)运行,当它到达某个目标楼层后,则依照以下顺序确定下一个目标楼层:

3.3.1.1 如果比当前层高(低)的楼层有向上(下)呼叫或者目标,那么以最低(高)的高(低)于当前楼层的,有向上(下)呼叫或者目标的楼层为目标楼层。

3.3.1.2 如果无法确定目标楼层,那么以最高(低)的向下(上)呼叫所在楼层为电梯当前目标楼层。

3.3.1.3 如果仍然不能确定目标楼层(此时实际上没有任何呼叫和目标),那么电梯无目标运行暂停。

3.3.2 修改目标楼层的策略:

3.3.2.1 如果电梯运行方向向上,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向上呼叫或者目标,将目标楼层修改为这个新的楼层。

3.3.2.2 如果电梯运行方向向下,那么如果新到一个介于当前电梯所处楼层和目标楼层之间,又可以安全到达的向下呼叫或者目标,将目标楼层修改为这个新的楼层。

3.4 系统结构设计

根据需求分析,电梯默认状态是停靠在一楼,要使电梯运行起来,需要用户按下电梯按钮,电梯启动功能结构如图1所示。

图1 电梯启动功能结构图

3.5 系统数据流图

根据需求分析,为了表达系统的数据流图及状态转换,本文给出了电梯模拟系统的数据流图,如图2所示。

4 系统设计与实施

4.1 功能模块设计

电梯模拟系统主要包含6个模块,各模块及其功能描述如下:

4.1.1 主程序模块:是整个系统的入口,通过调用各个功能模块,实现程序主界面的显示以及电梯基本功能的实现。

4.1.2 电梯内部控制模块:负责电梯内部数字按钮及开门关门按钮的显示,以及相应按钮被按下触发的事件的处理操作。

4.1.3 电梯外部控制模块:主要负责电梯外部上下行按钮的显示,以及按钮被按下时触发的事件的处理操作。

4.1.4 电梯调度模块:负责电梯的调度算法,通过把内外按钮触发的相应请求进行分析,按照调度算法将请求队列重新排序。

4.1.5 等待队列模块:存放将要执行的到达相应楼层的请求队列。

4.1.6 显示模块:主要负责程序界面的显示、到达相应楼层的显示,动画图像的显示等。

图2 电梯模拟系统数据流图

4.2 系统主要类设计

本系统主要包括8个类,每个类的功能简述如表1所示:

表1 类的功能简述表

4.3 系统界面设计

本系统的界面设计考虑到现实中电梯实物的普遍色彩是银灰色的,为了与真实电梯更相近,于是主要选择了银灰色为主要色系,另外搭配按钮变换时的黑色与红色,以及为了区别电梯开关状态采用的金色图案,总体界面遵循简洁美观的原则。选用银色、黑色、红色及金色图案,撑起整个窗口界面。

5 本文关键技术—双缓冲技术

5.1 闪烁产生原因

系统启动后,首先调用重载后的paint(Graphics g)函数,在窗口上绘制图像,绘图线程启动后,该线程每隔25ms修改一下图像的位置,然后调用repaint()函数。repaint()函数先调用 update(Graphics g)函数,update(Graphics g)再调用paint(Graphics g)函数。问题就出在update(Graphics g)函数,先用背景色覆盖整个组件,然后再调用paint(Graphics g)函数,重新绘制屏幕图像。这样,每次看到的都是一个在新的位置上绘制的图像,前面的窗口都被背景色覆盖掉了,正是这种先用背景色覆盖组件再重绘图像的方式导致了闪烁。在两次看到不同位置图像的中间时刻,总是存在一个在短时间内被绘制出来的空白画面(颜色取背景色)。

5.2 双缓冲技术解决闪屏问题

本系统中双缓冲技术的实现是通过改写paint()方法和update()方法,从而实现每次窗口刷新的时候都会重新计算当前状态,以此获得图片尺寸,然后再将绘制好的图片显示到当前窗口。

6 程序测试

主要测试电梯是否能够正常上下运动,达到电梯必须满足的功能:即系统获得多用户的请求后,将指令传递到应用接口,在系统的规定等待时间段里,如果没有特殊请求(开门、关门按钮),电梯门则自动关闭,然后将获得的请求经过优先处理得到当前电梯所要去的首目的楼层,结合电梯当前楼层判断出电梯要做向上还是向下运动,进而将指令传递给上下运动控制系统,从而驱动电梯上下运动来实现上下楼的目的。部分测试摘要如下。

功能测试1:程序运行后的初始界面,电梯默认停留在一楼,并且没有任何请求,电梯处于停靠状态,当电梯接受相应的请求后,启动,进入运行状态。图3显示了电梯在第一层接受到达2、5、6层向上请求时,相应按钮变亮,进入电梯门关闭状态的界面。

功能测试2:电梯到达2楼后2楼按钮变暗,图4为电梯开门状态截图,并将继续执行下面未完成的请求。

图3 电梯门关闭状态图

图4 电梯到达2楼状态图

功能测试3:电梯接受不同楼层的向上请求测试。图5为电梯在1楼轿箱内接受到达3楼和6楼的请求,同时在3楼、4楼和5楼接受向上的请求,电梯按照调度算法分别到达3楼、4楼、5楼和6楼。

功能测试4:此时电梯停靠在6楼,在轿箱内分别接受去2楼和1楼的请求,同时5楼、4楼也有向下的请求。经过测试电梯会按照运行方向分别到达5楼、4楼、2楼和1楼,完成的请求相应图标变暗。图6为电梯到达2楼开门的状态图。

图5 功能测试3状态图

图6 电梯到达2楼开门的状态图

7 小结

经过测试,电梯运行良好,达到了预期目标和要求。同时,在测试过程中也发现了一些问题,比如,在加载图片较多时,程序启动比较慢;鼠标事件较多时,系统不知如何响应等。随着研究的进一步深入,对于上述问题将给出相应的解决方案。

[1] 陈光磊.电梯呼显示系统的研究与设计[D].中国优秀硕士学位论文全文数据库,2010,6(02):20-30.

[2] 陈福兰,杜虹.浅析电梯并联运行的几种调度方法

猜你喜欢
电梯门楼层按钮
当你面前有个按钮
利用楼层废水势能的发电装置
浅谈自动扶梯和人行道出入口盖板结构强度计算
电梯门旁路装置的有关要求及检验方法的探讨
浅谈电梯门回路检测功能
电梯门回路检测原理及检验方法分析
电梯的升与降
自动扶梯楼层板周边环境的安全防护
死循环
内心不能碰的按钮