1、EDA-电梯控制器课程设计目 录1 绪论11.1 电梯控制系统的发展史11.2 电梯的发展方向22 基于EDA技术的四层电梯控制器设计22.1 系统控制要求22.1.1 四层电梯控制器的功能22.1.2 控制方案的制定33 系统仿真64 结束语6参考文献7附录:8摘要:电梯是机械电器紧密结合的大型机电产品主要由机房、井道、轿厢、门系统和电气控制系统组成。伴随建筑业的发展,为建筑内提供上下交通运输的电梯工业也在日新月异地发展着。电梯已不仅是一种生产环节中的重要设备,更是一种工作和生活中的必需设备,完全可以预想到,随着社会的发展,电梯产品在人们物质文化生活中的地位将和汽车一样,成为重要的运输设备之
2、一。 关键字:电梯控制器,CPLD,VHDL状态机 ,EDA。II1 绪论1.1 电梯控制系统的发展史从1889年出现第一台名副其实的电梯后,电梯控制技术经历了四次大的发展。1)继电器控制阶段。在计算机技术还没有广泛应用于工业控制领域时,继电器一直充当着工业控制中的核心部件,电梯控制系统领域也不例外。上世纪八十年代以前,继电器控制一直是我国电梯控制系统的全部。到了八十年代,继电器控制仍然是电梯控制系统中的主导技术。(2)PLC控制阶段。PLC实际上是一种通用的工业控制技术,在进入电梯控制系统以前,已被广泛应用于其他各种工业控制领域。在我国,从上世纪八十年代末开始,PLC逐渐被各电梯厂家成功应用
3、到电梯控制系统中。九十年代,国内自己开发、设计的电梯控制系统中,PLC系统占绝对主导地位。(3)微机控制系统。实际上,在发达国家的著名电梯生产厂家中,如奥的斯、三菱等,它们根本就没有用过PLC作为电梯控制系统。早在上世纪七十年代末期或八十年代初,专用的微机电梯控制系统已经投入市场。早期中国国内生产的专用微机电梯控制系统,基本上都是从国外引进技术的产品。直到上世纪九十年代中期起,才逐渐有国内自行开发设计的比较成功的专用微机电梯控制系统产品投入市场。(4)采用串行通信技术的新型电梯专用微机控制系统。早期的微机控制系统和PLC控制系统一样,对外围所有开关和按钮信号的输入及点灯信号的输出都是通过一对一
4、方式实现的,这样带来的问题是系统接线很多,对生产、安装和维修保养都带来很大的不便。因此,电梯控制系统的设计者们开始追求串行传送的方式。到了上世纪九十年代,随着计算机串行通信技术的不断发展,该技术也被应用到了电梯控制系统中。采用此技术的电梯专用微机控制系统中,除主控制器外,在操纵箱中、每个召唤盒内都装有CPU板,它们与主控制器之间通过串行通信传送大量信号。这样,使各部件之间既能传递比过去更多的信息,以完成更丰富、更先进的操作功能,又大大减少了系统的接线。1.2 电梯的发展方向众所周知,电梯是一种耗能很大的产品,随着国家“节能减排”政策的普及,电梯行业已经纷纷行动起来,生产绿色环保的产品是时代的要
5、求。除了驱动系统方面是个很重要的环节,控制系统跟环保也是密切相联的。在欧洲已经有这方面的认识,对控制系统也提出了很多要求,如对电阻波、电子板等的标准更严格。中国作为全球电梯市场的一个重要部分,也会得到慢慢规范和完善。假如2015年在我国所有使用的电梯中如果有80%采用节能电梯,将节电800亿千瓦时,几乎等于三峡大坝一年的发电量。在政府采购中对节能性能予以优先考虑。目前国内的电梯销售有接近一半的数量在政府采购领域或跟政府采购有关,因此政府采购对节能电梯的倾向性可以有效扶持节能电梯产业。由于节能电梯产量不大,市场价格偏高,政府在初期可将其作为环保项目给予政策倾斜,或者对采用节能电梯的开发商以政策鼓
6、。节能电梯技术应与其他技术相结合。与节能相比,使用者目前更为看重的还是电梯的安全性能。传统电梯安全部件正在改用双向安全系统,电梯使用的安全技术也在不断扩大。将节能技术和其他安全技术相结合有利于提升产品品质,更容易进入采购商的视野。2 基于EDA技术的四层电梯控制器设计2.1 系统控制要求2.1.1 四层电梯控制器的功能四层电梯控制器的功能如下: (1) 每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。 (2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。(3)电梯每秒上升(下降)一层楼。(4)电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开
7、门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号停留在当前层。(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。(6)电梯运行规则当电梯处于上升模式时,只响应比电梯所在位置的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高楼层,然后进入下降模式。当电梯处于下降模式则与上升模式相反。(7)电梯初始状态为一层开门状态2.1.2 控制方案的制定通过一个统一的1秒为周期的时钟来触发状态机。根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在1层”、“开门”
8、、“关门”、“开门等待第1秒”、“开门等待第二秒”、“开门等待第三秒”、“开门等待第四秒”、“上升”、“下降”和“停止”状态。各个状态之间的转换条件可由上面的设计要求所决定。2.1.3 控制方案的实现(1)四层电梯控制系统的实体实际:首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层最低,不需要下降请求,四层是最高层。不需要有上升请求,二层与三层则上升,下降请求端口都有;在电梯内部,应该设有各层停留的请求端口;一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个是按键时钟输入端口,时钟频率比电
9、梯时钟高。其次是输出端口,有升降请求信号,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑1,被响应以后则恢复逻辑0;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。在端口的定义中定义position时选用的是整型数据类型(INTEGRER),主要是为了在电梯运行是便于观察。整型直接可以看出电梯运行是楼层的变化,在第一层就显示1,第二层就显示2,很直观。当然,position的定义也可以用标
10、准逻辑矢量(STD_LOGIC_VECTOR)来定义,但是如果选用标准逻辑矢量,在电梯运行时就不是那么好观察。这里是四层的电梯控制器,那么只需定义一个两位的就足够显示了。”00”的时候对应电梯的第一层,”11”的时候就对应第四层。但是”11”的十进制值为3,没有和层次显示的第四层想对应起,所以就放弃选用标准逻辑矢量来定义position,而选用的整型。(2) 四层电梯控制系统的结构体设计首先说明一下状态。状态机设置了10个状态,分别是电梯停留在1层(stopon1)、开门(dooropen)、关门(doorclose)、开门等待第1秒(doorwait1)、开门等待第2秒(doorwait2)
11、、开门等待第3秒(doorwait3)、开门等待第4秒(doorwait4)、上升(up)、下降(down)和停止(stop)。在实体说明中定义完端口之后,在结构体个之间需要有如下的定义语句,来定义状态机。TYPE lift_state IS(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop) -电梯的10个状态SIGNAL mylift:lift_state; -定义为lift类型的信号mylift在结构体中,设计了两个进程互相配合,一个状态机进程作为主要进程,另外一个是信号灯控制进
12、程作为辅助进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是有状态机进程中传出clearup和cleardn信号来控制。在状态机进程中,在电梯上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。按键后产生的点亮的信号灯(逻辑值为1)用于作为状态机
13、进程中的判断条件,而clearup和cleardn信号为逻辑1使得相应的信号灯熄灭。(3)四层电梯控制系统的设计输入输出端口定义表Buttonclk按键时钟Liftclk电梯时钟Reset异步复位信号f1upbutton第一层上升请求f2upbutton第二层上升请求f3upbutton第三层上升请求f2dnbutton第二层下降请求f3dnbutton第三层下降请求f4dnbutton第四层下降请求Fuplight上升指示灯(1 到4)Fdnlight下降指示灯(1 到4)stop1button第一层到站请求stop2button第二层到站请求stop3button第三层到站请求stop4b
14、utton第四层到站请求Stoplight停止指示灯(1 到4)Position电梯位置(1 到4)Doorlight门灯Udsig电梯模式表2-1输入输出端口定义表Table 2-1 input and output port definition table源程序见附录3 系统仿真图 3-1 系统仿真Figure 3-1 system simulation图3-1描述的是系统的仿真波形。电梯初始状态是停在一楼,电梯门打开,当有人操作是会先关闭然后升到相应楼层,门打开。因为不可以自行关门,所以,停留四秒之后自动关闭电梯门。人在电梯内部按相应楼层,电梯到达相应楼层后门打开。并且在相应楼层等待。
15、4 结束语由于CPLD具有性能稳定、抗干扰能力强、设计配置灵活等特点,配合VHDL语言的突出的优点,因此在工业控制方面得到了广泛应用。相信以后必将受到世界范围内电子工程设计人员人员的广泛关注和普遍欢迎。本文中设计的电梯控制器利用以CPLD为实现载体,以VHDL为描述语言实现了电梯的升降舒适感和运行的可靠性,更相信在以后的智能建筑中得到广泛的应用和推广。参考文献1潘松,黄继业 EDA技术实用教程北京:科学出版社,2002. 2徐志军,徐光辉编著 CPLD/FPGA的开发与应用 ,电子工业出版社,2005.附录:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;US
16、E IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY dianti IS PORT(buttonclk:IN STD_LOGIC; liftclk:IN STD_LOGIC; reset:IN STD_LOGIC; f1upbutton:IN STD_LOGIC; f2upbutton:IN STD_LOGIC; f2dnbutton:IN STD_LOGIC; f3upbutton:IN STD_LOGIC; f3dnbutton:IN STD_LOGIC; f4dnbutton:IN STD_LOGIC; fup
17、light:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 1); fdnlight:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 1); stop1button,stop2button,stop3button,stop4button:IN STD_LOGIC; stoplight:BUFFER STD_LOGIC_VECTOR(4 DOWNTO 1); position:BUFFER INTEGER RANGE 1 TO 4; doorlight:OUT STD_LOGIC; udsig:BUFFER STD_LOGIC);END dianti;ARCH
18、ITECTURE art OF dianti ISTYPE lift_stata IS(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop);SIGNAL mylift:lift_stata;SIGNAL clearup:STD_LOGIC;SIGNAL cleardn:STD_LOGIC;BEGINctrlift:PROCESS(reset,liftclk)VARIABLE pos:INTEGER RANGE 4 DOWNTO 1;BEGINIF reset=1 THEN mylift
19、=stopon1; clearup=0; cleardndoorlight=1; position=1;pos:=1; myliftmyliftclearup=0; cleardn=0; myliftmyliftmyliftdoorlight=0; IF udsig=0 THEN IF position=4 THEN IF stoplight=0000AND fuplight=0000 AND fdnlight=0000 THEN udsig=1; mylift=doorclose; ELSE udsig=1;mylift=down;clearup=1; END IF; ELSIF posit
20、ion=3 THEN IF stoplight=0000 AND fuplight=0000 and fdnlight=0000 THEN udsig=0; mylift=doorclose; ELSIF stoplight(4)=1 OR fdnlight(4)=1 THEN udsig=0; mylift=up;clearup=1; ELSE udsig=1;mylift=down;clearup=1; END IF; ELSIF position=2 THEN IF stoplight=0000 AND fuplight=0000 AND fdnlight=0000 THEN udsig
21、=0;mylift=doorclose; ELSIF (stoplight(3)=1 OR fuplight(3)=1) THEN udsig=0;mylift=up;clearup=1; ELSIF (stoplight(4)=1 OR fdnlight(4)=1) THEN udsig=0;mylift=up;clearup=1; ELSIF (fdnlight(3)=1) THEN udsig=0;mylift=up;clearup=1; ELSE udsig=1;mylift=down;clearup=1; END IF; ELSIF position=1 THEN IF stopli
22、ght=0000 AND fuplight=0000 AND fdnlight=0000 THEN udsig=0;mylift=doorclose; ELSE udsig=0;mylift=up;clearup=1; END IF; END IF; ELSIF udsig=1 THEN IF position=1 THEN IF stoplight=0000 AND fuplight=0000 AND fdnlight=0000 THEN udsig=0; mylift=doorclose; ELSE udsig=0;mylift=up;cleardn=1; END IF; ELSIF po
23、sition=2 THEN IF stoplight=0000 AND fuplight=0000 AND fdnlight=0000 THEN udsig=1;mylift=doorclose; ELSIF stoplight(1)=1 OR fuplight(1)=1 THEN udsig=1; mylift=down;cleardn=1; ELSE udsig=0;mylift=up;clearup=1; END IF; ELSIF position=3 THEN IF stoplight=0000 AND fuplight=0000 AND fdnlight=0000 THEN uds
24、ig=1;mylift=doorclose; ELSIF (stoplight(2)=1 OR fdnlight(2)=1) THEN udsig=1;mylift=down;cleardn=1; ELSIF (stoplight(1)=1 OR fuplight(1)=1) THEN udsig=1;mylift=down;cleardn=1; ELSIF (fuplight(2)=1) THEN udsig=1;mylift=down;cleardn=1; ELSE udsig=0;mylift=up;clearup=1; END IF; ELSIF position=4 THEN IF
25、stoplight=0000 AND fuplight=0000 AND fdnlight=0000 THEN udsig=1;mylift=doorclose; ELSE udsig=1;mylift=down;cleardnposition=position+1; pos:=pos+1; IF pos4 AND(stoplight(pos)=1 OR fdnlight(pos)=1) THEN mylift=stop; ELSIF pos=4 AND (stoplight(pos)=1 OR fdnlight(pos)=1) THEN mylift=stop; ELSE myliftpos
26、ition1 AND(stoplight(pos)=1 OR fuplight(pos)=1) THEN mylift=stop; ELSIF pos=1 AND (stoplight(pos)=1 OR fdnlight(pos)=1) THEN mylift=stop; ELSE myliftmyliftdoorlight=1; IF udsig=0 THEN IF position=3 AND(stoplight(position)=1 OR fuplight(position)=1)THEN clearup=1; ELSE clearup=1;cleardn=2 AND(stoplig
27、ht(position)=1 OR fdnlight(position)=1)THEN cleardn=1; ELSE clearup=1;cleardn=1; END IF; END IF; mylift=doorwait1; END CASE; END IF; END IF;END process ctrlift;ctrlight:PROCESS(reset,buttonclk)BEGINIF reset=1 THEN stoplight=0000;fuplight=0000;fdnlight=0000;ELSE IF buttonclkEVENT AND buttonclk=1 THEN
28、 IF clearup=1 THEN stoplight(position)=0;fuplight(position)=0; ELSE IF f1upbutton=1 THEN fuplight(1)=1; ELSIF f2upbutton=1 THEN fuplight(2)=1; ELSIF f3upbutton=1 THEN fuplight(3)=1; END IF; END IF; IF cleardn=1 THEN stoplight(position)=0;fdnlight(position)=0; ELSE IF f2dnbutton=1 THEN fdnlight(2)=1;
29、 ELSIF f3dnbutton=1 THEN fdnlight(3)=1; ELSIF f4dnbutton=1 THEN fdnlight(4)=1; END IF; END IF; IF stop1button=1 THEN stoplight(1)=1; ELSIF stop2button=1 THEN stoplight(2)=1; ELSIF stop3button=1 THEN stoplight(3)=1; ELSIF stop4button=1 THEN stoplight(4)=1; END IF; END IF;END IF;END process ctrlight;END art;13