三层电梯plc控制程序(唐泽龙做的)设计_第1页
三层电梯plc控制程序(唐泽龙做的)设计_第2页
三层电梯plc控制程序(唐泽龙做的)设计_第3页
三层电梯plc控制程序(唐泽龙做的)设计_第4页
三层电梯plc控制程序(唐泽龙做的)设计_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要电梯作为现代化的产物,早在上个世纪就进入了我们的生活之中。大规模的经济建设尤其是蓬勃发展的房地产业给国内电梯行业开拓了更为广阔的市场。随着经济建设的持续高速发展,我国电梯需求量越来越大。由此,一个更为庞大的电梯市场已经在国内轰然形成。我国以前主要都是依靠国外的进口技术,本国的电梯厂商主要都是依靠为进口电梯作销售代理或者售后维修进行经营。但是随着技术的革新和与国外的交流,当今经济建设需求的各类电梯,几乎全部都可以在中国生产。电梯生产作为一门国家的新兴产业,它这种能有减少人口膨胀对环境所造成的巨大压力的特性,注定了其在中国具有一片光明的前景。本设计就是基于电子设计自动化(Electronic

2、 Design Automation)技术中的甚高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Descrisioon Language)语言所开发的三层电梯控制程序,实验调试平台是Altera 公司的MAX+plusII软件。本程序具有VHDL 语言设计里最为常用的三个模块:实体entity ,对控制器的实体(输入输出)端口进行定义;结构体architecture ,对控制器内部的信号端以及寄存器进行定义;进程执行单元process ,对控制器的所有输入输出端口、内部信号端口以及寄存器进行功能、行为描述。通过程序调试及运行仿真

3、,结果表明,本程序可以完成:电梯运行所在楼层指示、电梯运行方向指示、关门延时设置、看门狗报警、超载报警、故障报警等。本设计对更高层的电梯控制设计具有一定的拓展性。关键词:电梯控制 程序设计 EDA VHDL MAX+plusII英文缩略词:EDA Electronic Design Automation 电子设计自动化VHSIC Very High Speed Integrated Circuit 甚高速集成电路VHDL Very High Speed Integrated Circuit Hardware Descrisioon Language甚高速集成电路硬件描述语言MAX+plusII

4、 Multiple Array Matrix and Programmable Logic User System多阵列矩阵和可编程逻辑使用者系统CAD Computer Adied Design 计算机辅助设计CAM Computer Adied Manufacture 计算机辅助制造CAT Computer Adied Testing 计算机辅助测试CAE Computer Adied Engineering 计算机辅助工程HDL ardware Descrisioon Language 硬件描述语言PLC Programmable Logic Controller 可编程逻辑控制器VLS

5、I Very Large Scale Integration 超大规模集成电路FPGA Field Programmable Gate Array 场效应可编程门阵列CPLD Complex Programmable Logic Device 复杂可编程逻辑器件IEEE the Institute of Electrical and Electronics Engineers 电工和电子工程师协会 EPLD Eraserable Programmable Logic Device 可擦写可编程逻辑器件目 录1 前言 . 11.1 问题的提出 . 11.2 设计目的 . 12 设计的基础依据 .

6、 22.1 EDA 技术介绍 . 22.2 VHDL 语言介绍 . 32.3 MAX+PLUS II 软件介绍 . 33 文献综述 . 53.1 PLC 在电梯控制中的应用介绍 . 53.2 单片机在电梯控制中的应用介绍 . 63.3 电梯控制的未来 . 84总体方案的确定 . . 84.1 基于PLC 技术的电梯控制设计方案 . 84.2 基于EDA 技术的电梯控制设计方案 . 94.3 方案选择 . 105程序设计及调试 . . 115.1 算法分析 . 115.1.1 电梯运行规则 . 115.1.2 程序流程分析 . 155.2 程序设计说明 . 165.2.1端口、寄存器设计说明 .

