毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx

上传人:b****6 文档编号:16936729 上传时间:2022-11-27 格式:DOCX 页数:27 大小:607.07KB
下载 相关 举报
毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx_第1页
第1页 / 共27页
毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx_第2页
第2页 / 共27页
毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx_第3页
第3页 / 共27页
毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx_第4页
第4页 / 共27页
毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx

《毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。

毕业设计基于PLD的三层电梯的控制设计Word格式文档下载.docx

(一)算法分析3

(二)程序设计6

四、程序调试12

五、程序仿真14

(一)波形输入建立14

(二)电梯运行情况仿真16

(三)电梯功能仿真18

总结19

附录一三层电梯控制的源程序20

附录二引脚锁定情况23

参考文献24

致谢25

引言

我国部分地区人口高度密集,人和土地资源短缺的矛盾日趋激化,这就要求人们合理地利用土地去解决人与土地的矛盾。

而兴建高层建筑是其中的有效措施之一。

因此,能使人们快速、便捷地到达目的楼层的电梯便应运而生了。

其中,三层电梯广泛应用在大型的货运之中,其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。

在客运上,三层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,可以为一些上下楼层不方便的人们提供相当的帮助。

本设计希望通过在简单的三层电梯控制设计之中,如何解决升、降请求信号因电梯所处状态而产生的冲突等问题出发,由此及彼,对高层电梯控制的开发作一个技术的铺垫,为高层电梯设计者提供一个基础。

针对目前中小型电梯所能实现的功能,本控制设计拟实现以下功能:

指示电梯运行所在楼层指示电梯运行方向关门延时设置看门狗报警超载报警故障报警。

一、设计的基础依据

现代电子设计技术的核心是EDA技术。

采用EDA技术开发的三层电梯自动控制与目前主流的利用可编程逻辑控制器(PLD)实现电梯控制紧密相连。

硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。

使用VHDL语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。

(一)EDA技术介绍

EDA技术是20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

设计者可以利用HDL程序来描述所希望的电路系统,规定其结构性和电路的行为方式然后利用EDA工具将此程序变成能控制场效应可编程门阵列(FPGA)/复杂可编程逻辑器件(CPLD)内部结构,实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。

就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL和VHDL等。

现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真的综合能力。

在现代高新电子产品的设计和生产中,微电子技术和现代电子设计技术是相互促进、相互推动又相互制约的两个技术环节。

前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反映了现代先进的电子理论、电子技术、仿真技术、设计工艺和设计技术与最新的计算机软件技术有机的融合和升华。

因此,严格地说,EDA技术应该是这二者的结合,是这两个技术领域共同孕育的奇葩。

(二)VHDL语言介绍

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,就在于它有以下优点:

1.VHDL语言功能强大,设计方式多样。

2.VHDL语言具有强大的硬件描述能力。

3.VHDL语言具有很强的移植能力。

4.VHDL语言的设计描述与器件无关。

由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。

(三)MAX+plusII软件介绍

MAX+plusII是Altera公司提供的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用易学的EDA软件。

它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段:

设计输入、项目编译、项目校验和器件编程。

首先根据系统的性能指标进行系统结构设计,对整个系统进行功能划分和模块划分。

对各子模块分别进行逻辑设计、编译、仿真与验证。

当不满足要求时,重新返回设计输入阶段,修改设计输入。

之后将优化结果下载到所选可擦写可编程逻辑器件(EPLD)芯片中,进行动态仿真。

最后则是测试芯片在系统中的实际运行性能。

二、方案论证

(一)基于PLC技术的电梯控制设计方案

可编程控制系统是一种专门为在工业环境下应用而设计的数字运算操作电子系统。

它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

可编程控制器是计算机技术与自动化控制技术相结合而开发的一种适用工业环境的新型通用自动控制装置,是作为传统继电器的替换产品而出现的。

