VHDL电梯实验报告

VHDL电梯实验报告
VHDL电梯实验报告

三层电梯

实验报告

一、设计课题的任务要求

题目三简易二层电梯控制器

模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。

基本要求:

1、电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。

2、利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。

提高要求:

1、点阵显示楼层;

2、用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向

3、增加为三层电梯控制器

二、系统设计(包括设计思路、总体框图、分块设计)

设计思路:

直接做三层的电梯,用点阵显示楼层。运用有限状态机,按电梯所在的状态进行讨论。

状态有:stopon1(电梯停在1层)、dooropen(开门),doorclose (关门),doorwait1(开门等待第1秒),doorwait2(开门等待第2秒),up(上升),down(下降),stop(停止)

总体框图:

分块设计:

没有用分块设计,只是用了多个进程。

三、波形分析:

起初有个三楼内部停楼请求,电梯开始上升,uplight亮,停在三楼,uplight灭,doorlight亮,保持开门3秒后关门,doorlight灭。接着先后收到一个二楼外部上升请求和一个一楼外部上升请求,电梯开始下降,downlight亮,但电梯没有停在二楼而是直接下到一楼,downlight灭,doorlight亮,保持开门3秒后关门,doorlight灭,接着再开始上升,uplight 亮,上升到二楼,uplight灭,doorlight亮,保持开门3秒后关门。

这完全符合现实中电梯运行的方式。

四、源程序(要有注释)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY dianti IS

PORT(clk:IN STD_LOGIC; --50M时钟信号

reset:IN STD_LOGIC;--重置

f1upbutton:IN STD_LOGIC;--一楼外部上升请求

f2upbutton:IN STD_LOGIC;--二楼外部上升请求

f2dnbutton:IN STD_LOGIC;--二楼外部下降请求

f3dnbutton:IN STD_LOGIC;--三楼外部下降请求

stop1button,stop2button,stop3button:IN STD_LOGIC;--内部停站请求

uplight:OUT STD_LOGIC;--向上运行指示灯

downlight:OUT STD_LOGIC;--向下运行指示灯

doorlight:OUT STD_LOGIC;--开门关门指示灯灯亮表示开门灯灭表示关门

row:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--点阵行

col:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));--点阵列

END dianti;

ARCHITECTURE a OF dianti IS

TYPE lift_state IS

(stopon1,dooropen,doorclose,doorwait1,doorwait2,up,down,stop );--有限状态机

SIGNAL nowlift,nextlift :lift_state:=stopon1;

SIGNAL liftclk :STD_LOGIC;--1S电梯时钟信号

SIGNAL tmp :INTEGER RANGE 0 TO 49999999:=0; SIGNAL position:INTEGER RANGE 1 TO 3:=1;--电梯位置SIGNAL fuplight :STD_LOGIC_VECTOR(3 DOWNTO

1):="000";--外部上升请求按键指示灯

SIGNAL fdnlight :STD_LOGIC_VECTOR(3 DOWNTO

1):="000";--外部下降请求按键指示灯

SIGNAL stoplight: STD_LOGIC_VECTOR(3 DOWNTO

1):="000";--停站请求指示灯

SIGNAL udsig :STD_LOGIC:='0';--0表示上升过程,1表示下降过程

SIGNAL cnt:INTEGER RANGE 1 TO 5:=1;

SIGNAL tmp2:INTEGER RANGE 0 TO 6:=1;

SIGNAL po:INTEGER RANGE 1 TO 3:=1;

BEGIN

fenpin :PROCESS(clk,reset)

BEGIN

IF clk'EVENT AND clk='1' THEN

IF tmp=49999999 THEN tmp<=0;

ELSE tmp<=tmp+1; END IF;

IF tmp<25000000 THEN liftclk<='0';

ELSF liftclk<='1'; END IF; END IF;

END PROCESS fenpin;

p1 :PROCESS(reset,liftclk)

BEGIN

IF reset='1' THEN

nowlift<=stopon1; po<=1;

ElSIF liftclk'EVENT AND liftclk='1' THEN

IF nowlift=up THEN

IF position=1 THEN po<=2;

ELSIF position=2 THEN po<=3; END IF;

ELSIF nowlift=down THEN

IF position=2 THEN po<=1;

ELSIF position=3 THEN po<=2;

END IF; END IF; nowlift<=nextlift;

END IF;

END PROCESS p1;

p2:PROCESS(clk,reset,nowlift,position,f1upbutton,f2dnbutton,f 2upbutton,f3dnbutton,stop1button,stop2button,stop

3button,fdnlight,fuplight,stoplight)

BEGIN

IF clk'EVENT AND clk='1' THEN

IF f1upbutton='1' THEN fuplight(1)<='1';END IF;

IF f2upbutton='1' THEN fuplight(2)<='1';END IF;

IF f2dnbutton='1' THEN fdnlight(2)<='1';END IF;

IF f3dnbutton='1' THEN fdnlight(3)<='1';END IF;

IF stop1button='1' THEN stoplight(1)<='1';END IF;

IF stop2button='1' THEN stoplight(2)<='1';END IF;

IF stop3button='1' THEN stoplight(3)<='1';END IF;

CASE nowlift IS

WHEN stopon1=>

fuplight<="000";fdnlight<="000";stoplight<="000";

