电梯模拟系统代码

合集下载

(辽宁富士电梯)系统故障代码及说明

(辽宁富士电梯)系统故障代码及说明

(辽宁富士电梯)系统故障代码表详细故障代码分析电梯门机故障。

ER0 电梯门机故障。

现象1:开门或关门限位失效,门不开关;现象2:门机无电或门机控制开关动作引起门不动;现象3:无开关门指令ER02:门联锁在电梯运行过程中断开。

现象1:运行过程中,门刀与门轮冲撞把门锁断开。

现象2:如FU16 设置为ON 时,系统判断门锁是否闭合与关门限位信号有关。

如FU16 设为ON 时,关门限位不可靠也会造成ER03 保护。

现象3:主板检测门锁信号使用了两路检测,为触点输入,X4 X23 为门锁回路电压检测,如门锁回路电压不够高,标准要求是AC110V,如低于AC100V 时,高压输入不稳定也会造成报ER02 的故障。

现象4:ER02 故障发生在顶层,曳引机为同步,同步曳引机的抱闸动作延迟时间过长时,容易造成电梯冲上极限,出现该现象时,急停故障前有02 故障发生。

(正常到顶层停车时,系统下闸后,使能方向会保持设定的时间,brake off time 使电梯闸没闭合稳时,变频器仍有力矩输出。

如门锁意外断开,门锁触点把变频器使能切断,造成滑车极限。

现象5:变频门机由于开关门的信号从控制柜直接引线从随行电缆下到轿顶。

如干扰过大时会在运行过程中,门机控制器错误接收到开门指令,误开门造成ER02 故障,出现该情况时,可以在轿顶上安装开关门继电器,控制柜先在关门信号驱动轿顶开关门继电器,再由继电器的触点控制门机控制器开关门。

该方法能有效防止开关门信号干扰造成门机误动作。

ER03:变频器故障。

现象1:变频器故障,根据故障代码确定故障原因。

现象2:某些变频器由于上电时间过长,超过了系统的上电等待时间,系统报变频器故障,该情况可以不用处理,变频器上电完成后系统将自动恢复。

现象3:如果变频器产生过流保护,而其保护前同一时间内有ER02 或ER10 等保护,一般都是由于前面的保护立即停车造成的,系统其他保护恢复后将自动恢复。

ER04:主板检测到的运行方向与给定的运行方向相反。

51单片机模拟智能电梯系统代码及注释

51单片机模拟智能电梯系统代码及注释

#include<>#define uint unsigned int#define uchar unsigned char〃延时程序,以毫秒为单位,用软件计时,输入的参数为毫秒数void Delay_ms( uint Time);〃电梯向上走void Up();I〃电梯向下走void Down();〃报警函数void Warnning();〃获取目的楼层void Destination();//显示某一楼层void Display( uchar n, uchar a);//闪烁显示到达的楼层void Flash( uchar a);//点阵键盘扫描uchar KBScan();//延时void dl_ms();//解析出按键所代表的楼层uchar Reprsent();#include ""uchar code TAB[16]= (0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71);sbit P0_0 = P0A0;sbit P0_1 = P0A1;sbit P0_2 = P0A2;sbit P0_3 = P0A3;sbit P0_4 = P0A4;sbit P0_5 = P0A5;sbit P0_6 = P0A6;s bit P0_7 = P0A7;sbit P1_0 = P1A0;uchar lift = 1;〃电梯所在的楼层uchar destination1 = 1;〃电梯的目的楼层uchar flag = 0;〃进入电梯程序的标志uchar key;〃按键的键码uchar request[] = {0, 0, 0, 0, 0, 0, 0, 0, 0);//1-8 楼有无请求,有请求为 1uchar status = 1;//电梯往上还是往下走,1为上,0为下//报警的响声的频率产生void Timer1() interrupt 3 { P1_0=-P1_0;TH1 = 0xfc;TL1 = 0x0c;) int main(){'uchar i;P0 = 0xff;P2 = 0x76; //数码管‘H’EA = 1; //开启外部中断INT0EX0 = 1;IT0 = 1;while(1) //检查flag 标志{ //flag初始化为0if(flag == 1) 〃在中断中将其置1break;P1 = 0x01; 〃数码管跑马显示HDelay_ms( 100); //flag置1后则进入电梯程序for(i = 0; i < 5; ++i) (P1 = P1 << 1;Delay_ms( 100);) 一)while(1) 〃电梯程序的循环(if( (key = KBscan()) == 0x77) 〃若点阵按键右下角的按键(其代码为0x77)按下(Warnning(); 〃则报警) else (Destination(); 〃查询有无楼层请求到达if( destination1 >= lift) 〃请求的楼层比要到达的楼层高(Up(); 〃电梯向上走) else (〃否则电梯向下走;Down();)))return 0;)〃中断请求,将flag置1,表示要进入电梯程序void Int0() interrupt 0(flag = 1;)〃延时程序,以毫秒为单位,用软件计时,输入的参数void Delay_ms( uint Time)( 一uint i = 0, j = 0;for(i = 0; i < Time; ++i) (for(j = 0; j < 125; ++j);〃电梯向上走void Up() (uchar n, m; //n为所在楼层,m 为存储查询有无楼层请求的变量( uchar i;〃循环控制status = 1;〃置1表示电梯向上走for( n = lift; n <= destination1; ++n) 〃电梯到达目的楼层之前往上走(Display( n, 1); //没到达一楼就显示该楼层数lift = n;m = Represent(); if( m == 9) (Warnning();) else (request[m] = 1;)for(i = 1; i <= 8; ++i)〃若请求到达的楼层在所在楼层和目的楼层之间{〃则停下闪烁显示if( request[i] == 1 && i == n) //并将其对应的 request 清零{request[i] = 0; Flash( 1); ))) --n; lift = n;( Flash( 1);〃到达目的楼层闪烁显示该楼层)//电梯向下走void Down() {uchar n, m; //n为所在楼层,m 为存储查询有无楼层请求的变量uchar i;//循环控制//读取点阵键盘//报警键按下则报警〃有楼层请求到达〃将对应的request 置1for(i = 1; i <= 8; ++i)〃若请求到达的楼层在所在楼层和目的楼层之间{〃则停下闪烁显示if( request[i] == 1 && i == n) //并将其对应的 request 清零{request[i] = 0; Flash( 0);))) ++n; lift = n; Flash( 0);〃到达目的楼层闪烁显示该楼层)〃报警函数void Warnning() {TMOD = 0x10; //T1定时器初始化ET1 = 1; TH1 = 0xfc; TL1 = 0x0c; TR1 = 1; while(1) {P1=0x04; P2=0x07; Delay_ms( 5); P1=0x08; P2 = 0x3f; Delay_ms( 5); P1=0x10;status = 0;〃置1表示电梯向上走for( n = lift; n >= destinationl; --n) 〃电梯到达目的楼层之前往下走(Display( n, 0);楼层数lift = n;m = Represent(); if( m == 9) (Warnning();) else%(request[m] = 1;)//没到达一楼就显示该〃读取点阵键盘//报警键按下则报警〃有楼层请求到达〃将对应的request 置1P1=0x02; P2 = 0x6D; Delay_ms( 5); //显示STOPP2=0x73;Delay_ms( 5);if( KBScan() != 0x77) 〃报警键没有按{ 〃则跳出,并停止喇叭响break;) ))¥〃获取目的楼层void Destination() {uchar j, n; 〃j循环控制变量,n存储度点阵键盘变量n = Represent(); 〃有键按下request[n] = 1; 〃其对应的楼层request 置 1if( status == 1) 〃若电梯向上走则从高楼层到低楼层扫描〃以此达到判断优先级的目的!{for(j = 8; j >= 1; --j) {if( request[j] == 1){request[j] = 0; 〃哪一层有请求destination1 = j; 〃则将目的楼层设为该楼break; 〃并将其对应的request置1,然后跳出)),)else if( status == 0) 〃若电梯向下走则从低楼层到高楼层扫描{ 〃以此达到判断优先级的目的for(j = 1; j <= 8; ++j){if( request[j] == 1){request[j] = 0;destination1 = j; break;))〃显示某一楼层void Display( uchar n, uchar a)( uchar i, b;" 一一if(a == 1)( b=0x73;)else if(a == 0)( b = 0x5E;)for(i = 0; i < 60; ++i)P1=0x20;P2 = b;Delay_ms( 10);P1 = 0x02;P2 = TAB[n];Delay_ms( 10);//闪烁显示到达的楼层void Flash( uchar a) (uchar i, j, b;uchar m;if(a == 1) //a=1 表示向上(b = 0x73; //七段码P)表示向下/ else if(a == 0) //a=0(b = 0x5E; //七段码 d) for(i = 0; i < 5; ++i) {m = Represent(); 〃闪烁时判断有无楼层请求到达 request[m] = 1; for(j = 0; j < 15; ++j) 〃闪烁显示楼层和P 或者d(P1=0x20; P2 = b; Delay_ms( 10); P1 = 0x02; P2 = TAB[lift];Delay_ms( 10);)一for(j = 0; j < 15; ++j) (P1 = 0x20; P2 = b; Delay_ms( 10); P1 = 0x02; P2 = 0x00;Delay_ms( 10);}一)}》#include ""〃延时void dl_ms()( 一uchar i;for(i = 0; i < 200; ++i);〃点阵键盘扫描uchar KBScan() (uchar sccode, recode; //sccode 低位,recode 高位uchar i, a; //i循环控制,a 读取P0 口P0 = 0x0f;if( (P0 & 0x0f) != 0x0f) //有无键按下(dl_ms();〃消抖延时 if( (P0 & 0x0f) != 0x0f)〃有键按下则继续recode = 0x7f; for(i = 1; i <= 4; ++i) (〃先显示P 或者d 以及楼层数〃再显示P 或者d 而不显示楼层数〃以此达到闪烁的目的P0 = recode; 〃从P0的最高位开始扫描,即点阵键盘第四行if( (P0 & 0x0f) != 0x0f)# {a = P0; 〃若该行有键按下,则返回其代码sccode = a & 0x0f;recode = recode & 0xf0;return (sccode + recode);)else{recode = (recode >> 1) | 0x80; //若没有则扫描其上面一行))))return 0; )//解析出按键所代表的楼层uchar Represent(){uchar key, n;key = KBScan();switch( key){case 0xee: n = 1; break; case 0xed: n = 2; break; case 0xeb: n = 3; break; case 0xe7: n = 4; break; case 0xde: n = 5; break; case0xdd: n = 6; break; case 0xdb: n = 7; break; case 0xd7: n = 8; break; case 0x77: n = 9; break; default: n = 0; break;)return n; )。

电梯模拟c语言课程设计

电梯模拟c语言课程设计

电梯模拟c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言的基本语法,包括变量定义、数据类型、运算符和表达式。

2. 使学生了解电梯运行原理,运用C语言实现电梯的模拟控制。

3. 帮助学生掌握程序流程控制,包括顺序结构、分支结构和循环结构。

技能目标:1. 培养学生运用C语言编写程序的能力,实现电梯的楼层显示、上下行控制等功能。

2. 提高学生分析问题、解决问题的能力,通过编程解决电梯运行中的实际问题。

3. 培养学生团队合作精神,共同完成课程设计任务。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,提高学习积极性。

2. 培养学生严谨、细致的学习态度,养成良好的编程习惯。

3. 增强学生对电梯等现代交通工具的原理认识,提高科技创新意识。

本课程针对高中年级学生,结合C语言课程内容,以电梯模拟为载体,使学生将所学知识应用于实际场景。

课程注重培养学生的编程能力和实际问题解决能力,同时注重团队合作和情感态度的培养,使学生在知识、技能和情感态度价值观方面取得全面发展。

通过本课程的学习,学生将能够独立完成电梯模拟程序的设计与实现,为后续学习打下坚实基础。

二、教学内容1. C语言基础回顾:变量定义、数据类型、运算符和表达式。

2. 程序流程控制:顺序结构、分支结构(if语句、switch语句)、循环结构(for循环、while循环)。

3. 电梯运行原理:电梯的基本结构、运行模式、楼层显示、上下行控制。

4. 函数与模块化编程:函数定义、调用、参数传递;模块化编程思想。

5. 数组与字符串:一维数组、二维数组;字符串的基本操作。

6. 指针与动态内存分配:指针的概念、使用方法;动态内存分配函数。

7. 结构体与文件操作:结构体的定义、使用;文件读写操作。

教学内容安排和进度:1. 第一周:C语言基础回顾,程序流程控制。

2. 第二周:电梯运行原理,函数与模块化编程。

3. 第三周:数组与字符串,指针与动态内存分配。

4. 第四周:结构体与文件操作,综合实践。

通力电梯超全错误代码

通力电梯超全错误代码

错误码描述可能原因诊断电梯状态恢复测试V3F10:设置高速频率(bn -01)为2.5HZ (减低最高速),给一个内召在监控时间超出后电梯马上停止在软件定义的时间内,轿箱位置没有改变。

门区信号30或0001000310010101DS DF运行监控时间超过超速B30在一定时间内没有改变需要重启V2 LCEDRV:电梯速度高出额定速度110%。

在RDF 或检修状态下速度大于0.66m/sLCEDRV 板电梯立刻停止自动(在电梯停止在减速学习之后将学得的速度提高10%测得电梯速度太高后)在三次连续同步运行错误后,电在同步运行后,系统没有在连续三次同步运行中有错误发现77:U/N,61:U/N,和30的正确信号。

在三个连续的同步运行中,位梯保持运行到一很难测试。

DTS 会先出0004000711010610DF DF在连续3次运行中都有该错误置没有发现个端站需要重启现电梯开到目标在启动后的一段时间内,未测层,不开门,停需要重启或检修驱在该层门区开关30或B30 粘联门区信号连续有效得离开门区信号动门区监控电路内的533继电器在两个连续的运行中无作用。

该错在ADO/ACL 电路内的553继电电梯正常开到目需要重启或检修驱很难检测,需要ADO 0014001506010602DFDF误跟在在76错误后553继电器电路未被充电器电路未被充电标层,退出服务动测试板ADO/ACL 线路未被充电。

443:1或在两个连续运行中,至少有一443:2或486为在轿箱在层站时充电或个接触器443:1或443:2或连续两次运行有不正确的门区监控操作轿箱速度大于SL1速度(5-20-9设486工作不正常(开或闭合有电梯正常开到目需要重启或检修驱很难检测,需要ADO 错误)置)时放电标层,退出服务动测试板1)安全回路输入口1失电。

