0 引言
电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用VHDL语言来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera公司的MAX+plus II软件仿真,目标器件选用CPLD器件。通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。
1 三层电梯控制器将实现的功能
(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。
(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯每秒升(降)一层楼。
(4)电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
(6)电梯运行规则一当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反。
(7)电梯初始状态为一层开门状态。
2 设计方案和论证
2.1 控制器的设计方案
控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。
2.2 三层电梯控制器的设计思路
电梯控制器采用状态机来实现,思路比较清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待第1秒”、“开门等待第2秒”、“开门等待第3秒”、“开门等待第4秒”、“上升”、“下降”和“停止状态”。各个状态之间的转换条件可由上面的设计要求所决定。
3 三层电梯控制器的综合设计
3.1 三层电梯控制器的实体设计
首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求,三层是最高层,不需要有上升请求,二层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。
其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘l’。被响应以后则恢复逻辑‘O’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。