doorlight<='0';uplight<='0';downlight<='0';

udsig<='0';position<=1;tmp2<=1;

nextlift<=doorclose;

WHEN doorwait1=>nextlift<=doorwait2;

WHEN doorwait2=> nextlift<=doorclose;

WHEN doorclose=>doorlight<='0';

IF udsig='0' THEN

IF position=3 THEN

IF stoplight="000" AND fuplight="000" AND

fdnlight="000" THEN nextlift<=doorclose; ELSIF stoplight(3)='1' OR fdnlight(3)='1' THEN

nextlift<=stop;

ELSE nextlift<=down;

END IF;tmp2<=3;END IF;

IF position=2 THEN

IF stoplight="000" AND fuplight="000"AND fdnlight="000"THEN nextlift<=doorclose;

ELSIF stoplight(2)='1' OR fuplight(2)='1' THEN nextlift<=stop;

ELSIF stoplight(3)='1' OR fdnlight(3)='1' THEN nextlift<=up;

ELSIF fdnlight(2)='1' THEN nextlift<=stop;

ELSIF stoplight(1)='1'OR fuplight(1)='1' THEN nextlift<=down;

END IF; tmp2<=2;END IF;

IF position=1 THEN

IF stoplight="000" AND fuplight="000" AND fdnlight="000"

THEN nextlift<=doorclose;

ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=stop;

ELSE nextlift<=up; END IF;tmp2<=1;END IF;END IF;

IF udsig='1' THEN

IF position=3 THEN

IF stoplight="000" AND fuplight="000" AND fdnlight="000"

THEN nextlift<=doorclose;

ELSIF stoplight(3)='1' OR fdnlight(3)='1' THEN nextlift<=stop;

ELSE nextlift<=down; END IF; tmp2<=3;END IF;

IF position=2 THEN

IF stoplight="000" AND fuplight="000"AND fdnlight="000"

THEN nextlift<=doorclose;

ELSIF stoplight(2)='1' OR fdnlight(2)='1' THEN nextlift<=stop;

ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=down;

ELSIF fuplight(2)='1' THEN nextlift<=stop;

ELSIF stoplight(3)='1'OR fdnlight(3)='1' THEN nextlift<=up; END IF; tmp2<=2;END IF;

IF position=1 THEN

IF stoplight="000" AND fuplight="000" AND fdnlight="000" THEN nextlift<=doorclose;

ELSIF stoplight(1)='1' OR fuplight(1)='1' THEN nextlift<=stop;

ELSE nextlift<=up;

END IF;tmp2<=1;END IF;END IF;

WHEN up =>udsig<='0';uplight<='1';position<=po;

IF position=1 THEN

IF (stoplight(2)='1' OR fuplight(2)='1')THEN nextlift<=stop;

ELSIF(stoplight(3)='1'OR fdnlight(3)='1')THEN nextlift<=up;

ELSIF fdnlight(2)='1'THEN nextlift<=stop;

ELSIF(stoplight(1)='1'ORfuplight(1)='1')THEN

nextlift<=down;

END IF; tmp2<=4; END IF;

IF position=2 THEN

IF (stoplight(3)='1' OR fdnlight(3)='1')THEN nextlift<=stop;

ELSE nextlift<=down;

END IF; tmp2<=6; END IF;

WHEN down=>udsig<='1'; downlight<='1'; position<=po; IF position=3 THEN

IF (stoplight(2)='1' OR fdnlight(2)='1')THEN nextlift<=stop;

ELSIF(stoplight(1)='1'OR fuplight(1)='1')THEN nextlift<=down;

ELSIF ( fuplight(2)='1')THEN nextlift<=stop;

ELSIF(stoplight(3)='1'OR fdnlight(3)='1')THEN

nextlift<=up; END IF;tmp2<=0;END IF;

IF position=2 THEN

IF (stoplight(1)='1' OR fuplight(1)='1')THEN nextlift<=stop;

ELSE nextlift<=up;

END IF;tmp2<=5;END IF;

WHEN stop=> uplight<='0';downlight<='0';

nextlift<=dooropen;

position<=po;

IF position=1 THEN tmp2<=1;END IF;

IF position=2 THEN tmp2<=2; END IF;

IF position=3 THEN tmp2<=3; END IF;

WHEN dooropen=>

IF udsig='0' THEN

IF position=1 THEN fuplight(1)<='0';stoplight(1)<='0'; ELSIF position=3 THEN

stoplight(3)<='0';fdnlight(3)<='0';

ELSIF position=2 THEN

IF stoplight(3)='0'AND fdnlight(3)='0'AND fuplight(2)='0' THEN fdnlight(2)<='0';

END IF; fuplight(2)<='0';stoplight(2)<='0';END IF;

ELSIF udsig='1' THEN

IF position=1 THEN fuplight(1)<='0';stoplight(1)<='0'

ELSIF position=3 THEN

stoplight(3)<='0';fdnlight(3)<='0';

ELSIF position=2 THEN

IF stoplight(1)='0'AND fuplight(1)='0'AND fdnlight(2)='0' THEN

fuplight(2)<='0';END IF;

fdnlight(2)<='0';stoplight(2)<='0';

END IF;END IF;

doorlight<='1';nextlift<=doorwait1;

END CASE;

END IF;

END PROCESS p2;