随着微电子技术和计算机技术的迅猛发展,可编程控制器更多地具有了计算机的功能,不仅能实现逻辑控制,还具有了数据处理、通信、网络等功能。

由于它可通过软件来改变控制过程,而且具有体积小、组装维护方便、编程简单、可靠性高、抗干扰能力强等特点,已广泛应用于工业控制的各个领域,大大推进了机电一体化的进程。

PLC的特点可综述如下:

1.高可靠性

2.编程简单,使用方便

3.环境要求低

4.体积小,重量轻

5.扩充方便,组合灵活

(二)基于PLD技术的电梯控制设计方案

随着电子技术的发展,PLD技术在工业控制系统中得到了广泛的应用,在电梯控制电路上采用PLD技术进行开发,越来越受到人们的重视。

PLD技术开发手段多样,其中应用最为广泛的就是通过程序对硬件进行开发,而其中又数VHDL语言最受设计者的欢迎。

PLD技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和PLD软件来完成对系统硬件功能的实现。

近几年来,硬件描述语言等设计数据格式的逐步标准化,不同设计风格和应用的要求导致各具特色的PLD工具被集成在同一个工作站上,从而使PLD框架日趋标准化。

VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

其行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。

VHDL语言的设计单元包括实体(entity)、结构体(architecture)、程序包(package)以及配置(configration)。

其具体的流程图如图2.1所示。

图2.1VHDL设计流程图

(三)方案选择

对于符合市场需求的大规模系统,需要有多人,甚至多个开发组共同并行工作才能实现。

用PLD技术完成一个确定的设计,可以利用相应的工具平台进行逻辑综合和优化,完成设计任务。

同时,基于PLD技术的VHDL语言对设计的描述具有相对独立性,这为电子设计的入门者提供了便捷的帮助。

就上述比较而言,本设计采用PLD方案更恰当。

三、程序设计

(一)算法分析

1.电梯运行规则

(1)请求信号分析

本设计把电梯的请求信号分为上升请求和下降请求,电梯接收到请求信号后,都必须进行预操作。

当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行,这时的请求信号就是上升请求信号。

反之,则是下降请求信号。

(2)电梯处于各楼层时的运行说明

处于一楼时,不管是梯内梯外,电梯只接收上升的请求信号。

此时,电梯就进入预上升状态。

如果电梯没有接收到请求信号,电梯则在一楼待机。

其分析图如图3.1所示。

图3.1电梯处于一楼时的运行分析

处于二楼时,电梯则可能出现三种情况:

①电梯并没有接收到梯内梯外的任何请求信号时,电梯返回一楼待机;

②电梯接收到上升请求信号,进入预上升状态;

③电梯接收到下降请求信号,进入预下降状态。

其分析图如图3.2所示。

图3.2电梯处于二楼时的运行分析

处于三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。

此时,电梯就进入预下降状态,准备作下降运行。

如果电梯没有接收到请求信号,电梯则返回一楼待机。

其分析图如图3.3所示。

图3.3电梯处于三楼时的运行分析

电梯是一个人机交互式的控制系统,单纯用顺序优先或逻辑优先是不能满足控制要求的,因此,控制系统采用随机逻辑方式去解决信号优先的问题。

也就是在顺序逻辑控制的基础上,根据随机的输入信号和电梯的相应状态,实时地控制电梯运行。

比如,当电梯在三楼时,二楼、一楼梯外均有上升请求信号:

电梯以向下的方向接近二楼的减速位置,判别二楼具有同向的请求信号,在二楼减速停止载客,然后继续下降到一楼载客。

当电梯在三楼时,梯内有到达一楼的下降请求信号,而二楼有上升请求信号:

当电梯以向下的方向接近二楼的减速位置时,判别二楼具有反向的请求信号,系统将把二楼的上升请求保存到上升请求寄存上,不在二楼作停泊继续下降到一楼去载客,然后读取上升请求寄存中先前二楼的上升请求,执行上升到二楼载客的操作。

