2018-06-29 23:21:31 qq_39026129 阅读数 1518

**

电梯控制系统

**

需求说明:
完成一个56层写字楼6部电梯的模拟控制系统。模拟系统运行在Window7 系统下,电梯按键使用图形化界面输入。电梯运行状况可以实时呈现于控制端。
功能点:
 电梯内部按键包含“楼层数字”按键、“手动开门”按键、“手动关门”按键、“紧急呼叫”按键;
 控制系统可以接收不同楼层的控制信号,并按照规则指派相应的电梯到达该楼层;
 电梯指派规则(建议):
 忙时优先指定离请求楼层最近的电梯到达;
 忙时电梯区分高、低楼层,至少有半数的电梯不在15层以下停靠,至少有1部电梯可以到达全部楼层;
 闲时优先指派运行总里程短,且在请求楼层上、下5层内的电梯;
 电梯可正确到达乘用人员指定楼层;
 电梯运行时在每个楼层停留时间为10s,每次手动开门按键可增加5s停留时间;
 当乘用人员按动手动关门键后,电梯等待2s后开始继续运行;
 当乘用人员按动手动关门键后,如果电梯外部有同向乘梯请求,则电梯再次开门并等待10s后开始运行;
 电梯正常运行时,需对电梯内部乘员、楼层等待用户、后台呈现当前楼层信息;
 电梯运行过程中,应能响应运行方向3个楼层(含)以上的同向乘梯请求;
 当电梯满载时,不响应运行方向的乘梯请求,直到非满载时为止;
 当电梯超载时,停止运行并给予灯光、声音提示;
 电梯内、外部按键均支持取消功能;
 支持控制端停用指定电梯;
 支持单部电梯独立复位——当电梯故障时,电梯对控制系统报警,“滑梯”至基准楼层(一楼),开门,并开始复位操作,对外呈现故障状态,直至复位完成,在此期间,其他电梯运行不受影响;
 在地震、火警、台风等不适宜使用电梯的场景下,电梯不响应乘梯请求,工作中电梯运行至最近楼层后,轿厢门常开,并不再运行;

具体实现文件见链接:https://download.csdn.net/download/qq_39026129/10509082

批注:某双非一本院校计算机学院请软通动力给我们做的课程设计指导,说实话确实体会到了学校学习的知识与企业开发的脱节,通过此次课设确实是学到了一些知识,对对对,最重要的还是团队的分工与合作(我们小组最终获得了优秀证书,发了个小风扇,嘿嘿)。

同性交友网站,免费提供下载
GitHub

2009-03-14 13:00:00 shanmuwzb 阅读数 7468

本设计主要利用欧姆龙系统完成。主要介绍了3层电梯的PLC的特点、PLC的功能、发展趋势、PLC控制电梯的软、硬件设计。在示意图、接线图、电梯的控制梯形图、指令表、和程序流程图的基础之上提出了PLC的编程方法。

可编程控制系统(Programmable Logic Controller)是一种专门为在工业环境下应用而设计的数字运算操作电子系统。它采用一种可编程的存储器,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。由于它可通过软件来改变控制过程,而且具有体积小、组装维护方便、编程简单、可靠性高、抗干扰能力强等特点,已广泛应用于工业自动化控制控制的各个领域,大大推进了机电一体化的进程。

电梯是高层建筑不可缺少的运输工具,用于垂直运送乘客和货物,传统的电梯控制系统主要采用继电器--接触器进行控制,其缺点是触点多,故障率高、可靠性差、维修工作量大等,而采用 PLC组成的控制系统可以很好地解决上述问题,使电梯运行更加安全、方便、舒适。目前PLC在电梯行业已得到广泛应用。在层数和控制功能较少的场合,采用PLC控制较为方便。

 三层楼电梯自动控制

电梯的电气系统由拖动系统和控制系统两部分组成。传统的电气控制系统采用的继电器逻辑控制由于触点多、故障率高、可靠性差、体积大等缺点,正逐渐被淘汰。目前电梯设计使用可编程控制器(PLC),要求功能变化灵活,编程简单,故障少,噪音低。维修保养方便,节能省工,抗干扰能力强,控制箱占地面积少。

一.电梯设计要求

1、 图2.4-8是三层楼电梯示意图,电梯上、下由一台电机控制:正转(上升)、反转(下降)。

1)每层设有呼叫开关SBlSB3;呼叫指示灯H1H3和到位行程开关STlST3

    2)若令电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向呼叫均无效(以下简称“不可逆响应”),则其动作要求如表24-1所示。

    3)因实际电梯的呼叫开关为按钮式开关,所以SBlSB3开关要求瞬间接通有效。

    4)各楼层问有效运行时间应小于10s,否则认为有故障,自动令电机停转。

 

 

注:第1112项在运行中,后发出的反方向呼叫无效。

 2、附加动作要求:

到达每层楼后,电梯应有开、关门动作

二.电梯设计分析

1.分析被控对象

被控制的对象为三层楼电梯,在这个设计中动作要满足表24-1的要求。电梯运行到位后,具有开、关门功能。能自动判别电梯运行方向,并发出响应的指示信号。

2.分配PLC的输入/输出端子

输入电路

输入端子

输出电路

输出端子

开门行程开关SL1

0.01

开门继电器KM1

5.04

关门行程开关SL2

0.02

关门继电器KM2

5.05

红外传感器SA1

0.03

上行继电器KM3

5.00

红外传感器SA2

0.04

下行继电器KM4

5.01

一层到位行程开关ST1

0.05

加速继电器KM5

5.06

二层到位行程开关ST2

0.06

低速继电器KM6

5.02

三层到位行程开关ST3

0.07

快速继电器KM7

5.03

一层呼叫按钮SB1

1.01

上行方向灯HL1

5.08

一层呼叫按钮SB2

1.02

下行方向灯HL2

5.09

一层呼叫按钮SB3

1.03

一层指示灯HL3

6.00

一层内指令按钮SB4

1.04

二层指示灯HL4

6.01

二层内指令按钮SB5

1.05

三层指示灯HL5

6.02

三层内指令按钮SB6

1.06

一层呼叫指示灯H1

6.08

一层下行减速接近开关SA1

1.07

二层呼叫指示灯H2

6.09

二层上行减速接近开关SA2

1.08

三层呼叫指示灯H3

6.10

二层下行减速接近开关SA3

1.09

 

 

三层上行减速接近开关SA4

1.10

 

 

3.统计输入、输出点数并选择PLC型号

输入信号有17个,考虑到有15%的备用点,17×(1+15%)=19.55,取整数20,因此共需20个输入点。

输出信号有15个,考虑到有15%的备用点,15×(1+15%)=17.25,取整数18,因此共需18个输出点。

因此可选用C60PCPU类型可编程序控制器,它有32个输入点,28个输出点,满足本设计要求。

4.输入/输出端子接线图

5.运动形式分析

1)开、关门的控制电路如图5.1所示。