7、 . 165.2.2 模块设计说明 . 175.2.3 具体语句设计说明 . 2053 程序调试 . 236 程序仿真 . 276.1 波形输入建立 . 276.2 电梯运行情况仿真 . 296.3 电梯功能仿真 . 327 结论 . 337.1 设计功能实现情况 . 337.2 设计存在问题 . 337.3 进一步完善建议 . 33致 谢 . 35参 考 文 献 . 36英 文 摘 要 . 37附 录 . 38 毕业设计成绩评定表1 前言1.1 问题的提出当今世界,部分地区人口高度密集,人和土地资源短缺的矛盾日趋激化。这就注定了必须合理地利用土地去解决人与土地的矛盾。而兴建高层建筑是其中的有

8、效措施之一。因此,能使人们快速、便捷地到达目的楼层的电梯便应运而生了。在一些发达国家和地区,人均电梯拥有数量一般在每万人30台以上,某些国家甚至达到每万人120台以上,随着城镇化程度的加大,电梯市场会更加繁华。中国的电梯市场增长也很乐观,目前,每年增长率为15%18%。随着电梯普及率的升温,人们对电梯的要求也会越来越高。如何更安全、更快捷地到达目的楼层,也就成了人们对电梯最为根本的要求。而电梯系统里掌控这方面技术参数的是电梯控制系统。因此,控制系统的设计就成了在电梯设计领域里最为核心的技术。在电子技术飞速发展的今天,现代电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息

9、化程度的提高,同时也使现代电子产品性能进一步提高,加速了电子设计技术的普及进程及技术革新。电子设计在日常生活和物质产品生产都占到了举足轻重的地位,这尤其体现在其对电子产品的开发和设计上。面对如此广袤的电梯市场,所谓“科技就是第一生产力”,处于科技前沿的电子设计技术很自然地就与电梯控制设计一拍即合,给设计师们以巨大的设计空间。因此,本设计就是希望在以开发更安全、更快捷的三层电梯控制系统为前提下,结合电子设计技术,对电梯控制进行设计。1.2 设计目的三层电梯广泛应用在大型的货运之中。其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。在客运上,三层电梯虽然涉及楼层不高,应用范围不

10、大,但就特殊而言,可以为一些上下楼层不方便的人们提供相当的帮助,照顾了这些特殊群体的感情。因此,在某种层面上说,三层电梯的设计也具有一定的社会价值。本着“一理通,百理明”的原则,本设计希望通过在简单的三层电梯控制设计之中如何解决升、降请求信号因电梯所处状态而产生的冲突等问题发散出去,由此及彼,对高层电梯控制的开发作一个技术的铺垫,为高层电梯设计者提供一个基础。针对目前中小型电梯所能实现的功能,本控制设计拟实现以下这些功能:(1)指示电梯运行所在楼层;1(2)指示电梯运行方向;(3)关门延时设置;(4)看门狗报警;(5)超载报警;(6)故障报警。2 设计的基础依据现代电子设计技术的核心是EDA

11、技术。基于EDA 技术开发的实现三层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA 技术的重要组成部分,VHDL 是作为电子设计主流硬件的描述语言。使用VHDL 语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。在MAX+plusII平台上的开发具有编程软件具有采自易学易懂的梯形图语言、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。2.1 EDA技术介绍EDA 技术是20世纪90年代初从计算机辅助设计(Computer Adied Design)、计算机辅助制造(Computer Adied Manufacture)、计算机辅助测试

12、(Computer Adied Testing)和计算机辅助工程(Computer Adied Engineering )的概念发展而来的。随着超大规模集成电路(Very Large Scale Integration)规模和技术复杂度的急剧增长,一块芯片内集成门已可达几十万甚至几百万门,并且还在迅速增长,电子系统的人工设计已十分困难,必需依靠电子设计自动化技术。在利用EDA 进行集成电路设计时,应采用高效率的TOP-DOWN 设计方法,即根据系统的行为和功能要求,自上而下地依次完成相应的描述、综合、优化、仿真与验证,直到生成器件。在电路描述时主要采用硬件描述语言(HDL )。硬件描述语言是用