该动作完毕后,被保存的寄存器中的数据清除,以实现下一次随机逻辑控制。

(3)对电梯开门、关门、报警等内部信号处理的分析。

当电梯接收到请求信号后,将以随机逻辑控制的方式到达发出请求的楼层。

开门使能信号促使电梯开门载客,同时驱动关门延时信号、超重检测以及故障检测。

在电梯进行完关门倒数计时、超重排除以及故障排除后,关门使能信号将促使电梯关门进入预操作状态。

如果此前出现提前关门信号而且电梯也已经进行完超重排除和故障排除,电梯同样关门进入预操作状态。

电梯在超重检测时发现超重,关门中断信号会促使电梯发出超重警报并且进行开门操作以减少乘客,重新进入载客操作电梯在故障检测时,发现电梯某部分出现故障,关门中断信号会促使电梯发出故障报警,并进入开门操作的同时停止关门延时,作故障处理待机。

2.程序流程

根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。

实体对控制器的端口进行定义,结构体对各端口的行为进行描述。

因此程序运行需经过以下流程:

VHDL库调用确立控制器的端口及相关的寄存器根据电梯运行规则,设计相关运行描述对电梯内外信号进行处理。

具体流程图如图3.4所示。

图3.4流程图

(二)程序设计

1.端口设计

本设计的端口包括:

时钟信号(clk)超载信号(full)、关门中断信号(deng)、提前关门信号(quick)、清除报警信号(clr)一楼电梯外人的上升请求信号(c_u1)、二楼电梯外人的上升请求信号(c_u2)二楼电梯外人的下降请求信号(c_d2)、三楼电梯外人的下降请求信号(c_d3)电梯内人请求到达一楼信号(d1)、电梯内人请求到达二楼信号(d2)、电梯内人请求到达三楼信号(d3)、到达一楼信号(g1)、到达二楼信号(g2)、到达三楼信号(g3)电梯门控制信号(door)电梯所在楼层显示(led)电梯外人上升请求信号显示(led_c_u)、电梯外人下降请求信号显示(led_c_d)电梯内请求信号显示(led_d)看门狗报警信号(wahaha)、超载警告信号(alarm)电梯运动方向显示(ud)电机向上控制信号(up)、电机向下控制信号(down)。

2.寄存器设计

本设计的寄存器包括:

电梯内人请求到达一楼信号寄存(d11)、电梯内人请求到达二楼信号寄存(d22)、电梯内人请求到达三楼信号寄存(d33)一楼电梯外人上升请求信号寄存(c_u11)、二楼电梯外人上升请求信号寄存(c_u22)二楼电梯外人下降请求信号寄存(c_d22)、三楼电梯外人下降请求信号寄存(c_d33)分频信号(q)关门延时计数器(q1)、看门狗计数器(q2)电梯内请求信号寄存器(dd)电梯外上升请求信号寄存器(cc_u)、电梯外下降请求信号寄存器(cc_d)电梯请求信号寄存器(dd_cc)

开门使能信号(opendoor)电梯运动方向信号寄存器(updown)预备上升操作使能(en_up)、预备下降预操作使能(en_dw)。

3.模块设计

本程序由调用VHDL库模块、实体设计模块和结构体设计模块组成。

在结构体模块中又内嵌有进程执行单元。

(1)调用VHDL库

通过library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库”。

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

(2)entity实体设计模块

entitydiantiis

port(clk:

instd_logic;

full,deng,quick,clr:

c_u1,c_u2:

c_d2,c_d3:

d1,d2,d3:

g1,g2,g3:

door:

outstd_logic_vector(1downto0);

led:

outstd_logic_vector(3downto0);

led_c_u:

outstd_logic_vector(2downto0);

led_c_d:

led_d:

outstd_logic_vector(2downto0);

wahaha:

outstd_logic;

ud,alarm:

up,down:

outstd_logic);

