没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
五层楼电梯运行控制逻辑设计
摘要:电梯是高层建筑不可缺少的运输工具,用于垂直运送乘客和货物,传统的电梯控制系
统主要采用继电器,接触器进行控制,其缺点是触点多,故障率高、可靠性差、维修工作量
大等,本设计根据电梯自动控制的要求利用Verilog语言编写并完成系统设计,在利用软件仿
真之后,下载到了FPGA 上进行硬件仿真。FPGA(Field-Programmable Gate Array),即现
场可编程门阵列,它是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它
是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,
又克服了之前的可编程器件门电路数有限及速度上的缺点。
关键词:电梯控制 FPGA Verilog 软件设计 硬件设计
在当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂
直运行的交通工具已与人们的日常生活密不可分。目前电梯控制系统主要有三种控制方式:
继电路控制系统(早期安装的电梯多位继电器控制系统),FPGA/CPLD [1] 的控制系统、微
机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等
缺点,目前已逐渐被淘汰,而微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰
性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而 FPGA/CPLD 控制系统
由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点 [2] ,倍受人
们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统
继电器控制系统的技术改造。
随着现代化城市的高度发展,每天都有大量人流及物流需要输送,因此在实际工程应用
中电梯的性能指标相当重要,主要体现在:可靠性,安全性,便捷快速性。电梯的可靠性非
常重要,直接或间接的影响着人们的生产,生活,而电梯的故障主要表现在电力拖动控制系
统中,因此要提高可靠性也要从电力拖动控制系统入手。
本次设计尝试用Verilog实现电梯控制器部分,进行了多层次的电梯控制,也进行了软件
及硬件上的仿真验证,时序分析以保证设计的正确。在设计中先用软件进行模拟仿真,然后
又下载到FPGA 开发板上进行硬件仿真,以确保设计的正确性。
设计一个电梯运行控器,该电梯有 5 层楼,设计的电梯调度算法满足提高服务质量、降低运
行成本的原则;电梯的内部有一个控制面板,它负责按下请求到的楼层,并且显示当前尚未完
成的目的地请求,当到达该楼层以后自动撤销本楼层的请求,即将面板灯熄灭;除 1 层和 5 层
分别只有上和下按钮外,其余每个楼层(电梯门口旁)的召唤面板都有两个按钮,分别指示
上楼和下楼请求。当按下后,对应按钮灯亮。如果电梯已经到达该楼层,按钮灯熄灭;电梯
的外部面板会显示电梯当前所在的楼层,及上行还是下行(暂停显示刚才运行时的状态);电梯
向一个方向运行时,只对本方向前方的请求进行应答,直到本方向前方无请求时,才对反方
向的请求进行应答。当前内部控制面板上有的请求,只要经过所在楼层均会立即响应.在所有
内部外部请求都已完成后,电梯转入等待。
当电梯开始启动的时候,将当前所处的楼层置为第一层,电梯为暂停状态,方向向上,然后
等待控制器的调度;等待过程当中(FLOOR 保持在该楼层),首先去判断当前楼层(第 i 层)
以上的楼层是否发出召唤或者已经有人已经发请求,若有则向上运行;否则以同样的方法判
断是否向下运行;若不向下运行则重复等待状态(故向上运行的优先级要高于向下运行);保
持该状态循环进行操作直到检测到有向上或向下的任务;
若已经判明要向上运行,则首先将运行停止状态置为运行,且标志向上运行,控制 LED 在该
楼层亮 T 时间后将所在楼层加 1,这时新的当前楼层(第 i+1 层)灯亮起,接着电梯检索去
判断当前楼层是否发出向上召唤或者已经有人已经发出目的地为第 i+1 层的请求,若有则在
第 i+1 层停靠;否则检索去判断第 i+1 层以上的楼层是否发出召唤或者已经有人已经发出目
的地为第 i+1 层以上的请求,若有则向上运行;否则(必定是有第 i+1 层向下的请求)在第
i+1 层,向下运行过程同理。[3]
K1: 当前层 i 以上有召唤请求或者电梯内部目的地请求有>i 的请求;
K2: 当前层 i 以下有召唤请求或者电梯内部目的地请求有<i 的请求;
K3: 所到达的 i 层为目的地或者 i 层有向上的请求;
K4: 所到达的 i 层为目的地或者 i 层有向下的请求;
1.5 状态设置
S0 — S14 共 15 个状态[4]:
S0:初始化,电梯位于 1 楼,清除各请求 无条件转入下一状态 S1 等待
S1:等待状态,判断 K1,若满足转入 S3 向上运行,不满足,转入 S2 判断
S2:判断 K2,若满足转入 S9 向下运行,不满足返回 S1 继续等待判断
S3:电梯向上运行修改状态信息 无条件转入下一状态 S4 计数
S4:运行时间计数器开始计数,计数完毕转入 S5,否则继续计数
S5:修改状态信息,楼层数加 1,转入 S6 判断
S6:判断 K3,若满足转入 S8 停止,不满足转入 S7 判断
S7:判断 K1,若满足转入 S4 继续运行,不满足转入 S8 停止
S8:暂停并开始计数时间,计数完毕转入 S1,否则继续停在 S8
S9:向下运行,修改状态信息,无条件转入下一状态 S10
S10:运行时间计数器开始计数,技术完毕转入 S11,否则继续计数
S11:修改状态信息,楼层数减 1,转入 S12 判断
S12:判断 K4,若满足转入 S14 停止,不满足转入 S13 判断
S13:判断 K2,若满足转入 S10 继续运行,不满足转入 S14 停止
S14:暂停并开始计数时间,计数完毕转入 S1,否则继续计数
2 电梯的设计实现[5]
2.1 Verilog 语言[6]描述的各个模块说明
2.1.1 电梯内部目的地请求记录 indoor_call
input:
set_dest:当按下对应楼层的目的地请求且当前电梯所停靠的 cur_floor 不是所请
求的目的地时,便可以记录这个请求。
rst:在电梯进入初始状态时,撤销记录中的目的地请求。
ce:在电梯进入暂停在 cur_floor 状态时 ce=1;撤销 cur_floor 的目的地请求并记录
在当前状态下该楼层的目的地请求。
get_dest: 输出当前未完成的目的地请求。
2.1.2 电梯外部召唤请求记录 outdoor_call
input:
set_call:当按下对应楼层的召唤请求且当前电梯未停在该楼层 cur_floor 时,便可
以记录这个召唤。
剩余33页未读,继续阅读
资源评论
G11176593
- 粉丝: 6670
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功