安全回路中一个或多个器件打开2)电梯在检修模式闭合安全回路并且检修驱动或新内召或在层站开门在ADO 的XC1/5无230VAC 电0021002201020201DM DL安全回路不通压电梯立即停止电梯立即停止断开安全回路运行时安全回路输入口3失电。

c语言模拟电梯程序

c语言模拟电梯程序

c语言模拟电梯程序我们需要定义电梯的状态。

电梯可以处于静止、上升或下降三种状态中的一种。

我们可以使用一个整型变量来表示电梯的状态,0表示静止,1表示上升,-1表示下降。

接下来,我们需要定义电梯的位置。

电梯可以停在不同的楼层,我们可以使用一个整型变量来表示电梯当前所在的楼层。

我们需要定义一个数组来记录每一层楼的乘客请求。

数组的每一个元素表示该楼层的请求状态,0表示无请求,1表示有上升请求,-1表示有下降请求。

在主程序中,我们可以使用一个循环来模拟电梯的运行过程。

在每一次循环中,我们首先检查电梯当前所在的楼层是否有乘客请求。

如果有请求,我们根据电梯的状态和乘客的请求来确定电梯下一步的动作。

如果电梯处于静止状态,我们可以根据乘客的请求来确定电梯的状态。

如果有上升请求,我们将电梯的状态设为上升;如果有下降请求,我们将电梯的状态设为下降。