P5:PROCESS(tmp,clk) --控制点阵的进程BEGIN

IF clk'EVENT AND clk='1' THEN --上升沿有效

IF cnt=5 THEN cnt<=1;

ELSE cnt<=cnt+1;END IF;

CASE TMP2 IS

WHEN 1=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="10000000";

WHEN

2=>ROW<="10111111”;COL<="10000000";

WHEN

3=>ROW<="11011111";COL<="10000000";

WHEN

4=>ROW<="11101111";COL<="10000000";

WHEN 5=>ROW<="11110111"

COL<="10000000";

--1

END CASE;

WHEN 2=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="11100000";

WHEN

2=>ROW<="10111111";COL<="10000000";

WHEN

3=>ROW<="11011111";COL<="11100000";

WHEN

4=>ROW<="11101111";COL<="00100000";

WHEN

5=>ROW<="11110111";COL<="11100000";

--2

END CASE;

WHEN 3=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="11100000";

WHEN

2=>ROW<="10111111";COL<="10000000";

WHEN

3=>ROW<="11011111";COL<="11100000";

WHEN

4=>ROW<="11101111";COL<="10000000";

WHEN

5=>ROW<="11110111";COL<="11100000";

--3

END CASE;

WHEN 4=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="10001100";

WHEN

2=>ROW<="10111111";COL<="10001100";

WHEN

3=>ROW<="11011111";COL<="10000100";

4=>ROW<="11101111";COL<="10000100";

WHEN

5=>ROW<="11110111";COL<="10000100";

--shang1

END CASE;

WHEN 5=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="11100100";

WHEN

2=>ROW<="10111111";COL<="10000100";

WHEN

3=>ROW<="11011111";COL<="11100110";

WHEN

4=>ROW<="11101111";COL<="00100110";

WHEN

5=>ROW<="11110111";COL<="11100100";

--xia2

END CASE;

WHEN 6=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="11101100";

2=>ROW<="10111111";COL<="10001100";

WHEN

3=>ROW<="11011111";COL<="11100100";

WHEN

4=>ROW<="11101111";COL<="00100100";

WHEN

5=>ROW<="11110111";COL<="11100100";

--shang2

END CASE;

WHEN 0=> CASE cnt IS

WHEN

1=>ROW<="01111111";COL<="11100100";

WHEN

2=>ROW<="10111111";COL<="10000100";

WHEN

3=>ROW<="11011111";COL<="11100110";

WHEN

4=>ROW<="11101111";COL<="10000110";

WHEN

5=>ROW<="11110111";COL<="11100100";

--xia3

END CASE;

END CASE;

END IF;

END PROCESS;

END a;

五、功能说明

该电梯系统实现的是三层点阵显示电梯系统。可以同时响应多个请求,并符合现实电梯升降过程。点阵显示所在楼层和上升下降过程。LED灯显示开门、关门和上升下降。因是三层电梯,所以外部请求按键有一楼上升、二楼上升、二楼下降、三楼下降,内部停楼请求按键有一楼,二楼,三楼。每个状态保持1秒,门开后将保持2秒。基本实现电梯的各种功能。

六、元器件清单及资源利用情况

doorlight LED5

downlight LED6

uplight LED7

f1upbutton BTN7

f2dnbutton BTN6

f2upbutton BTN5

f3dnbutton BTN4

stop1button BTN3

stop2button BTN2

stop3button BTN1

reset BTN0

Total logic elements 187/1270(15%)

Total pins 28/116(24%)

七、故障及问题分析

1、编译常出现Can't resolve multiple constant drivers,这叫“重赋用”,是由于在两个进程里都存在对一个变量赋值,自己写代码认为它们不会同时起作用,但在编译时会考虑所有情况,导致报错。

2、点阵显示不出自己所设计的图形,总有几个点不亮。是由于分频系数设置不当,在人眼看来有些点没有亮。

八、总结和结论

因为是从上个学期开始接触VHDL,并且只是做了一些基础的实验,在加上漫长的暑假后,导致这学期一开始,自己把VHDL的知识都快忘光了,在自己又重新看了几遍书之后,才记起VHDL的知识。尽管如此,在初期面对自己所选题目时,还是一片茫然,代码的编写还是挫折重重,屡屡犯错。

这次的数电实验让我收获颇多。由于三层电梯情况较为复杂,不同于以前所遇到的输出仅与输入有关,需要运用有限状态机的方法,才能把所有情况都考虑到,不会漏掉哪种

情况。为了完成电梯代码的编写,自己去图书馆借了几本相关书看,也上过网搜资料,请假过同学。这是一个艰辛的代码编写过程,但我收获的不仅是完成数电实验的题目,还从中学到了许多VHDL的相关知识和加深了自己本掌握知识的印象。

我也觉得这次数电实验自己完成的不是很理想。虽然有点阵显示楼层,但未考虑到现实中电梯内是可以看见停楼请求,自己没有设置LED灯来表示停楼请求指示灯。

总的来说,我还是比较满意这次数电实验的,也从中收获很多。虽然有些地方不是很理想,但毕竟是自己独立自主完成,1个月艰辛付出的回报。

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

PLC三层电梯实验报告