自动开门:当电梯运行到位后(运行继电器10.00OFF),相应的楼层到位行程开关闭合,即0.050.060.07接点闭合,时间继电器TIM0000开始计时,计到3s时,TIM0000触点闭合,使0504线圈有效,驱动开门接触器,打开电梯门,直至到位,开门行程开关动作,即0.01动断触点打开,开门过程结束。

自动关门:当开门行程开关0.01触点闭合,经时间继电器TIM0001延时5s后,使TIM0001触点闭合,0505有效,驱动关门继电器,关闭电梯门,直至到位,关门行程开关0.02动作,关门动作结束。

关门保护:自动关门时,可能夹住乘客,可在门上装设红外传感器。当有人进出时,0.030.04闭合,关门被禁止,同时开门接触器工作,把门打开,至限位位置后,重新执行关门动作。

5.1 开、关门的控制电路

2)电梯到站指示如图5.2所示。

当电梯到达一层时,一层到位行程开关闭合,一层指示灯亮。其他楼层情况类似。

5.2  电梯到站指示

 

3)各层呼叫指示如图5.3所示

当乘客按下某层楼的呼叫按钮或某层楼的内指令按钮时,相应的指示灯亮,指示灯一直保持到电梯到达该楼层。

5.3 各层呼叫指示

4)电梯起动和运行方向选择如图5.4所示。

假设电梯原先停在一楼,按了二层呼叫按钮(1.02),二层呼叫指示灯亮(6.09闭合),因为一层到位行程开关闭合,所以上行方向灯(5.08)亮,起动中间继电器(10.06)工作,上行继电器(5.00)运行,电梯上升,到了二层,碰到二层到位行程开关,二层指示灯亮,前沿微分指令1005ON一个扫描周期,用以切断起动控制信号,起动中间继电器停止工作,电梯停在二层。如果按了三层呼叫按钮,情况与此类似。电梯在上升途中,电梯的三层停止辅助继电器工作,此时按一层或二层呼叫按钮无效。如果同时按了二、三层呼叫按钮,上行方向灯亮,电梯上升,到了二层,二层停止辅助继电器和计时器开始工作,电梯停2秒后,上升方向灯继续亮,电梯继续上升,直到三层才停止。

下降情况与上升类似,故不赘诉。

由于有TIM0003故障检测,当电梯在各楼层间运行时间超过10s,就认为有故障,自动令电机停转。

 

5.4 电梯起动和运行方向

5)电梯速度的变换如图5.5所示

电梯起动后快速运行,2s后开始加速;在接近目标楼层时,相应的接近开关(1.071.081.091.10)动作,电梯开始减速,直至达到目标楼层时停止。

5.5 电梯速度的变换

6.助记符

LD T0000

OR 5.04

OR 10.01

ANDNOT 0.01

ANDNOT 10.00

ANDNOT 5.05

OUT 5.04

LD 0.05

OR 0.06

OR 0.07

ANDNOT 10.00

ANDNOT 5.04

TIM 0000 #0030

LD T0001

OR 5.05

ANDNOT 0.01

ANDNOT 10.01

ANDNOT 5.04

OUT 5.05

LD 0.01

ANDNOT 5.05

TIM 0001 #0050

LD 0.03

OR 0.04

OR 10.01

ANDNOT 0.01

OUT 10.01

LD 5.00

OR 5.01

OUT 10.00

LD 0.05

OR 6.00

ANDNOT 6.01

ANDNOT 6.02

OUT 6.00

LD 0.06

OR 6.01

ANDNOT 6.00

ANDNOT 6.02

OUT 6.01

LD 0.07

OR 6.02

ANDNOT 6.00

ANDNOT 6.01

OUT 6.02

LD 1.01

OR 1.04

ANDNOT 200.03

ANDNOT 0.05

LD 6.00

KEEP(011) 6.08

LD 1.02

OR 1.05

ANDNOT 200.01

ANDNOT 200.02

ANDNOT 0.06

LD 6.01

KEEP(011) 6.09

LD 1.03

OR 1.06

ANDNOT 200.04

ANDNOT 0.07

LD 6.02

KEEP(011) 6.10

LD 6.09

AND 0.06

OR 200.05

ANDNOT T0002

OUT 200.05

TIM 0002 20

LD 6.10

AND 0.06

OR 5.00

OUT 200.03

LD 6.08

AND 0.06

OR 5.01

OUT 200.04

LD 6.10

OR 6.09

ANDNOT 200.05

ANDNOT 5.09

ANDNOT T0003

OUT 5.08

LD 6.08

OR 6.09

ANDNOT 200.05

ANDNOT 5.08

ANDNOT T0003

OUT 5.09

LDNOT 0.05

ANDNOT 0.06

ANDNOT 0.07

TIM 0003 10

LD 0.06

AND 5.01

LD 0.05

KEEP(011) 200.01

LD 0.06

AND 5.00

LD 0.07

KEEP(011) 200.02

LD 1.02

LD 0.06

KEEP(011) 200.06

LD 6.10

AND 6.02

LD 6.09

AND 6.01

ORLD

LD 6.08

AND 6.00

ORLD

DIFU(013) 10.05

LD 5.08

OR 5.09

LD 10.05

OR 0.02

KEEP(011) 10.06

LDNOT 6.01

OR 6.10

ANDNOT 6.02

AND 5.08

AND 10.06

ANDNOT 5.01

OUT 5.00

LDNOT 6.01

OR 6.08

ANDNOT 6.00

AND 5.09

AND 10.06

ANDNOT 5.00

OUT 5.01

LD 5.00

OR 5.01

AND 10.06

ANDNOT 5.02

OUT 5.03

LD 5.03

TIM 0004 20

LD T0004

ANDNOT 5.02

OUT 5.06

LD 5.00

OR 5.01

LD 1.07

AND 6.08

LD 1.08

AND 6.09

ORLD

LD 1.09

AND 6.09

ORLD

LD 1.10

AND 6.10

ORLD

ORNOT 5.06

ANDLD

ANDNOT 6.00

ANDNOT 6.01

ANDNOT 6.02

OUT 5.02

END(001)

 

参考文献

 

1. 王兆明、王治刚主编. 可编程序控制器原理、应用与实训. 机械工业出版社

2. 韩顺杰、吕树清主编. 电气控制技术. 中国林业出版社

3. 陆运华、胡翠华主编.图解PLC控制系统梯形图及指令表. 中国电力出版社

4. 郑宝林主编.图解欧姆龙PLC入门. 机械工业出版社