如果电梯处于上升状态,我们需要找到最接近电梯当前位置且有上升请求的楼层,然后将电梯移动到该楼层。

如果没有找到符合条件的楼层,则将电梯状态设为静止。

如果电梯处于下降状态,我们需要找到最接近电梯当前位置且有下降请求的楼层,然后将电梯移动到该楼层。

如果没有找到符合条件的楼层,则将电梯状态设为静止。

在每一次循环结束时,我们将输出电梯的状态和位置,以及每一层楼的乘客请求状态。

这样可以让用户清楚地了解电梯的运行过程。

通过以上的步骤,我们可以完成一个简单的电梯模拟程序。

当然,实际的电梯系统要复杂得多,包括更多的功能和安全性考虑。

但是通过这个简单的模拟程序,我们可以初步了解电梯的运行原理和编程实现。

总结一下,本文介绍了如何使用C语言编写一个简单的电梯模拟程序。

通过定义电梯的状态和位置,以及乘客的请求状态,我们可以模拟电梯的运行过程。

通过循环判断电梯的状态和乘客的请求,我们可以确定电梯下一步的动作。

最后,我们输出电梯的状态和位置,以及每一层楼的乘客请求状态,以展示电梯的运行过程。

希望本文对读者理解电梯的工作原理和使用C语言实现电梯模拟程序有所帮助。

基于51单片机模拟电梯控制系统

基于51单片机模拟电梯控制系统

基于51单片机模拟电梯控制系统简介本文档介绍了基于51单片机的模拟电梯控制系统。

电梯是现代建筑中不可或缺的交通工具,其安全性和运行效率直接影响到建筑的使用体验。

本文档将详细描述电梯控制系统的设计和实现过程,以及关键的技术细节。

系统架构硬件设计基于51单片机的模拟电梯控制系统的硬件设计主要包括以下几个模块:1.电梯控制板:该板包含了51单片机、电梯按钮、电梯状态显示器等组件,用于控制电梯的运行和状态显示。

2.电梯驱动器:该模块负责控制电梯的电机和门的开关,通过与电梯控制板的通信来实现电梯的运行控制。

3.按键模块:该模块用于接收用户输入的目标楼层,并将数据传输给电梯控制板。

4.故障检测模块:该模块用于检测电梯运行时的故障情况,并通过与电梯控制板的通信来报告故障信息。

软件设计电梯控制系统的软件设计主要包括以下几个部分:1.电梯控制算法:该算法用于根据用户输入的目标楼层和电梯当前的状态,确定电梯的运行方向和下一个停靠楼层。

2.状态机设计:该设计用于实现电梯的状态转换和运行控制。

通过状态机设计,可以实现电梯的顺序运行、停靠和开关门等功能。

3.中断处理程序:该程序用于处理硬件中断,包括接收用户输入的目标楼层和监测电梯的故障情况。

功能实现电梯运行控制通过电梯控制算法和状态机设计,可以实现电梯的运行控制。

电梯可以根据用户输入的目标楼层确定运行方向,并在到达目标楼层时停靠。

电梯状态显示电梯状态显示器可以显示电梯当前的楼层和运行状态,如上行、下行、停靠等。

通过电梯状态显示器,用户可以清楚地了解电梯的运行情况。

故障检测与报告电梯控制系统可以监测电梯的故障情况,如电机故障、门开关故障等。

一旦检测到故障,系统会通过显示器或其他方式向维护人员报告故障信息,以便及时修复。