13、于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用HDL 程序来描述所希望的电路系统,规定其结构性和电路的行为方式;然后利用EDA 工具将此程序变成能控制场效应可编程门阵列(Field Programmable Gate Array)/复杂可编程逻辑器件(Complex Programmable Logic Device)内部结构并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。就FPGA/CPLD开发来说,比较常用和流行的HDL 主要有ABEL-HDL 和VHDL 等。EDA 技术的基本特征和基本工具总的来说,现代EDA 技术的基本特征是采用

14、高级语言描述,具有系统级仿真和综合能力。它主要采用并行工程和“自顶向下”的设计方法,使开发者从一开始就要考虑到产品生成周期的诸多方面,包括质量、成本、开发时间及用户的需求等等,然后从系统设计入手,在顶层进行功能方框图的划分和结构设计,在方框图一级进行仿真、纠错、并用VHDL 、Verilog-HDL 、ABEL 等硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证,然后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。简单来说就是依赖功能强大的计算机,在EDA 工具软件平台上,对以硬件描述语言HDL 为系统逻辑描述手段完成的设计文件,自

15、动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。从另一方面看,在现代高新电子产品的设计和生产中,微电子技术和现代电子设计技术是相互促进、相互推动又相互制约的两个技术环节。前者代表了物理层在广度和深度上硬件电路实现的发展,后者则反映了现代先进的电子理论、电子技术、仿真技术、设计工艺和设计技术与最新的计算机软件技术有机的融合和升华。因此,严格地说,EDA 技术应该是这二者的结合,是这两个技术领域共同孕育的奇葩。2.2 VHDL语言介绍VHDL 语言于1983年由美国国防部发起创建,由电工和电子工程师协会(the Inst

16、itute of Electrical and Electronics Engineers)进一步发展并在1987年作为“IEEE 1076”发布。从此,VHDL 成为硬件描述语言的业界标准之一。VHDL 作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。VHDL 具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。2.3 MAX+plusII软件介绍MAX+plusII是Altera 公司提供

17、的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用意学的EDA 软件,目前已发行到10.2版本。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段:设计输入、项目编译、项目校验和器件编程。首先根据系统的性能指标进行系统结构设计,对整个系统进行功 能划分和模块划分。对各子模块分别进行逻辑设计、编译、仿真与验证。当不满足要求时,重新返回设计输入阶段,修改设计输入。之后将优化结果下载到所选可擦写可编程逻辑器件(Eraserable Programmable Logic Devi

18、ce)芯片中,进行动态仿真。最后则是测试芯片在系统中的实际运行性能。其具体的流程图如图1所示。图1 MAX+plusII设计流程该方法将问题的解决放在硬件组装之前,既简化了设计过程,又可以减少设备投资,缩短设计周期,增强设计者对设计过程的分析和制造的可控性。Altera 的工作与EDA 厂家之间紧密合作,使MAX+plusII软件与其他工业标准的设计输入、综合与校验工具具有良好的兼容性。目前,MAX+plusII支持多种第三方EDA 工具接口,包括:(1)Cadence ;(2)Exemplarlogic ;(3)Mentor Graphics;(4)Synopsys ;(5)Synplici

19、ty ;(6)Viewlogic 。MAX+plusII软件与其设计流程的每个阶段都匹配有强大的设计软件,其软件组成如图2所示: 图2 MAX+plusII的软件组成3 文献综述3.1 PLC在电梯控制中的应用介绍由当初的继电器逻辑控制电路到今天广为应用的可编程逻辑控制器及微机控制系统,电梯控制的发展经历了相当一段历程。(李惠升,2003)为了实现电梯的控制,过去大多是采用继电器逻辑电路,这种逻辑控制方式具有原理简单、直观的特点,但是通用性较差,对不同的楼层和不同的控制方式,其原理图、接线图等必须重新制作,且控制系统由许多继电器触点组成,接线复杂、故障率高。因此,它逐渐被可靠性高、通用性强的可