题目:三层电梯实验 一、实验目的 1、熟练地掌握PLC的编程和程序调试方法。 2、进一步熟悉PLC的I/O连接。 3、熟悉变频器的使用。 二、实验设备 名称类型数量名称类型数量PLC DVP20SX211 R 1 以太网模块DVPEN01-SL 1 网络模块DVPDNET-SL 1 远程I/O模块DVP16SP11T 1 台达VFD变频器VFD002EL21 A 1 台达RTU-DNET RTU-DNET 1 台达电源DVPPS02 1 三层电梯模型 1 人机界面DOP-10E615 1 计算机 1 三、实验内容 电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯箱内设有楼层内选按钮,用以选择需停靠的楼层。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。

PLC 主机输入输出如表6-1所示。 表6-1 plc主机输入输出 名称输入点名称输出点箱内三层呼叫X0/M50 方向上Y0 箱内二层呼叫X1/M51 方向下Y1 箱内一层呼叫X2/M52 箱内三层呼叫指示Y2 手动开门X3/M53 箱内二层呼叫指示Y3 手动关门X4/M54 箱内一层呼叫指示Y4 一层上呼叫X5/M55 开门指示Y5 三层下呼叫X6/M56 二层上呼叫X7/M57 远程模块输入输出如表6-2所示。 表6-2 DVP-16SP输入输出 名称输入点名称输出点二层下呼叫X0/M110 关门指示Y0/M70 一层到位限位开关X1/M111 一层呼叫指示Y1/M71 二层到位限位开关X2/M112 三层呼叫指示Y2/M72 三层到位限位开关X3/M113 二层上呼叫指示Y3/M73 上限位X4 二层下呼叫指示Y4/M74 下限位X5 蜂鸣器Y5 X6 正转Y6/M76 X7 反转Y7/M77 电梯模型原理图如图6-1所示。 图6-1 电梯模型原理图

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

三层电梯控制设计

综合实训设计报告信息工程与自动化学院自动化系 设计题目:基于PLC的三层电梯控制系统设计 姓名: 学号: 专业:测控121班 指导老师: 二0一五年七月

引言 随着城市建设的不断发展,城市迅速的崛起,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。它是采用电力拖动方式,将载有乘客或货物的轿厢,运行于垂直方向的两根刚性导轨之间,运送乘客和货物的固定式提升设备。所以,电梯是为高层建筑运输服务的设备,它具有运送速度快、安全可靠、操作简便的优点。但传统的电梯控制系统主要采用继电器--接触器进行控制,其缺点是触点多,故障率高、可靠性差、维修工作量大等,而采用 PLC组成的控制系统可以很好地解决上述问题,使电梯运行更加安全、方便、舒适。 目前电梯的控制普遍采用了两种方式,一是采用微机作为信号控制单元,完成电梯信号的采集、运行状态和功能的设定,实现电梯的自动调度和集选运行功能,拖动控制则由变频器来完成;第二种控制方式采用可编程控制器取代微机实现信号控制。从控制方式和性能上来说,这两种方法并没有太大的区别,但PLC 可靠性高,程序设计方便灵活。 1.电梯的PLC控制方式 PLC是一种用于工业自动给控制的专用计算机。实质上属于计算机控制方式。PLC与普通微机一样,能通用或专用CPU作为字处理器,实现通道(字)的运算和数据存储,另外还有位处理器(布尔处理器),进行点(位)运算与控制。PLC控制一般具有可靠性高,易操作、维修和编程简单、灵活性强等特点。 1.1 PLC控制系统的可靠性 对可维修的产品,可靠性包括产品的有效性和可维修性。PLC不需要大量的活动元件和接线电子元件,它的接线大大减少,与此同时,系统的维修简单,维修时间短。PLC采用了一系列可靠性设计的方法进行设计,例如,冗余设计,断电保护,故障诊断和信息保护及恢复等,提高了MTBF,降低了MTTR,使可靠性提高。PLC是为工业生产过程控制而专门设计的控制装置,它具有比通用计算机控制更简单的编程语言,而为工业恶劣操作环境设计的硬件使可靠性大大提高。在PLC的硬件方面,采用了一系列提高可靠性的措施。例如,采用可靠性的元件,采用先进的工艺制造流水线制造,对于干扰的屏蔽、隔离和滤波等,对电源的断

三层电梯控制器实验报告

大连理工大学本科实验报告题目:三层电梯控制器 课程名称:数字电路与系统设计 学院(系):电子信息与电气工程学部 专业: 班级: 学生姓名: 学号: 完成日期:2012-7-5 成绩: 2012 年7 月05 日