基于51单片机的模拟电梯控制系统通过硬件设计和软件设计实现了电梯的运行控制、状态显示和故障检测等功能。

该系统可以提供安全、高效的电梯运行体验,为建筑的使用者提供便利。

模拟电梯系统原代码

模拟电梯系统原代码
line(555,225,555,245);
outtextxy(525,165,"?");
settextstyle(0,0,1);
outtextxy(563,230,"GO");
setcolor(BLUE);
outtextxy(525,140,"Button");
bar(410,80,500,98);
outtextxy(410,80,"close door");
setfillstyle(1,BLUE);
/*关门*/
for(i=1;i<16;i++)
{
bar(405+i*3,130,(405+(i-1)*3),250);
printf("\nreduce people(>=%d):",renshu-20);
scanf("%d",&m);
renshu=renshu-m;
if(renshu<=20)
break;
}
}
char blue,white;
void door()
{
int i,j,n;
settextstyle(0,0,1);
setcolor(BLUE);
outtextxy(410,80,"open door");
setfillstyle(1,BLUE);
bar(400,130,500,250);
}
}
red_button(floor);
movepicture(floor);

基于MCGS的电梯仿真模拟控制系统

基于MCGS的电梯仿真模拟控制系统

基于MCGS的电梯仿真模拟控制系统作者:栾荣华郭志礼崔守娟来源:《农业科技与装备》2020年第04期摘要:为及时排除电梯运行故障,采用MCGS组态应用软件设计三层电梯的模拟系统,通过模拟电梯运行过程来监控处理系统的运行情况。

模拟运行结果显示,模拟仿真系统实时性强,机械和电气故障显示更为直观,具有良好的并行处理性能。

关键词:MCGS;电梯;设计;模拟运行;控制系统中图分类号:TU85 文献标识码:A 文章编号:1674-1161(2020)04-0036-03电梯在日常生活中的应用十分广泛,可以让人们快速到达目标楼层,在高层建筑中应用最多。

虽然电梯能给人们带来便捷,但也存在不少问题,例如运行时突然停止、电梯门未关便开始运行等。

为此,采用MCGS组态应用软件设计三层电梯的模拟系统,较为直观地模拟电梯运行过程,通过组态软件的模拟运行图像监控处理系统的运行情况,为排除电梯运行故障提供便利。

1 电梯结构电梯的结构分为四大空间与八大系统。

四大空间包括机房、井道及底坑、轿厢和层站;八大系统包括曳引系统、导向系统、轿厢、门系统等。

1.1 四大空间四大空间指机房部分、井道及底坑部分、轿厢部分、层站部分,具体结构见图1。

1.2 八大系统電梯的八大系统分为曳引系统、导向系统、轿厢、门系统、重量平衡系统、电力拖动系统、电气控制系统和安全保护系统,详见图2。

曳引系统的基本功能是输入和传递驱动力,使电梯得以运行。

导向系统的主要功能是限制轿厢及对重的活动自由度,促使轿厢及对重只能顺着导轨作上升或下降运动。

轿厢是运送旅客及货物的电梯器件,由轿厢架和轿厢体构成。

门系统的主要功能是封闭和开启层站和轿厢入口。

重量平衡系统的主要功能是平衡轿厢重量,使电梯传动正常。

电力拖动系统可以控制电梯运行速度。

电气控制系统对电梯的运行进行操纵与控制。

安全保护系统对电梯的安全进行保障,防止危及乘客的事故发生。

2 基于MCGS的电梯仿真模拟控制系统上位机选用MCGS(嵌入版,6.801.0002)嵌入式组态软件,实现窗口之间的逻辑控制,以及窗口内的基本功能,其中按键应用程序、文本框等图像对象的基本功能由MCGS的脚本程序完成。

PLC电梯模拟控制(4层简单程序)

PLC电梯模拟控制(4层简单程序)

产品设计PLC电梯模拟控制教学单位: 机电工程学院专业: 自动化班级:学号:学生姓名:指导教师:完成时间:电子科技大学中山学院机电工程学院课程(产品)设计任务书目录1 题目分析错误!未定义书签。

PLC电梯设计错误!未定义书签。

利用PLC设计电梯系统的目的错误!未定义书签。

利用PLC设计电梯系统意义错误!未定义书签。

利用PLC设计电梯系统优点错误!未定义书签。

电梯概述错误!未定义书签。

电梯的定义及发展错误!未定义书签。

我国电梯发展状况错误!未定义书签。

PLC概述错误!未定义书签。

可编程控制器PLC的概述错误!未定义书签。

可编程控制器PLC的特点错误!未定义书签。

本次设计研究的内容、目的错误!未定义书签。

2 PLC电梯模拟控制系统功能设计错误!未定义书签。

PLC电梯模拟控制系统设计的基本内容错误!未定义书签。

系统的控制要求错误!未定义书签。

3 PLC电梯模拟控制系统硬件设计错误!未定义书签。

元器件清单错误!未定义书签。

I/O地址分配错误!未定义书签。

PLC外部接线图错误!未定义书签。

硬件实物图错误!未定义书签。

4 PLC电梯模拟控制系统软件设计错误!未定义书签。

工作流程图错误!未定义书签。

程序设计错误!未定义书签。

电梯初始化、内呼输入与存储程序错误!未定义书签。

电梯外呼信号输入与存储程序错误!未定义书签。

电梯目标层与本层比较及上升下降错误!未定义书签。

电梯上升下降及达层自动开关门错误!未定义书签。

5 结束语错误!未定义书签。

参考文献错误!未定义书签。

附录:源程序错误!未定义书签。

致谢错误!未定义书签。

1 题目分析PLC电梯设计利用PLC设计电梯系统的目的电梯是高层建筑中垂直上下的运载工具。

电梯对于改善劳动条件、减轻劳动强度、提高人们生活水平有着重要的作用。

电梯目前已经广泛应用于宾馆、酒店、商场、娱乐场所、医院、生产车间和居民住宅大楼等。

在现代社会中,电梯已经成为人们生产、生活中不可缺少的运输工具。

本课题主要对PLC的结构、特点、性能以及与现场控制对象的连线进行具体的研究,并通过PLC实现电梯的自动控制。

基于PLC的电梯控制系统的设计与仿真

基于PLC的电梯控制系统的设计与仿真

基于PLC的电梯控制系统的设计与仿真基于PLC的电梯控制系统的设计与仿真一、绪论电梯作为现代建筑物中必备的垂直交通工具,其安全性和效率对用户的使用体验至关重要。

