版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录
摘要................................................................2
正文.................................................................3
1设计目的及要求......................................................3
2设计原理............................................................3
2.1设计实现原理.................................................3
2.2项目分块及其实现方案..........................................5
2.3电梯控制器的流程图............................................6
3设计内容............................................................7
3.1基本状态设计...................................................7
3.2模块设计.......................................................8
3.3波形仿真.......................................................9
总结与致谢..........................................................13
参考文献............................................................14
附录................................................................15
摘要
电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设
备。中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主
知识产权和核心技术,自主品牌占市场的份额很少。因此要加大对电梯技术的创
新和发展,提升电梯的性能,就需要引进更好的技术,电梯控制器就是很好的装
置,大力开发控制器是很必要的。
电梯的微机化控制主要有以下几种形式:PLC控制;单片机控制;单板机控
制;单微机控制;多微机控制;人工智能控制。本次课程设计采用了EDA技术
进行操作EDA技术打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实
现、设计效率与产品性能合二为一,它代表了电子设计技术和应用技术的发展方
向。
本设计采用VerilogHDL语言的编程技术,源程序Altera公司的QuartusII
软件仿真。
关键字:EDA技术;VerilogHDL语言;QuartusII软件
正文
1设计目的及要求
1、进一步巩固理论知识,培养所学理论知识的在实际中的应用能力;掌握
EDA设计的一般方法;熟悉一种EDA软件,掌握一般EDA系统的调试方法;利用
EDA软件设计一个电子技术综合问题,培养VerilogHDL编程、书写技术报告的
能力。为以后进行工程实际问题的研究打下设计基础。
2、设计一个6层电梯控制器电路,用数码管显示电梯所在楼层号,电梯初
始状态为第一楼层;每楼层电梯外都有上、下楼请求开关,电梯内设有乘客到达
楼层的请求开关、电梯所处楼层、上升模式及下降模式的指示;电梯每2秒升降
一层,到达有停站请求的楼层后,经4秒电梯门打开,开门指示灯亮,开门4
秒后,指示灯灭,关门,关门时间3秒,电梯继续运行。可以通过快速关门和关
门中断信号控制;能记忆电梯内外的请求信号,当电梯处于上升模式时,只响应
比电梯所在位置高的楼请求信号,直到最后一个上楼请求执行完毕,再进入下降
模式。
2设计原理
2.1设计实现原理
根据系统设计要求,并考虑到系统的可检验性,整个系统的输入输出接口设
计如图1所示:系统工作用2Hz基准时钟信号CLK1N,楼层上升请求键UP1N,楼层
下降请求键DOWNIN,楼层选择键入键STCH,提前关门输入键CLOSE,延迟关门输
入键DELAY,电梯运行的开关键RUN_STOP,电梯运行或停止指示键LAMP,电梯运
行或等待时间指示键RUNJVA1T,电梯所在楼层指示数码管ST_OUT,楼层选择韦示
数码管DIRECT。
DTKZQ
CLKINLAMP
UPIN
DOWNIN
ST_CH[1]RU_WAIT
CLOSEST_OUT
DELAYDIRECT
RUN_STOP
图1.电梯控制器DTKZQ的输入输出接口图
各输入端口的功能如下:
CLKIN:基准时钟信号,为系统提供2Hz的时钟脉冲,上升沿有效;
UPIN:电梯上升请求键,由用户向电梯控制器发出上升请求。高电平有效;
DOWNIN:电梯下降请求键,由用户向电梯控制器发出下降请求。高电平有效;
ST_CH[2..O]:楼层选择键入键,结合DIRECT完成楼层选择的键入,高电平有效;
CLOSE:提前关门输入键。可实现无等待时间的提前关门操作,高电平有效;
DELAY:延迟关门输入键。可实现有等待时间的延迟关门操作,高电平有效;
RUN_STOP:电梯运行或停止开关键。可实现由管理员控制电梯的运行或停止,
高电平有效。
一下为输出端口:
LAMP:电梯运行或等待指示键,指示电梯的运行或等待状况。高电平有效;
RUNWAIT:电梯运行或等待时间指示键,指示电梯运行状况或等待时间的长短,
高电平有效;
STJDUT:电梯所在楼层指示数码管,只是电梯当前所在的楼层数。即1~6层,高
电平有效;
DIRECT:楼层选择指示数码管,指示用户所要选择的楼层数,高电平有效。
2.2项目分块及其实现方案
电梯的控制状态包括运行状态、停止状态及等待状态,其中运行状态又包含
向上状态和向下状态。主要动作有开、关门,乘客可通过键入开、关门按键,呼
唤按键,指定楼层按钮等来控制电梯的行与停。
据此,整个电梯控制器DTLZQ应包括如下几个组成部分:①时序输出及楼
选计数器;②电梯服务请求处理器;⑤电梯升降控制器;④上升及下降寄存器;
⑤电梯次态生成器。该电梯控制器设计的关键是确定上升及下降寄存器的置位与
复位。整个系统的内部组成结构图2所示。
_DRECT
OKI\-时序输出及
楼选计数器
(DIR)
电
梯
UOTN1服
求
务
DDVVNITSj请
处
STCH;壁
RUN_STO
DELAY---------------->
电梯次态上升请求
生成器寄存器」
电梯升降下降请求
(LADD)(UR)
控制器寄存器
(LOSE
(LIFTOR)(DR)
RUNWAIT
ST_()U
图2.电梯控制器的内部组成结构图
图3.电梯控制器系统框图
2.3电梯控制器的流程图
图5电梯控制主流程图
3设计内容
3.1基本状态设计
1、采用信号并置处理很多输入信号的方式:
always@(call_up_1orcall_up_2orcall_up3orcall_up4orcall_up_5)
up_all={I*bO,call_up_5,call_up_4,call_up_3,call_up_2,
call_up_l);
〃将各下降请求信号实时地合并(1楼为底层,无下降请求,考虑到通用性,将
第1位填零)
always@(calldcwn2orcalldown3orcalldown4orcalldown5or
call_down_6)
down_al1={call_down6,call_down_5,call_down_4,call_down_3,
call_down_2,1'bO};
〃将各停靠请求信号实时地合并
always@(request」orrequest_2orrequest_3orrequest_4or
request_5orrequest_6)
request_al>{request_6,request^,requests,requesl_3,
request_2,request」};
2、通过参数定义把信号并置的方法和有限状态机联系起来
parameterWA1T=7,bOOOOOOl,UP=7,bOOOOOlO,D0WN=7,bOOOOlOO,
UPST0P=7,bOOOlOOO,DOWrNSTOP=7,bOO10000,0PEND00R=7,bO100000,
CL0SED00R=7,bl000000;
〃定义楼层的符号常量
parameterFL00Rl=6,bOOOOOl,FL00R2=6,bOOOOlO,FL00R3=6,bOOOlOO,
FL00R4=6,bOOlOOO,FL0()R5=6'bOlOOOO,
FL00R6=6,bl00000;
parameterTRUE=:'bl,FALSER'bO;〃定义门打开和门关闭的符号常量
parameterOPEN='bl,CLOSED=1'b0;〃定义电梯上升,下降和静止的符号
常量
parameterUPFLAG=2,bOl,DNFLAG=2'biO,STATIC=2,bOO;
3、采用了七个状态实现了有限状态机
图6.状态转换图
黑线:WAITTOUPTOUPSTOPTOOPENDOORTOCLOSEDOOR
TOWAIT
粉红线:WAITTODOWNTODOWNSTOPTOOPENDOORTO
CLOSEDOORTOWAIT
3.2模块设计
1、电梯主控制器模块elevator_controller:
此段智能电梯控制器由三个重要部分组成的。
(a)信号并置部分,完成对5路向上请求、5路向下请求、6路内部请求为信
号并置,化繁为简。
(b)三段式有限状态机部分。在有请求的情况下,电梯控制器还要根据电梯
的当前状态和当前的楼层去判断电梯的下一步该如何运作。
(c)计数器部分。完成电梯的开门、关门的时间管理。
oiovator\_controllor
op_sorviout[6..O]
elkLiftState[6..O]
resetover_alarm
Toroidcount_outLts..oj
call_up_1count[2..O]
cell_up_2
call__up_3
—call_up_4
CEIII_MP_5
call_down_2
CEIII_down_3
caII_down_4
ccill_dowr»_5
call_down_6
roQuost_1
request_2
roQuost_3
request_4
request_S
request6
inst3图7.电梯主控模块
2、分频模块frequence_div:
这段分频器完成对50Mhz的1分频操作。采用传统的“一半就翻转”的计数
技巧。
frocquonco_div
OQ_5cMOQ_1
图8.分频模块
3、数码管译码模块
3.3波形仿真
1、当电梯处于初始状态时,电梯在高层有向下的请求时:
_3
*1拉_nrLnrLrLn_nn_nn_rLrLn_rLnnjmn_n_rLn_rm_rmn_rLn_nnnjTn_rLn_FLn_nn_
*2forbid:jj:j:j'jj:jjj:jj:jj「jjj:jj-jj:jj-jj「j-jjj:jj'jj7jj:
・3key
*4call_dovn_2
♦5call_dovn_3
・6cill_dovn_4
I>7call_dovn_5
1>8call_dovn_6
*9C«ll_TipJ
■10ctll_up_2
eRl_up_3
■12cQL_up_4
•13call_up_5
•14
■15re<juest_2
计16request_3
“17requests
018request^
♦19r«qu«5t_6
*20reset;;;;i:;;;:;|;;;;;;;;:;|;:;;;;;;::;;;;j;;;;::;;;;i;;;i:;;;:;|;;
□£loor_digital
226LCDJIDM
卸27LCDJ)ATA)))麟
Q36LCDEKmum
<>37LCD.OK
338LCD.BS
计39LCD』V
•£>40ovQr_£Lwn
图9
2、当电梯停在6楼处于等待状态时,在1楼和2楼同时有向上的请求时:
over_alarm
图io
3、当电梯停在1楼处于等待状态时,在6楼和5楼同时有向下的请求时:
*0
32
■3
■4
35
■6
37
38
19
*10
■]]
・12
*]3
14
・15
*16
■17
・18
■ig
*20
Q26
誉»27
336
"37
Q38
33g
"40
图11
4、当电梯停在6楼时,有在5楼的向下的请求时,电梯应该先到五楼,电梯内部
请求到1楼,如果电梯在下降的过程中,有在2楼的向上的请求时,电梯应该先相
应内部请求,然后相应外部请求:
■0cp.SOM
■1elkjnjiruiru*UTinnruTruvuiri_ruT_ruuuuuui_ruuvi_ru'uuuuuuuuLTLTL
92forbid
33k«y
■4call_down_2
■5cftll__down_3
96call_down_4
・7cal】_down_5
98call_down_6
■9
910call_upj2
■11call_up_3
■12c«ill_up_4
■13call_up_5
“14rcquest_l
■15r«quest_2
■1A
■17r«quest_4
・18request_5
■19nquct_6
・20reset
t>21Hfloor_digiti
326LCD.BUDH
t>27国LCDJATA
336LCD.EN
037LCD_ON
238LCD.BS
039LCD.RW
340over_alarm:
..........................
图12
5、电梯的强制运行按钮forbid:
•0cp_50M
!L>]elk
forbid
♦3key
calldown2
・5calldown3
»6calldown4
♦7calldown5
calldown6
・9call_up_l
»10call_up_2
call_up_3
*12call_up_4
・13call_up_5
・14request」
A15request_2
>16request_3
・17request_4
・18request_5
・19request_6
220reset
⑥21floor_digit<
图13
总结与致谢
通过本次课程设计进一步熟悉QuartusII软伤的使用和操作方法,以及硬件
实现时的下载方法与运行方法;对VerilogHDL语言的自顶向下设计方法有了进
一步的认识,对其中的许多语句也有了新了解,掌握;对自己独立思考和解决问
题的能力也有了很大的锻炼。
短暂的课程设计就要结束了,在此,感谢所有在学习和生活中给予我关心和
帮助的人们。
首先我要感谢杨红娟、王涛两位位老师,本次课程设计设计的选题、课题调
研与撰写工作实在和老师的指导下完成的。和老师渊博的知识、严谨的治学态度、
一丝不苟的工作作风、和不厌其烦的精神对我影响至深,使我受益终生,在此我
向和老师表示崇高的敬意和衷心的感谢。
其次,在我的课程设计期间,同课题的同学都给予了我热情的帮助和无私的
指导,在此向这些同学们表示衷心的感谢。
最后,向所有曾给予我关心和帮助的老师和同学们再次致以最衷心的感谢,
向参加报告评审、答辩的老师表示衷心的感谢和崇高的敬意。
参考文献
[1]黄仁欣.EDA技术实用教程.北京:清化大学出版社,2006
[2]潘松,黄继业.EDA技术与VHDL.北京:清华大学出版社,2009
[3]江国强编著.EDA技术与应用(第三版)..北京:电子工业出版社,2010
[4]夏宇闻编著.VerilogHDL数字系统设计教程..北京:北京航空航天
大学出版社,2008
[5]周祖成,程晓军,马卓钊编著.数字电路与系统教学实验教程.北京:
科学出版社,2010
[6]周润景,苏良碧.基于QuartusII的数字系统Ve景logHDL设计实例
详解.北京:电子工业出版社,2010
[7](美国)SanirPalnitkar译者:夏宇闻胡燕祥刁岚松.VerilogHDL
数字设计与综合(第2版).北京:电子工业出版社,2009
[8]云创工作室.VerilogHDL程序设计与实践.北京:人民邮电出版社,
2009
[9]刘福奇,刘波.VerilogHDL应用程序设计实例精讲.北京:电子工业
出版社,2009
[10]张延伟,杨金岩,葛爱学.veriloghdl程序设计实例详解.北京:
人民邮电出版社,2008
附录
1、分频模块
modulefrcquence_div(cp_50M,cp_l);
inputcp_50M;〃板子提供的最高时钟
outputcp_l;〃要求得到的秒脉冲
reg[27:0]counter」;〃计数器
regcp_1;〃类型声明
always@(poscdgecp_50M)
begin
if(counter_l==28'hl7D7840)//50MM•半到了,秒脉冲翻转
begin
cp」<=~cp_l;〃翻转
counter_1<=28'hOOO(X)(X);
end
else
counter」v=counler_l+l'bl;〃杏则加1
end
endmodule
2、智能电梯主控制模块
moduleclcvator_controllcr(//inputports:
cp_50M,clk,reset,forbid,
call_up_l,call_up_2,call_up_3,
call_up_4,call_up_5,
call_down_2,call_down_3,call_down_4.
call_down_5,call_down_6,
request」,request_2,request_3,
rcqucst_4,rcqucst_5,rcqucst_6,
//outputports:
out,LiftState,over_alann,count_out,count
);
//outputports:
oulput[6:()]out;〃输出楼层
output(6:01LiftStae//输出电梯状态
outputover_alann;//f±jlB
oulput[6:0]count_out;//计数器输出,便于我控制开关门的状态显示
output[2:0]count;〃计数器
//inputports:
inputcp_50M;
input
c]k,reset.call_up_l,call_up_2,call_up_3,call_up_4.call_up_5,call_down_2,call_down_3,call_dow
n_4,call_down_5,call_down_6,rcquest_l,rcquest_2,rcquest_3,rcqucst_4,rcqucst_5,rcquest_6;
inputforbid;
//pos与Posout的关系:当前状态一改变,pos立即作相应改变,而PosOut则是当前状态在
要变到下一状态的瞬间
〃,将PosOut作相应改变。如从WAIT切换到第一个UP时,pos立即加一,而PosOut
则要等到第一个UP
〃即将切换到第二个UP时,才加一。
//这个说的简单一点,就是移位寄存器,便于对电梯状态的实时的控制
wireover_alarm;
wire[6:0Jout;
wire[6:01count_out;
reg15:0]pos,PosOut;
reg[2:0]count;〃门开后要持续5个时钟周期,用count来计数
regDoorFlag;
reg11:0]UpDnFlag;
reg[6:0]LiftState.NextState;〃分别表示电梯的当前状态和下一状态
wirereal_clk;
//up_al1,down_al1,rcquest_al1分别用来合并向上请求的各信号,向下请求的各信号和停靠
请求的各信号
〃以便判断电梯在状态间如何转移时更简洁
reg[5:0]up_alI,down_al1,request_al1;
〃定义电梯7种状态的符号常量
parameterWAIT=7'b0(X)0001,UP=7'b0000010,DOWN=7'b0000100,UPSTOP=7'b0001000
,DOWNSTOP=7'b()()10000,OPENDOOR=7'bO1000(X1,CLOSEDOOR=7'b1000000;
〃定义楼层的符号常量
parameterFLOORl=6'b000001,FLOOR2=6'bOOOO10,FLOOR3=6'bOOO100,
FLOOR4=6'bOOIOOO,FLOOR5=6'bO10000,FLOOR6=6bI()0000;
parameterTRUE=rbl,FALSE=1'bO;
〃定义门打开和门关闭的符号常量
parameterOPEN=1'bl,CLOSED=1'bO;
〃定义电梯上升,下降和静止的符号常审
parameterUPFLAG=2fb01,DNFLAG=2'b10,STATIC=2'b00;
assignreal_clk=(clk&(~forbid));
〃采用屏蔽时钟的方法来实现“电梯强制禁止运行方法虽然违反了“同步电路最好
〃没有时钟门控”的要求,但是在此只要“负面影响”不是很大还是可以接受的。
〃将各上升请求信号实时地合并(6楼为顶层,无上升请求,考虑到通用性,将第4位滇零)
always@(call_up_lorcall_up_2orcall_up_3orcall_up_4orcall_up_5)
up_all={1'bO,call_up_5,call_up_4,call_up_3,call_up_2,call_up_l};
〃将各下降请求信号实时地合并(I楼为底层,无下降请求,考虑到通用性,将第1位填零)
always@(call_down_2orcall_down_3orcall_down_4orcall_down_5orcall_down_6)
down_all={call_down_6,call_down_5,call_down_4,call_down_3,call_down_2,I'bO};
〃将各停靠请求信号实时地合并
always@(rcqucst_lorrcqucst_2orrcquest_3orrcquest_4orrcquest_5orrcquest_6)
request_all={request_6.request_5.request_4.request_3,request_2,request_l};
always@(posedgereal_clkorposedgereset)
if(reset)
count<=0;
elseif((NextState==OPENDOOR)&&(count<5))//orelseif(NextState==OPENDOOR)
count<=count+l;〃如果计数不到5且下一状态为OPENDOOR的话,继续计数
else
count<=0;〃清零,以备下次计数
//displaywhichfloortheelevatoris....
display.decodehl(cp_50M,PosOut,out,over_alarm);
display_decode_counth2(cp_50M,count,count_out);
//finitestatemachineinthestyleofthreesegments,三段式
//1stStatcShiftalwaysblock,sequentialstatetransition,有限状态机第一段
always@(poscdgereal_clkorposedgereset)
if(reset)
begin
LiftState<=WAIT;
end
else
LiftState<=NextState;
//2ndStateShirtalwaysblock,combinationalconditionjudgement,有限状态机第一段
always@(LiftStateorup_allordown_allorrequest_allorposorcountorUpDnFlag)
case(LiftState)
WAIT:
begin
if(request_all>0)〃有停靠请求否
begin
if((requesl_all&pos)>0)〃停靠请求中有当前楼层停靠请求否
NextState=OPENDOOR;〃有当前楼层请求,则下一状态
转开门
elseif(request_all>pos)〃有当前楼层之上的停靠请求否(优先
向上的请求)
NexlStale=UP;〃有则,下一状态转上升
else
NextStale=DOWN;〃只有当前楼层之下的停靠请求,下
一状态转下降
end
elseif((up_all&pos)||(down_all&pos))〃上下请求中有当前楼层请求否
begin
NcxtStatc=OPENDOOR;
end
elseif((up_aH>pos)||(down_all>pos))〃上下请求中有当前楼层之上的请
求否
NextState=UP;
elseif(up_all||down_all)〃上下请求中有当前楼层之下的请求否
NextState=DOWN;
else
NextState=WAIT;〃无任何请求,继续处于WAIT模式
end
UP:
begin
if((request_all&pos)||(up_aH&pos))〃停靠或上升请求中有当前楼层的
请求否
NcxtStatc=UPSTOP;〃有,下一状态转为UPSTOP(停靠后要1s才
开门,UPSTOP即为这1s的过渡期)
elseif((reques【_all>pos)||(up_all>pos))〃停靠或上升请求中有当前楼层
之上的请求否
NextState=UP;
elseif(down_all>0)〃有下降请求否
begin
if((down_all>pos)&&((down_allApos)>pos))//下降请求中有
当前楼层的请求否
NextS(ate=UP;
elseif((down_all&pos)||(pos<FLOOR6))〃其实这样做意义不
大,只是使上下标志提前变化
NextState=UPSTOP;
elseif((down_all&pos)&&(pos==FLOOR6))〃事实上不满足
第一条件的话,电梯根本不会到达第四层
NextState=DOWNSTOP;
else//下降请求中只有当前楼层之下的请求
NextState=DOWN;
end
elseif(request_all||up_all)〃只有当前楼层之上的停靠或上升请求否
NextState=DOWN;
else
NextState:WAIT;〃无任何请求,转为WAIT模式
end
//DOWN的状态转移请参见UP的状态转移
DOWN:
begin
if((request_all&pos)||(down_all&pos))
NextState:DOWNSTOP;
else
if(((request_all&FLOORI)<pos&&(request_all&FLOORl))||((request_all&FLOOR2)<pos&&(re
quest_all&FLOOR2))||((request_all&FLOOR3)<pos&&(request_all&FLOOR3))||((request_all&F
LOOR4)<pos&&(request_all&FLOOR4))||((request_all&FLOOR5)<pos&&(request_all&FLOO
R5))||((request_all&FLOOR6)<pos&&(request_all&FLOOR6)))
NextState=DOWN;
else
if(((down_all&FLOOR1)<Pos&&(down_all&FLOORI))||((down_all&FLOOR2)<pos&&(dcwn_
all&FLOOR2))||((down_all&FLOOR3)<pos&&(down_all&FLOOR3))||((down_all&FLOOR4)<p
os&&(down_all&FLOOR4))||((down_all&FLOOR5)<pos&&(down_all&FLOOR5))||((down_all
&FLOOR6)<pos&&(down_all&FLOOR6)))
NextState=D()WN;
elseif(up_all>0)
begin
if(((up_all&FLOORI)<pos&&(up_all&FLOORl))||((up_aIl&FLOOR2)<pos&&(up_all&FLOOR
2))||((up_all&FLOOR3)<pos&&(up_all&FLOOR3))||((up_all&FLOOR4)<pos&&(up_alI&FLOO
R4))||((up_all&FLOOR5)<pos&&(up_all&FLOOR5))||((up_all&FLOOR6)<pos&&(up_all&FLO
OR6)))
NcxtState=DOWN;
elseif((up_all&pos)&&(pos>FLOOR1))
NextState:DOWNSTOP;
elseif((up_all&pos)&&(pos==FLOOR1))
NextState=UPSTOP;
else
NextState=UP;
end
elseif(request_all||down_all)
NextState=UP:
else
NextState二WAIT;
end
UPSTOP:
begin
NextState=OPENDOOR;〃停靠1时钟周期后开门
end
DOWNSTOP:
begin
NextState=OPENDOOR;〃停靠1时钟周期后开门
end
OPENDOOR:
begin
if(counl<5)〃开门不足5周期,则继续转移到开门状态
NextState=OPENDOOR;
else
NextState二CLOSEDOOR;〃开门5周期后,关门
end
CLOSEDOOR:
begin
if(UpDnFlag==UPFLAG)〃开门关门前电梯是处于上升状态吗
begin
if((requesl_all&pos)||(up_all&pos))〃上升或停靠请求中有当
前楼层的请求否,有可能关门的瞬间又有新的请求
NextState=OPEND()()R;
elseif((request_all>pos)|l(up_aH>pos))〃上升或停靠请求中有
当前楼层之上的请求否
NcxtStatc=UP;
elseif(down_alI>0)//W下降请求否
begin
if((down_all>pos)&&((down_allApos)>pos))
NextState=UP;〃有当前楼层之上的下降请求,
则下一状态转移上升
elseif((down_all&pos)>0)〃有当前楼层的下降请求
信号,且更上层无下降请求
NextState=OPENDOOR;
else〃只有低于当前层的下降请求
NextState=DOWN;
end
elseif(request_all||up_all)//±升和停靠请求中有当前层的请
求且只有当前层下的请求
NexlS(ate=DOWN;
else
NextState=WAIT;//无任何请求,转为WAIT模式
end
〃请参考UpDnFlag=UPFLAG的注释
elseif(UpDnFlag==DNFLAG)
begin
if((rcquest_ail&pos)||(down_all&pos))
NextStale=OPENDOOR;
else
if(((request_all&FLOOR1)<pos&&(request_all&FLOORI))||((request_all&FLOOR2)<pos&&(re
quest_all&FLOOR2))||((request_all&FLOOR3)<pos&&(request_all&FLOOR3))||((request_all&F
LOOR4)<pos&&(rcquest_alI&FLOOR4))||((rcquest_all&FLOOR5)<pos&&(rcquest_all&FLOO
R5))||((request_all&FLOOR6)<pos&&(request_all&FLOOR6)))
NcxtState=DOWN;
else
if(((dovvn_all&FLOORl)<pos&&(down_all&FLOORl))||((down_all&FLOOR2)<pos&&(dcwn_
all&FLOOR2))||((down_all&FLOOR3)<pos&&(down_all&FLOOR3))||((down_all&FLOOR4)<p
os&&(down_all&FLOOR4))||((down_an&FLOOR5)<pos&&(down_all&FLOOR5))||((down_all
&FLOOR6)<pos&&(down_all&FLOOR6)))
NextState=DOWN;
elseif(up_all>0)
begin
if(((up_all&FLOORI)<pos&&(up_all&FLOORl))||((up_aIl&FLOOR2)<pos&&(up_all&FLOOR
2))||((up_all&FLOOR3)<pos&&(up_all&FLOOR3))||((up_all&FLOOR4)<pos&&(up_all&FLOO
R4))||((up_all&FLOOR5)<pos&&(up_all&FLO()R5))||((up_all&FLOOR6)<pos&&(up_all&FLO
0R6)))
NextStatc=DOWN;
elseif((up_all&pos)>0)
NextStatc=OPENDOOR;
else
NextState=UP;//
end
elseif(request_all||down_all)
NextState=UP;
else
NextState=WAIT;//
end
〃请参考WAIT模式的注释
else
begin
if(request_all>0)
begin
if((requesl_all&pos)>0)
NextState=OPENDOOR;
elseif(request_all>pos)
NextState=UP:
else
NextSlate=DOWN;
end
elseif((up_aH&pos)||(down_all&pos))
begin
NextSlate=OPENDOOR;
end
elseif((up_all>pos)||(down_all>pos))
NextState=UP;
elseif(up_all||down_all)
NexlStale=DOWN;
else
begin
NextState=WAlT;
end
end
end
default:
NextState=WAIT;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33285.1-2026皮革和毛皮烷基酚及烷基酚聚氧乙烯醚的测定第1部分:直接法
- 高中化学 加练 第一章 微题型9 氧化还原反应基本概念与规律
- 高中物理 加强练习第十二章 125.电磁感应中的线框模型(A)
- SJG 200-2025前海绿色建筑评估标准
- 陶瓷(瓷砖)购销合同
- 森林扑火队应急预案(3篇)
- 水泥花管施工方案(3篇)
- 混凝土夜间浇筑施工方案(3篇)
- 礼盒推广营销方案策划(3篇)
- 粉墙抹灰大板施工方案(3篇)
- 湖北省黄冈市2026-2027学年八上数学期末教学质量检测模拟试题含解析
- 2026湖南娄底涟源市明宏水利电力开发有限公司招聘12人笔试参考题库及答案详解
- Q2桥门式起重机考试题题库及答案
- 新版2026年高考地理(陕晋青宁卷)真题详细解读及评析
- 北海市2025广西北海市招聘县级政府统计机构统计协管员(协统员)6人笔试历年参考题库典型考点附带答案详解
- 零星维修施工方案
- 《工业管道安全技术规程》(TSG31-2025)监督检验规则培训
- 供电公司计量采集培训
- 关节腔内注射药物治疗类风湿关节炎的医药专家共识
- 2026年电气工程及其自动化专业考研模拟单套试卷(含重点难点)
- GB/T 26332.4-2026光学和光子学光学薄膜第4部分:摩擦、附着力和耐水性的试验方法
评论
0/150
提交评论