题目:三层电梯控制器 1 设计要求 随着科技的发展,电梯的使用越来越普遍,在商业大厦、宾馆酒店、办公场所、居民住宅中广泛使用。并且随着生活水平的提高,人们对电梯功能的要求也不断提高,相应地其控制方式也在不停地方生变化。对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。 电梯的微机化控制主要由以下几种形式:1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制;6.人工智能控制。目前FPGA已广泛应用与电子设计与控制的各个方面。本设计就是使用一片FPGA来实现对三层电梯的控制。 电梯控制器是控制电梯按顾客的要求自动上下的装置。三层电梯控制器的功能如下: (1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。 (2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置。 (3)电梯每秒升(降)一层楼。 (4)电梯到达有停站请求的楼层后,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停在当前层。 (5)能记忆电梯内外的所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。 (6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如更高层有下楼请求,则直接升到有下楼请求的最高层接客,然后便进入下降模式。当电梯处于下降模式时与上升模式相反。 (7)电梯初始状态为一层开门。 (8)当收到报警信号时,电梯停止工作,电梯维持当前状态不动。报警信号解除时,电梯继续工作。 (9)电梯到达指定楼层时有声音提示。 2 设计分析及系统方案设计 电梯控制器的设计方法有很多,本文采用状态机来描述,其优点是思路清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个以秒为周期的时钟来触发状态机。根

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

plc实验报告之三层电梯的运行

电气控制综合实验报告 项目:三层电梯PLC控制系统 班级:电132 姓名: 学号: 联系方式: 学期:2015-2016-2 第一章实验过程记录以及调试步骤及方法 1.1实验过程记录 1.好好复习老师之前讲的一些基本的电路,例如轿厢内锁存电路,门厅锁存电路等,将这些基本的电路搞懂之后,就可以开始设计接下来的电路啦。

2.认真查看电梯要求的7大原则,开始设计梯形图,并用GX Works2进行仿真,并及时发现问题,加以修改。 3.在GX Works仿真都没有问题后,去实验室,用组态软件再进行仿真,看电梯能否自如顺畅的运行,因为开门是通过延时来实现的,组态仿真,看之前设置好的定时器定时的时间是否能让电梯顺利的关门开门,若不行,修改定时器定时的时间,知道符合要求为止。这个可分为一下几小部分: a.打开计算机; b.打开GX Works2软件,将自己编写好的程序拷入电脑并打开; c.将PLC调为由RUN拨到STOP状态,然后将程序写入PLC; d.将PLC调为RUN(即运行状态)状态,然后打开组态; e.运行组态,点击启动; f.开始根据组态运行的结果来调试,找出错误并修改程序,直至完成设计要 求; 1.2实验调试步骤及方法 1.调试软件GX Works2介绍 GX Work2是三菱电机推出的三菱综合PLC编程软件,是专用于PLC设计、调试、维护的编程工具。与传统的GX Developer 软件相比,提高了功能及操作性能,变得更加容易使用。梯形图绘制时更加的简单明了,例如输入X000,只要打X000,然后按回车键就好了,输出Y001,只要打Y001,然后按回车键就好了,输入特别的简单,很方便。例如下图1.2.1:

VHDL实验报告论文

硬件描述语言期末实验报告 题目:硬件描述语言实现秒表功能 姓名xxxx 学号xxxxxxxxxx 年级专业xxxxxxxxxxxxx 指导教师xxxx 2012年6月20日

河北大学本科生VHDL硬件实验论文(设计) 硬件描述语言实现秒表功能 摘要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外整个秒表还需有一个启动信号,暂停信号和一个清零信号,以便秒表能随意停止及启动。 关键词:VHDL语言数字秒表时序仿真图

目录 一、实验目的 (1) 二、硬件要求 (1) 三、引脚说明 (1) 四、模块介绍 (2) 4.1.计数器(六、十进制) (2) 4.2.蜂鸣器 (2) 4.3.译码器 (3) 4.4.控制器 (4) 五、整体连接图 (5) 六、实验结果 (6) 七、实验总结 (6) 八、谢辞 (7) 九、附录 (7)

一实验目的 学习使用VHDL语言,以及EDA芯片的下载仿真。 二硬件要求 (1)主芯片EPF10K10LC84-4。 (2)蜂鸣器。 (3)8位八段扫描共阴极数码显示管。 (4)二个按键(暂停,开关)。 三引脚说明 3.1引脚设置 3.2信号说明 signal q:std_logic_vector(3 downto 0); --q是用于分频的信号。 signal state: std_logic_vector(3 downto 0); --state为状态信号,state为1时为暂停记录状态,为0时为正常显示计数状态。signal led: std_logic_vector(3 downto 0); --led为数码管扫描信号,通过对d1~d6的选择使数码管发光。

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

plc实验报告之三层电梯的运行

电气控制综合实验报告 PLC控制系统目:三层电梯项 132 电班级: 名:姓 学号:联系 方式: 2015-2016-2 期:学 实验过程记录以及调试步骤及方法 第一章实验过程记录1.好好复习老师之前讲的一些基本的电路,例如轿 厢内锁存电路,门厅锁存电路等,将这些基本的电路搞懂之后,就可以开始设计接下来的电路啦。 2.认真查看电梯要求的7大原则,开始设计梯形图,并用GX Works2进行仿真,并及时发现问题,加以修改。 3.在GX Works仿真都没有问题后,去实验室,用组态软件再进行仿真, 看电梯能否自如顺畅的运行,因为开门是通过延时来实现的,组态仿真,看之前设置好的定时器定时的时间是否能让电梯顺利的关门开门,若不行,修改定时器定时的时间,知道符合要求为止。这个可分为一下几小部分:打开计算机;a. 软件,将自己编写好的程序拷入电脑并打开;打开GX Works2b. ;PLC拨到调为由RUNSTOP状态,然后将程序写入c.将PLC (即运行状态)状态,然后打开组态;RUNd.将PLC调为 运行组态,点击启动;e.

开始根据组态运行的结果来调试,找出错误并修改程序,直至完成设计要求;f. 实验调试步骤及方法介绍 1.调试软件GX Works2 编程软件,是专用于PLCPLC设计、调试、GX Work2是三菱电机推出的三菱综合维护的编程工具。与传统的GX Developer 软件相比,提高了功能及操作性能,变得更加容易使用。梯形图绘制时更加的简单明了,例如输入X000,只要打X000,然后按回车键就好了,输出Y001,只要打Y001,然后按回车键就好了,输入特别的简单,很方便。例如下图: 图 GX Works2新建工程后界面 2.程序的调试 用软件GX Works2软件进行调试,是很有必要的一部分,它能帮你发现一些画梯PLC形图时出现的问题,还有一些意想不到的问题,熟练掌握调试方法对我们以后 的编程很有意义。 调试步骤3. 软件中,输入好之后,点将自己设计好的梯形图一行一行的输入到GX Worksa.击菜单栏中的“调试”,如下图: 图调试下拉菜单 b.点击模拟开始,可进行软件调试,如图: 图开始加载调试图 等到加载到百分之百就可以开始调试了。 c.在梯形图上面右击,出现下拉菜单,如图:

vhdl实验报告

福建农林大学计算机与信息学院 信息工程类 实验报告 2013年11 月13 日

实验项目列表

福建农林大学计算机与信息学院信息工程类实验报告 系:电子信息工程系专业:电子信息工程年级: 2010级 姓名:学号:实验课程: VHDL数字系统设计 实验室号:__ 田C407 实验设备号: 07 实验时间: 11.12 指导教师签字:成绩: 实验一数控分频器的设计 1.实验目的和要求 学习数控分频器的设计、分析和测试方法。 2.实验原理 信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。 数控分频器的仿真波形如图1所示:输入不同的CLK频率和预置值D,给出如图1的时序波形。 100.0μs200.0μs300.0μs400.0μs 图1 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns) 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机一台 GW48 EDA实验开发系统一套 电源线一根 十芯JTAG口线一根 USB下载线一根 USB下载器一个 示波器 实验的软件环境是: Quartus II 9.0软件

4.操作方法与实验步骤 (1)创建工程,并命名位test。 (2)打开QuartusII,建立VHDL文件,并输入设计程序。保存为DVF. (3)选择目标器件。Acex1k—EP1K100QC208-3。 (4)启动编译。 (5)建立仿真波形图。 (6)仿真测试和波形分析。 (7)引脚锁定编译。 (8)编程下载。 (9)硬件测试 5.实验内容及实验数据记录 在实验系统上硬件验证例5-20的功能。可选实验电路模式1(第一章图4);键2/键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。 6.实验数据处理与分析 1)实验代码 【例1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF DVF IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = "11111111" THEN CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; --否则继续作加1计数 FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2; --如果溢出标志信号FULL为高电平,D触发器输出取反

VHDL实验报告一2选1多路选择器

实验一 实验目的: 熟悉quartus的vhdl文本设计流程全过程,学习简单的组合电路的设计,多层次的电路设计,仿真和硬件测试 二、实验内容 内容(一)用vhdl语言设计2选1多路选择器 参考例3-1程序设计如下: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one 全程编译后软件提示0错误,3警告,可以继续下面仿真操作。 程序分析: 这是一个2选1多路选择器,a和b分别为两个数字输入端的端口名,s为通道选择控制信号输入端的端口名,y为输出端的端口名。 时序仿真及分析: 时序仿真输入图: 时序仿真输出图: 时序分析: 由上面两图可以得知:当s=0时,y口输出a,当s=1时,y口输出b 下载和硬件测试: 引脚锁定图: 程序下载完成后,选择实验电路模式5,通过短路帽选择clock0接256Hz 信号,clock2接8Hz信号。通过键一控制s,当键一进行切换时,明显能听到扬声器发出两种不同音调的声音。 实验内容(二)双二选一多路选择器设计

程序设计: library ieee; use mux21a is port (a,b,s:in bit; y: out bit); end entity mux21a; architecture one of mux21a is begin y<=a when s='0' else b; end architecture one; entity muxk is port (a1,a2,a3,s0,s1:in bit; outy:out bit); end entity muxk; architecture bhv of muxk is component mux21a port (a,b,s:in bit; y:out bit); end component; signal tmp: bit; begin u1:mux21a port map(a=>a2,b=>a3,s=>s0,y=>tmp); u2:mux21a port map(a=>a1,b=>tmp,s=>s1,y=>outy); end architecture bhv; 全程编译后软件提示0错误,2警告 程序分析: 这是一个双2选1多路选择器,a1、a2和a3分别为两个数字输入端的端口名,s0、s1为通道选择控制信号输入端的端口名,outy为输出端的端口名。实体mux21a是一个2选一选通电路,实体muxk是元件的例化,其作用是将两个mux21a组合成一个3选1多路选择器。 时序仿真及分析: 时序仿真输入图 时序仿真输出图 时序分析: 从仿真出来的结果,我们不难发现,s0和s1做为a1、a2、a3的选通控制信号。当s0=0.、s1=0时,outy输出a1;当s0=0.、s1=1时,outy输出a2;当s0=1.、s1=0时,outy输出a1;当s1=1.、s2=1时,outy输出a3; 下载和硬件测试: 引脚锁定图

PLC三层电梯实验报告

题目:三层电梯实验 一、实验目得 1、熟练地掌握PLC得编程与程序调试方法、 2、进一步熟悉PLC得I/O连接、 3、熟悉变频器得使用。 名称类型数量名称类型数量 PLC DVP20S X211R 1 以太网模块DVPEN01- SL 1 网络模块 DVPDNET —SL 1 远程I/O模块DVP16SP11 T 1 台达VFD变频器VFD002E L21A 1 台达RTU-DNE TRTU—DNET 1 台达电源DVPPS02 1 三层电梯模型 1 人机界面DOP-1 0E615 1 计算机 1 电梯由安装在各楼层厅门口得上升与下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯箱内设有楼层内选按钮,用以选择需停靠得楼层、电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向得呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。 PLC主机输入输出如表6—1所示。 表6—1 plc主机输入输出 名称输入点名称输出点箱内三层呼叫X0/M 50 方向上Y0 箱内二层呼叫X1/M 51 方向下Y1 箱内一层呼叫X2/M 52 箱内三层呼叫指示Y2手动开门X3/M53 箱内二层呼叫指示Y3 手动关门X4/M 54 箱内一层呼叫指示Y4 一层上呼叫X5/M5 5 开门指示Y5

三层下呼叫X 6/M56 二层上呼叫X7 /M57 名称输入点名称输出点二层下呼叫X0/M110 关门指示Y0/M70 一层到位限位开关X1/ 一层呼叫指示Y1/M71 M111 三层呼叫指示Y2/M72 二层到位限位开关X2/M1 12 二层上呼叫指示Y3/M73 三层到位限位开关X3/M 113 上限位X4二层下呼叫指示Y4/M7 4下限位X5蜂鸣器Y5 X6 正转Y6/M76 X7 反转Y7/M7 7电梯模型原理图如图6-1所示。 图6-1电梯模型原理图 四、实验步骤 1.设置变频器参数 在变频器操作面板上按MODE进入参数设定、按ENTER与上下选择键选择参数码与参数设定值。按表6-3进行参数设置。 参数码参数功能设定值 01、00 最高操作频率设定50 01、01 点击额定频率设定50 01.09第一加速时间设定0、1 01.10 第一减速时间设定0。1 02。00 第一频率指令来源设定0 02.01 运转指令来源设定 1 00。03 开机预设显示画面 1 2。按接PLC主机得X0~X7,Y0~Y5接PLC主机得Y0~Y5,X10~X15接远程模块得X0~X5,Y10~Y15接远程模块得Y0~Y5,5V电源得GND接上DC24V得GND,COM接PLC主机得C0。 PLC主机与远程模块得S/S接24V电源正极Z1,PLC主机得C0、C1、远程模块得C0接DC24V电源负原理图进行接线

VHDL实验报告

VHDL实验报告 5080309563 李斌 实验三.4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 [设计思路及步骤]: 一.需求: 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高位,LEDR0为低位。 二.变量解释: 4位可逆计数器: 1.clk为时钟输入,clkout为分频后的时钟,cnt为分频计数,ctr为SW17模式 控制,rst为KEY3异步复位开关,tem为输出结果的中间变量; 2.本实验的时钟输入为50MHz,定义为clk,为此设计时需要将其分频为50Hz, 需225分频,因此,代码中,需要有一个cnt作为一个225计数器,同时,定义 分频后的时钟为clkout; 3.建立process,检测key是否为0,为0则复位。否则,检测clkout,触发上升 沿则检测模式控制,对tem加1或减1,同时应检测是否达到最大或最小值, 达到最值则直接返回到最初值,否则继续操作; 4.最后,转换tem的值为相应的4位二进制数,并于LED上反映出来。 四位可逆二进制代码-格雷码转换器: 1.检测模式,进行相应的操作; 2.ctr为0则格雷码转换成二进制码;ctr为1则为二进制码转换为格雷码 [源代码]: 1)4位可逆计数器: library ieee; use ieee.std_logic_1164.all; entity cnt is