传统电梯控制系统采用传感器和继电器等元件,存在很多问题,如运行不稳定、维护困难等。

而基于可编程逻辑控制器(PLC)的电梯控制系统则可以有效提高电梯的性能和可靠性。

本文将基于PLC的电梯控制系统的设计与仿真进行详细介绍。

二、基本原理基于PLC的电梯控制系统主要由电梯控制器、电梯驱动器和电梯监控器组成。

电梯控制器负责接收用户指令,控制电梯的运行,并协调电梯之间的调度。

电梯驱动器负责控制电梯的运行,通过各种传感器获取电梯的状态信息,并将其传输至电梯监控器。

电梯监控器负责监控电梯的运行状态,并将其显示在控制室的监控屏幕上。

三、设计与实现1. 硬件设计基于PLC的电梯控制系统的硬件设计主要包括PLC选择、输入输出模块设计和传感器选择等。

PLC的选择需要考虑其处理能力、I/O点数和可编程性等因素。

输入输出模块的设计需要根据电梯系统的需求确定其数量和类型。

传感器的选择需要考虑其稳定性、精度和可靠性等。

2. 软件设计基于PLC的电梯控制系统的软件设计主要包括PLC程序设计和仿真环境搭建。

PLC程序设计需要根据电梯的运行逻辑和控制要求编写相应的程序代码。

仿真环境搭建需要利用仿真软件模拟电梯运行过程,并对电梯运行状态进行监控和调度。

3. 系统测试与调试基于PLC的电梯控制系统的测试与调试是确保系统正常运行的重要环节。

测试和调试过程包括系统功能测试、运行稳定性测试和性能测试等。

通过对系统的各项指标进行测试和调试,可以及时发现问题并进行改进。

四、系统仿真基于PLC的电梯控制系统的仿真是验证系统设计的有效手段。

通过仿真可以模拟电梯的运行过程,并对系统的性能和稳定性进行评估。

仿真结果可以用于优化系统设计和改善系统性能。

五、总结与展望基于PLC的电梯控制系统通过采用先进的控制器和传感器等技术,实现了电梯的智能化控制和优化调度。

基于51单片机的电梯仿真系统(仿真程序PPT)

基于51单片机的电梯仿真系统(仿真程序PPT)

结果分析
性能评估
根据仿真数据,评估电梯系统的性能,如运行稳定性、响应速度等 。
问题诊断
分析仿真过程中出现的问题,如电梯无法响应某些楼层请求、运行 异常等,定位并解决问题。
优化建议
根据分析结果,提出针对性的优化建议,如改进电梯控制算法、调 整电机驱动参数等,以提高电梯系统的性能。
05
电梯仿真系统优化
汇编语言是51单片机的底层编程语言,它直接对应着硬 件的操作。使用汇编语言编程需要对硬件有深入的了解 ,并且编程效率相对较低。但是,汇编语言具有代码紧 凑、执行效率高等优点,在一些对性能要求较高的场合 仍然有应用。
C语言
C语言是51单片机的主流编程语言之一,它具有语法简 单、易于学习、可移植性好等优点。使用C语言编程可 以大大提高开发效率,并且代码可读性较好。同时,C 语言具有丰富的库函数和强大的数据处理能力,可以满 足大多数应用的需求。
3
该仿真系统具有可视化界面,能够直观 地展示电梯的运行过程和状态变化,方 便用户进行操作和观察。同时,该系统 还具有可扩展性和可定制性,可以根据 实际需求进行功能扩展和定制开发。
02
51单片机基础知识
51单片机简介
51单片机的定义
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来 随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是 ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长 的一段时间内将占有大量市场。
运行仿真
启动仿真,观察电梯在接收到 不同输入信号时的运行状态和 输出动作。

PLC电梯模拟控制(4层简单程序)

PLC电梯模拟控制(4层简单程序)

产品设计PLC电梯模拟控制教学单位: 机电工程学院专业: 自动化班级:学号:学生:指导教师:完成时间:电子科技大学学院机电工程学院课程(产品)设计任务书目录1 题目分析 (1)1.1 PLC电梯设计 (1)1.1.1 利用PLC设计电梯系统的目的 (1)1.1.2 利用PLC设计电梯系统意义 (1)1.1.3 利用PLC设计电梯系统优点 (1)1.2 电梯概述 (2)1.2.1 电梯的定义及发展 (2)1.2.2 我国电梯发展状况 (2)1.3 PLC概述 (3)1.3.1 可编程控制器PLC的概述 (3)1.3.2 可编程控制器PLC的特点 (3)1.4 本次设计研究的容、目的 (4)2 PLC电梯模拟控制系统功能设计 (5)2.1 PLC电梯模拟控制系统设计的基本容 (5)2.2 系统的控制要求 (5)3 PLC电梯模拟控制系统硬件设计 (7)3.1 元器件清单 (7)3.2 I/O地址分配 (7)3.3 PLC外部接线图 (8)3.4 硬件实物图 (9)4 PLC电梯模拟控制系统软件设计 (10)4.1 工作流程图 (10)4.2程序设计 (11)4.2.1 电梯初始化、呼输入与存储程序 (11)4.2.2 电梯外呼信号输入与存储程序 (12)4.2.3 电梯目标层与本层比较及上升下降 (14)4.2.4 电梯上升下降及达层自动开关门 (16)5 结束语 (18)参考文献 (19)附录:源程序 (20)致 (23)1 题目分析1.1 PLC电梯设计1.1.1利用PLC设计电梯系统的目的电梯是高层建筑中垂直上下的运载工具。

电梯对于改善劳动条件、减轻劳动强度、提高人们生活水平有着重要的作用。

电梯目前已经广泛应用于宾馆、酒店、商场、娱乐场所、医院、生产车间和居民住宅大楼等。

在现代社会中,电梯已经成为人们生产、生活中不可缺少的运输工具。

本课题主要对PLC的结构、特点、性能以及与现场控制对象的连线进行具体的研究,并通过PLC实现电梯的自动控制。

电梯升降 编程题目

电梯升降 编程题目

电梯升降编程题目这是一个基本的电梯升降的编程题目。

假设我们有一个电梯,它可以在一楼和二楼之间移动。

