基于单片机控制的模拟电梯设计与实现

时间:2022-08-12 12:06:10

基于单片机控制的模拟电梯设计与实现

摘 要: 搭建了一套模拟电梯的硬件平台,设计了VB界面模拟电梯按键,采用查找算法作为电梯调度算法,通过设计和实现该算法来验证平台的有效性。该平台可移植其他算法,用来验证电梯控制系统功能。系统采用STC89C52作为电梯控制器,实现了电梯手动和自动的开、关门功能,当前电梯楼层显示功能,开门铃声提醒功能,电梯当前状态显示功能,关门倒计时功能,根据时间优先原则、顺向优先原则和最远反向截梯控制原则对用户请求作出先后响应的功能。

关键词: 模拟电梯; 硬件平台; 电梯调度算法; 反向截梯控制

中图分类号: TN911?34; TP273.5 文献标识码: A 文章编号: 1004?373X(2014)02?0056?04

0 引 言

现代电梯控制系统几乎全部采用PLC或者微机控制[1],由于电梯控制系统的复杂性,如果直接在设备上调试电梯控制系统的功能,会降低研发效率,严重时,甚至会发生事故[1]。因此有必要设计一套系统验证电梯控制系统的功能,提高研发效率[1]。本文通过搭建模拟电梯的硬件平台、设计VB界面,为各种电梯调度算法提供验证平台。通过设计和实现一种节能高效的电梯调度算法来验证平台的有效性。

1 硬件电路设计

设计采用STC89C52作为主控制器,用步进电机的正转、反转和停止分别代表电梯的上升、下降和暂停,用蜂鸣器发出响声作为电梯开门的提示声音,数码管显示电梯当前到达的楼层,液晶屏显示电梯当前所处状态和关门倒计时时间,ULN2003作为步进电机和蜂鸣器的功率驱动器,PL2003将USB数据格式转换为可以与单片机通信的RS 232数据格式,本系统所需电流在300 mA左右,而PC机的USB最大可提供500 mA电流,所以本系统采用USB接口供电。硬件电路框图如图1所示。

1.1 液晶模块的设计

本系统液晶模块采用的是LCD1602,具有标准的16脚接口,可显示汉字、英文和图形。常用的指令集有清屏指令、输入方式设置指令、显示开关控制指令、光标位移指令、功能设置指令、写数据指令等。

液晶屏电路如图2所示,液晶屏与CPU直接相连,STC89C52的P0口是开漏输出,最大灌电流为12 mA,要输出高电平,必须接上拉电阻,液晶显示模块是一个慢显示器件,所以在执行每条指令一定要确认模块的忙标志为低电平或者延时足够的时间,否则指令失效。显示字符时要先输入显示字符的地址或者采用自动加、减AC值的办法。

1.2 步进电机模块的设计

步进电机是一种能够将电脉冲信号转换成角位移或线位移的开环控制组件。在非超载的情况下,电机的转速和停止的位置只取决于脉冲信号的频率和脉冲个数,而不受负载变化的影响,非常适合于微机的控制。当步进电机接收到一个脉冲信号,它就旋转一个固定的角度,此角度被称为“步距角”,其旋转方向与绕组的通电方向有关。控制脉冲个数来决定电机的角位移量,以达到精确定位的目的;同时控制脉冲频率来决定电机的速度,以达到调速的目的。ULN2003是由高压大电流达林顿晶体管阵列组成,最大输入/输出电流可达500 mA,适应于各类要求高速大功率驱动的系统。本系统采用四相五线的步进电机,控制方式采用四相单、双八拍的方式,步进角为3.75°,具有输出转矩大、振荡小、步距角小等特点,步进电机电路如图3所示。

1.3 蜂鸣器模块的设计

蜂鸣器电路如图3所示,蜂鸣器的正常工作时,电流在14~30 mA之间,压降为2.2 V左右,而51单片机P1口的灌电流只有6 mA,以致于单片机的I/O口是无法直接驱动的,同时由此可计算出与蜂鸣器串联的电阻阻值应在90~200 Ω,所以本系统采用ULN2003作蜂鸣器驱动。

1.4 数码管模块的设计