20、编程序控制器及微机控制系统所代替。由PLC 或微机实现继电器的逻辑控制功能,具有较大的灵活性,不同的控制方式可用相同的硬件,只是软件各不相同。只要把按钮、限位开关、光电开关、无触点行程开关等电器元件作为输入信号,而把制动器、接触器等功率输出元件接到输出端,就算完成了接线任务。通常,电梯功能、层数变化时,无需增减继电器和大量的电路。PLC 是一种用于自动控制的专用微机,实质上属于微机控制方式。PLC 在设计和制造上采取了许多抗干扰措施,输入输出均有光电隔离。能在较恶劣的各种环境里工作、可靠性高, 适合于安全性要求较高的电梯控制。PLC 将CPU 、存储器、I/O接口等做成一体,使用方便,扩展容易

21、。具有继电器系统的直观、易懂、易学,应用操作和调试方便等优势。因此,目前在国产电梯及中低档的客梯广泛采用了PLC 控制系统,特别适合在用电梯的技术改造。(马宏骞,2003)电梯既是一种特殊的起重运输设备,具有完善的机械专用构造,又是一种比较复杂的机电一体化的大型工业产品,具有复杂的电气控制系统。就电梯的控制方法而言,目前国产电梯广泛采用可编程控制器技术的智能化控制。由于这种控制属于随机控制,各种输入信号之间、输出信号之间以及输入信号和输出信号之间互相关联,逻辑关系处理起来非常复杂,这就给PLC 编程带来很大难度。从这种意义上来说,PLC 编程水平的高低就决定电梯运行状态的好坏,因此PLC 应用

22、在电梯控制电梯控制中的编程技术就成为控制电梯运行的关键技术。PLC 充分利用了微型计算机的原理和技术,具有很强的逻辑处理能力,在电梯运行控制中发挥了重要作用。由于电梯在运行过程中各种输入信号是随机出现的,即信号的出现具有不确定性,同时信号需要自锁保持、互锁保存、优先级排队、数据比较等,因此信号之间就存在复杂的逻辑关系。所以在电梯的运行控制中,PLC 的编程工作主要 是针对各种信号进行逻辑判断和处理。3.2 单片机在电梯控制中的应用介绍(张娅莉等,2003)单片机体积小,处理速度快,价格低廉,功能强大,是合适的控制系统。对电梯的控制主要是选层、启动、换速、平层、停车等几个环节,其中以选层环节最为

23、复杂。与通常的电器控制相比,单片机系统不需要通过“选层器”并且配备以大量的中间继电器作为选层电路的控制设备,避免了设备多,检修困难,运行维护不便,造价成本高;应用微机控制可以取消选层器和大量的中间继电器。而且应用单片机控制又相对于应用其他微机减少了外围设备的接口芯片,增强了可靠性。其程序流程如图3所示。图3 程序流程(部分) 3.3 电梯控制的未来电梯产业将走上信息化、网络化的道路。电梯控制系统如何与网络技术相结合将是未来电梯设计的主流趋势。在21世纪的今天如何提供用户满意产品和服务已成为关系到各企业生死存亡问题。电梯上网能确保为客户提供更优质全程的服务。在将来各大品牌厂家为了生存和发展都会在

24、公共网络系统中建立自己电梯网站(电梯专用平台),这也是一条必由之路。电梯上网主要能实现以下功能:(1)用网络把所有电梯监管起来,保证电梯安全运行,确保乘客安全。(2)当电梯出现故障时,电梯通过网络向客户服务中心发出信号使维保人员能及时准确了解电梯出现故障的原因及相关信息,客户的人身安全是否受到威胁,并在第一时间内赶赴事故现场进行抢修,同时通过网络对在电梯内乘客安慰,把电梯出现故障的负面影响降到最低。(3)也可以通过电梯网络在规定时间内自动扫描每台电梯各部件以发现事故隐患做到事先维修,减少停梯时间,提高企业的服务质量。4总体方案的确定4.1 基于PLC 技术的电梯控制设计方案可编程控制系统是一种