以下是一个简单的Python代码示例,模拟电梯的升降:```python#电梯状态elevator_status={'floor':1,#初始在一楼'queue':[]#等待的请求队列}def request_floor(floor):"""请求到达指定楼层"""elevator_status['queue'].append(floor)move_elevator()def move_elevator():"""移动电梯到请求的楼层"""if len(elevator_status['queue'])==0:return#没有请求,电梯停止#获取下一个请求的楼层next_floor=elevator_status['queue'].pop(0)#到达下一层print(f"电梯到达{next_floor}楼")#如果还有请求,继续移动到下一个楼层move_elevator()#测试代码request_floor(2)#请求到2楼request_floor(1)#请求到1楼```在这个示例中,每次有人请求到达某个楼层时,我们都会将这个请求添加到队列中。

然后,我们有一个函数`move_elevator`,它会检查队列中的下一个请求,并将电梯移动到那个楼层。

当电梯到达那个楼层后,它会继续检查队列中的下一个请求,直到队列为空。

基于MCS-51单片机的电梯模拟系统设计

基于MCS-51单片机的电梯模拟系统设计

本科毕业设计论文题目基于MCS-51单片机的电梯模拟系统设计专业名称学生姓名指导教师毕业时间毕业一、题目:基于MCS-51单片机的电梯模拟系统设计二、指导思想和目的要求:通过毕业设计,使学生对所学电子工艺、传感器知识、电机控制技术、模电、数电、等电子基础课程的基本知识加深理解,在所学51八位单片机的基础上,学习更高级十六位单片机的基本指令及基本结构,并将其与实际工程应用紧密结合起来,培养创新意识,增强分析问题解决问题能力,为尽快进入社会角色,熟悉相关开发工作流程,提高基本工作技能,为即将踏入社会奠定理论和实践基础。

要求:认真复习有关基础理论和技术知识,查阅参考资料,参照下列设计思想,运用所学单片机知识独立设计电路、自行焊接、调试,直至预期结果方可。

要求实现:1. 通电后,系统默认电梯轿厢停在一层。

2. 如需上行,请按下所要到达楼层的上行呼叫按钮,轿厢显示开始上行,所经楼层号用LED进行短时显示,到达,楼层号持续显示,直至轿厢被呼叫离开,并有蜂鸣器鸣叫以示到达。

3. 当轿厢停留在中间楼层时,可实现上或下行呼叫,行进方向按呼叫顺序进行,如同时呼叫,则坚持先上行,后下行原则。

4. 由LED指示轿厢行进的方向。

5. 模拟楼层数要求五层及以上。

三、进度与要求:1.第一周~第三周在工作中收集各种相关资料,给出系统整体设计方案。

2.第四周~第五周进行器件选型,并用PROTEL设计硬件原理图。

3.第六周~第九周针对系统具体功能进行编程调试。

4.第十周~第十一周整理并组织论文。

6.第十二周~第十四周完成修改稿,定稿,打印,交评阅。

7.第十五周~第十六周评阅与答辩四、主要参考书及参考资料[1] 谢宜人主编,单片机实用技术问答, 北京人民邮电出版社 ; 2003[2] 靳达,单片机应用系统开发实例导航 , 北京人民邮电出版社 ; 2003[3] 流光斌等,单片机系统实用抗干扰技术,北京人民邮电出版社;2004[4] 余永权,ATMEL89系列单片机应用技术,北京航空航天大学出版社;2002[5] 陈瑾;智能小车运动控制系统的研究与实现[D];东南大学硕士论文;2005年[6] 韦巍;智能控制技术[M];北京:机械工业出版社;2000年[7] 蒋新松;机器人学导论[M];辽宁科学技术出版社;2003年[8] 孙迪生,王炎;机器人控制技术;北京:机械工业出版社;1997年[9] 陈明荧,8051单片机课程设计实训教材,清华大学出版社;2003年[10] 蔡美琴等,MCS-51系列单片机系统及其应用,高等教育出版社;2004年学生指导教师__ _ 系主任摘要电梯开始成为人们生活中不可缺少的一种便利工具。

OTIS服务器中文使用手册

OTIS服务器中文使用手册
服务器使用指南
键盘控制
服务器面板上有 16个按键,各按键在面板上的分布如下:
按键


MODULE FUNCTION
SET
按此键能进入或返回模块(MODULE)菜单(OCSS,MCSS,DISS,DBSS) 按此键能进入或退出功能(FUNCTION)菜单(MONITOR,TEST,SETUP) 按此键能进入或退出设置(SET)菜单
0122 333 44 5555 667 U88D88 9
其中显示位 0=电梯的 OCSS板的代号。比如 A表示服务器进入的是 A梯的 OCSS系统,监控的是 A 梯的运行状态。
显示位 1= U表示 UP(电梯正在上行)或 D表示 DOWN(电梯正在下行)或表示“--”表示电梯 处于停止状态。
显示位 22=电梯所处的实际楼层。如 00表示处在 1楼,01表示处在 2楼,如此类推。 显示位 333=电梯所处的“运行模式”或称“操作模式”(OPERATIONAL MODE)。如 NOR表示
“正常”运行模式,IDL表示“空载无人呼梯”运行模式,祥见“运行模式”清单。 根据显示位 333的内容即可判断出电梯现在所处的运行状态。
显示位 44=运行系统即电梯的状态。Mu表示向上运行,Md表示向下运行,M-表示无运行方向, M*表示无运行方向且具体楼层不清楚。
显示位 5555=前门及后门(如果有的话)的状态。
0122 333 44 5555 0122 333 44 5555
其中显示位 0=电梯的 OCSS板的代号。比如 A表示服务器进入的是 A梯的 OCSS系统,监控的是 A 梯的运行状态。按“GO ON”或“GO BACK”键,则可在显示屏的第二行切换显示其
他群控电梯的状态。
显示位 1= U表示 UP(电梯正在上行)或 D表示 DOWN(电梯正在下行)或表示“--”表示电梯 处于停止状态。

通力错误代码