PLC三层电梯课程设计报告书

中国石油大学胜利学院 电气控制及可编程控制技术 综合实验报告 必做题目:三层电梯自动控制 选做题目:四节传送带控制 学生:马金帅 学号: 201108011225 系别:机械与电气工程系 专业年级:2011级电气工程及其自动化本科2班 指导教师:王东起 2014年6月24日

一、设计任务与要求 1、要求:楼层呼叫按钮,一层一个:上。二层两个:上下。三层一个:下。桥箱呼叫按钮三个:一层,二层,三层。 到达指定楼层电梯停留10秒。 电梯在某一层停留时,有楼层显示。 20秒无人呼叫,电梯自动停留在1层。当电梯上升途中,任何反方向的的下降呼叫信号无效,当电梯下降途中,任何反方向的上升呼叫信号无效。 2、(二)四段传送带控制 (1)PLC上电后,按下启动按钮,四段传送带同时启动,四盏指示灯同时亮;(2)按下停止按钮,四段传送带同时停止,四盏指示灯同时灭 (3)按下四号传送带故障按钮,四号立即停止,四号指示灯立即灭,三号二号一号间隔五秒依次停;其 (4)按下三号故障按钮,四号三号立即停止,二号一号间隔五秒依次停止;(5)按下二号故障按钮,四号三号二号立即停止,一号五秒后停止; (6)当一号故障时,四号三号二号一号都立即停止。。 二、方案设计与论证 此次课程设计是电气控制与PLC原理及应用课程的实际应用,两个设计任务的具体要求中都运用了课程中所学的基本电路:起保停、自锁、互锁、单脉冲电路等,通过各个基本电路的连接,最终能够满足基本的要求,再通过对基本电路的拓展,就可以实现部分设计的附加功能。三层电梯自动控制设计共有14个输入信号,分别有楼层呼叫按钮,一层一个:上。二层两个:上下。三层一个:下。桥箱呼叫按钮三个:一层,二层,三层,等控制开关和按钮。16个输出信号,各层的指示灯和上下显示灯等。到达指定楼层电梯停留10秒。电梯在某一层停留时,有楼层显示。20秒无人呼叫,电梯自动停留在1层。当电梯上升途中,任何反方向的下降呼叫信号无效,当电梯下降途中,任何反方向的上升呼叫信号无效 三、设计方案 设计一:三层电梯自动控制I/O分配表