25、专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。可编程控制器是计算机技术与自动化控制技术相结合而开发的一种适用工业环境的新型通用自动控制装置,是作为传统继电器的替换产品而出现的。随着微电子技术和计算机技术的迅猛发展,可编程控制器更多地具有了计算机的功能,不仅能实现逻辑控制,还具有了数据处理、通信、网络等功能。由于它可通过软件来改变控制过程,而且具有体积小、组装维护方便、编程简单、可靠性高、抗干扰能力强等特点,已广泛应用于工业控制的各

26、个领域,大大推进了机电一体化的进程。PLC 的特点可综述如下:(1)高可靠性(2)编程简单,使用方便(可采用梯形图编程方式,与实际继电器控制电路非常接近,一般电气工作者很容易接受)(3)环境要求低(适用于恶劣的工业环境)(4)体积小,重量轻(5)扩充方便,组合灵活PLC 硬件框图如图4所示: 图4 PLC 硬件框图4.2 基于EDA 技术的电梯控制设计方案随着电子技术的发展,EDA 技术在工业控制系统中得到了广泛的应用,在电梯控制电路上采用EDA 技术进行开发,越来越受到人们的重视。EDA 技术开发手段多样,其中应用最为广泛的就是通过程序对硬件进行开发,而其中又数VHDL 语言最受设计者的欢迎