enddianti;

实体语句用关键词entity开头,本程序以dianti(电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用enddianti。

在entity语句的实体说明部分,用port附语描述实体对外界连接的端口(数目、方向和数据类型),实体dianti有25个接口,输入模式是clk/full/deng/quick/clr/c_u1/c_u2/c_d2/c_d3/d1/d2/d3/g1/g2/g3,其余都是输出模式,其中door/led/ledc_u/ledc_d/ledd是带数组模式的输出接口。

(3)architecture结构化设计模块和process进程执行单元

dianti符号下的线路图描述dianti网表,与线路图对应的VHDLarchitecture就是结构体,实体dianti以结构化与行为化描述的结构体如下:

architecturebehavofdiantiis

signald11,d22,d33:

std_logic;

signalc_u11,c_u22:

signalc_d22,c_d33:

signalq:

integerrange0to1;

signalq1:

integerrange0to6;

signalq2:

integerrange0to9;

signaldd,cc_u,cc_d,dd_cc:

std_logic_vector(2downto0);

signalopendoor:

signalupdown:

signalen_up,en_dw:

begin

com:

process(clk)

……

endbehav;

本模块以关键字architecture做结构体的开头,描述dianti实体的结构体behav。

Architectecture和begin之间是结构体说明区,详细定义了各种信号端的模式和取值范围begin和end之间是结构体语句区,在此将嵌入process进程语句去对实体行为作出说明。

begin

ifclk'

eventandclk='

1'

then

ifclr='

thenq1<

=0;

q2<

wahaha<

='

0'

elsiffull='

thenalarm<

q1<

ifq1>

=3thendoor<

="

10"

elsedoor<

00"

endif;

……

dd<

=d33&

d22&

d11;

cc_u<

&

c_u22&

c_u11;

cc_d<

=c_d33&

c_d22&

'

dd_cc<

=ddorcc_uorcc_d;

ud<

=updown;

led_d<

=dd;

led_c_u<

=cc_u;

led_c_d<

=cc_d;

endprocess;

关键字process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。

关键字begin把进程语句分为进程说明和进程语句两部分。

进程说明在时钟信号和begin之间,说明局部变量或某些仅在进程内部用的内容。

进程语句部分在begin和endprocess之间,进程内的所有语句都是按顺序一个接一个执行的。

3.具体语句设计说明

(1)赋值符号

上文已说明了构成VHDL程序的两大部分――实体和结构体的相关语句。

在这些语句里,赋值语句占了相当一部分。

在VHDL语言里,赋值符号一般都是“<

=”符号,具体形式如下:

elsedoor<

endif;

……

VHDL语言也具有与一般编程语言相同的一些语言逻辑结构,如上述中的“if…then…;

elsif…then…;

”等。

这是VHDL中的顺序语句,与我们常见的C语言中if作为条件语句不同。

本程序只使用到上述的语言结构,相对简易。

(2)电梯信号定义

在实体模块中,对电梯的主要信号都一一作出了定义,具体说明如下:

时钟信号

full,deng,quick,clr:

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

电梯外人的上升请求信号

电梯外人的下降请求信号

d1,d2,d3:

电梯内人的请求信号

g1,g2,g3:

到达楼层信号

电梯门控制信号

outstd_logic_vector(6downto0);

电梯所在楼层显示

led_c_u:

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

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

电梯内请求信号显示

wahaha:

看门狗报警信号

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

电机控制信号和电梯运动

在结构体中对电梯的运行行为作出描述,其中以电梯处于二楼的情况相对复杂,对此作如下说明:

elsifg2='

thenled<

0010010"

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

ifupdown='

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

ifd22='

orc_u22='

thend22<

c_u22<

opendoor<

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

elsifdd_cc>

"

011"

thenen_up<

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

elsifdd_cc<

010"

thenen_dw<

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

当前位置:首页 > 解决方案 > 其它

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

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