LED数码管是由7个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。数码管的每段由一个发光二极管和100 Ω的保护性电阻组成,数码管正常发光时,发光二极管压降为1.7 V左右,电流范围为5~10 mA,所以可以计算出外接电阻阻值范围为230~560 Ω。本系统采用的是共阳数码管,即发光二极管的阳极连接到一起连接到电源正极,且只用到一个数码管,所以采用静态显示驱动方式。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。数码管电路如图4所示。

2 软件设计

电梯控制任务可分解为独立的几个部分,利用结构模块化方法进行编程[1]。本系统软件分为7个模块,分别为系统初始化模块、硬件驱动模块、串行中断服务模块、定时器0中断服务模块、定时器1中断服务模块、电梯调度算法模块和VB界面模块。

系统初始化模块用来初始化数码管、液晶屏和单片机的寄存器的初始状态。硬件驱动模块主要指步进电机和液晶屏的驱动程序,以便主程序调用;串行中断服务模块用来处理单片机和VB程序的通信数据;定时器0中断服务模块计算电梯的运行时间,定时器1中断服务模块控制电梯的运行速率。电梯调度算法模块采用查找算法,监控软件可以采用VB[1]机,即用VB界面模拟电梯按键。

2.1 电梯调度算法

本硬件系统可移植其他电梯调度算法,本文设计一种查找算法来验证硬件平台。该算法只考虑电梯的主体功能,省略如超重检测、防夹检测等较为容易模拟的功能。查找算法兼顾公平性和电梯的运行效率,要求电梯遵循时间优先、顺向优先和最远反向截梯控制原则[1],简称三大原则,当电梯所移方向上无请求时立即改变方向。电梯有三种状态,分别是运行状态、暂停状态和空闲状态。其中运行状态包括向下运行和向上运行两种状态,处于这两种状态时,运行规则类似。电梯调度算法的实质就是确定电梯的目标楼层。电梯目标楼层的确定不仅与用户呼叫请求的顺序有关,也与电梯当前所处状态有关,在任意时刻,当用户按下某个按键时,控制系统就会登记该按键代表的楼层;当电梯进入暂停状态时刻,关门倒计时时间为8 s;当电梯处于运行状态时,电梯以每层3 s的速度运行。查找算法的第一步就是判断电梯当前所处状态,然后根据不同状态遵循不同规则:

(1) 电梯处于空闲状态。当电梯响应完所有用户的呼叫请求后,电梯关门就进入空闲状态。当电梯处于空闲状态时,关门按键不发挥作用,若用户按下厢内的一楼按键或者一楼的上行呼叫按钮或者开门按键,电梯就开门进入暂停状态,若用户按下其他按键,电梯就进入运行状态,并且电梯目标楼层将定位于该按键代表的楼层。电梯处于空闲状态时的流程图如图5所示,流程图中的选择目标楼层需遵守三大原则,本层按键是指电梯所处楼层的上行呼叫按钮或者下行呼叫按钮或者厢内楼层按钮。

(2) 电梯处于暂停状态。当电梯到达目标楼层后,电梯进入暂停状态,电梯开门接送乘客进出电梯,此时,电梯将清除该层的呼叫记录,用户可以手动或者自动地开、关门。电梯以关门作为暂停状态的结束标志,电梯进入运行状态,电梯将根据查找算法确定电梯的运行方向和目标楼层。其中顺向优先原则是指电梯先响应同向信号,再响应反向信号,并且在同向信号上,优先响应所需时间最短的信号;最远反向截梯控制原则是指响应完同向信号后,如果厢内在反向方向上有几个信号同时召唤,则电梯将最远层作为目标楼层。电梯处于暂停状态时的流程图如图6所示。

2.2 VB界面设计

VB界面包括1~7楼的上行呼叫按钮、2~8楼的下行呼叫按钮和1~8楼的厢内楼层按钮,应用到的控件有TextBox控件、CommandButton控件和MSComm控件,VB界面如图8所示,按下不同按钮发送不同的字符给单片机,同时该按钮颜色变为红色;接收到相应字符则使相应按钮恢复为按钮控件的系统默认颜色,以此区分哪些用户请求已经得到响应和哪些用户请求还未得到响应,因此可以直观地检测电梯调度算法的规则。