27、。EDA 技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA 软件来完成对系统硬件功能的实现。近几年来,硬件描述语言等设计数据格式的逐步标准化,不同设计风格和应用的要求导致各具特色的EDA 工具被集成在同一个工作站上,从而使EDA 框架日趋标准化。(王志鹏等,2005)VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。其行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。VHDL 语言的设计单元包括实体(entity )、结构体(architecture、程序包(package )以及

28、配置(configration )。初级设计单元实体(entity ), 是设计的基本模块和设计的初级单元,在分层次设计中,顶层有顶级实体,含在顶级实体中的较低层次的描述为低级实体,靠配置把顶层实体和底层实体连接起来。实体说明中还可以说明数据类型、子程序和常量等数据信息,实体语句常用于描述设计常用到的判断和检查信息。次级设计单元结构体(architecture,实体的结构体具有描述实体的行为功能,一个实体可以有多个结构体,一种可能为行为描述,另一种可能为结构描述。结构体能以行为、数据流和结构等多种方式描述实体。VHDL 语言还包括程序包(package )和配置(configration )初

29、级设计单元。VHDL 语言的基本术语往往能体现其严密的逻辑结构:VHDL 语言的基本术语包括进程(process )、类属(generic )、属性(attribute )以及驱动(drive )。进程(process )是VHDL 中的基本执行单元,仿真时把所有的操作划分为单个或多个进程。进程内部只含顺序执行的语句,即一串信号赋值中仅最后的赋值有效。进程内不能说明信号,而变量在进程内说明。其具体的流程图如图5所示。图5 VHDL 设计流程图4.3 方案选择对于符合市场需求的大规模系统,要达到高效、高速完成,必须有多人甚至多个开 发组共同并行工作才能实现。对于用EDA 技术完成的一个确定的设计

30、,可以利用相应的工具平台进行逻辑综合和优化,完成设计任务。基于EDA 技术的VHDL 语言对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。这为电子设计的入门者提供了便捷的帮助。相信在不远的将来,我国相关的专业技术人员使用EDA 技术进行工程设计,就象现在使用计算器一样,虽然大部分人不能开办集成电路制造厂,但是却能快速、经济地制造 (设计 自已的专用集成电路或集成电子系统。就上述比较而言,本设计采用EDA 方案更恰当。5程序设计及调试5.1 算法分析5.1.1 电梯运行规则(1)请求信号分析:电梯的请求信号可分为梯内请求和梯外请求,

31、如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯外和梯内的请求信号、行程信号进行控制,而梯外和梯内的请求是随机且不能以有限的规则去对其进行说明的。因此,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后,都必须作预操作。使电梯进入预上升状态的请求信号就是上升请求信号。具体来说,就是当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行。这时的请求信号就是上升请求信号。反之,则是下降请求信号。(2)电梯处于各楼层时的运行情况:处于一楼时,不管是

32、梯内梯外,电梯都只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行。如果电梯没有接收到请求信号,电梯则在一楼待机。其分析图如图6所示。处于二楼时,电梯则可能出现三种情况: 电梯并没有接收到梯内梯外的任何请求信号时,电梯返回一楼待机; 电梯接收到上升请求信号,进入预上升状态; 电梯接收到下降请求信号,进入预下降状态。其分析图如图7所示。处于三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则返回一楼待机。其分析图如图8所示。 图6 电梯处于一楼时的运行可能分析 图7 电梯处于二楼时的运行可能分

33、析图8 电梯处于三楼时的运行可能分析对上述电梯的运行情况进行汇总,可以得到如图9的电梯运行状态图。图9 电梯运行状态图在电梯运行过程中,存在一个如何处理信号优先的问题。电梯实际上是一个人机交互式的控制系统,单纯用顺序优先或逻辑优先是不能满足控制要求的,因此,控制系统采用随机逻辑方式控制去解决信号优先的问题。即在以顺序逻辑控制实现电梯的基本控制要求的基础上,根据随机的输入信号,以及电梯的相应状态适时的控制电梯的运行。例如,当电梯在三楼时,二楼、一楼梯外均有上升请求信号:电梯以向下的方向接近二楼的减速位置,判别二楼具有同向的请求信号,在二楼减速停止载客,然后继续下降到 一楼载客。又假如,当电梯在三

34、楼时,梯内有到达一楼的下降请求信号,而二楼则有上升请求信号:当电梯以向下的方向接近二楼的减速位置时,判别二楼具有反向的请求信号,系统将把二楼的上升请求保存到上升请求寄存上,不在二楼作停泊继续下降到一楼去载客,然后读取上升请求寄存中先前二楼的上升请求,执行上升到二楼载客的操作。该动作完毕后,被保存的寄存器中的数据清除,以实现下一次随机逻辑控制。(3)对电梯开门、关门、报警等内部信号处理的分析。其流程如图10所示: 图10 电梯内外信号处理当电梯接收到请求信号后,将以随机逻辑控制的方式到达发出请求的楼层。开门使能信号促使电梯开门载客,同时驱动关门延时信号、超重检测以及故障检测。在电梯进行完关门倒数

35、计时、超重排除以及故障排除后,关门使能信号将促使电梯关门进入预操作状态。如果此前出现提前关门信号而且电梯也已经进行完超重排除和故障排除,电梯同样关门进入预操作状态。电梯在超重检测时发现超重,关门中断信号会促使电梯发出超重警报并且进行开门操作以减少乘客,重新进入载客操作;电梯在故障检测时,发现电梯某部分出现故障,关门中断信号会促使电梯发出故障报警并且进入开门操作的同时停止关门延时,作故障处理待机。5.1.2 程序流程分析电梯的运行规则确立后,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL 语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体

36、对各端口的行为进行描述。因此程序运行需经过以下流程: VHDL 库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内外信号进行处理。具体流程图如图11所示:图11 总程序流程图 5.2 程序设计说明5.2.1端口、寄存器设计说明(1)由功能要求得到本程序设计的端口必须包括:时钟信号(clk );超载信号(full )、关门中断信号(deng )、提前关门信号(quick )、清除报警信号(clr ); 一楼电梯外人的上升请求信号(c_u1)、二楼电梯外人的上升请求信号(c_u2); 二楼电梯外人的下降请求信号(c_d2)、三楼电梯外人的下降请求信号(c_d3);

37、 电梯内人请求到达一楼信号(d1)、电梯内人请求到达二楼信号(d2)、电梯内人请求到达三楼信号(d3);到达一楼信号(g1)、到达二楼信号(g2)、到达三楼信号(g3);电梯门控制信号(door );电梯所在楼层显示(led );电梯外人上升请求信号显示(led_c_u)、电梯外人下降请求信号显示(led_c_d); 电梯内请求信号显示(led_d);看门狗报警信号(wahaha )、超载警告信号(alarm ); 电梯运动方向显示(ud );电机向上控制信号(up )、电机向下控制信号(down )。其端口分布如图12所示: 图12 控制器的端口(2)由相关端口得到程序要求的寄存器包括:电梯

38、内人请求到达一楼信号寄存(d11)、电梯内人请求到达二楼信号寄存(d22)、 电梯内人请求到达三楼信号寄存(d33);一楼电梯外人上升请求信号寄存(c_u11)、二楼电梯外人上升请求信号寄存(c_u22); 二楼电梯外人下降请求信号寄存(c_d22)、三楼电梯外人下降请求信号寄存(c_d33); 分频信号(q );关门延时计数器(q1)、看门狗计数器(q2);电梯内请求信号寄存器(dd );电梯外上升请求信号寄存器(cc_u)、电梯外下降请求信号寄存器(cc_d);电梯请求信号寄存器(dd_cc);开门使能信号(opendoor );电梯运动方向信号寄存器(updown );预备上升操作使能(

39、en_up)、预备下降预操作使能(en_dw)。5.2.2 模块设计说明本程序由三个基本模块组成,包括调用VHDL 库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1)调用VHDL 库通过library 语句,本程序应用了VHDL 库中的“通用ieee 库”和“标准std 库”。 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;(2)entity 实体设计模块entity dianti isport ( clk

40、 : in std_logic;full,deng,quick,clr : in std_logic;c_u1,c_u2: in std_logic;c_d2,c_d3: in std_logic;d1,d2,d3: in std_logic;g1,g2,g3: in std_logic;door : out std_logic_vector(1 downto 0;led : out std_logic_vector(3 downto 0;led_c_u:out std_logic_vector(2 downto 0;led_c_d:out std_logic_vector(2 downto

41、0;led_d : out std_logic_vector(2 downto 0;wahaha : out std_logic;ud,alarm : out std_logic;up,down : out std_logic ;end dianti;实体语句用关键词entity 开头,本程序以dianti (电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用end dianti 。在entity 语句的实体说明部分,用port 附语描述实体对外界连接的端口(数目、方向和数据类型),实体dianti 有25个接口,输入模式是clk/full/deng/quick/clr/c_u1/

42、c_u2/c_d2/c_d3/d1/d2/d3/g1/g2/g3;其余的都是输出模式,其中door/led/led c_u/led c_d/led d是带数组模式的输出接口。(3)architecture 结构化设计模块和process 进程执行单元dianti 符号下的线路图描述dianti 网表,与线路图对应的VHDL architecture就是结构体,实体dianti 以结构化与行为化描述的结构体如下:architecture behav of dianti issignal d11,d22,d33:std_logic;signal c_u11,c_u22:std_logic;sign

43、al c_d22,c_d33:std_logic;signal q:integer range 0 to 1;signal q1:integer range 0 to 6;signal q2:integer range 0 to 9;signal dd,cc_u,cc_d,dd_cc:std_logic_vector(2 downto 0;signal opendoor:std_logic;signal updown:std_logic;signal en_up,en_dw:std_logic;begincom:process(clk···end behav;由于

44、篇幅的关系,结构体部分并不能尽录。本模块以关键字architecture 做结构体的开头,描述dianti 实体的结构体behav 。Architectecture 和begin 之间是结构体说明区,详细定义了各种信号端的模式和取值范围;begin 和end 之间是结构体语句区,在此将嵌入process 进程语句去对实体行为作出说明。com:process(clkbeginif clk'event and clk='1' thenif clr='1' then q1<=0;q2<=0;wahaha<='0'elsif f

45、ull='1' then alarm<='1' q1<=0;if q1>=3 then door<="10"else door<="00"end if;···dd<=d33&d22&d11;cc_u<='0'&c_u22&c_u11;cc_d<=c_d33&c_d22&'0'dd_cc<=dd or cc_u or cc_d;end if;ud<=updo

46、wn;led_d<=dd;led_c_u<=cc_u;led_c_d<=cc_d;end if;end process;关键字process 后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。关键字begin 把进程语句分为进程说明和进程语句两部分。进程说明在时钟信号和begin 之间,说明局部变量或某些仅在进程内部用的内容。进程语句部分在begin 和end process 之间,进程内的所有语句都是按顺序一个接一个执行的。5.2.3 具体语句设计说明上文已说明了构成VHDL 程序的两大部分实体和结构体的相关语句。在这些语句里,

47、赋值语句占了相当一部分。在VHDL 语言里,赋值符号一般都是“<=”符号,具体形式如下:beginif clk'event and clk='1' thenif clr='1' then q1<=0;q2<=0;wahaha<='0'elsif full='1' then alarm<='1' q1<=0;if q1>=3 then door<="10"else door<="00"end if;·

48、83;·VHDL 语言也具有与一般编程语言相同的一些语言逻辑结构,如上述中的“if ···then ···elsif ···then ··· ”等。这是VHDL 中的顺序语句,与我们常见的C 语言中if 作为条件语句不同。本程序只使用到上述的语言结构,相对简易。在实体模块中,对电梯的主要信号都一一作出了定义,具体说明给出如下:port ( clk : in std_logic; -时钟信号full,deng,quick,clr : in std_logic; -超载

49、、关门中断、提前关门清除报警信号 c_u1,c_u2: in std_logic; -电梯外人的上升请求信号c_d2,c_d3: in std_logic; -电梯外人的下降请求信号d1,d2,d3 : in std_logic; -电梯内人的请求信号g1,g2,g3 : in std_logic; -到达楼层信号door : out std_logic_vector(1 downto 0; -电梯门控制信号led : out std_logic_vector(6 downto 0; -电梯所在楼层显示led_c_u:out std_logic_vector(2 downto 0; -电梯外人

50、上升请求信号显示 led_c_d:out std_logic_vector(2 downto 0; -电梯外人下降请求信号显示 led_d : out std_logic_vector(2 downto 0; -电梯内请求信号显示wahaha : out std_logic; -看门狗报警信号ud,alarm : out std_logic; -电梯运动方向显示,超载警告信号 up,down : out std_logic ; -电机控制信号和电梯运动在结构体中对电梯的运行行为作出描述,其中以电梯处于二楼的情况相对复杂,对此需作出具体说明,给出如下:elsif g2='1' t

51、hen led<="0010010" -电梯到达2楼,数码管显示2 if updown='1' then -电梯前一运动状态位上升if d22='1' or c_u22='1' then d22<='0' c_u22<='0' opendoor<='1' -有当前层的请求,则电梯进入开门状态elsif dd_cc>"011" then en_up<='1' opendoor<='0' -

52、有上升请求,则电梯进入预备上升状态elsif dd_cc<"010" then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态end if;-电梯前一运动状态为下降elsif d22='1' or c_d22='1' then d22<='0' c_d22<='0'opendoor<='1' -有当前层的请求,则电梯进入开门状态elsif dd_cc<"010"

53、then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态elsif dd_cc>"011" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态end if;在上述语句中的“elsif g2='1' then led<="0010010" ”,led 的赋值之所以为“0010010”是根据七段式数字显示器的发光段排列的,如图13所示: 图13 七段数字显示器

54、可见发光段是a 、b 、d 、e 、g 段,形成一个2字。所以在一楼时led 赋值为“1001111”,三楼时led 赋值为“0000110”。在进程执行单元里,对电梯在楼层时的操作情况作出了描述,例如:开门、关门延时、超载报警、故障报警以及电梯内的请求信号处理,具体说明给出如下:com:process(clkbeginif clk'event and clk='1' thenif clr='1' then q1<=0;q2<=0;wahaha<='0' -清除故障报警 elsif full='1' th

55、en alarm<='1' q1<=0; -超载报警if q1>=3 then door<="10"else door<="00"end if;elsif q=1 then q<=0;alarm<='0'if q2=3 then wahaha<='1' -故障报警elseif opendoor='1' then door<="10"q1<=0;q2<=0;up<='0'down<='0' -开门操作e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论