VHDL实验报告汇总

实验一4选一多路选择器 一:实验目的及实验环境 目的 1、熟悉ModelSim SE 6.5c的verilog 的文本设计流程,组合电路的设计、仿真和测试。 2、用verilog语言完成设计4选一多路选择器。 3、熟悉文本输入及仿真步骤。 4、初步了解可编程器件设计的全过程。 环境 1、P C 机一台 2、M odelSim SE 6.5c 二. 实验内容 1、用verilog语言完成设计4选一多路选择器, 2、用结构建模及数据流建模两种方法实现。 3、对于所设计的程序进行编译,检查纠错。 4、程序完善之后进行程序的仿真并进行波形的记录与分析 三.实验步骤 1、建立工程 2、添加文件到工程 3、编译文件 4、查看编译后的设计单元 5、将信号加入波形窗口 6、运行仿真 四.运行结果

五.总结 本次实验让我更加的熟悉modelsim使用方法,以及使用时应该注意的问题。在试验中也学习到了Verilog语法。在实验中我们应该注意verilog的格式要求,在用编程语言编程的时候,要自习留意语法标准,整理好逻辑思维的同时保证格式的正确。否则就会浪费大量的时间来完成实验。试验开始到结束这一过程中,我遇到了很多困难,后来都在同学的提醒和帮助下克服了。相信有了这次对这个语言和这个软件的接触,我们都有了更加深入的理解。 六.源代码 module mux41(a,b,c,d,s1,s0,out); input[1:0] a,b,c,d; input s1,s0; output[1:0] out; reg[1:0] out; always @(a or b or c or d or s 1 or s0) begin :mux41 case({s1,s0}) 2'b00: out<=a; 2'b01: out<=b; 2'b10: out<=c; 2'b11: out<=d; default: out=a; endcase end endmodule module sti; reg[1:0] a,b,c,d; reg s0,s1; wire[1:0] out; mux41 dtg(a,b,c,d,s0,s1,out); initial begin a=3'd0;b=3'd1;c=3'd2;d=3'd3; s0=0;s1=0; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=0;s1=1; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=1;s1=0; #100 a=3'd0;b=3'd1;c=3'd2;d= 3'd3;s0=1;s1=1; end endmodule

