基于VHDL的电梯控制系统设计说明Word格式.docx

上传人:b****5 文档编号:19751090 上传时间:2023-01-09 格式:DOCX 页数:16 大小:290.38KB
下载 相关 举报
基于VHDL的电梯控制系统设计说明Word格式.docx_第1页
第1页 / 共16页
基于VHDL的电梯控制系统设计说明Word格式.docx_第2页
第2页 / 共16页
基于VHDL的电梯控制系统设计说明Word格式.docx_第3页
第3页 / 共16页
基于VHDL的电梯控制系统设计说明Word格式.docx_第4页
第4页 / 共16页
基于VHDL的电梯控制系统设计说明Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于VHDL的电梯控制系统设计说明Word格式.docx

《基于VHDL的电梯控制系统设计说明Word格式.docx》由会员分享,可在线阅读,更多相关《基于VHDL的电梯控制系统设计说明Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

基于VHDL的电梯控制系统设计说明Word格式.docx

二、设计框图及模块说明

✧设计电梯系统框图如下图所示:

✧电梯系统大致包括4个模块:

1)外部数据采集模块

对外部信号采集、处理要求电梯控制器:

实现对外部请求信号的实时、准确采集;

准确实时地捕捉达到楼层的信号;

有效防止楼层到达信号、外部请求信号的误判。

采用FPGA为系统控制核心,系统时钟频率足够满足此系统实时采集数据的要求。

外部请求信号的输入形式为按键输入,到达楼层信号来自光敏传感器,关门中断信号及超载信号则产生于压力传感器。

2)信号存储模块

电梯控制系统的请求输入信号有18个(电梯外有6个上升请求和6个下降请求的用户输入端口,电梯有6个请求用户输入端口),由于系统对外请求没有设置优先级,各楼层的外请求信号被采集后可先进行运算,再存到存储器。

要注意的是电梯运行过程中,由于用户的请求信号的输入是离散的,而且系统对请求的响应也是离散的,因此请求信号的存储要新的请求信号不能覆盖原来的请求信号,只有响应动作完成后才能清除存储器对应的请求信号位。

3)基于FPGA的中央处理器模块

中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。

电梯工作过程中共有9种状态:

等待、上升、下降、开门、关门、停止、休眠、超载报警及故障报警状态。

一般情况下电梯的工作始点是第一层,起始状态是等待状态,启动条件是接受上升请求。

超载状态时电梯关门动作取消,同时发出警报,直到警报被清除(看门狗信号有效的条件是一层楼连续发生关门中断情况超过3次)。

本系统由请求信号启动,运行中每检测到一个到达楼层信号,再参考原方向信号来决定是否停止,转向等动作。

系统状态流程图如下图所示:

4)信号的输出、显示模块

本系统的输出信号有两种:

一种是电机的升降控制信号(两位)和开门/关门控制信号;

另一种是面向用户的提示信号(含楼层显示、方向显示、已接受请求显示等)。

电机控制信号一般需要两位,本系统中电机有3种工作状态:

正转、反转和停转状态。

两位控制信号作为一个三路开关的选通信号,此三路开关选用模拟电子开关。

系统的显示输出包括数码管楼层显示、数码管请求信号显示和表征运动方向箭头指示灯的开关信号。

LED七段数码管显示部分在前面的作业中已经做了详细的介绍及说明,在本系统中省略。

本系统具有请求信号显示功能,结合方向显示,可以减少用户对同一请求的输入次数,这样就延长了电梯按键的寿命。

三、电梯控制程序设计源代码及端口说明

输入端口信号说明:

clk:

时钟信号,2Hz;

clr:

清除警报信号,高有效,清除故障报警;

c_u1、c_u2、c_u3、c_u4、c_u5:

电梯外人的上升请求;

c_d2、c_d3、c_d4、c_d5、c_d6:

电梯外人的下降请求;

deng:

关门中断,用于在需要等待时,让电梯门一直打开,停止运动;

d1、d2、d3、d4、d5、d6:

电梯人的请求信号;

full:

超载信号,高时表示电梯的人过多,超载报警;

g1、g2、g3、g4、g5、g6:

到达楼层信号,数码管LED将显示其值;

quick:

提前关门信号,高有效,当为高时,电梯门马上关闭;

输出端口信号说明:

door[1:

0]:

电梯门控信号;

