为了简单,分配了1到9层另外也没加入有几人同时按,不过那样也不难,再分配10个每层的变量,随机按再处理,是先向上还是直接向下不过那倒真的可以用到真的上了
#include <stdioh>
#include <dosh>
#include <ctypeh>
#define ON 1
#define OFF 0
main(){
int power,i;
char oldkey,key ;
struct date today;
struct time now;
getdate(&today); /把系统当前日期存入today所指向的date结构中/
gettime(&now);
gotoxy(25,3);
printf("Today's date is %d-%d-%d\n",todayda_year,todayda_mon,todayda_day);
gotoxy(25,6);
printf("Current time is %02d:%02d:%02d\n",nowti_hour,nowti_min,nowti_sec);
if( nowti_hour>=8||(nowti_hour<=23&&nowti_min<59)){
power=ON;
printf("\n\n\nLift power is onLift stop in 1 floor");
}
else {
power=OFF;
printf("Lift power is off");
}
oldkey=0;
while(power==ON) {
printf("\n\n\nFloor");
for(i=1;i<10;i++)
printf("\n %d",i);
printf("\nPress floor number or q to shut down power :");
if( nowti_hour>=8||(nowti_hour<=23&&nowti_min<59))
power=ON;
else
power=OFF;
key=bioskey(0);
key=key&0x00ff;
system("cls");
if(key=='0'){
power=OFF;
printf("\n\n Lift Power off");
sleep(1);
break;
}
if(key>oldkey)
printf(" %c Go up!",24);
if(key<oldkey)
printf(" %c Go down!",25);
if(key==oldkey)
printf(" %c ok you are here",22);
sleep(2);
system("cls");
printf("\n\n ");
switch(key){
case '1':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '2':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '3':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '4':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '5':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '6':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '7':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '8':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
case '9':
if(key==oldkey)
printf(" %c ok you are here",22);
else if(key>oldkey)
printf("%c Go up!stop in %c floor",24,key);
else
printf("%c Go down!stop in %c floor",25,key);
oldkey=key;
break;
}
}
getch();
}
朋友去买本书吧!好多关于PLC的书上都有!我买了本上面有很多的!
书名 图解西门子S7-200系列PLC应用88例
作者 郑凤翼,金沙 主编
出版社 电子工业出版社
ISBN 9787121084126
定价 3980元
出版日期 2009-4-1
页码 377
字数 字
版次 1
印次
▼内容简介
本书以西门子S7—200系列PLC为例,在详细介绍识读PLC梯形图方法和技巧的基础上,精选88个应用实例,讲述各种电动机、机床、一般机械设备、木料传送设备、建筑设备等的PLC控制,以便广大读者在工作中推广使用。�
本书深入浅出、图文并茂,适合广大初、中级电工人员阅读。
▼图书目录
第1章 导读��
11 S7—200系列PLC的系统配置与常用指令�
12 本书写作特点��
13 识读PLC梯形图和指令语句表的方法和步骤
14 梯形图中的基本电路程序��
例1-1 瞬时接通/延时断开电路�
例1-2 延时接通/延时断开电路2例
例1-3 长时间定时电路3例��
例1-4 闪烁电路��
例1-5 脉冲发生器电路4例��
例1-6 计数器应用电路2例��
例1-7 分频电路��
例1-8 比较电路(译码电路)��
例1-9 优先电路2例��
例1-10 报警电路3例��
第2章 电动机的PLC控制��
例2-1 用一般指令编程的电动机单向运行的PLC控制
例2-2 用置位复位指令编程的具有过载报警的电动机单向运行的PLC控制电路��
例2-3 具有点动调整功能的电动机启动、停止控制电路
例2-4 电动机单向间歇运行的PLC控制
例2-5 单按钮控制的电动机的启动、停止控制电路3例
例2-6 电动机正反转的PLC控制�
例2-7 直接转换的电动机正反转运行控制
例2-8 行程开关控制的自动循环控制电路
例2-9 交流电动机-△降压启动的PLC控制(一)
例2-10 交流电动机的-△减压启动的PLC控制(二)
例2-11 三相感应电动机的串电阻减压启动控制
例2-12 三相感应电动机的串自耦变压器减压启动控制
例2-13 串电阻减压启动和反接制动控制电路
例2-14 单管能耗制动控制电路�
例2-15 3台电动机-△减压顺序启动逆序停止的PLC控制
例2-16 三台电动机M�1~M�3的启动/停止控制
例2-17 三台电动机的顺序启动控制
例2-18 步进控制指令编程的3台电动机M�1、M�2、M�3的PLC控制��
例2-19 用比较指令编程的电动机顺序启动的PLC控制
例2-20 三台电动机顺序延时启动、逆序延时停机控制电路��
例2-21 用移位寄存器指令编程的四台电动机M�1~M�4的PLC控制(一)��
例2-22 用移位寄存器指令编程的四台电动机M�1~M�4的PLC控制(二)��
第3章 PLC在机床电气控制系统中的应用��
例3-1 CA6140普通车床的PLC控制��
例3-2 C650型卧式车床的PLC控制��
例3-3 Z3040型摇臂钻床的PLC控制��
例3-4 深孔钻组合机床的PLC控制��
例3-5 双头钻床的控制��
例3-6 M7130平面磨床的PLC控制��
第4章 PLC在一般机械设备控制中的应用��
例4-1 通风机监控运行的PLC控制��
例4-2 锅炉引风机和鼓风机的控制��
例4-3 电动葫芦升降测试系统控制��
例4-4 简易桥式起重机的控制��
例4-5 剪板机的控制2例��
例4-6 毛皮剪花机控制��
例4-7 某轮胎内胎硫化机PLC控制��
例4-8 弯管机控制��
例4-9 洗车自动清洗��
例4-10 多种液体混合装置的PLC控制3例��
例4-11 食品或药品成型设备的PLC控制��
第5章 PLC在物料传送设备控制中的应用
例5-1 单处卸料运料小车自动往返控制3例
例5-2 多种工作方式的单处卸料运料小车自动往返控制(用启-保-停电路模式编程)��
例5-3 多种工作方式的运料小车运行的PLC控制(用顺序控制寄存器指令编程)��
例5-4 两处卸料的选料小车的PLC控制
例5-5 采用移位指令编程的小车运行的PLC控制
例5-6 三级传送带顺序启动、逆序停止的PLC控制
例5-7 四节传送带的PLC控制��
例5-8 用功能指令编程的台车的呼车控制
例5-9 传送带的PLC控制��
第6章 PLC在建筑设备控制中的应用
例6-1 仓库大门的PLC控制��
例6-2 使用启-保-停电路的编程自动门控制系统
例6-3 水塔供水系统的PLC控制�
例6-4 根据压力上、下限变化对4台水泵进行恒压供水的控制
例6-5 电梯的PLC控制��
例6-6 喷泉控制电路��
第7章 机械手、大小铁球分选和交通信号灯的PLC控制�
例7-1 用启-保-停电路模式编程的机械手运动的PLC控制
例7-2 用子程序和移位寄存器指令编程的机械手的PLC控制
例7-3 通过传送带传送工件的机械手的PLC控制
例7-4 大小球分拣的PLC控制�
例7-5 十字路口交通信号指挥灯的PLC控制(一)
例7-6 十字路口交通信号指挥灯的PLC控制(二)
例7-7 十字路口交通信号指挥灯的PLC控制(三)
例7-8 用置位、复位指令编程的十字路口交通信号灯的PLC控制
例7-9 人行横道交通信号灯的PLC控制
第8章 灯光、抢答器、密码锁及洗衣机的PLC控制
例8-1 楼梯灯的PLC控制��
例8-2 用顺序控制指令SCR编写的舞台灯光的PLC控制
例8-3 彩灯的PLC控制��
例8-4 采用时基脉冲结合计数器编程的彩灯控制
例8-5 彩环广告牌的PLC控制��
例8-6 节日彩灯的PLC控制��
例8-7 天塔之光的PLC控制�
例8-8 彩灯的PLC控制��
例8-9 用计数器指令与比较指令编程的密码锁的PLC控制
例8-10 简单的3组抢答器的PLC控制(一)
例8-11 简单的3组抢答器的PLC控制(二)
例8-12 带数码管显示的抢答器的PLC控制
例8-13 较复杂的三组抢答器的PLC控制
例8-14 全自动洗衣机的PLC控制�
第9章 PLC在模拟量控制中的应用
例9-1 在自动称重混料控制系统的应用
1、进入电梯之前,先不要急着进去,先观察门是否正常打开,如果出现卡顿就得当心。千万别埋头就想钻进去。
2、再观察电梯有没有来到本层,很多没有观察的人就是没有看清,一脚踩空,看到电梯稳稳的停下来才进入。
3、电梯门即将关闭的时候,不能用手或者其他物体阻碍正常的程序,这样很可能造成电梯程序失常。
4、在电梯内不要乱按上面的按钮,千万不要开关开关的来回按,这样同样对电梯程序有着影响。
5、在电梯内最好不要靠在电梯门上,因为一旦危险出现,门是最危险的地带。最好站在电梯的侧面。
6、如果电梯内有扶手的话,就要抓紧扶手,因为如果电梯出现故障的话,有东西扶着,避免摔伤。
7、不要是电梯超载或乘坐的人过多,超载了电梯就会提醒,人过多可能造成电梯高负荷运转,还是等等,不要挤在电梯里。
8、出现意外的时候不要用手去掰门。
9、出电梯的时候也要等电梯停稳了再下去。
matlab里的a(:,2:2:end)代表什么?
在matlab中,a(:, 2:2:end)表示从阵列的第二列开始,每隔一列取一列,直到最后一列。
举例如下:
a=
[1, 2, 3, 4, 3, 2;
2, 3, 2, 1, 3, 2];
b = a(:, 2:2:end);
>> % 执行上面的语句后,输出的矩阵b为:
2 4 2
3 1 2
matlab中Y(:,2)代表什么意思Y(:,2)表示的是Y的第二行的所有元素,出来的是一个行向量!
矩阵的这种描述还有如下形式:
Y(k,:),表示的Y的第k列
Y(i:j,k:l),表示的事Y的第i-j行,与k-l列的交叉处得资料形成的矩阵!
matlab中的resf(1,[1,2])=fin代表什么把变数resf第一行的第1、2列的资料用变数fin代替,换句话说,是把变数fin(一定要是12的矩阵)赋值给把变数resf第一行的第1、2列。
游戏里的STR DEX INT SKL END CHA 都代表了什么。STR 力量值
DEX 敏捷值
INT 智力值
SKL 技能值
END 结束 通常为The End 意思为结局
CHA 不知道没见过,你确定没打错吗?
east end 和 weast end代表什么东区和西区。
东区一般含贬义,就是指穷人和移民聚集地。
西区是伦敦中心,商业区和景点都很集中,时尚中心。
#在matlab里代表什么
MATLAB语言里面应该是没有#的,在别的程式语言(Java,Python等)里面,#是注释的意思,等同于MATLAB里面的%
The End 代表什么?瑗 我啥都不想说了该放就放了 不必想念想再多也没用 它代表着一段感情结束也代表着开始
材料30CrMnSiNi2A里的30和2A代表什么?求大神牌号前两位表示平均含碳量的万分之几,合金元素后面的数字表示合金元素的含量,合金元素平均含量小于15%的只标明元素符号。30CrMnSiNi2A中碳含量在030%左右,所以是30,Ni含量140%~180%,所以是Ni2。A表示高阶优质钢。
数控里的h2代表的什么意思H2是加工中心或者数控铣床的数控程式里的程式码。
它表示2号刀长值,H是刀长的意思,H2表示刀补画面里的2号刀长值。
如果我的回答对您有帮助,请及时采纳为最佳答案,谢谢!
1电梯里的铃铛的图案代表什么? 2电梯里的电话的图案代表什么?铃铛图案是求援警铃按钮
电话图案是对讲,连线物业值班室
/建立一座两层楼,一部电梯的模拟程序。为简化起见,每部电梯限乘一人,电梯每天在一楼关门等待
模拟程序包括一个时钟,每天从零开始。模拟程序得调度器组件随机设置每一层第一个人到来的时间,当时钟的时间等于第一个人到来的时间时,模拟程序生成一个新到的人将该人放到这一层。然后这个人按下按钮,请求电梯开门。这个人的目的地楼层不能与他上电梯的楼层相同。
如果第一个人到达第一层,则可以在按下按钮、等待电梯开门之后立即进入电梯。如果第一个人在第2层,则电梯要升到第2层去接他。电梯从1层移到2层需要5秒。
电梯到达一层时,打开电梯门上的灯,并在电梯内发出铃声,该层的按钮和电梯中表示该层的按钮复位,电梯门打开,乘客走出电梯(如果有到该层的乘客)。另一乘客(如果该层有人等待)进入电梯按下目的层按钮,电梯们关上。电梯移动前确定移动方向(两层很容易判断),为简单起见,电梯到达一层直到关门所花时间为0。
任何时间每层最多只能有一人等待,如果新到的人(不在电梯中)要到达该层时该层被占用,则一秒后才能安排新到达者。假设每隔5到20秒人们随机到达每层/
#include < iostream >
#include < ctime >
#include < iomanip >
#include < string >
#include <stdlibh>
#include < windowsh >
using namespace std;
class person
{
public:
string sex; //定义人员类
person();
void newset();
};
person::person()
{ sex="man"; }
void person::newset()
{
int i;
srand((unsigned)time(NULL));
for(i=0;;i++)
{
if(rand()==1)
{sex="man"; break; }
if(rand()==2)
{sex="woman"; break; }
}
}
class elevator
{
public:
int now; //定义电梯类
elevator();
};
elevator::elevator()
{ now=1; }
class Time
{
public:
static void outtime() //定义时间类,用于输出电梯每次运行时的时间
{
SYSTEMTIME t;
GetLocalTime(& t);
cout<<" //"<<twYear<<""<<twMonth<<""<<twDay<<" "<<twHour<<":"<<twMinute<<":"<<twSecond<<endl;
}
};
void last(long n) //用于等待时输出的函数
{
long i;
i=n/500;
for(i=0;i<n/500;i++)
{
cout<<''; Sleep(500);
}
cout<<endl;
}
void waiting()
{ long m; //模拟随机等待的时间函数
srand((unsigned)time(NULL));
cout<<"elevator waiting";
for(int i=0;i<1000;i++)
m=rand()%(20000-5000+1)+5000;
last(m);
}
void output(long t,person & p,elevator & e) //电梯模拟函数
{
static n=1; //定义乘客的个数
if( t==1) //有人在一楼按铃
{
pnewset();
if(enow!=1) //但是此时电梯停留在二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrived floor 1"; //输出有人到达一楼
Time::outtime(); //输出此时的准确时间
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator"; //输出乘客进入电梯
Time::outtime(); //输出此时的准确时间
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2"; //输入乘客到达二楼
Time::outtime(); //输出此时的准确时间
enow=2;
n++;
system("color 0C"); waiting(); system("color 0F");
}
else //此时电梯就是一楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1"; //输出有人到达一楼
Time::outtime(); //输出此时的准确时间
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator"<<endl;
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2";
Time::outtime();
enow=2;
n++;
system("color 0C"); waiting(); system("color 0F");
}
}
if(t==2) //有人在二楼按铃
{
if(enow!=2) //但是电梯此时不在二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrived floor 2";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1";
Time::outtime();
enow=1;
n++;
system("color 0C"); waiting(); system("color 0F");
}
else //此时电梯就是二楼
{
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 2";
Time::outtime();
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") enters elevator";
Time::outtime();
cout<<"elevator running";
last(5000);
cout<<"person "<<n<<"(a "<<setw(5)<<psex<<") arrives floor 1";
Time::outtime();
enow=1;
n++;
system("color 0C"); waiting(); system("color 0F");
}
}
}
int main()
{
coutfill('');
cout<<setw(80)<<'';
coutfill(' ');
system("color 0C");
cout<<setw(50)<<"欢迎使用电梯模拟程序"<<endl; //输出头菜单
coutfill('');
cout<<setw(80)<<'';
coutfill(' ');
int i;
person p;
elevator e;
srand((unsigned)time(NULL)); //定义随机数种
waiting();
system("color 0F");
for(i=0;;i++)
output(rand(),p,e); //调用电梯模拟函数
return 0;
}
单个电梯的显然不难,只要有个先来后到的次序,并注意途中该停就停就可以了。当然还有一个开关门时对各种情况的判断和动作;如果是双电梯就稍复杂一点。对于这类程序,关键是首先明确控制策略,分清可能出现的情况,然后确定每一动作可以进行所需具备的条件。
以上就是关于一个C++程序作业,模拟电梯运行全部的内容,包括:一个C++程序作业,模拟电梯运行、用PLC程序控制四层电梯模拟运行求能人给编个程序、乘电梯小妙招等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)