PLC三层电梯实验报告

PLC三层电梯实验报告

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

题目:三层电梯实验 一、实验目的 1、熟练地掌握PLC的编程和程序调试方法。 2、进一步熟悉PLC的I/O连接。 3、熟悉变频器的使用。 二、实验设备 名称类型数量名称类型数量PLC DVP20SX211 R 1 以太网模块DVPEN01-SL 1 网络模块DVPDNET-SL 1 远程I/O模块DVP16SP11T 1 台达VFD变频器VFD002EL21 A 1 台达RTU-DNET RTU-DNET 1 台达电源DVPPS02 1 三层电梯模型 1 人机界面DOP-10E615 1 计算机 1 三、实验内容 电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯箱内设有楼层内选按钮,用以选择需停靠的楼层。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。

PLC 主机输入输出如表6-1所示。 表6-1 plc主机输入输出 名称输入点名称输出点箱内三层呼叫X0/M50 方向上Y0 箱内二层呼叫X1/M51 方向下Y1 箱内一层呼叫X2/M52 箱内三层呼叫指示Y2 手动开门X3/M53 箱内二层呼叫指示Y3 手动关门X4/M54 箱内一层呼叫指示Y4 一层上呼叫X5/M55 开门指示Y5 三层下呼叫X6/M56 二层上呼叫X7/M57 远程模块输入输出如表6-2所示。 表6-2 DVP-16SP输入输出 名称输入点名称输出点二层下呼叫X0/M110 关门指示Y0/M70 一层到位限位开关X1/M111 一层呼叫指示Y1/M71 二层到位限位开关X2/M112 三层呼叫指示Y2/M72 三层到位限位开关X3/M113 二层上呼叫指示Y3/M73 上限位X4 二层下呼叫指示Y4/M74 下限位X5 蜂鸣器Y5 X6 正转Y6/M76 X7 反转Y7/M77 电梯模型原理图如图6-1所示。 图6-1 电梯模型原理图

相关文档
最新文档