电梯控制程序JAVA

电梯控制程序JAVA
电梯控制程序JAVA

package test;

import org.eclipse.swt.SWT;

import org.eclipse.swt.events.MouseEvent;

import org.eclipse.swt.events.MouseListener;

import org.eclipse.swt.events.SelectionEvent;

import org.eclipse.swt.events.SelectionListener;

import org.eclipse.swt.graphics.GC;

import org.eclipse.swt.graphics.Image;

import https://www.360docs.net/doc/f61760431.html,yout.*;

import org.eclipse.swt.widgets.*;

import com.swtdesigner.SWTResourceManager;

class ButtonAction implements SelectionListener {

protected Display display;

protected Shell shell;

ElevatorComposite ele;

int delay;

public ButtonAction(Display display, Shell shell, ElevatorComposite ele) { this.display = display;

this.shell = shell;

this.ele = ele;

this.delay = 200; // 线程休眠毫秒

}

public void widgetDefaultSelected(SelectionEvent arg0) {

// TODO 自动生成方法存根

System.out.println("default");

}

public void widgetSelected(SelectionEvent se) {

// TODO 自动生成方法存根

final Image imageUp = new Image(display, "H:/elevator/res/up.gif");

final Image imageDown = new Image(display, "H:/elevator/res/down.gif");

final Image image[] = new Image[ele.N];

for(int i=0;i

image[i] = new Image(display, "H:/elevator/res/"+(i+1)+".gif");

}

System.out.println("111goal:" + ele.goalFloor + " current:"

+ ele.currentFloor);

System.out.println("needup:" + ele.needUpNum);

System.out.println("priorup:" + ele.priorUp + " priordown:"

+ ele.priorDown);

System.out.println();

// 是楼层的“上”按钮被按下时:

for (int i = 0; i < ele.N; i++) {

if (se.getSource().equals(ele.buttonUp[i])) {

if (ele.up[i] == true)

return; // 如果按钮已经被按过,不再向下执行

ele.up[i] = true;

ele.buttonUp[i].setImage(imageUp);

ele.buttonUp[i].setText("");

// 当电梯停在中间楼层:

if (ele.priorUp == false && ele.priorDown == false) {

if (ele.currentFloor < i + 1) {

ele.priorUp = true;

ele.needUpNum++;

ele.goalFloor = i + 1;

UpAction(ele.goalFloor);

} else if (ele.currentFloor > i + 1) {

ele.priorDown = true;

ele.needDownNum++;

ele.goalFloor = i + 1;

System.out.println("here");

DownAction(ele.goalFloor);

} else{

ele.up[ele.currentFloor - 1] = false;

ele.buttonUp[ele.currentFloor - 1].setImage(null);

ele.buttonUp[ele.currentFloor - 1].setText("上");

ele.floorButton[ele.currentFloor - 1].setImage(null);

ele.floorButton[ele.currentFloor - 1].setText(""+ele.currentFloor);

openDoor();

}

}

// 电梯正在运动中时:

else {

if (ele.priorUp == true) {

// 按下楼层在目标楼层与当前楼层之间时:

if (ele.goalFloor > i + 1 && ele.currentFloor < i + 1) {

ele.needUpNum++;

ele.goalFloor = i + 1;

}

if (ele.goalFloor < 0) { // 初始时目标楼层为负

ele.needUpNum++;

ele.goalFloor = i + 1;

}

// 按下楼层>目标楼层:

else if (ele.goalFloor < i + 1)

ele.needUpNum++;

// 按下楼层<当前楼层:

if (ele.currentFloor > i + 1)

ele.needDownNum++;

UpAction(ele.goalFloor);

}

if (ele.priorDown == true) {

// 按下楼层在目标楼层与当前楼层之间时:

if (ele.goalFloor < i + 1 && ele.currentFloor > i + 1)

ele.needUpNum++;

// 按下楼层<目标楼层:

if (ele.goalFloor < i + 1)

ele.needDownNum++;

// 按下楼层>当前楼层:

if (ele.currentFloor > i + 1)

ele.needUpNum++;

DownAction(ele.goalFloor);

}

}

}

}

// 是楼层的“下”按钮被按下时:

for (int i = 0; i < ele.N; i++) {

if (se.getSource().equals(ele.buttonDown[i])) {

if (ele.down[i] == true)

return; // 如果按钮已经被按过,不再向下执行ele.down[i] = true;

ele.buttonDown[i].setImage(imageDown);

ele.buttonDown[i].setText("");

// 当电梯停在中间楼层:

if (ele.priorUp == false && ele.priorDown == false) {

if (ele.currentFloor < i + 1) {

ele.priorUp = true;

ele.needUpNum++;

ele.goalFloor = i + 1;

UpAction(ele.goalFloor);

} else if (ele.currentFloor > i + 1) {

ele.priorDown = true;

ele.needDownNum++;

ele.goalFloor = i + 1;

DownAction(ele.goalFloor);

} else{

ele.down[ele.currentFloor - 1] = false;

ele.buttonDown[ele.currentFloor - 1].setImage(null);

ele.buttonDown[ele.currentFloor - 1].setText("下");

ele.floorButton[ele.currentFloor - 1].setImage(null);

ele.floorButton[ele.currentFloor - 1].setText(""+ele.currentFloor);

openDoor();

}

}

// 电梯正在运动中时:

else {

if (ele.priorDown == true) {

// 按下楼层在目标楼层与当前楼层之间时:

if (ele.goalFloor > i + 1 && ele.currentFloor < i + 1) {

ele.needDownNum++;

ele.goalFloor = i + 1;

}

// 按下楼层<目标楼层:

if (ele.goalFloor > i + 1)

ele.needDownNum++;

// 按下楼层>当前楼层:

if (ele.currentFloor < i + 1)

ele.needUpNum++;

DownAction(ele.goalFloor);

}

if (ele.priorUp == true) {

// 按下楼层在目标楼层与当前楼层之间时:

if (ele.goalFloor > i + 1 && ele.currentFloor < i + 1)

ele.needDownNum++;

// 按下楼层>目标楼层:

if (ele.goalFloor < i + 1 || ele.goalFloor < 0) {

ele.needUpNum++;

ele.goalFloor = i + 1;

}

// 按下楼层>当前楼层:

if (ele.currentFloor > i + 1)

ele.needDownNum++;

UpAction(ele.goalFloor);

}

}

}

}

// 是电梯内部的“几”楼按钮被按下时:

for (int i = 0; i < ele.N; i++) {

if (se.getSource().equals(ele.floorButton[i])) {

if (ele.pressedFloor[i] == true)

return; // 如果按钮已经被按过,不再向下执行

ele.pressedFloor[i] = true;

ele.floorButton[i].setImage(image[i]);

ele.floorButton[i].setText("");

// 当电梯停在中间楼层:

if (ele.priorUp == false && ele.priorDown == false) {

if (ele.currentFloor < i + 1) {

ele.priorUp = true;

ele.needUpNum++;

ele.goalFloor = i + 1;

UpAction(ele.goalFloor);

} else if (ele.currentFloor > i + 1) {

ele.priorDown = true;

ele.needDownNum++;

ele.goalFloor = i + 1;

DownAction(ele.goalFloor);

} else{

ele.pressedFloor[ele.currentFloor - 1] = false;

ele.floorButton[ele.currentFloor - 1].setImage(null);

ele.floorButton[ele.currentFloor - 1].setText(""+ele.currentFloor);

openDoor();

}

}

// 电梯正在运动中时:

else {

if (ele.priorDown == true) {

// 按下楼层在目标楼层与当前楼层之间,且电梯外部相应楼层的"下"没有按时:

if (ele.goalFloor > i + 1 && ele.currentFloor < i + 1

&& ele.down[i] == false) {

ele.down[i] = true;

ele.needDownNum++;

ele.goalFloor = i + 1;

}

// 按下楼层<目标楼层,且电梯外部相应楼层的"下"没有按时:

if (ele.goalFloor > i + 1 && ele.down[i] == false)// 相当于按下相应楼层的“下”按钮

{

ele.down[i] = true;

ele.needDownNum++;

}

// 按下楼层>当前楼层,且电梯外部相应楼层的"下"没有按时:

if (ele.currentFloor < i + 1 && ele.down[i] == false) {

ele.up[i] = true;

ele.needUpNum++;

}

DownAction(ele.goalFloor);

}

if (ele.priorUp == true) {

// 按下楼层在目标楼层与当前楼层之间,且电梯外部相应楼层的"上"没有按时:

if (ele.goalFloor > i + 1 && ele.currentFloor < i + 1

&& ele.up[i] == false) {

ele.up[i] = true;

ele.needUpNum++;

ele.goalFloor = i + 1;

}

// 按下楼层>目标楼层,且电梯外部相应楼层的"上"没有按时:

if (ele.goalFloor < i + 1 && ele.down[i] == false) {

ele.up[i] = true;

ele.needUpNum++;

}

// 按下楼层>当前楼层:

if (ele.currentFloor > i + 1) {

ele.down[i] = true;

ele.needDownNum++;

}

UpAction(ele.goalFloor);

}

}

}

}

// 是电梯门的“开”按钮被按下时

if (se.getSource().equals(ele.OpenButton) && ele.floorState == 0) {

openDoor();

}

if (se.getSource().equals(ele.CloseButton) && ele.floorState == 0

&& ele.isDoorOpen == true) {

closeDoor();

}

}

private void closeDoor() {

// TODO 自动生成方法存根

if (ele.floorState == 0 && ele.isDoorOpen == true) {

if (!display.isDisposed()) {

try {

display.syncExec(new Runnable() {

public void run() {

// 关门的动画

for (int i = 0; i < 11; i++) {

ele.canvasLD.update();

ele.canvasLD.redraw();

ele.canvasLDgc.drawRectangle(-1, 0,

ele.canvasLD.getClientArea().width / 2

/ 10 * i, ele.canvasLD

.getClientArea().height - 1);

ele.canvasLDgc.drawRectangle(ele.canvasLD

.getClientArea().width

- ele.canvasLD.getClientArea().width

/ 2 / 10 * i, 0, ele.canvasLD

.getClientArea().width

/ 2 / 10 * i - 1, ele.canvasLD

.getClientArea().height - 1);

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

}

ele.isDoorOpen = false; // 将门的状态赋值为“关”

try {

Thread.sleep(1500);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

}

});

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

private void openDoor() {

// TODO 自动生成方法存根

System.out.println("isDooropen:" + ele.isDoorOpen + " state:"

+ ele.floorState);

if (ele.floorState == 0) { // 在停止的时候才能开门

if (!display.isDisposed()) {

try {

display.syncExec(new Runnable() {

public void run() {

// 开门的动画

ele.isDoorOpen = true; // 将门的状态赋值为“开”

for (int i = 0; i < 11; i++) {

ele.canvasLD.update();

ele.canvasLD.redraw();

ele.canvasLDgc

.drawRectangle(

-1,

0,

ele.canvasLD.getClientArea().width

/ 2

- ele.canvasLD

.getClientArea().width

/ 2 / 10 * i,

ele.canvasLD.getClientArea().height -

1);

ele.canvasLDgc

.drawRectangle(

ele.canvasLD.getClientArea().width

/ 2

+ ele.canvasLD

.getClientArea().width

/ 2 / 10 * i,

0,

ele.canvasLD.getClientArea().width / 2 - 1,

ele.canvasLD.getClientArea().height - 1);

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

}

// 开门之后必然关门:

try {

Thread.sleep(1500); // 稍微等等

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

closeDoor();

}

});

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

// 让电梯上升动画效果

public void UpAction(int goalFloor) {

System.out.println("u222goal:" + ele.goalFloor + " current:"

+ ele.currentFloor);

System.out.println("needup:" + ele.needUpNum);

System.out.println("priorup:" + ele.priorUp + " priordown:"

+ ele.priorDown);

System.out.println();

while (ele.isDoorOpen == false && ele.needUpNum > 0) {

if (!display.isDisposed()) {

try {

display.syncExec(new Runnable() {

public void run() {

ele.floorState = 1; // 上升前设置电梯状态为上升

int height = ele.canvasLU.getClientArea().height - 10;

for (int i = 1; i <= 5; i++) { // 循环5次,相当于上一层。

ele.canvasLU.update();

ele.canvasLU.redraw();

ele.canvasLUgc.drawRectangle(0, height

- ele.currentFloor * height / ele.N

- height / ele.N / 5 * i, ele.canvasLU

.getClientArea().width - 1, height

/ ele.N);

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

}

// 稍微停顿一下:

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

ele.floorState = 0;// 电梯停止

ele.currentFloor++;

if (ele.goalFloor == ele.currentFloor) {

ele.up[ele.currentFloor - 1] = false;// 到了此楼层

ele.pressedFloor[ele.currentFloor - 1] = false;

ele.buttonUp[ele.currentFloor - 1].setImage(null);

ele.buttonUp[ele.currentFloor - 1].setText("上");

ele.floorButton[ele.currentFloor - 1].setImage(null);

ele.floorButton[ele.currentFloor -

1].setText(""+ele.currentFloor);

if (--ele.needUpNum > 0) {// 如果还有需要上升的楼层

for (int i = ele.currentFloor; i < ele.N; i++) {

if (ele.up[i] == true) {

ele.goalFloor = i;

break;

}

}

} else {

ele.buttonDown[ele.currentFloor - 1].setImage(null);

ele.buttonDown[ele.currentFloor - 1].setText("下");

ele.priorUp = false;

}

openDoor(); // 开门

}

System.out.println("333goal:" + ele.goalFloor

+ " current:" + ele.currentFloor);

System.out.println("needup:" + ele.needUpNum);

System.out.println("priorup:" + ele.priorUp

+ " priordown:" + ele.priorDown);

System.out.println();

}

});

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

// 让电梯下降动画效果

public void DownAction(int goalFloor) {

System.out.println("d222goal:" + ele.goalFloor + " current:"

+ ele.currentFloor);

System.out.println("needdown:" + ele.needDownNum);

System.out.println("priorup:" + ele.priorUp + " priordown:"

+ ele.priorDown);

System.out.println();

while (ele.isDoorOpen == false && ele.needDownNum > 0) {

if (!display.isDisposed()) {

try {

display.syncExec(new Runnable() {

public void run() {

ele.floorState = -1; // 上升前设置电梯状态为下降

for (int i = 0; i < 5; i++) { // 循环5次,相当于下一层。

ele.canvasLU.update();

ele.canvasLU.redraw();

ele.canvasLUgc.drawRectangle(0, ele.canvasLU

.getClientArea().height

- ele.currentFloor

* ele.canvasLU.getClientArea().height

/ ele.N + ele.N * i, ele.canvasLU

.getClientArea().width - 1,

ele.canvasLU.getClientArea().height

/ ele.N - 1);

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

}

// 稍微停顿一下:

try {

Thread.sleep(400);

} catch (InterruptedException e) {

// TODO 自动生成catch 块

e.printStackTrace();

}

ele.floorState = 0;// 电梯停止

ele.currentFloor--;

if (ele.goalFloor == ele.currentFloor) {

ele.down[ele.currentFloor - 1] = false;// 到了此楼层

ele.pressedFloor[ele.currentFloor - 1] = false;

ele.buttonDown[ele.currentFloor - 1].setImage(null);

ele.buttonDown[ele.currentFloor - 1].setText("下");

ele.floorButton[ele.currentFloor - 1].setImage(null);

ele.floorButton[ele.currentFloor - 1].setText(""+ele.currentFloor);

if (--ele.needDownNum > 0) {// 如果还有需要下降的楼

for (int i = ele.currentFloor - 2; i >= 0; i--) {

if (ele.down[i] == true) {

ele.goalFloor = i + 1;

break;

}

}

} else {

ele.buttonUp[ele.currentFloor - 1].setImage(null);

ele.buttonUp[ele.currentFloor - 1].setText("上");

ele.priorDown = false;

}

openDoor(); // 开门

}

System.out.println("333goal:" + ele.goalFloor

+ " current:" + ele.currentFloor);

System.out.println("needDown:" + ele.needDownNum);

System.out.println("priorup:" + ele.priorUp

+ " priordown:" + ele.priorDown);

System.out.println();

}

});

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

电梯控制电路设计

- 电子技术课程设计 成绩评定表 设计课题:电梯控制电路设计 学院名称: 专业班级: 学生: 学号: 指导教师: 设计地点:31-225 设计时间:2014-7-7~2014-7-14

电子技术 课程设计 课程设计名称:电梯控制电路设计 专业班级: 学生姓名: 学号: 指导教师: 课程设计地点: 课程设计时间:2014-7-7~2014-7-14 电子技术课程设计任务书

目录

一.课程设计目的 (5) 二.课程设计的容及要求 (5) 2.1课程设计容 (5) 2.2课程设计要求 (5) 三.正文部分 (7) 3.1按键控制模块................................................................................................... (7) 3.1.1目标楼层号按钮编码电路................................................. (7) 3.1.2比较制动电 路........................................................................................... (10) 3.1.3与逻辑起动控 制........................................................................................... .. .11 3.2数码管显示模块 (12) 3.2.1显示译码器组成电路如下 (12) 3.2.2 CD4510(可逆计数器)组成电路 (16) 3.3脉冲发生器模块 (17) 3.3.1、0.2S脉冲发生器 (17) 3.3.2、6S脉冲发生器 (18) 3.4、LED滚动显示模块 (19)

层电梯西门子PLC控制程序实例

四层电梯西门子PLC控制程序实例四层电梯西门子PLC控制程序实例 以 下为STL NETWORK 1 //以下是电梯向上运行控制 // //NETWORK COMMENTS // LD O O O O O O O A = NETWORK 2 //NETWORK TITLE (single line) // //NETWORK COMMENTS // LD O O O O A A

NETWORK 3 LD O A A = NETWORK 4 LD O O = NETWORK 5 //以下是电梯向下运行控制 // //NETWORK COMMENTS // LD O O O O O O O A = NETWORK 6 //NETWORK TITLE (single line) // //NETWORK COMMENTS // LD O O O O A

= NETWORK 7 LD O A A = NETWORK 8 LD O O = DI点: 一层请求上楼; 二层请求上楼; 三层请求上楼; 二层请求下楼; 三层请求下楼; 四层请求下楼; 厢体到达一层; 厢体到达二层; 厢体到达三层; 厢体到达四层; 电梯内呼一层; 电梯内呼二层; 电梯内呼三层; 电梯内呼四层; 开厢门按钮; 关厢门按钮; 厢门开到位; 厢门关到位; DO点: 厢体向上运行; 厢体向下运行; 厢体停;

开厢门; 关厢门; 当前厢体在一层; 当前厢体在二层; 当前厢体在三层; 当前厢体在四层; 补充: 电梯在一层时停止指令; 电梯在二层时停止指令; 电梯在三层时停止指令; 电梯在四层时停止指令。

电梯控制系统分析工作原理

0引言 一种以电动机为动力的垂直升降机,装有箱状吊舱,用于多层建筑乘人或载运货物。也有台阶式,踏步板装在履带上连续运行,俗称自动电梯。服务于规定楼层的固定式升降设备。它具有一个轿厢,运行在至少两列垂直的或倾斜角小于15°的刚性导轨之间。轿厢尺寸与结构形式便于乘客出入或装卸货物。 1电梯系统工作原理 电梯的安全保护装置用于电梯的启停控制;轿厢操作盘用于轿厢门的关闭、轿厢需要到达的楼层等的控制;厅外呼叫的主要作用就是当有人员进行呼叫时,电梯能够准确达到呼叫位置;指层器用于显示电梯达到的具体位置;拖动控制用于控制电梯的起停、加速、减速等功能;门机控制主要用于控制当电梯达到一定位置后,电梯门应该能够自动打开,或者门外有乘电梯人员要求乘梯时,电梯门应该能够自动打开。 电梯控制系统结构图如图1—1所示:

电梯信号控制基本由PLC软件实现。输入到PLC的控制信号有运行方式选择(如自动、有司机、检修、消防运行方式等)、运行控制、轿内指令、层站召唤、安全保护信号、开关门及限位信号、门区与平层信号等。 电梯信号控制系统如图1—2所示:

2 继电器控制系统 电梯继电器控制系统就是最早的一种实现电梯控制的方法。但就是,进入九十年代,随着科学技术的发展与计算机技术的广泛应用,人们对电梯的安全性、可靠性的要求越来越高,继电器控制的弱点就越来越明显。 电梯继电器控制系统存在很多的问题:系统触点繁多、接线线路复杂,且触点容易烧坏磨损,造成接触不良,因而故障率较高;普通控制电器及硬件接线方法难以实现较复杂的控制功能,使系统的控制功能不易增加,技术水平难以提高;电磁机构及触点动作速度比较慢,机械与电磁惯性大,系统控制精度难以提高;系统结构庞大,能耗较高,机械动作噪音大;由于线路复杂,易出现故障,因而保养维修工作量大,费用高,而且检查故障困难,费时费工。电梯继电器控制系统故障率高,大大降

单片机课程设计之电梯控制系统

微控综合系统课程设计报告 专 班 姓 学 2016 年 12 月 23 日

摘要 本文介绍了一种采用STC15F2K60S2芯片进行电梯控制系统的设计方法,主要阐述如何使用单片机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。硬件部分主要由单片机的最小模块、电梯内外按钮控制模块、数码管显示楼层模块、发光二极管显示目的楼层模块、报警显示模块组成。软件部分使用kiel软件进行C语言程序编写,用proteus软件进行仿真调试。本设计具有电梯控制系统所需的一些基本功能,能通过方向按键选择方向,能通过数字按键选择楼层,数码管显示实时楼层数,电动机控制部分采用直流电机及H桥驱动电路,使电梯箱能上下运动。硬件设计简单可靠,结合软件,基本实现了五层电梯运行的模拟仿真。 关键词:STC15F2K60S2芯片;电梯控制系统;C语言 Abstract This paper describes the use of a STC15F2K60S2 chip for elevator control system design methods, mainly elaborates how to use microcontroller programming method to realize electronic design, realize the function of the use of single-chip programming, concise and changing the design method shortens the development cycle, at the same time the elevator control system smaller and more powerful. The hardware part is composed of the smallest module of the microcontroller, the internal and external button control module, the digital control display module, the light emitting diode display module and the alarm module. The software part uses the Kiel software to carry on the C language programming, uses the Proteus Software to carry on the simulation debugging. Some of the basic functions of the design of the elevator control system required, canchoose direction key direction through the number keys to select the floor, real-time digital display of the number of floors, the motor control part adopts DC motor and H bridge driving circuit, the elevator box can move up and down. The hardware design is simple and reliable, combined with the software, the basic realization of the five elevator operation simulation. Key words: STC15F2K60S2 chip; elevator control system; C language. 1.引言 随着现代高科技的发展,住房和办公用楼都已经逐渐向高层发展。电梯是高层宾馆、商店、住宅、多层仓库等高层建筑不可缺少的垂直方向的交通运输工具。因此电梯在我们的生活中起着举足轻重的作用。电梯已不仅是一种生产环节中的重要设备,更是一种人们频繁乘用的交通运输设备。由于传统的电梯运行逻辑控制系统采用的是继电器逻辑控制线路。采用这种控制线路,存在易出故障、维护不便、运行寿命较短、占用空间大等缺点。从技术发展来看,这种系统将逐渐被

基于单片机的电梯控制系统

基于单片机的电梯控制系统

————————————————————————————————作者:————————————————————————————————日期:

1 课题概述 1.1课题的主要研究内容及设计步骤 本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有: 1、根据系统的技术要求,进行系统硬件的总体方案设计; 2、学习单片机的相关知识,并且加以运用; 3、选择恰当的芯片,并对其内部协议有所掌握,便于应用。 4、研究C语言编程,并且规定电梯的工作规则,用C语言加以实现; 5、对软件和硬件进行调试,让其协调工作,完成指定任务。 结合以上内容,本课题的设计方案步骤如下: 关于硬件部分: 首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。接着,要完成电路图的设计,画出PCB板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。 关于软件部分: 关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用C语言将规定程序化,以便电梯真正的运作。 当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。 1.2课题的开发环境简介 1.2.1电路图制作软件proteus 7.2 Proteus是目前最好的模拟单片机外围器件的工具,因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 1.2.2C51的程序开发软件Keil

三层电梯控制电路(word文档良心出品)

三层电梯控制电路设计 .设计要求 每层电梯入口处设有上下请求开关, 电梯内设有顾客到达层次的停站请 设有电梯入口处位置指示装置及电梯运行模式 (上升或下降)指示装置。 电梯 每秒升(降)一层楼。 电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开 门4秒 后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请 求信号后停留 在当前层。 5. 能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请 求信号保 留至执行后消除。 6. 电梯运行规则一当电梯处于上升模式时, 楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕; 下楼请求,则相反。 7. 电梯初始状态为一层开门状态。 二. 设计目的 电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用 来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性 电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯 控制 器实现的基础。 三. 控制器的设计方案. 控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状 态显示 器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层, 通过主控 制器的处理,电梯开始运行,状态显示器显示电梯的运行状态, 电梯所在楼层数 通过译码器译码从而在楼层显示器中显示。 分控制器把有效的请求传给主控制器 进行处理,同时显示电梯的运行状态和电梯所在楼层数。 由于分控制器相对简单 很多,所以主控制器是核心部分。 1. 求开 关。 2. 3. 4. 只响应比电梯所在位置高的上 如果咼层有 VHDL 语言 ,通过对三层 图1.电梯控制器原理图

三层电梯控制程序设计

三层电梯控制程序设计 1.三层电梯控制分析 三层电梯控制输入、输出均为开关量,按控制逻辑TA + =) (表达式, Y? QA Y 分析QA进入条件、TA退出条件,可直接逐条进行逻辑控制设计。 到三层,由行程开关3LS停止; 这一条逻辑控制中的输出为上升,其进入条件为3AX呼叫,且电梯停在一层或二层,用1LS、2LS表示停的位置,因此,进入条件可以表 示为: LS? AX + LS ? X + = X 11 12 4 ( ) 3 2 1(X ) 退出条件为3LS动作,因此逻辑输出方程为: LS AX LS LS X Y? Y + X = + ? + = + ) 12 [( X 4 13 ]1 3 11 [( ]1 Y 1 1X 2 3) (2)当电梯停于三层或二层时,如果按1AS按钮呼叫,则电梯下降到一层,由行程开关1LS停止; 此条逻辑控制中输出为下降,其进入条件为: LS AS LS? X X + = + ? 13 ) 2(X 12 1 ( ) 3 1 退出条件为1LS动作,逻辑输出方程为: LS AS LS LS X Y? Y + X = + ? + = + 2X 13 X [( ) 1 11 ]2 1 12 [( Y 2 3 1) ]2 (3)当电梯停于一层时,如果按2AS按钮呼叫,则电梯上升到二层,由行程开关2LS停止; 此条逻辑控制中输出为上升,其进入条件为: LS? = ? AS 11 2 2 1X X 退出条件为2LS动作,逻辑输出方程为: Y? + AS Y LS ? ? = + X = ? LS 11 ( 2 )1 12 2 )1 Y 1X 1( 2 X (4)当电梯停于三层时,如果按2AX按钮呼叫,则电梯下降到二层,由行程开关2LS停止; 此条逻辑控制中输出为下降,其进入条件为: LS? ? AX = 3X 3 X 13 2 退出条件为2LS动作,逻辑输出方程为:

基于单片机的智能电梯控制系统设计

基于单片机的智能电梯控制系统设计

摘要 本文介绍了一种采用单片机STC89C52芯片进行电梯控制系统的设计方法,主要阐述如何使用单片机进行编程来实现四层电梯的智能控制,利用单片机编程简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。本设计实现了电梯控制系统所需的一些基本功能,能通过电梯内按键或者电梯外上升、下降按键选择楼层,数码管显示实时楼层数,LED显示实时电梯运行状态。原理图和PCB部分采用protel99se专业软件来设计,实现将设计产品化。本次设计更注重了把一些新的思路加入到设计中。主要包括采用了STC89C52芯片,使用C语言进行编程,使其具有了更强的移植性,更加利于产品升级。 关键词:STC89C52;电梯控制系统;protel99se;C语言

Abstract This paper introduces a design method of using STC89C52 chip for elevator control system, mainly describes how to use microcontroller programming to achieve the intelligent four storey elevator control, the design method of microcontroller programming simple and variable, shortens the development cycle, at the same time that the elevator control system smaller and more powerful. Some of the basic functions of the design and implementation of elevator control system required by the elevator, elevator buttons or rise, decline the key to select the floor, digital tube display real-time number of floors, LED display real-time operating state of elevator. Schematic and PCB design using Protel99SE software, the design of products. This design pays more attention to some new ideas into the design. Including the use of the STC89C52 chip, the use of C language programming, which has portability stronger, more conducive to the upgrading of products. Keywords: STC89C52; elevator control system; Protel99SE; C language

数电课程设计 电梯控制系统

湖南工程学院 课程设计 课程名称数字电子技术 课题名称简易电梯控制系统 专业自动化 班级1081 学号201013110111 姓名罗超超 指导教师龚志鹏 2012年11月23日湖南工程学院

课程设计任务书课程名称:数字电子技术 题目:简易电梯控制系统 专业班级:自动化1081 学生姓名:罗超超学号:11 指导老师:龚志鹏 审批: 任务书下达日期2012年11月19日星期一设计完成日期2012年11月23日星期五

设计内容与设计要求 一.设计内容: 1、显示方式:以LED数码管形式显示0-3; 2、主要功能:一共有四层楼,楼层标记用0-3表示,假 设每次只有有一层楼有呼叫,按下呼叫按钮后,呼叫楼层指示灯亮,电梯将从当前楼层运行到呼叫楼层,指示灯熄灭; 3、超重报警:挡电梯超重时,报警灯亮,电梯拒绝运行; 4、系统复位:系统能手动复位,复位后,电梯停在第○ 层; 5、其他功能(任选) 二、设计要求: 1、思路清晰,给出整体设计框图和总电路图; 2、单元电路设计,给出具体设计思路和电路; 3、写出设计报告;

主要设计条件 1.提供调试用实验室; 2.提供调试用实验箱和电路所需元件及芯片;3.所用设备及元件需在设计后归还。 说明书格式 1.课程设计封面; 2.任务书; 3.说明书目录; 4.设计总体思路,基本原理和框图(总电路图);5.单元电路设计(各单元电路图); 6.安装、调试步骤; 7.故障分析与电路改进; 8.总结与体会; 9.附录(元器件清单); 10.参考文献; 11.课程设计成绩评分表; 12.设计报告采用16k纸打印;

进度安排 第三周: 星期一:课题内容介绍和查找资料; 星期二~星期五:总体电路设计和分电路设计,电路仿真,修改方案; 第四周: 星期一~星期二:电路设计,电路仿真,修改方案 星期三: 安装、调试电路; 星期四: 验收电路,整理实验室及其它事情,写设计报告,打印相关图纸; 星期五:答辩; 参考文献 1、《电子系统设计》 高等教育出版社马建国主编 2、《电子线路设计、实验、测试》(第二版) 华中理工大学出版社谢自美主编 3、《新型集成电路的应用》---------电子技术基础课程设计 华中理工大学出版社梁宗善主编

PLC控制电梯程序

可编程控制器控制电梯系统的设计 [摘要]: 随着微电子技术和计算机技术的迅速发展,PLC(即可编程控制器)在工业控制领域内得到十分广泛地应用。PLC是一种基于数字计算机技术、专为在工业环境下应用而设计的电子控制装置,它采用可编程序的存储器,用来存储用户指令,通过数字或模拟的输入/输出,完成一系列逻辑、顺序、定时、记数、运算等确定的功能,来控制各种类型的机电一体化设备和生产过程。 [关键词]: 可编程控制器自动控制计算机技术电梯 PLC AUTOMATIVE CONTROL COMPUTER TECNOLOGY ELEV ATOR 目录

前言PLC控制电梯的意义 (3) 第一章概述 (4) 1.1 PLC的由来 (4) 1.2 PLC的分类与特点 (5) 1.3 PLC的应用领域与发展趋势 ..............................5. 1.4 PLC的结构和工作原理 .. (5) 1.5 PLC程序的表达方式 (6) 1.6 PLC的工作方式 (6) 1.7 PLC应用系统的设计步骤 (6) 1.8 研究目标 (9) 第二章 PLC控制电梯的设计 (9) 2.1 工艺要求 (9) 2.2 方案与控制流程 (10) 2.3 梯形图设计与程序指令 (11) 2.4 说明部分 (20) 第三章讨论 (22) 参考文献 (23) 编后语 (24) 附图1 (25) 前言

———PLC控制电梯的意义 电梯是随着高层建筑的兴建而发展起来的一种垂直运输工具。多层厂房和多层仓库需要有货梯;高层住宅需要有住宅梯;百货大楼和宾馆需要有客梯,自动扶梯……。在现代社会,电梯已像汽车、轮船一样,成为人类不可缺少的交通运输工具。据统计,美国每天乘电梯的人次多于乘载其它交通工具的人数。当今世界,电梯的使用量已成为衡量现代化程度的标志之一。追溯电梯这种升降设备的历史,据说它起源于公元前236年的古希腊。当时有个叫阿基米德的人设计出-----人力驱动的卷筒式卷扬机。1858年以蒸汽机为动力的客梯,在美国出现,继而有在英国出现水压梯。1889年美国的奥梯斯电梯公司首先使用电动机作为电梯动力,这才出现名副其实的电梯,并使电梯趋于实用化。1900年还出现了第一台自动扶梯。1949年出现了群控电梯,首批4~6台群控电梯在纽约的联合国大厦被使用。1955年出现了小型计算机(真空管)控制电梯。1962年美国出现了速度达8米/秒的超高速电梯。1963年一些先进工业国只成了无触点半导体逻辑控制电梯。1967年可控硅应用于电梯,使电梯的拖动系统筒化,性能提高。1971年集成电路被应用于电梯。第二年又出现了数控电梯。1976年微处理机开始用于电梯,使电梯的电气控制进入了一个新的发展时期。 如今,出现了PLC控制电梯。PLC控制电梯有如下的特点:1,可靠性高,由于采取了一系类的PLC高可靠性的措施,PLC的平均无故障时间(MTBF)一般可达3~5万小时。而且PLC的环境适应性也很强,它能在工业环境下可靠地工作;2,编程简单,PLC最常用的编程语言是梯形图语言。这种编程语言形象直观,容易掌握,不需要专门的计算机知识,便于广大现场工程技术人员掌握。当工作流程需要改变时,可以现场改变程序,使用方便、灵活;3,体积小、结构紧凑、安装、维修方便。PLC 的体积小,重量轻,便于安装。一般PLC都具有自诊断、故障报警、故障种类显示等功能,便于操作和维修人员检查,可以较容易通过更换模块插件来迅速排除故障。PLC 的结构紧凑,它与被控对象的硬件连接方式简单、接线少,便于维护。

电梯控制流程图

广东工程职业技术学院200-200学年度第学期《》期末考试试题 页脚内容1 4.4流程图 电梯上下行流程图见图4-4。假设电梯停在N (N=1,2,3,4)楼,M 楼有信号,M >N 时,电梯上行;M <N 时,电梯下行。 图4-4电梯上下行流程图 在电梯运行过程中,电梯上升(或下降)途中,任何反方向下降(或上升)的外呼梯信号均不响应,但如果反向外呼梯信号前方向无其它内、外呼梯信号时,则电梯响应该外号。 电梯应具有最远反向外梯响应功能。例如:电梯在一楼,而同时有二层向下外呼梯,三层向下外呼梯,四层向下外呼梯,则电梯先去四楼响应四层向下外呼梯信号。 电梯响应流程图见图4-5。 图4-5电梯响应流程图 当电梯到达系统控制的目标楼层时,控制系统发出开门信号,电梯门开,当门开到开门限位时,计时3秒钟,然后关门,直到关门限位产生信号。此过程期间,按开门按钮电梯门打开,按关门电梯门关闭,并且当门关闭动作时,门间来人会使光电传感器产生信号,控制系统发出开门信号,电梯开关门流程图见图4-6。 图4-6电梯开关门流程图 4.5操作原理简要说明 电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯轿箱内设有楼层内选按钮S1~S4,用以选择需停靠的楼层。L1为一层指示、L2为二层指示、L3为三层指示、L4为四层指示,SQ1~SQ4为到位行程开关。具体如下: 1、开始时,电梯处于任意一层。 2、当有外呼梯信号到来时,电梯响应该呼梯信号,到达该楼层时,电梯停止运行,电梯门打开,延时3S 后自动关门。 3、当有内呼梯信号到来时,电梯响应该呼梯信号,到达该楼层时,电梯停止运行,电梯门打开,延时3S 后自动关门。 4、在电梯运行过程中,电梯上升(或下降)途中,任何反方向下降(或上升)的外呼梯信号均不响应,但如果反向外呼梯信号前方向无其它内、外呼梯信号时,则电梯响应该外号。 5、电梯应具有最远反向外梯响应功能。例如:电梯在一楼,而同时有二层向下外呼梯,三层向下外呼梯,四层向下外呼梯,则电梯先去四楼响应四层向下外呼梯信号。 6、电梯未平层或运行时,开门按钮和关门按钮均不起作用。平层且电梯停止运行后,按开门按钮电梯门打开,按关门电梯门关闭。

PLC电梯控制系统的设计

河南工业职业技术学院 毕业设计 题目 PLC电梯控制系统的设计系院电气工程系 专业 班级 学生姓名 学号 指导教师

前言 随着电子技术的发展,当前数字电器系统的设计正朝着速度快、容量大、体积小、重量轻的方向发展。推动该潮流发展的引擎就是日趋进步和完善的PLC设计技术。目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能的要求,自上而下的完成相应的描述、综合、优化、仿真与验证,直接生成器件。上述设计过程除了系统行为和功能描述以外,其余所有的设计几乎都可以用计算机来自动完成,也就说做到了电器设计自动化这样做可以大大的缩短系统的设计周期,以适应当今品种多、批量小的电子市场的需求。 电器设计自动化的关键技术之一是要求用形式化的方法来描述数字系统的硬件电路,即要用所谓的硬件语言来描述硬件电路。所谓硬件描述语言及相关的仿真、综合等技术的研究是当今电器设计自动化领域的一个重要课题。 PLC的设计和开发,已经有多种类型和款式。传统的PLC各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步分析处理,传统PLC是无法完成的。然而基于PC 通信的PLC,既可以完成测量数据的传递,又可借助PC,做测量数据的处理。所以这种类型的PLC无论在功能和实际应用上,都具有传统PLC无法比拟的特点,这使得它的开发和应用具有良好的前景。

目录 1.前言 2.电梯控制基本概念 3.电梯控制的组成 4.电梯控制的移动 5.电梯PLC系统的模拟组态 6.货运电梯重量超载的控制 7.总结 8.参考文献

2. PLC电梯控制的基本概念 电梯控制系统可分为电力拖动系统和电气控制系统两个主要部分。电力拖动系统主要包括电梯垂直方向主拖动电路和轿箱开关电路。二者均采用易于控制的直流电动机作为拖动动力源。主拖动电路采用PWM调试方式,达到了无级调速的目的。而开关门电路上电机仅需一种速度进行运动。电气控制系统则由众多呼叫按钮、传感器、控制用继电器、指示灯、LED七段数码管和控制部分的核心器件(PLD)等组成。PLC集信号采集、信号输出及逻辑控制于一体,与电梯电力拖动系统一起实现了电梯控制的所有功能。 电梯控制系统原理框图如图1所示,主要由轿箱内指令电路、门厅呼叫电路、主拖动电机电路、开关门电路、档层显示电路、按钮记忆灯电路、楼层检测与平层检测传感器及PLC电路等组成的。 电梯控制系统的硬件结构如图2所示。包括按钮编码输入电路、楼层传感器检测电路、发光二极管记忆灯电路、PWM控制直流电机无线调速电路、轿箱开关电路、楼层显示电路及一些其他辅助电路等。为减少PLC输入输出点数,采用编码的方式将31个呼叫及指层按钮编码五位二进制码输入PLC PLC系统的其它设备 1 编程设备:编程器是PLC开发应用、监测运行、检查维护不可缺少的器件,用于编程、对系统作一些设定、监控PLC及PLC 所控制的系统的工作状况,但它不直接参与现场控制运行。小编程器PLC一般有手持型编程器,目前一般由计算机(运行编程软件)充当编程器。 2 人机界面:最简单的人机界面是指示灯和按钮,目前液晶屏(或触摸屏)式的一体式操作员终端应用越来越广泛,由计算机(运行组态软件)充当人机界面非常普及。 3 输入输出设备:用于永久性地存储用户数据,如EPROM、EEPROM写入器、条码阅读器,输入模拟量的电位器,打印机等。

电梯控制程序源代码(带流程图-功能分解、源代码)

《综合电子创新训练》研究报告研究题目:CTS1600-1控制技术综合试验 院系名称: 专业名称: 学生姓名: 指导教师: xxxx年 xx月 xx日 xxxxxxxxxx

目录 第一章绪论 (1) 1.1课题背景与目的 (1) 1.2课题研究方法 (1) 第二章电梯模型硬件设备 (2) 2.1 实验单片机模型与接口定义 (2) 2.1.1 实验用单片机 (2) 2.1.2 单片机接口定义 (3) 2.1.3 I/O接口DATA控制命令表 (4) 2.2 电梯控制命令说明 (6) 2.3 实验用电梯模型 (8) 第三章与电梯模型相关的实验程序 (10) 3.1数码管连续显示 (10) 3.1.1 程序流程图 (10) 3.1.2 功能简介 (10) 3.1.3 功能实现过程 (11) 3.1.4 问题的解决及收获 (11) 3.2 外部按键灯连续闪烁 (12) 3.2.1 程序流程图 (12) 3.2.2 功能简介 (12) 3.2.3 功能实现过程 (12) 3.2.4 问题的解决及收获 (13) 3.3 键、灯、数码管 (14)

3.3.2 功能简介 (14) 3.3.3 功能实现过程 (14) 3.3.4 问题的解决及收获 (15) 3.4 外部按键上下行 (16) 3.4.1 程序流程图 (16) 3.4.2 功能简介 (16) 3.4.3 功能实现过程 (17) 3.4.4 问题的解决及收获 (18) 3.5 计算器 (19) 3.5.1 程序流程图 (19) 3.5.2 功能简介 (21) 3.5.3 功能实现过程 (21) 3.5.4 问题的解决及收获 (22) 3.6 密码锁 (23) 3.6.1程序流程图 (23) 3.6.2功能简介 (23) 3.6.3实现功能过程 (24) 3.6.4问题的解决及收获 (24) 3.7逐层停自动开关门循环 (25) 3.7.1程序流程图 (25) 3.7.2功能简介 (27) 3.7.3实现功能过程 (27) 3.7.4问题的解决及收获 (27) 3.8 可记录顺序逐层停自动开关门 (28)

PLC电梯控制系统

组态软件在PLC电梯控制系统中的应用的文献综述 :王娟 专业:电气064 【关键词】电梯可编程控制器PLC 组态软件 前言: 在现代社会和经济活动中,计算机技术、自动控制技术和电力电子技术得到了迅速的发展,电梯已经成为城市物质文明的一种标志。特别是在高层建筑中,电梯是不可缺少的垂直运输设备。随着高层建筑飞速发展的今天,电梯行业也随之进入了新的发展时期,电梯控制技术已经发展到了调频调压调速,其逻辑控制也由PLC代替原来的继电器控制,其许多功能是传统的继电器控制系统无法实现的。

第一章 PLC 电梯组态软件简介 1.1 PLC的定义 可编程控制器,简称PLC(Programmable logicController),是指以计算机技术为基础的新型工业控制装置,是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的。PLC由于采用现代大规模集成电路技术,采用严格的生产工艺制造,部电路采取了先进的抗干扰技术,具有很高的可靠性[1]。 1.2 S7-200的特点 S7-200系列出色表现在几个方面:极高的可靠性极丰富的指 令集易于掌握便捷的操作丰富的置集成功能实时特性 强劲的通讯能力丰富的扩展模块 1.3 S7-200,CPU 224 本机集成14输入/10输出共24个数字量I/O点。可连接7个扩展模块,最大扩展至168路数字量I/O点或35路模拟量I/O 点。13K字节程序和数据存储空间。6个独立的30kHz高速计数器,2路独立的20kHz高速脉冲输出,具有PID控制器。1个RS485通讯/编程口,具有PPI通讯协议、MPI 通讯协议和自由方式通讯能力。I/O端子排可很容易地整体拆卸。是具有较强控制能力的控制器。 在本次设计中,鉴于CPU224有如此多的优点,以及学校实验室里PLC 采用CPU224。所以本次设计PLC采用西门子的S7—200,CPU224。

电梯运行控制程序

电梯运行控制程序 1 目的 对电梯的运行实施严格的控制,在保障电梯正常稳定运行的前提下,延长电梯的使用寿命,保证业主或相关方的人身安全。 2 适用范围 适用于对电梯运行所涉及的所有操作程序、维修养护、安全规程和紧急预案等过程,以及对操作人员的要求进行控制。 3 职责 3.1 项目部经理负责维保单位的选择,协调电梯故障排除,并向受影响的业主或相关方做好解释工作。 3.2工程部经理负责与维保厂家联系维护保养。 3.3电梯维修工负责电梯的日常维护保养、巡检和故障排除工作。 4 程序 4.1电梯分布区域:A、B座客梯、货梯。 4.2电梯运行 4.2.1做好宣传工作,必要时在电梯内张贴公告,如《乘梯须知》、《电梯安全管理规定》等。 4.2.2当手动运行时,司梯工按《电梯运行管理规定》、《电梯操作规程》运行电梯。 4.2.3自动运行时,由乘客自行操作,实行24小时运行。 4.2.4电梯维修工每日按照《每日电梯巡检项目》对电梯的运行进行巡视检查,填写《电梯日巡视记录》。巡检中发现的问题或接到电梯故障报修,现场处理故障原因,填写《设备故障登记表》。 4.3电梯维护保养 4.3.1电梯工日常维护保养工作,按照《电梯保养周期表》、《电梯运行检查一览表》、《电梯维修养护管理规程》对电梯进行维修养护。 4.3.2定期维护保养 4.3.2.1定期配合厂家对电梯进行维保。遇大中修,工程部经理负责与维保厂家联系,督促并协助其进行定期维修保养。 4.3.2.2维护保养结束后,运行前电梯维修工需对电梯各部位进行检查,具体操作按照《电梯操作规程》的规定进行。 4.4电梯设备档案保管。对电梯设备台帐及日巡视、维修登记、半月保养记录等进行妥善存档保管,并按规定进行销毁。

plc控制四层电梯及控制系统程序

plc控制四层电梯及控制系统程序 要求:(1)开始时,电梯处于任意一层。 (2)当有外呼电梯信号到来是,轿厢响应该呼梯信号,达到该楼层时,轿厢停止运行,(轿厢门打开,延时3秒后自动关门) (3)当有内呼电梯信号到来是,轿厢响应该呼梯信号,达到该楼层时,轿厢停止运行,(轿厢门打开,延时3秒后自动关门) (4)在电梯轿厢运行过程中,即轿厢上升(或下降)途中,任何反方向下降(或上升)的外呼信号均不响应,但如果反方向外呼梯信号前方再无其他内、外呼梯信号时,则电梯响应该外呼梯信号。例如,电梯轿厢在一楼,将要运行到三楼,在次过程中可以响应二层向上的外呼梯信号,但不响应二层向下的外呼梯信号。当到达三层,如果四层没有任何呼梯信号,则电梯可以响应三层向下外呼梯信号。否则,电梯将继续运行至四楼,然后向下运行响应三层向下外呼梯信号。 (5)电梯具有最远反向外呼梯功能。例如,电梯轿厢在一楼,而同时有二层向下呼梯,三层向下呼梯,四层向下外呼梯,则电梯轿厢先去四楼响应四层向下外呼梯信号。 (6)电梯未平层或运行时,开门按钮和关门按钮均不起作用。平层且电梯轿厢停止运行后,按开门按钮轿厢开门,按关门按钮轿厢关门。 1、对系统要求进行分析,制作点号表: 输入点:电梯外呼 第一层有“上”按钮一个;I0.0 一层请求上楼; 第二层有“上”、“下”按钮各一个;I0.1 二层请求上楼;I0.3 二层请求下楼;

第三层有“上”、“下”按钮各一个;I0.2 三层请求上楼;I0.4 三层请求下楼; 第四层有“下”按钮一个;I0.5 四层请求下楼; 电梯内呼 内呼信号四个;I1.2 电梯内呼一层;I1.3 电梯内呼二层;I1.4 电梯内呼三层;I1.5 电梯内呼四层; 开关厢门按钮两个;I1.6 开厢门按钮;I1.7 关厢门按钮; 厢门“开到位”、“关到位”信号共两个;I2.0 厢门开到位;I2.1 厢门关到位; 一层到位信号:I0.6 厢体到达一层; 二层到位信号:I0.7 厢体到达二层; 三层到位信号:I1.0 厢体到达三层; 四层到位信号:I1.1 厢体到达四层; 输出点:厢体的“上”、“下”、“停”指令;Q0.0 厢体向上运行;Q0.1 厢体向下运行;Q0.2 厢体停; 厢体当前位置输出四个点; Q0.5 当前厢体在一层; Q0.6 当前厢体在二层; Q0.7 当前厢体在三层; Q1.0 当前厢体在四层;

三菱FX2N PLC四层电梯运行控制程序设计

输入与输出点分配 表17-2。 表17-2输入与输出点分配表 2、PLC接线图 按照I/O点的分配和项目描述的控制要求,设计PLC的接线图如图17-2所示。因为考虑余量,选择PLC为FX2N-48MR。 3、程序设计 图17-3所示为电梯控制的参考程序。根据工艺分析设计控制程序。其控制要求如下。 (1)当电梯的轿厢停于第一层或第二层或第三层时,按第四层上升按钮,则轿厢上升至第四层后停; (2)当电梯的轿厢停于第四层或第三层或第二层时,按第一层下降按钮,则轿厢下降至第一层后停; (3)当轿厢停在第一层,若按第二层呼梯按钮,则轿厢上升至第二层平层开关闭合后停,若再按第三层呼梯按钮则继续上升至第三层平层开关闭合; (4)当轿厢停在第四层,若按第三层呼梯按钮,则轿厢下降至第三层平层开关闭合后停,若再按第二层呼梯按钮则继续上升至第二层平层开关闭合; (5)当轿厢停在第一层,若第二层、第三层、第四层均有呼梯信号,则轿厢上升至第二层暂停后,继续上升至第三层,在第三层暂停后,继续上升至第四层; (6)当轿厢停在第四层,若第三层、第二层、第一层均有呼梯信号,则轿厢下降至第三层暂停后,继续下降至第二层,在第二层暂停后,继续下降至第一层; (7)轿厢在楼梯间运行时间超过12s,即电梯任一层楼的时间若超过12s电梯停止运行;

(8)当轿厢上升(或下降)途中,任何反方向下降(或上升)的按钮呼梯均无效,但记忆。 呼楼指示、记忆条件是有呼楼信号,且电梯没有在呼叫层。 电梯上升控制条件分别为第四层呼而电梯在第三层;或者电梯在第二层,在第四层或第三层呼梯;或电梯在第一层,在第四层、第三层或第二层呼梯。同时必须电梯没有处于下降状态且时间定时器没有到时。 电梯下降控制与上升控制原理相同。 4、运行并调试程序 (1)将梯形图程序输入到计算机。 (2)下载程序到PLC,并对程序进行调试运行。观察电梯能否按照控制要求运行。注意平层开关当电梯运行到时闭合,一旦电梯离开,开关断开。 (3)调试运行并记录调试结果。 5、编程练习 按照以下控制要求编制四层楼电梯控制程序,上机调试程序并运行。 (1)电梯启动后,轿厢在一楼。若第一层有呼梯信号,则开门; (2)运行过程中可记忆并响应其他信号,内选优先。当呼梯信号大于当前楼层时上升,呼楼信号小于当前楼层时下降; (3)到达呼叫楼层,平层后,门开(停2s),消除记忆。当前楼层呼梯时可延时(2s)关门; (4)开门期间,可进行多层呼楼选择,若呼叫信号来自当前楼层上下两侧,且距离相等,则记忆并保持原运动方向,到达呼叫楼层后再反向运行,响应呼梯; (5)若呼叫信号来自当前楼层两侧,且距离不等,则记忆并选择距离短的楼层先响应; (6)若无呼楼信号,则轿厢停在当前楼层;

(完整版)基于单片机的电梯控制系统方案

1 课题概述 1.1 课题的主要研究内容及设计步骤 本课题的主要任务是完成一个电梯系统的调度模块,即根据每个楼层不同顾客的按键需求,让电梯做出合理的判断,正确高效地知道电梯完成各项载客任务。根据此任务,本课题需要研究的内容有: 1、根据系统的技术要求,进行系统硬件的总体方案设计; 2、学习单片机的相关知识,并且加以运用; 3、选择恰当的芯片,并对其内部协议有所掌握,便于应用。 4、研究C语言编程,并且规定电梯的工作规则,用C语言加以实现; 5、对软件和硬件进行调试,让其协调工作,完成指定任务。 结合以上内容,本课题的设计方案步骤如下: 关于硬件部分: 首先,对实际的电梯系统进行模拟,一般情况下,一个电梯应该具备相关按键、显示二极管、数码管等,由于这是一个调度模块,故没有设计具体的轿厢等机械部分。然后,结合这些实物,选择恰当的芯片,并分成若干模块,安排好各自之间的关系。接着,要完成电路图的设计,画出PCB板,焊接相关器件后进行硬件调试,看是否好用并加以适当的更正。 关于软件部分: 关于电梯调度时所遵循的原则作出规定,其必须基于高效与人性化两个原则。最后是使用C语言将规定程序化,以便电梯真正的运作。 当然,二者的关系并不是分离的,它们是相辅相成,硬件依据软件来验证,软件依据硬件来调试。经过一个个的发现问题、一个个的解决问题,最终做出完美的电梯调度模块。 1.2课题的开发环境简介 1.2.1 电路图制作软件proteus 7.2 Proteus是目前最好的模拟单片机外围器件的工具,因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 1.2.2 C51的程序开发软件Keil

相关文档
最新文档