led[6:

电梯所在楼层显示;

led_c_u[5:

电梯外人上升请求信号显示;

led_c_d[5:

电梯外人下降请求信号显示;

led_d[5:

电梯请求信号显示;

alarm:

超载警告信号;

up:

电梯运动状态显示,高时表示上升;

down:

电梯运动状态显示,高时表示为下降;

ud:

电机控制信号,控制电梯的上升下降,“1”表示为上升,“0”表示为下降;

wawawa:

看门狗报警信号,高时表示故障报警。

源代码如下所示:

----------------------------------------------------------------------------------

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitydiantiis

port(clk:

instd_logic;

--时钟信号(频率为2Hz)

full,deng,quick,clr:

--超载、关门中断、提前关门清除报警信号

c_u1,c_u2,c_u3,c_u4,c_u5:

--电梯外人的上升请求信号

c_d2,c_d3,c_d4,c_d5,c_d6:

--电梯外人的下降请求信号

d1,d2,d3,d4,d5,d6:

--电梯人的请求信号

g1,g2,g3,g4,g5,g6:

--到达楼层信号

door:

outstd_logic_vector(1downto0);

--电梯门控制信号

led:

outstd_logic_vector(6downto0);

--电梯所在楼层显示

led_c_u:

outstd_logic_vector(5downto0);

--电梯外人上升请求信号显示

led_c_d:

--电梯外人下降请求信号显示

led_d:

outstd_logic_vector(5downto0);

--电梯请求信号显示

wahaha:

outstd_logic;

--看门狗报警信号

ud,alarm:

--电梯运动方向显示,超载警告信号

up,down:

outstd_logic);

--电机控制信号和电梯运动

enddianti;

architecturebehavofdiantiis

signald11,d22,d33,d44,d55,d66:

std_logic;

--电梯人请求信号寄存信号

signalc_u11,c_u22,c_u33,c_u44,c_u55:

--电梯外人上升请求信号寄存信号

signalc_d22,c_d33,c_d44,c_d55,c_d66:

--电梯外人下降请求信号寄存信号

signalq:

integerrange0to1;

--分频信号

signalq1:

integerrange0to6;

--关门延时计数器

signalq2:

integerrange0to9;

--看门狗计数器

signaldd,cc_u,cc_d,dd_cc:

std_logic_vector(5downto0);

--电梯外请求信号寄存器

signalopendoor:

--开门使能信号

signalupdown:

--电梯运动方向信号寄存器

signalen_up,en_dw:

--预备上升、预备下降预操作使能信号

begin

:

process(clk)

ifclk'

eventandclk='

1'

then

ifclr='

thenq1<

=0;

q2<

wahaha<

='

0'

;

--清除故障报警

elsiffull='

thenalarm<

q1<

--超载报警

ifq1>

=3thendoor<

="

10"

elsedoor<

00"

endif;

elsifq=1thenq<

alarm<

ifq2=3thenwahaha<

--故障报警

else

ifopendoor='

thendoor<

q1<

up<

down<

--开门操作

elsifen_up='

then--上升预操作

ifdeng='

=q2+1;

--关门中断

elsifquick='

=3;

--提前关门

elsifq1=6thendoor<

updown<

--关门完毕,电梯进入上升状态

elsifq1>

01"

=q1+1;

--电梯进入关门状态

elseq1<

door<

--电梯进入等待状态

elsifen_dw='

then--下降预操作

ifg1='

thenled<

1001111"

--电梯到达1楼,数码管显示1

ifd11='

orc_u11='

thend11<

c_u11<

opendoor<

--有当前层的请求,则电梯进入开门状态

elsifdd_cc>

"

000001"

thenen_up<

opendoor<

--有上升请求,则电梯进入预备上升状态

elsifdd_cc="

000000"

thenopendoor<

--无请求时,电梯停在1楼待机

elsifg2='

0010010"

--电梯到达2楼,数码管显示2

ifupdown='

then--电梯前一运动状态位上升

ifd22='

orc_u22='

thend22<

c_u22<

--有当前层的请求,则电梯进入开门状态

000011"

--有上升请求,则电梯进入预备上升状态

elsifdd_cc<

000010"

thenen_dw<

--有下降请求,则电梯进入预备下降状态

--电梯前一运动状态为下降

elsifd22='

orc_d22='

c_d22<

--有当前层的请求,则电梯进入开门状态

--有上升请求,则电梯进入预备上升状态

elsifg3='

0000110"

--电梯到达3楼,数码管显示3

ifd33='

orc_u33='

thend33<

c_u33<

000111"

000100"

elsifd33='

orc_d33='

c_d33<

elsifg4='

1001100"

--电梯到达4楼,数码管显示4

ifd44='

orc_u44='

thend44<

c_u44<

001111"

001000"

elsifd44='

orc_d44='

c_d44<

elsifg5='

0100100"

--电梯到达5楼,数码管显示5

ifd55='

orc_u55='

thend55<

c_u55<

011111"

010000"

elsifd55='

orc_d55='

c_d55<

elsifg6='

0100000"

--电梯到达6楼,数码管显示6

ifd66='

orc_d66='

thend66<

c_d66<

100000"

elseen_up<

en_dw<

--电梯进入上升或下降状态

elseq<

=1;

--清除超载报警

ifd1='

ord1='

=d1;

--对电梯人请求信号进行检测和寄存

elsifd2='

ord2='

=d2;

elsifd3='

ord3='

=d3;

elsifd4='

ord4='

=d4;

elsifd5='

ord5='

=d5;

elsifd6='

ord6='

=d6;

ifc_u1='

orc_u1='

thenc_u11<

=c_u1;

--对电梯外人上升请求信号进行检测和寄存

elsifc_u2='

orc_u2='

thenc_u22<

=c_u2;

elsifc_u3='

orc_u3='

thenc_u33<

=c_u3;

elsifc_u4='

orc_u4='

thenc_u44<

=c_u4;

elsifc_u5='

orc_u5='

thenc_u55<

=c_u5;

ifc_d2='

orc_d2='

thenc_d22<

=c_d2;

--对电梯外人下降请求信号进行检测和寄存

elsifc_d3='

orc_d3='

thenc_d33<

=c_d3;

elsifc_d4='

orc_d4='

thenc_d44<

=c_d4;

elsifc_d5='

orc_d5='

thenc_d55<

=c_d5;

elsifc_d6='

orc_d6='

thenc_d66<

=c_d6;

dd<

=d66&

d55&

d44&

d33&

d22&

d11;

--电梯人请求信号并置

cc_u<

&

c_u55&

c_u44&

c_u33&

c_u22&

c_u11;

--电梯外人上升请求信号并置

cc_d<

=c_d66&

c_d55&

c_d44&

c_d33&

c_d22&

'

--电梯外人下降请求信号并置

dd_cc<

=ddorcc_uorcc_d;

--电梯、外人请求信号进行综合

ud<

=updown;

--电梯运动状态显示

led_d<

=dd;

--电梯人请求信号显示

led_c_u<

=cc_u;

led_c_d<

=cc_d;

endif;

endprocess;

endbehav;

此次电梯控制系统设计使用的是Altera公司的MAX-II,由下资源使用情况图可见这款芯片足够满足本次设计需求。

四、仿真结果及说明

假设电梯初始状态在一楼,此时2、3楼电梯外有人要下楼,4楼电梯外有人要上楼,在此后输入等待、快速关门、超载等信号,观察仿真图得出结论:

电梯控制程序仿真全图

注:

实际使用时电梯的时钟为2Hz,为了仿真时便于观察我们在仿真时,将频率加倍为25MHz。

电梯控制程序仿真局部放大图-1

1.电梯停在一楼时,接受到请求信号c_d3、c_d2、c_u4和d6,并把请求信号写入相应的寄存器。

led显示电梯所在楼层;

led_d、led-c_u和led_c_d显示用户的请求。

2.电梯经过准备上升状态后,进入上升状态,到达2楼、3楼时,由于2、3楼的乘客要求的是下降,所以不停继续前进。

3.电梯上升到4楼时,响应请求(c_u4),开门载客;

载客时电梯的门状态door先由10(电梯门打开)跳到00(等待)再跳到01(电梯门关闭),完成乘客的进入;

此后进入预备上升状态。

电梯控制程序仿真局部放大图-2

1.电梯上升到6楼时,响应请求(d_6),开门卸客;

进入预备下降状态。

2.电梯下降经过5楼,4楼都不停,到达3楼开门卸客,电梯进入预备下降状态。

电梯控制程序仿真局部放大图-3

1.电梯到达3楼时,响应请求(c_d3),开门载客;

2.电梯在预备下降状态下,电梯应超载(full='

),发出超载警报alarm;

超载信号消失(full='

),电梯重新进入预备下降状态。

4.电梯接收到提前关门信号quick,电梯跳过关门等待时间。

仿真图中q1从1跳到3;

进入关门状态。

5.电梯接收到deng、c_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1