3 测试结果

测试方案:电梯初始时处于基层,即本系统的第一楼,并处于空闲状态,这时迅速先后按下第2,5楼的上行呼叫按钮,第4,7,8楼的下行呼叫按钮,厢内3楼和6楼的呼叫按钮;当电梯暂停于第5楼并且关门倒计时时间为6 s时,按下关门按钮;当电梯暂停于第8楼并且关门倒计时时间为2 s时,按下开门按钮。部分测试结果和分析如下:

(1) 首先,电梯上升,先后响应第2楼、第3楼和第5楼的呼叫请求,而没有在响应完第3楼的呼叫请求后去响应第4楼的呼叫请求,表明电梯遵循时间优先和顺向优先的原则;然后,电梯继续上升,先后响应第6楼和第8楼的呼叫请求,而没有在响应完第6楼的呼叫请求后去响应第7楼的呼叫请求或者立即改变电梯的运行方向,表明电梯遵行最远反向截梯控制原则;再然后,电梯向下运行,先后响应第7楼和第3楼的呼叫请求;最后,电梯停在第3楼,并进入空闲状态。

(2) 当液晶显示电梯处于暂停或者空闲状态时,步进电机停止转动;当液晶显示电梯处于上升状态时,步进电机匀速正转;当液晶显示电梯处于下降状态时,步进电机匀速反转。

(3) 当液晶显示电梯处于暂停或者空闲状态时,数码管显示的数字保持不变;当液晶显示电梯处于上升状态时,数码管显示的数字匀速递减;当液晶显示电梯处于下降状态时,数码管显示的数字匀速递增。

(4) 当液晶显示电梯由空闲或者运行状态转变为暂停状态的时刻,蜂鸣器发出一声短暂的响声。

(5) 当电梯暂停于第5楼并且关门倒计时时间为6 s时,按下关门按钮,液晶屏显示的关门倒计时时间迅速缩短为1 s,表明电梯有手动的关门功能。

(6) 当电梯暂停于第8楼并且关门倒计时时间为2 s时,按下开门按钮,液晶屏显示的关门倒计时时间迅速延长为3 s,表明电梯有手动的开门功能。

(7) 当电梯进入暂停时刻,液晶屏显示的关门倒计时时间由8 s开始匀速递减。

(8) 当电梯处于上升或者下降状态时,数码管以每3 s加1或者减1的速度变化。

4 结 论

本文设计了一种实用的电梯模拟系统,该系统采用STC89C52作为主控制器,外扩数码管、液晶屏、步进电机和蜂鸣器,可以模拟电梯的各种状态,软件上采用查找算法模拟电梯的真实运行规则,采用VB界面模拟电梯按键,模拟效果直观明了。本系统可反复编程,而无需改变电路,从而可以为各种电梯调度算法提供验证平台,为真正的电梯设计节省开发初期的研制时间和费用。

参考文献

[1] 郭雷岗,扈艳刚,李昭静,等.基于单片机的模拟电梯控制系统[J].福建电脑,2012,28(9):101?102.

[2] 曹荣敏,张凤池.单片机对电梯运行系统模拟的研究[J].微处理机,1998(3):49?51.

[3] 龚鲁华.C8051F单片机模拟电梯控制器的设计[J].科学技术与工程,2008(21):5925?5932.

[4] 石云.基于PLC的电梯控制系统的设计与实现[J].工业控制计算机,2009,22(4):5?6.

[5] 范次猛.教学用电梯模型系统的研究[J].机电工程技术,2009,38(12):52?54.

[6] TANAKA S, INNAMI Y, ARAKI M, et al. A study on objective functions for dynamic operation optimization of a single?car elevator system with destination hall call registration [C]// 2004 IEEE International Conference on Systems, Man and Cybernetics. [S.l.]: IEEE, 2004, 7: 6274?6279.

[7] ZHANG Yi?ne, YI Yun, ZHONG Jian. The application of the fuzzy neutral network control in elevator intelligent scheduling simulation [C]// 2010 International Symposium on Information Science and Engineering. Shanghai, China: ISISE, 2010: 512?516.

上一篇:企业私有云平台安全技术研究 下一篇:一种基于自组织竞争网络的车辆识别方法