通力错误代码
0102 DM 安全回路不通 0201 DL 在运行时厅门打开
2501 DF 在运行时轿门打开
0604 DL 启动允许错误 0605 DF 驱动不OK
在两个连续运行 ADO/ACL线路未被充电 中,至少有一个
。443:1或443:2或486 接触器443:1或
为在轿箱在层站时充电或 443:2或486工作 电梯正常开 需要重启 轿箱速度大于SL1速度 不正常(开或闭 到目标层, 或检修驱 很难检测,需要
断开E.brake线圈
0203 DF 紧急抱闸无法
殊发生(0177到0200) 号

重启 然后给一个召唤
电梯正常开
CAR_LIGHT_FAILE 到目标层。
D输入有误并且不 禁止新的启 轿箱照明 在控制柜里关闭
2601 DM 轿箱照明监控
无轿箱照明电源
再消防模式

电源恢复 262开关
在厅门或轿门关闭10秒中
信号持续有效
为电0梯V在DC正常模 电梯停止 检修
钮再打检修
时,有一个旁路
检查轿顶检修开关(42) 开关(轿门264,
和机房检修开关(270) 厅门267)打开。
是否故障。
LCEADO输入口
检查轿门旁路开关
XM23/1和
立即停止并
在电梯自动运行
(264)和厅门旁路开关 XM23/3同时为 且进入检修
K7充电
器闭合
能开门 LCEADO 停止后保持跳线
在电梯运行时, 来着LCEDRV的
在运行时主接触器 0105 R 释放
V3FMCONTRAC
TOR ENABLE信
号无效 ZaiLCEDRV上的
在电梯停 止和错误
“Main relay

通力电梯超全错误代码

通力电梯超全错误代码

错误码描述可能原因诊断电梯状态恢复测试00011001DS运行监控时间超过在软件定义的时间内,轿箱位置没有改变。

门区信号30或B30在一定时间内没有改变在监控时间超出后电梯马上停止需要重启V3F10:设置高速频率(bn-01)为2.5HZ(减低最高速),给一个内召00030101DF超速V2 LCEDRV:电梯速度高出额定速度110%。

在RDF或检修状态下速度大于0.66m/sLCEDRV板测得电梯速度太高电梯立刻停止自动(在电梯停止后)在减速学习之后将学得的速度提高10%00041101DF 在连续三次同步运行中有错误在同步运行后,系统没有发现77:U/N,61:U/N,和30的正确信号。

在连续3次运行中都有该错误在三个连续的同步运行中,位置没有发现在三次连续同步运行错误后,电梯保持运行到一个端站需要重启很难测试。

DTS会先出现00070610DF门区开关30或B30粘联门区信号连续有效在启动后的一段时间内,未测得离开门区信号电梯开到目标层,不开门,停在该层需要重启或检修驱动00140601DF 门区监控电路内的533继电器在两个连续的运行中无作用。

该错误跟在在76错误后553继电器电路未被充电在ADO/ACL电路内的553继电器电路未被充电电梯正常开到目标层,退出服务需要重启或检修驱动很难检测,需要ADO测试板00150602DF 连续两次运行有不正确的门区监控操作ADO/ACL线路未被充电。

443:1或443:2或486为在轿箱在层站时充电或轿箱速度大于SL1速度(5-20-9设置)时放电在两个连续运行中,至少有一个接触器443:1或443:2或486工作不正常(开或闭合有错误)电梯正常开到目标层,退出服务需要重启或检修驱动很难检测,需要ADO测试板00210102DM安全回路不通1)安全回路输入口1失电。

安全回路中一个或多个器件打开2)电梯在检修模式在ADO的XC1/5无230VAC电压电梯立即停止闭合安全回路并且检修驱动或新内召或在层站开门断开安全回路00220201DL在运行时厅门打开运行时安全回路输入口3失电。

三菱PLC四层电梯程序教程文件

三菱PLC四层电梯程序教程文件

信息科学与工程学院课程设计报告( 2011~2012 学年第二学期)题目四层电梯模拟控制院(系、部)控制系课程名称电气控制技术综合课程设计专业年级学号姓名指导老师2012 年6月16日目录1引言 (3)2系统总体方案设计 (4)2.1系统硬件配置及组成原理 (6)2.2系统变量定义及分配表 (6)2.3P L C接线图设计 (7)2.4系统可靠性设计 (7)3控制系统设计 (8)3.1控制程序流程图设计 (8)3.2控制程序时序图设计 (9)3.3控制程序设计思路 (9)4 系统调试及结果分析 (12)4.1系统调试及解决的问题 (12)4.2结果分析 (12)结束语 (13)参考文献 (13)附录:带功能注释的源程序 (14)第一章:引言1887年,美国奥的斯公司制造出世界上第一台电梯,这是一台以直流电动机传动的电梯。

它被装设在1889年纽约德玛利斯大厦。

这座古老的电梯,每分钟只能走10米左右。

当初设计的电梯纯粹是为了省力。

了世界上第一台按钮式自动电梯,采用全自动的控制方式,提高了电梯的输送能力和安全性。

随着超高层建筑的出现,电梯的设计、工艺不断得到提高,电梯的品种也逐渐增多。

1900年,美国奥梯斯公司制成了世界上第一台电动扶梯。

1950年又制成了安装在高层建筑外面的观光电梯,使乘客能在电梯运行中清楚地眺望四周的景色。

随着电子信息、自动控制技术的发展,特别是计算机技术的广泛应用,电气设备逐渐向智能化方向发展。

21世纪,我国工业控制水平逐渐达到了世界发达国家水平,我国工业水平已经迈向了自动化,党能够掌握电工、电子、单片机、可编程序控制器(PLC)、变频器、计算机、网络通信等技术的电气智能技术应用型人才比较短缺。

多数职业学院目前开设的电工技术、电子技术、电力拖动等课程内容人较为传统,注重学科体系的理论性与完善性;单片机、PLC、变频器的实践教学环节较为薄弱,与实际生产中的操作与应用结合不够紧密;对新知识、新技术、新方法体现不足,职业教育的实践性特色不明显,无法满足工业自动化发展对技能型人才的需要。

python电梯作业

python电梯作业

python电梯作业Python电梯作业电梯是现代生活中不可或缺的交通工具之一,在我们的日常生活中随处可见。

而Python作为一种强大的编程语言,也可以用来模拟电梯的运行和控制。

本文将介绍如何使用Python来实现一个简单的电梯系统,并探讨一些与电梯相关的概念和技术。

一、电梯的基本原理在开始编写电梯控制程序之前,我们先来了解一下电梯的基本原理。

电梯由电动机、控制系统和轿厢组成。

电动机负责驱动轿厢上下运动,控制系统负责接收乘客的指令并控制电动机的运行。

二、使用Python实现电梯控制程序1. 定义电梯类我们需要定义一个电梯类,用于表示电梯的状态和行为。

电梯类可以包含以下属性和方法:- 属性:当前楼层、目标楼层、电梯状态(上行、下行、停止)- 方法:接收乘客指令、运行电梯、停止电梯2. 实现电梯控制逻辑在电梯类中,我们可以实现电梯的控制逻辑。

当电梯接收到乘客的指令时,根据当前楼层和目标楼层的关系,决定电梯是上行还是下行。

然后,电梯开始运行,直到到达目标楼层并停止。

3. 模拟乘客操作为了更真实地模拟电梯的使用,我们可以在程序中模拟乘客的操作。