4. 中国设计师网(www.shejis.com

5. 电控学习网(www.dkxxw.com

 

2008-11-02 13:25:00 luohong520 阅读数 1454

摘 要 :该文介绍了交流变频调速电梯的工作过程、PLC控制系统的硬件和软件,着重分析了位置检测及其控制。

英文摘 要 :This paper introduces the working course of Alternating Current Frequency Converter Elevator,the hardware and the software of PLCcontrolling sysem. It stresses on the position measureing and controlling.

关键词: 电梯 , 变频器 , PLC , 硬件 , 软件


1 引言

随着城市建设的不断发展,高层建筑不断增多,电梯作为高层建筑中垂直升降的交通工具已和人们的日常生活密不可分,是机械电气相结合的机电一体化产品。电梯控制系统可分为调速部分和逻辑控制部分。调速部分的性能对电梯运行时乘客的舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。本设计采用PLC控制变频器调速系统,实现电流、速度、位移三闭环控制,具有一定的代表性和新颖性。

2 电梯控制系统硬件构成

电梯控制系统硬件由轿厢操纵盘、厅门信号、PLC、变频器调速系统构成,控制系统结构图如图1所示。图中变频器只完成调速功能,而逻辑控制部分是由PLC完成的。PLC负责处理各种信号的逻辑关系,从而向变频器发出起停信号,同时变频器也将本身的工作状态输送给PLC,形成双向联络关系。系统还配置了与电动机同轴连接的旋转编码器及PG卡,完成速度检测及反馈,形成速度闭环和位置闭环。此外系统还必须配置制动电阻,当电梯减速运行时,电动机处于再生发电状态,向变频器回馈电能,抑制直流电压升高。
本设计电梯为四层办公楼用的交流电梯,经过分析可知系统输入信号为26个,包括保护、工作状态选择、开/关门控制、位置检测、呼梯、速度控制等 。输出信号21个,包括开/关门、上行、下行、控制变频器信号、报警器、指示灯等。根据以上情况选择三菱FX2-64MR PLC。
变频器选用安川616G5 CIMR-G5A 4022通用变频器,技术特性为:可直接控制交流异步电动机的电流,使电动机保持较高的输出转矩;适用于各种应用场合,在低速下实现平稳起动并且极其精确的运行;它的自动调整功能可使各种电动机达到高性能的控制;它将U/f控制、矢量控制、闭环U/f控制、闭环矢量控制四种控制方式熔为一体,其中闭环矢量控制最适合电梯控制要求。
旋转编码器与主电动机同轴连接,通过PG卡(又名编码器连接板)对电动机测速和反馈电梯的位置 。选用OMRON公司的1024脉动增量式光电脉冲旋转编码器。旋转编码器与电动机同轴连接,产生A、B两相脉冲。当A相脉冲超前于B相脉冲90度时,认为电动机处于正转状态;当A相脉冲滞后于B相脉冲90度时,认为电动机处于反转状态。根据A、B相脉冲的相序,可判断电动机的转向。根据A、B脉冲的频率(或周期)可测得电动机的转速。若以A、B相脉冲的前沿或后沿产生计数脉冲,可以形成代表正向位移和反向位移的脉冲序列。旋转编码器将此脉冲输出给PG卡,PG卡再将此反馈信号送给变频器,以便进行运算调节。

3 电梯的工作过程

电梯一次完整的运行过程,就是曳引电动机从起动、匀速运行到减速停车的过程。PLC接收来自操作面板和呼梯盒的召唤信号、轿厢和门系统的功能信号以及井道和变频器的状态信号 ,经程序判断与运算后实现电梯的集选控制,PLC在输出显示和监控信号的同时向变频器发出运行方向、启动、加速、减速、运行和制动停梯信号。
曳引电动机正转(或反转)控制及高速控制信号有效时,电动机开始从0Hz到50Hz开始起动,起动时间在3S左右,然后维持50Hz的速度一直运行,完成起动及运行段的工作。当换速信号到来后,PLC撤消高速信号,同时输出爬行信号,此时爬行的输出频率为6Hz。从50Hz到6Hz的减速过程在3S之内完成,当达到6Hz速度时电梯停止减速,并以此速度爬行。当平层信号到来后,PLC撤消爬行信号,同时发出停梯信号,此时电动机从6Hz减速到0Hz,电梯停梯。正常情况下,在整个起动、运行、减速爬行段内,变频器的零速输出点一直是闭合的,减至0HZ之后,零速输出点断开,通过PLC抱闸及自动开门,电梯运行曲线如图2所示。
图2中运行曲线可通过变频器进行设置,也可通过配置运行曲线输入板。本系统采用变频器进行参数设置:令C1-01=3s,设置加速起动时间为3s;令C1-02=3s,设置减速时间为3s;令D1-02=50Hz,设置快车运行速度;D1-03=6Hz,设置爬行速度。

4 电梯运行中位置信号的检测

作为一种载人工具,在位势负载下,除要求安全可靠还必须运行平稳、乘坐舒适、停靠准确。采用变频器调速双闭环控制可基本满足要求。在不增加硬件电路的基础上,利用现有的旋转编码器在构成速度闭环的同时,也可构成位置闭环控制。
脉冲编码器的输出一般为A和A、B和B两对差动信号,可用于位置和速度测量,A和A、B和B四个方波被引入PG卡,经辨向和乘以倍率后,变成代表位移的测量脉冲,将其引入PLC高速计数端,进行位置控制。
本系统采用相对计数方式进行位置测量。运行前通过编程方式将各信号,如换速点位置、平层点位置、制动停车点位置等所对应的脉冲数,分别存入相应的内存单元,在电梯运行过程中,通过旋转编码器检测、软件实时计算以下信号:电梯所在层楼位置、换速点位置、平层点位置,从而进行楼层计数、发出换速信号和平层信号。
电梯运行中位移的计算如下:H=SI
式中S:脉冲当量 I:累计脉冲数 H:电梯位移
S=πλD/Pρ
D:曳引轮直径 ρ:PG卡的分频比 λ:减速器的减速比
P:旋转编码器每转对应的脉冲数
本系统中λ=1/32 D=580mm
Ned=1450r/min P=1024 ρ=1/18
代入S=πλD/Pρ 得S=1.00 mm/脉冲
设楼层的高度为4m,则各楼层平层点的脉冲数为:1楼为0;2楼为4000;3楼为8000;4楼为12000。
设换速点距楼层为1.6米,则各楼层换速点的脉冲数为:上升:1楼至2楼为2400,2楼至3楼为6400,3楼至4楼为10400;下降:4楼至3楼为9600,3楼至2楼为5600,2楼至1楼为1600。

5 软件设计

系统软件根据运行要求及保护要求共分为14个功能程序块:初始化、外呼、内选、自动开关电梯、平层、层楼计数及显示、超时基驶回基站、上行、下行、换速、开/关门、、报警、相序更正、优先服务等。根据电梯运行的要求,作出其运行流程的工作循环如图3所示。
电梯在有外呼信号或内选信号时,处于服务状态,当在一定的时间内没有服务信号时,电梯自动驶回基站,下面着重介绍程序初始化、换速、楼层计数及平层的程序设计及工作过程。
(1) 程序初始化:
将各楼层平层点对应的脉冲数及换速点对应的脉冲数写入数据寄存器(停电保持)。数据寄存器分配如下:
平层点:0→D200 4000→D201 8000→D202 12000→D203
换速点:2400→D204 6400→D205 10400 → D206
9600→D207 5600→D210 1600 → D211
(2) 换速
用PLC的高速计数器对PG卡的输出脉冲进行计数,当高速计数器的计数值与换速点对应的脉冲数相等时,且目的层有有效的选层信号或呼梯信号,则发出换速信号,电梯转入爬行阶段。程序流程如图4所示。
(3) 楼层计数
当轿厢到达各楼层计数点时,楼层数加1或减1。为防止计数脉冲高电平期间反复计数,采用楼层计数信号上沿触发楼层计数。程序流程如图5所示。
(4) 平层
当高速计数器的计数值与平层点的计数脉冲相等时发出平层信号,电梯平层。平层程序流程如图6所示。

6 结束语

利用PLC控制交流变频调速电梯具有接线简单、编程直观、扩展容易、可靠性高等特点,且电梯运行平稳,舒适感好。可用于老式电梯的技术改造。
 摘 要 :该文介绍了交流变频调速电梯的工作过程、PLC控制系统的硬件和软件,着重分析了位置检测及其控制。

英文摘 要 :This paper introduces the working course of Alternating Current Frequency Converter Elevator,the hardware and the software of PLCcontrolling sysem. It stresses on the position measureing and controlling.

关键词: 电梯 , 变频器 , PLC , 硬件 , 软件


1 引言

随着城市建设的不断发展,高层建筑不断增多,电梯作为高层建筑中垂直升降的交通工具已和人们的日常生活密不可分,是机械电气相结合的机电一体化产品。电梯控制系统可分为调速部分和逻辑控制部分。调速部分的性能对电梯运行时乘客的舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。本设计采用PLC控制变频器调速系统,实现电流、速度、位移三闭环控制,具有一定的代表性和新颖性。

2 电梯控制系统硬件构成

电梯控制系统硬件由轿厢操纵盘、厅门信号、PLC、变频器调速系统构成,控制系统结构图如图1所示。图中变频器只完成调速功能,而逻辑控制部分是由PLC完成的。PLC负责处理各种信号的逻辑关系,从而向变频器发出起停信号,同时变频器也将本身的工作状态输送给PLC,形成双向联络关系。系统还配置了与电动机同轴连接的旋转编码器及PG卡,完成速度检测及反馈,形成速度闭环和位置闭环。此外系统还必须配置制动电阻,当电梯减速运行时,电动机处于再生发电状态,向变频器回馈电能,抑制直流电压升高。
本设计电梯为四层办公楼用的交流电梯,经过分析可知系统输入信号为26个,包括保护、工作状态选择、开/关门控制、位置检测、呼梯、速度控制等 。输出信号21个,包括开/关门、上行、下行、控制变频器信号、报警器、指示灯等。根据以上情况选择三菱FX2-64MR PLC。
变频器选用安川616G5 CIMR-G5A 4022通用变频器,技术特性为:可直接控制交流异步电动机的电流,使电动机保持较高的输出转矩;适用于各种应用场合,在低速下实现平稳起动并且极其精确的运行;它的自动调整功能可使各种电动机达到高性能的控制;它将U/f控制、矢量控制、闭环U/f控制、闭环矢量控制四种控制方式熔为一体,其中闭环矢量控制最适合电梯控制要求。
旋转编码器与主电动机同轴连接,通过PG卡(又名编码器连接板)对电动机测速和反馈电梯的位置 。选用OMRON公司的1024脉动增量式光电脉冲旋转编码器。旋转编码器与电动机同轴连接,产生A、B两相脉冲。当A相脉冲超前于B相脉冲90度时,认为电动机处于正转状态;当A相脉冲滞后于B相脉冲90度时,认为电动机处于反转状态。根据A、B相脉冲的相序,可判断电动机的转向。根据A、B脉冲的频率(或周期)可测得电动机的转速。若以A、B相脉冲的前沿或后沿产生计数脉冲,可以形成代表正向位移和反向位移的脉冲序列。旋转编码器将此脉冲输出给PG卡,PG卡再将此反馈信号送给变频器,以便进行运算调节。

3 电梯的工作过程

电梯一次完整的运行过程,就是曳引电动机从起动、匀速运行到减速停车的过程。PLC接收来自操作面板和呼梯盒的召唤信号、轿厢和门系统的功能信号以及井道和变频器的状态信号 ,经程序判断与运算后实现电梯的集选控制,PLC在输出显示和监控信号的同时向变频器发出运行方向、启动、加速、减速、运行和制动停梯信号。
曳引电动机正转(或反转)控制及高速控制信号有效时,电动机开始从0Hz到50Hz开始起动,起动时间在3S左右,然后维持50Hz的速度一直运行,完成起动及运行段的工作。当换速信号到来后,PLC撤消高速信号,同时输出爬行信号,此时爬行的输出频率为6Hz。从50Hz到6Hz的减速过程在3S之内完成,当达到6Hz速度时电梯停止减速,并以此速度爬行。当平层信号到来后,PLC撤消爬行信号,同时发出停梯信号,此时电动机从6Hz减速到0Hz,电梯停梯。正常情况下,在整个起动、运行、减速爬行段内,变频器的零速输出点一直是闭合的,减至0HZ之后,零速输出点断开,通过PLC抱闸及自动开门,电梯运行曲线如图2所示。
图2中运行曲线可通过变频器进行设置,也可通过配置运行曲线输入板。本系统采用变频器进行参数设置:令C1-01=3s,设置加速起动时间为3s;令C1-02=3s,设置减速时间为3s;令D1-02=50Hz,设置快车运行速度;D1-03=6Hz,设置爬行速度。

4 电梯运行中位置信号的检测

作为一种载人工具,在位势负载下,除要求安全可靠还必须运行平稳、乘坐舒适、停靠准确。采用变频器调速双闭环控制可基本满足要求。在不增加硬件电路的基础上,利用现有的旋转编码器在构成速度闭环的同时,也可构成位置闭环控制。
脉冲编码器的输出一般为A和A、B和B两对差动信号,可用于位置和速度测量,A和A、B和B四个方波被引入PG卡,经辨向和乘以倍率后,变成代表位移的测量脉冲,将其引入PLC高速计数端,进行位置控制。
本系统采用相对计数方式进行位置测量。运行前通过编程方式将各信号,如换速点位置、平层点位置、制动停车点位置等所对应的脉冲数,分别存入相应的内存单元,在电梯运行过程中,通过旋转编码器检测、软件实时计算以下信号:电梯所在层楼位置、换速点位置、平层点位置,从而进行楼层计数、发出换速信号和平层信号。
电梯运行中位移的计算如下:H=SI
式中S:脉冲当量 I:累计脉冲数 H:电梯位移
S=πλD/Pρ
D:曳引轮直径 ρ:PG卡的分频比 λ:减速器的减速比
P:旋转编码器每转对应的脉冲数
本系统中λ=1/32 D=580mm
Ned=1450r/min P=1024 ρ=1/18
代入S=πλD/Pρ 得S=1.00 mm/脉冲
设楼层的高度为4m,则各楼层平层点的脉冲数为:1楼为0;2楼为4000;3楼为8000;4楼为12000。
设换速点距楼层为1.6米,则各楼层换速点的脉冲数为:上升:1楼至2楼为2400,2楼至3楼为6400,3楼至4楼为10400;下降:4楼至3楼为9600,3楼至2楼为5600,2楼至1楼为1600。

5 软件设计

系统软件根据运行要求及保护要求共分为14个功能程序块:初始化、外呼、内选、自动开关电梯、平层、层楼计数及显示、超时基驶回基站、上行、下行、换速、开/关门、、报警、相序更正、优先服务等。根据电梯运行的要求,作出其运行流程的工作循环如图3所示。
电梯在有外呼信号或内选信号时,处于服务状态,当在一定的时间内没有服务信号时,电梯自动驶回基站,下面着重介绍程序初始化、换速、楼层计数及平层的程序设计及工作过程。
(1) 程序初始化:
将各楼层平层点对应的脉冲数及换速点对应的脉冲数写入数据寄存器(停电保持)。数据寄存器分配如下:
平层点:0→D200 4000→D201 8000→D202 12000→D203
换速点:2400→D204 6400→D205 10400 → D206
9600→D207 5600→D210 1600 → D211
(2) 换速
用PLC的高速计数器对PG卡的输出脉冲进行计数,当高速计数器的计数值与换速点对应的脉冲数相等时,且目的层有有效的选层信号或呼梯信号,则发出换速信号,电梯转入爬行阶段。程序流程如图4所示。
(3) 楼层计数
当轿厢到达各楼层计数点时,楼层数加1或减1。为防止计数脉冲高电平期间反复计数,采用楼层计数信号上沿触发楼层计数。程序流程如图5所示。
(4) 平层
当高速计数器的计数值与平层点的计数脉冲相等时发出平层信号,电梯平层。平层程序流程如图6所示。

6 结束语

利用PLC控制交流变频调速电梯具有接线简单、编程直观、扩展容易、可靠性高等特点,且电梯运行平稳,舒适感好。可用于老式电梯的技术改造。
 摘 要 :该文介绍了交流变频调速电梯的工作过程、PLC控制系统的硬件和软件,着重分析了位置检测及其控制。

英文摘 要 :This paper introduces the working course of Alternating Current Frequency Converter Elevator,the hardware and the software of PLCcontrolling sysem. It stresses on the position measureing and controlling.

关键词: 电梯 , 变频器 , PLC , 硬件 , 软件


1 引言

随着城市建设的不断发展,高层建筑不断增多,电梯作为高层建筑中垂直升降的交通工具已和人们的日常生活密不可分,是机械电气相结合的机电一体化产品。电梯控制系统可分为调速部分和逻辑控制部分。调速部分的性能对电梯运行时乘客的舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。本设计采用PLC控制变频器调速系统,实现电流、速度、位移三闭环控制,具有一定的代表性和新颖性。

2 电梯控制系统硬件构成

电梯控制系统硬件由轿厢操纵盘、厅门信号、PLC、变频器调速系统构成,控制系统结构图如图1所示。图中变频器只完成调速功能,而逻辑控制部分是由PLC完成的。PLC负责处理各种信号的逻辑关系,从而向变频器发出起停信号,同时变频器也将本身的工作状态输送给PLC,形成双向联络关系。系统还配置了与电动机同轴连接的旋转编码器及PG卡,完成速度检测及反馈,形成速度闭环和位置闭环。此外系统还必须配置制动电阻,当电梯减速运行时,电动机处于再生发电状态,向变频器回馈电能,抑制直流电压升高。
本设计电梯为四层办公楼用的交流电梯,经过分析可知系统输入信号为26个,包括保护、工作状态选择、开/关门控制、位置检测、呼梯、速度控制等 。输出信号21个,包括开/关门、上行、下行、控制变频器信号、报警器、指示灯等。根据以上情况选择三菱FX2-64MR PLC。
变频器选用安川616G5 CIMR-G5A 4022通用变频器,技术特性为:可直接控制交流异步电动机的电流,使电动机保持较高的输出转矩;适用于各种应用场合,在低速下实现平稳起动并且极其精确的运行;它的自动调整功能可使各种电动机达到高性能的控制;它将U/f控制、矢量控制、闭环U/f控制、闭环矢量控制四种控制方式熔为一体,其中闭环矢量控制最适合电梯控制要求。
旋转编码器与主电动机同轴连接,通过PG卡(又名编码器连接板)对电动机测速和反馈电梯的位置 。选用OMRON公司的1024脉动增量式光电脉冲旋转编码器。旋转编码器与电动机同轴连接,产生A、B两相脉冲。当A相脉冲超前于B相脉冲90度时,认为电动机处于正转状态;当A相脉冲滞后于B相脉冲90度时,认为电动机处于反转状态。根据A、B相脉冲的相序,可判断电动机的转向。根据A、B脉冲的频率(或周期)可测得电动机的转速。若以A、B相脉冲的前沿或后沿产生计数脉冲,可以形成代表正向位移和反向位移的脉冲序列。旋转编码器将此脉冲输出给PG卡,PG卡再将此反馈信号送给变频器,以便进行运算调节。

3 电梯的工作过程

电梯一次完整的运行过程,就是曳引电动机从起动、匀速运行到减速停车的过程。PLC接收来自操作面板和呼梯盒的召唤信号、轿厢和门系统的功能信号以及井道和变频器的状态信号 ,经程序判断与运算后实现电梯的集选控制,PLC在输出显示和监控信号的同时向变频器发出运行方向、启动、加速、减速、运行和制动停梯信号。
曳引电动机正转(或反转)控制及高速控制信号有效时,电动机开始从0Hz到50Hz开始起动,起动时间在3S左右,然后维持50Hz的速度一直运行,完成起动及运行段的工作。当换速信号到来后,PLC撤消高速信号,同时输出爬行信号,此时爬行的输出频率为6Hz。从50Hz到6Hz的减速过程在3S之内完成,当达到6Hz速度时电梯停止减速,并以此速度爬行。当平层信号到来后,PLC撤消爬行信号,同时发出停梯信号,此时电动机从6Hz减速到0Hz,电梯停梯。正常情况下,在整个起动、运行、减速爬行段内,变频器的零速输出点一直是闭合的,减至0HZ之后,零速输出点断开,通过PLC抱闸及自动开门,电梯运行曲线如图2所示。
图2中运行曲线可通过变频器进行设置,也可通过配置运行曲线输入板。本系统采用变频器进行参数设置:令C1-01=3s,设置加速起动时间为3s;令C1-02=3s,设置减速时间为3s;令D1-02=50Hz,设置快车运行速度;D1-03=6Hz,设置爬行速度。

4 电梯运行中位置信号的检测

作为一种载人工具,在位势负载下,除要求安全可靠还必须运行平稳、乘坐舒适、停靠准确。采用变频器调速双闭环控制可基本满足要求。在不增加硬件电路的基础上,利用现有的旋转编码器在构成速度闭环的同时,也可构成位置闭环控制。
脉冲编码器的输出一般为A和A、B和B两对差动信号,可用于位置和速度测量,A和A、B和B四个方波被引入PG卡,经辨向和乘以倍率后,变成代表位移的测量脉冲,将其引入PLC高速计数端,进行位置控制。
本系统采用相对计数方式进行位置测量。运行前通过编程方式将各信号,如换速点位置、平层点位置、制动停车点位置等所对应的脉冲数,分别存入相应的内存单元,在电梯运行过程中,通过旋转编码器检测、软件实时计算以下信号:电梯所在层楼位置、换速点位置、平层点位置,从而进行楼层计数、发出换速信号和平层信号。
电梯运行中位移的计算如下:H=SI
式中S:脉冲当量 I:累计脉冲数 H:电梯位移
S=πλD/Pρ
D:曳引轮直径 ρ:PG卡的分频比 λ:减速器的减速比
P:旋转编码器每转对应的脉冲数
本系统中λ=1/32 D=580mm
Ned=1450r/min P=1024 ρ=1/18
代入S=πλD/Pρ 得S=1.00 mm/脉冲
设楼层的高度为4m,则各楼层平层点的脉冲数为:1楼为0;2楼为4000;3楼为8000;4楼为12000。
设换速点距楼层为1.6米,则各楼层换速点的脉冲数为:上升:1楼至2楼为2400,2楼至3楼为6400,3楼至4楼为10400;下降:4楼至3楼为9600,3楼至2楼为5600,2楼至1楼为1600。

5 软件设计

系统软件根据运行要求及保护要求共分为14个功能程序块:初始化、外呼、内选、自动开关电梯、平层、层楼计数及显示、超时基驶回基站、上行、下行、换速、开/关门、、报警、相序更正、优先服务等。根据电梯运行的要求,作出其运行流程的工作循环如图3所示。
电梯在有外呼信号或内选信号时,处于服务状态,当在一定的时间内没有服务信号时,电梯自动驶回基站,下面着重介绍程序初始化、换速、楼层计数及平层的程序设计及工作过程。
(1) 程序初始化:
将各楼层平层点对应的脉冲数及换速点对应的脉冲数写入数据寄存器(停电保持)。数据寄存器分配如下:
平层点:0→D200 4000→D201 8000→D202 12000→D203
换速点:2400→D204 6400→D205 10400 → D206
9600→D207 5600→D210 1600 → D211
(2) 换速
用PLC的高速计数器对PG卡的输出脉冲进行计数,当高速计数器的计数值与换速点对应的脉冲数相等时,且目的层有有效的选层信号或呼梯信号,则发出换速信号,电梯转入爬行阶段。程序流程如图4所示。
(3) 楼层计数
当轿厢到达各楼层计数点时,楼层数加1或减1。为防止计数脉冲高电平期间反复计数,采用楼层计数信号上沿触发楼层计数。程序流程如图5所示。
(4) 平层
当高速计数器的计数值与平层点的计数脉冲相等时发出平层信号,电梯平层。平层程序流程如图6所示。

6 结束语

利用PLC控制交流变频调速电梯具有接线简单、编程直观、扩展容易、可靠性高等特点,且电梯运行平稳,舒适感好。可用于老式电梯的技术改造。
 

2004-10-26 19:34:00 Visual_Li 阅读数 2031

众所周知,面向对象的程序设计更适合对现实生活中的描述,更加体现了软件的工业化的精神,所以现在大部分的软件开发工作都围绕OOP的思想来进行的。但是在对现实生活中的实际问题,如何对所研究的系统进行面向对象的分析与设计呢?本篇文章以一个实际的例子,向大家介绍一下如何对实际问题进行分析和设计。

  一.问题描述:

  该实例是一个电梯载客问题,问题的描述如下:

  某贸易中心共10层,设有载客电梯1部。为了处理问题的方便,有以下的限定条件:

  (1) 电梯的运行规则是:可到达每层。

  (2) 每部电梯的最大乘员量均为K人(K值可以根据仿真情况在10~20人之间确定)。

  (3) 仿真开始时,电梯随机地处于其符合运行规则的任意一层,为空梯。

  (4) 仿真开始后,有N人(>20人)在该国际贸易中心的1层,开始乘梯活动。

  (5) 每个人初次所要到达的楼层是随机的,开始在底层等待电梯到来。

  (6) 每个人乘坐电梯到达指定楼层后,再随机地去往另一楼层,依此类推,当每人乘坐过L次(L值可以根据仿真情况在3~10次之间确定)电梯后,第L+1次为下至底层并结束乘梯行为。到所有人结束乘梯行为时,本次仿真结束。

  (7) 电梯运行速度为S秒/层(S值可以根据仿真情况在1~5之间确定),每人上下时间为T秒(T值可以根据仿真情况在2~10之间确定)。

  (8) 电梯运行的方向由先发出请求者决定,不允许后发出请求者改变电梯的当前运行方向,除非是未被请求的空梯。

  最后开发的软件要求:

  (1) 设计一个易于理解的界面,动态显示各梯的载客与运行情况(上、下或停止),动态显示各楼层的人员停留情况与要求乘梯情况;动态显示从仿真开始到目前的时间。

  (2) 可变动的参数(K、N、M、L、S、T)应在程序开始时从对话框输入
  二.系统分析与设计:

  采用OOP分析的关键就是要对问题的对象空间的分类(类的分析与设计,这一点跟面向过程的流程图设计不太一样),也就是在整个系统中包括那几个类,每个类包含那些属性特征和行为特征。对于上面的电梯问题,很明显有两个类:即电梯类和乘客类(从所设计到的对象描述可以观察到,但是有的问题即使这一步也要仔细分析)。电梯类应该反映所有关于电梯状态和行为的信息,而乘客类也应该反映这些信息。综合上面问题的表述,现在将分析结果整理如下:
乘客类:

Cpassenger
{
bool bInLift; //是否在电梯里
bool bSignal; //发出请求标志
bool bStart; //仿真启动标志(false标志仿真结束)
Cstring flag; //标识每个人得序号以及需求层数
Int iAtFloor; //所在楼层
Int iToFloor; //要去得楼层
Int iLifts; //已经乘坐电梯得次数了
Int number; //乘客得序号
}


  电梯类:
Celevator
{
bool bStart; //仿真开始标志
int iAtFloor; //当前所处得层数得起点
int iToFloor; //即将去得层数
int iPassengers; //电梯里得人数
bool bStop; //电梯停止标志
bool bIsEmptyOperation; //电梯是否空载运行
CArray<CPassenger,CPassenger&> m_passengers; //存放载处于电梯里面得乘客
}

  这里说明一下,CArray<CPassenger,CPassenger&>是MFC里面的一个模板集合类,第一个参数表示该集合所存储的类别,第二个参数表示对该集合里面的元素所采取的访问方式,这里采用的是引用的访问方式,这种方式通过传递32位指针来进行访问,它同时兼有地址访问(效率高)和值传递的双重优势,现在一般对大的对象的存取一般提倡使用这种方式。

  另外,这里也引用了view类,定义如下:

class CLiftsimulationView : public CFormView
{
UINT m_nTimer;
int k;
int n;
int l;
int s;
int t;
int floor;
CPassenger m_passenger[100]; //最大为100个乘客
CElevator m_elevator; //一个电梯
int iSrcFloor,iDesFloor; //分别代表载客时得起始楼层和终结楼层,用在ontimer中
int iEmptySrcFloor,iEmptyDesFloor; //分别代表空载时得起始楼层和终结楼层,用在ontimer中
int itimes[41];
DWORD ElapseTime;
void DeleteColor(int src);
void DrawColor(int src,int increment);
};
  这里大致把各个对象的成员设定出来了,为了方便存储,将所有的变量定义为public的类型,这样可以提高存储的效率,当然了,它也破坏了OOP封装的思想,降低了对象与对象之间的隔离性。这里因为问题不是很复杂,所以我们采用前面的方法。至此,类设计基本结束了,当然了,很多时候不是一开始就可以把类设计得很好,往往都是要先设计一部分,然后在后面得问题得处理中,还要对原来设计的类结构进行添加和删除工作的。这里要特别注意的是类设计的最终目的是降低系统的耦合,达到程序逻辑与数据之间的分离,更有利于代码的编制和维护.
三.代码编制:

  前面已经完成了类设计,那么剩下来的就是应该是系统逻辑部分的实现了,对于系统整体来说,应该有一个事件侦测体系,用来对系统每个乘客和电梯的状态的侦测,以便发送或者修改必要的信息,该侦测体系的周期定为1秒钟(可以用定时器实现),然后用串行的方式来模拟并行的。如果把思路总结一下,应该是跟动画片的原理是一样的:将多个固定和静止的画面定时、按顺序地放映出来,就变成了活动的画面。所以,可以在程序中定义一个主循环,在该循环外进行必要的初始化,进入后每秒钟执行一次,以遍历方式一一激励当前已经产生的对象,由它们根据自己的当前状态和相关的状态变化规则,决定是否需要改变、改变成什么样的状态,以及按照上述行为特征的设计展示必要的对象状态。

  根据上面叙述的思想,下面列举主要列出"事件侦测体系"的代码:

  (应该在另外一个函数来触发次函数,即调用SetTimer(1,1000,NULL)即可)

void CLiftsimulationView::OnTimer(UINT nIDEvent) //主要在这里处理所有得逻辑
{ int i=1;
 int j=1;
 int a;
 int flag1=0;
 CString str1,str2;
 CString showtime,sen,m,h;
 DWORD dwTime;
 if (nIDEvent==1) //整个系统来驱动,这个是最小得时间单位
 {if (this->m_elevator.bStart =true) //电梯在仿真
  { //对所有乘客循环查询,类似于消息循环,这是电梯核心程序得入口
   for(i=1;i<=this->n;i++)
   {if (this->m_passenger[i].bInLift ==false && this->m_passenger[i].bStart ==true &&  this->m_elevator.bStop==true && this->m_elevator.bIsEmptyOperation==true)
    { //轮询各个乘客得请求
     //只有当电梯停止而且乘客在楼层上得时候,才能进行发信号
     if (this->m_passenger[i].bSignal ==true)
     {//初始化乘客 srand(::GetTickCount());
      a =rand()%10+1; //产生一个1到10得随机数
      this->m_passenger[i].iToFloor =a; //该乘客要去得层数
      if (a==this->m_passenger[i].iAtFloor) //楼层一样得话就放弃此次信号
       if (a ==10)
        this->m_passenger[i].iAtFloor=a-1;
       else
        this->m_passenger[i].iAtFloor=a+1;
        str1.Format("%d",this->m_passenger[i].iToFloor);
        str2.Format("%d",this->m_passenger[i].number );
        this->m_passenger[i].flag =str2+"--"+str1; this->m_passenger[i].bSignal =false;
        //关闭她得信号标志,给别得乘客一个机会
        this->m_passenger[i].bInLift=true; //进入电梯了(虚拟)
        //初始化电梯,为空载运行作准备
        this->m_elevator.iToFloor =this->m_passenger[i].iAtFloor;
        this->m_elevator.iPassengers =1;
        this->m_elevator.m_passengers.Add(this->m_passenger[i]);
        this->m_elevator.bStop =false; //表明电梯再运行 this->iEmptySrcFloor  =this->m_elevator.iAtFloor;
        this->iEmptyDesFloor =this->m_elevator.iToFloor ;       
        this->SetDlgItemText(IDC_STATIC18,(LPCTSTR)(str2+"--"+str1));
        //完成空载任务
        this->itimes[4]++;
        if (this->itimes[4]==1)
          SetTimer(4,2000,0); //电梯空载去接乘客
          break; //每次接一个
        }
       }
      }
     //判断是否结束仿真
     for(i=1;i<=this->n;i++)
     { if (this->m_passenger[i].bStart ==true)
       flag1=1; }
     if (flag1==0) //结束仿真
     { KillTimer(1);
      this->m_elevator.bStart =false;
      return;
     }
     //防止没有乘客发信号,系统进入死循环
     for(i=1;i<=this->n;i++)
     { if (this->m_passenger[i].bInLift ==false && this->m_elevator.bStop ==true && this->m_elevator.bStart ==true)
      { this->m_passenger[i].bSignal =true; //应该是随机
        break;
      }
      }
     }
    else {
      KillTimer(1); //如果电梯运行标志为false,则停止仿真
    }
    dwTime=::GetTickCount() -this->ElapseTime ;
    dwTime=dwTime/1000;
    sen.Format("%d",dwTime%60);
    h.Format("%d",dwTime/3600);
    m.Format("%d",(dwTime/60)%60);
    showtime=h+" : "+m+" : "+sen;
    this->SetDlgItemText(IDC_STATIC16,showtime);
   }
   else if (nIDEvent==4) //电梯空载运行(去接乘客)
   { if (this->iEmptySrcFloor ==this->iEmptyDesFloor ) //到达目的地了
    { if (this->iEmptySrcFloor !=1 && this->iEmptySrcFloor !=10 )
     {
      this->DrawColor(iEmptySrcFloor,1);
      this->DrawColor(iEmptySrcFloor,-1);
     }
     //因为到站了,所以要把电梯设置为接收信号状态
     this->m_elevator.bStop =true; //电梯不运行了
     this->m_elevator.bIsEmptyOperation =false; //为满载作准备
     this->m_elevator.iAtFloor =this->m_elevator.iToFloor ;
     this->m_elevator.iToFloor=this->m_elevator.m_passengers[0].iToFloor;
     KillTimer(4);
     this->itimes[4]=0;
     this->iSrcFloor =this->m_elevator.iAtFloor;
     this->iDesFloor =this->m_elevator.iToFloor ;
     this->m_elevator.bStop =false; //电梯启动
     this->itimes[2]++;
     if (this->itimes[2]==1)
      SetTimer(2,2000 ,0); //启动乘客上电梯 }
      if (iEmptySrcFloor <iEmptyDesFloor)
      { this->DrawColor(iEmptySrcFloor,1);
       iEmptySrcFloor++; }
      else {
       this->DrawColor(iEmptySrcFloor,-1);
       iEmptySrcFloor--;
       }
    }
    else if(nIDEvent==2) //电梯每隔3秒,电梯是载客运行,还有一种情况是无客运行
    {if (iSrcFloor <iDesFloor)
      { this->DrawColor(iSrcFloor,1);
       iSrcFloor++; }
    else if (iSrcFloor >iDesFloor)
    {
     this->DrawColor(iSrcFloor,-1);
     iSrcFloor--;
    }
    if (iSrcFloor ==iDesFloor) //到达目的地了
    { this->DrawColor(iSrcFloor,1);
     this->DrawColor(iSrcFloor,-1);
     //因为到站了,所以要把电梯设置为接收信号状态
     this->m_elevator.bStop =true;
     this->m_elevator.iAtFloor =this->m_elevator.iToFloor ;
     //进行卸载乘客得操作
     srand(::GetTickCount());
     a =rand()%10+1; //产生一个1到10得随机数
     this->m_elevator.m_passengers[0].iAtFloor =this->m_elevator.m_passengers[0].iToFloor ;
    this->m_elevator.m_passengers[0].iToFloor = a; //该乘客要去得层数
    this->m_elevator.m_passengers[0].iLifts++;
    if (this->m_elevator.m_passengers[0].iLifts ==this->l )
      this->m_elevator.m_passengers[0].bStart =false;
      this->m_elevator.m_passengers[0].bInLift =false; //电梯外面了
      this->m_elevator.m_passengers.RemoveAll();
      this->m_elevator.iPassengers --;
      //为下一次空载作准备
      this->m_elevator.bStop =true;
      this->m_elevator.bIsEmptyOperation =true;
      KillTimer(2);
      this->itimes[2]=0; } }
    CFormView::OnTimer(nIDEvent);
} 


  四.结论:

  至此,全部的设计过程完毕,上面所有代码已经在VC6.0+Win2000平台下调试成功。从上面的分析可以看出,实际上运用OOP的思想进行设计的时候,关键是类设计,类设计一定要通过对系统对象域的划分来进行,而关于类里面的具体成员就必须由系统各个部分的功能来进行确定了。总之,类设计不是一天两天的功夫,需要长期的实践才可能达到熟练的程度 。

2016-04-30 16:32:00 weixin_30666943 阅读数 14

电梯控制项目

 

一、  系统硬件接口定义

  整体系统硬件接口分为人机交互显示部分和自动控制部分。其中人机交互显示部分分为电梯口和电梯内两种环境;

  电梯口 = 上下行按钮K + 显示灯LED

  上行按钮Kup1~7:bool类型,按下激活表示1,否则表示0;

  下行按钮Kdown1~7:bool类型,按下激活表示2,否则表示0;

  显示灯LEDleft1~7:bool类型,左侧电梯上行(即将上行)表示1,下行表示0;

  显示灯LEDright1~7:bool类型,左侧电梯上行(即将上行)表示1,下行表示0;

 

  电梯内 = 楼层按钮B + 开关按钮按钮O/C + 报警

  左/右侧电梯楼层按钮BottonLeft1~7/ BottonRight1~7:bool类型,按下激活表示1,否则表示0;

  开关门按钮OpenLeft/OpenRight/CloseLeft/CloseRight:bool类型,按下激活表示1,否则表示0;开门按钮执行优先级高于关门按钮;

  报警按钮Pleft/Pright:bool类型,当电梯处于故障状态,电梯被困人员触发报警;

 

  自动控制部分包括PLC系统发给变频器的三个开关量信号(正转、反转、停止)、平层行程开关、开关门行程开关

  变频调速开关量:KA1(正转),KA2(反转),KA3(停止);

  平层行程开关TraveSwitch1~7:用于检测电梯轿厢是否到达该层,当PLC检测到某一层的行程开关后立即给变频器发出停止信号,可认为能够保证电梯准确停在该层。

  开/关门行程开关OpenSwitch/CloseSwitch:左右侧电梯各两个,用于检测电梯门是否已经正常开启或关闭。

二、  系统功能定义

  系统主要分为一下几个功能:人机交互功能、载运功能、安全保护功能。

  人机交互功能:对乘客发出的指令(按下某个按钮)做出正确响应;

  开关门逻辑:电梯轿厢在楼层停稳后延迟2秒钟打开电梯门,电梯门打开后延迟10秒后电梯门自动关闭,在此期间如有人按下关闭按钮则立即关闭电梯门。在电梯门关闭过程中如有人在外面按下与电梯运行方向一致的按钮或有人在轿厢内按下开门按钮,则电梯门再次打开,一旦电梯门关闭,则不再响应按钮。

 

  载运功能:在多个指令相互冲突的情况下,根据指令(中断)的优先级执行最高优先级的动作;在多用户同时发出指令的情况下,通过合理的调度算法,实现节约乘客平均等待时间和人均能耗;

  基本的调度策略:当电梯处于某种运行状态的情况下(比如上行),运行过程中出现相同的用户需求时(有用户按下上行按钮),电梯会将这个临时产生的需求加入到目标到达楼层(不止一个)中去;

 

  安全保护功能:在未到达楼层时(平层行程开关未被触发),门是无法被开启的(按钮触发无效);在电梯处于故障状态,乘客可自行触发报警按钮,将险情发送出去;有部分内容见上面开关门逻辑部分。

 

三、  软件功能模块分解和模块间接口定义

  软件主要分为一下功能模块:人机交互信号、电梯调度算法、电机驱动信号。

 

  人机交互模块主要向中央处理器传递按钮信号,处理器接受信号后结合电梯当前状态(位置和运行方向)运行调度算法确定电梯下一时刻的运动。由于电梯控制属于实时控制系统,对于运行过程中的随时可能出现信号进行及时调整调度方案。电梯调度算法输出信号传入PLC处理器中,PLC将信号转换后驱动电机工作。

 

转载于:https://www.cnblogs.com/zjzero/p/5448921.html

没有更多推荐了,返回首页