比如,我们可以让用户输入当前楼层和目标楼层,然后将这些指令传递给电梯类进行处理。

三、电梯运行的优化策略除了基本的电梯控制逻辑之外,我们还可以考虑一些优化策略,以提高电梯的运行效率。

以下是一些常见的优化策略:1. 最短路径优先:当电梯接收到多个乘客指令时,可以通过计算乘客目标楼层之间的距离,选择最短路径来减少电梯的运行时间。

2. 负载均衡:如果电梯在某一层停留时间过长,可以考虑调整电梯的调度算法,以减少乘客等待时间。

3. 预测乘客流量:通过收集乘客的历史数据,可以预测乘客在不同时间段和楼层的流量,从而优化电梯的调度策略。

四、电梯安全性问题除了运行效率之外,电梯的安全性也是非常重要的。

以下是一些常见的电梯安全性问题:1. 电梯故障:电梯在运行过程中可能会出现故障,比如电路故障、电机故障等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
pre=curr;
curr=curr->next;
}
q=p;
p=p->next;
q->next=pre->next;
pre->next=q;
}
}
//销毁链表
void Destroy(SLNode * *head)
{
SLNode *p,*p1;
curr=curr->next;
}
return pre->mytime;
}
//电梯运行函数
void Go(SLNode *head,int n,dianti dt,clock_t s[1000],man r[1000])
{
int k=0,i,time,m,flag=0,counter=0; //flag 记录是否有多个人在同一层或去同一层楼
dt.door=1;
}
if((time-s[i]/100)<=r[i].rrsj){
time=gettime(head);
GET_IN(head,dt,time); //若超过此人的最大容忍时间,该人将放弃乘坐电梯
r[i].in=1;
}
time=gettime(head); //获得事件链表最后一个结点的时间(即当前时刻)
if(dt.lc==r[i+1].lc) {flag=1;counter++;continue;} //该层的所有人都进入电梯
else{
if(dt.door==1){
}
for(m=0;m<n;m++){
if(dt.lc==r[m].lc&&r[m].biaozhi==0&&r[m].in==0&&dt.rs<12){//若该楼层有人等候,使其进入
if(flag==0&&dt.door==0){
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<conio.h>
typedef struct
{
int lc;//电梯所在楼层
int rs;//电梯中的人数,规定最大乘坐人数为12
p=*head;
while(p!=NULL){
p1=p;
p=p->next;
free(p1);
}
*head = NULL;
}
/*
电梯动作: 1.开始开门,20t,开门结束;
2.开始关门,20t,关门结束;
3.从n-1层开始移动,30t,到达第n层;
time=gettime(head);
ListInsert(head,g,"该层已无人进出,关门",time+40); //电梯经过40t时间后,若无人进出,则关门
dt.door=0; //置电梯门状态为关
{
SLNode *curr,*pre,*p,*q;
p=head->next;
head->next=NULL;
while(p!=NULL)
{
curr=head->next;
pre=head;
while(curr!=NULL && curr->mytime<=p->mytime){
p=p->next;
j++;
}
if(j!=i-1){
printf("\n 插入位置参数错!\n");
return 0;
}
if((q=(SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);
int in; //标志位,为1时表明人在电梯中,否则为0
}man;
typedef struct Node
{
char a[1000];//事件信息
int mytime;//事件所发生的时间
struct Node *next;
}SLNode;
dianti dt;//定义一个电梯
{
char a[1000]={"人开始出门......"},b[1000]={"已经出门!"};
ListInsert(head,g,a,now);
g++;
ListInsert(head,g,b,now+25);
g++;
dt.rs--; //电梯中的人数减一个
}
//电梯关门
void CLOSE(SLNode *head,dianti dt,int now)
{
char a[1000]={"电梯开始关门......"},b[1000]={"关门完毕!"};
ListInsert(head,g,a,now);
g++;
ListInsert(head,g,b,now+20);
}
//返回最新事件(即事件涟表最后一个结点)的发生时间
int gettime(SLNode *head)
{
SLNode *pre,*curr;
curr=head->next;
pre=head;
while(curr!=NULL){
pre=curr;
(*head)->next = NULL;
}
//将事件结点插入到事件链表中的第i个位置中去
int ListInsert(SLNode *head,int i,char a[1000],int t)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL && j<i-1){
int door;//门的状态 0关1开
}dianti;
typedef struct
{
char name[50]; //这个人的名字或序号(以示区别)
int rrsj;//一个人的容忍时间
int lc;//所在楼层
int md;//目的楼层
int biaozhi; //此标志位记录人使用电梯是否完成或者是否离去,为1表明使用过(离去),否则为0
time=gettime(head);
GET_IN(head,dt,time);
r[m].in=1;
}
else if(((time-s[m]/100)>r[m].rrsj)&&r[m].biaozhi==0){
{
char a[1000]={"电梯开始开门......"},b[1000]={"开门完毕!"};
ListInsert(head,g,a,now);
g++;
ListInsert(head,g,b,now+20);
g++;
dt.door=1; //门的状态为开
g++;
dt.door=0; //门的状态为关
}
//人进电梯
void GET_IN(SLNode *head,dianti dt,int now)
{
char a[1000]={"人开始进门......"},b[1000]={"已经进入!"};
man ren[1000];//定义人
clock_t shijian[1000];//事件
static int g=0;//记录事件的序号,方便加入到下面的事件链表中
//初始化链表
void ListInitiate(SLNode* *head)
{
if((*head = (SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);
time=gettime(head);
while(dt.lc<=r[i-counter].md){ //开往该层第一个人的目的楼层
flag=0;
if(dt.lc<r[i-counter].md){
dt.lc++;
time+=30;
g++;
CLOSE(head,dt,time+40);
}
}
/* 本层人已经全部进入电梯,接下来电梯启动按每个人事件发生的时间顺序将其送往目的楼层*/
flag=0;
if(dt.lc<=r[i-counter].md){
4.开始等待,有人来或者300t,等待结束;
人的动作: 1.开始等待,x<=最大容忍时间,等待结束;
2.开始进门,25t,进门结束;
3.开始出门,25t,出门结束;
*/
//电梯开门
void OPEN(SLNode *head,dianti dt,int now)
for(i=0;i<n;i++){
if(dt.door==0){ //初始电梯门状态为关着
if(dt.lc==r[i].lc&&dt.rs<12&&r[i].biaozhi==0&&r[i].in==0){//人在该楼层,要进去电梯,且电梯人数不超过规定的12人
相关文档
最新文档