常裕文档网    > 范文大全 > 公文范文 >

labview电梯程序【labview实例模拟电梯系统设计】

时间:2022-01-17 14:51:42  浏览次数:

实验名称:模拟电梯系统设计

组号:62 同组者:吕隆斐日期: 6.3

【一】设计目的

利用protues和labview模拟设计电梯控制系统,笼子内控制板(主机,labview)和各楼层控制板(从机,protues)实现主要功能:

(1)从机控制:在每个楼层控制板上按下升降键后,电梯能自动到达呼叫楼层(用电机转一定的距离模拟);

(2)主机控制:在电梯笼子内控制板上按下楼层数字键后,电梯能自动到达目的楼层;(用protues中的电机转一定的距离模拟)

(3)在每个楼层控制板上(从机)和笼子内控制板上(主机)都能实时显示电梯笼子的当前位子

(4)在主机按下指定按钮后,按钮对应的楼层的指示灯一直亮,直到电梯到达指定楼层,再灭。

(5)电机的转速可根据目标楼层和当前楼层的距离更改,距离越大,速度越快

附加功能:

LED滚动屏:滚动显示:模拟电梯系统设计(主机)3120403054_电信121_吕隆斐滚动屏内的字体可进行各种模式的转换

可以切换滚动屏上下、左右滚动,上下滚动可以更改从上(左)--下(右)。Labview LED显示:主机的楼层实时显示用LED,模拟出数码管效果

【二】实验主要仪器设备

一台安装LabVIEW 、Proteus、IN_VISA串口通讯协议驱动和虚拟串口软件

VSPD的PC 机;

【三】实验原理

利用labview和protues进行串口实时双机通信。

实验内容及说明

a. 实验步骤

labview实例模拟电梯系统设计

这是利用51芯片进行PROTUES仿真电梯系统中的从机,既每个楼层的控制面板,PTOTUES的仿真图和51程序都由我自己独立完成。

labview实例模拟电梯系统设计

这是用LABVIEW仿真的电梯主机部分,既电梯梯轿内的显示和控制面板,有三个部分组成:1、模拟数码管的LCD楼层实时显示模块(网上找的,作为一个子VI调用)。2、滚动屏显示模块(labview的书上看的,照着仿的,由于无法作为子VI调用,直接当成一个并行模块用)。3、电梯控制模块,由自己独立思考设计完成,按下电梯内按键,对应的按键灯亮,直到电梯到达指定楼层,灯灭。

labview实例模拟电梯系统设计

串口接收部分

这里就是用到了一个串口接收,在串口接收的控件外套一个条件结构,用于控制串口接收功能的开和关,在串口发送部分会用到。然后就是调用一个模拟数码管的LCD显示子VI,判断接收进来的数字,并进行相应的操作。

labview实例模拟电梯系统设计

滚动屏部分

这部分是照着书上仿的,主要是将输入的字符串转换为图片,再将图片的像素转换为一个二维矩阵,再通过这个二维矩阵输出给一个LED的数组,从而达到滚动屏显示的效果

labview实例模拟电梯系统设计

串口发送部分

设了三个顺序结构,第一个结构里用到事件结构,就相当于C编程中的中

断,按键按下后进入事件结构,响应程序,并关闭串口接收(注:在无数次的通讯失败中,我发现串口接收接收数据后会有一段时间的堵塞,会导致紧接着的发送不正常,所以我在这里先关掉串口接收功能),下一帧串口发送,下一帧,打开串口接收。

LED子VI:

labview实例模拟电梯系统设计

labview实例模拟电梯系统设计

这个子VI,我是直接从网上找的,看似简单,实际上比较复杂,嵌套着调

用了好几次的子VI,原理我不是很了解。

b. 实验结果(包括程序代码)

labview实例模拟电梯系统设计

labview实例模拟电梯系统设计

labview实例模拟电梯系统设计

labview实例模拟电梯系统设计

滚动屏内容字体加粗

labview实例模拟电梯系统设计

滚动屏内容字体倾斜

【四】实验总结与讨论

本课题的设计思路来源于刚结束的竞赛中的竞赛题目“模拟电梯升降系统”,当时已经做出了实物,并相应的写好了主、从机程序,所以整个思路还算比较清晰,以为会比较顺利,一开始,因为完全是自己DIY,除了画protues并调试从机和设计程序框图花费了一些时间外倒没有遇到其他的一些困难。但是在设计快要成型的时候遇到了困难:

1、子vi的调用。我在一个labview学习书上看到一个“通过点阵控制显示图形”的设计,想用它来做我的扩展功能—滚动屏,然后想当然的直接把它做成自VI进行调用,运行才发现,父VI中并没有输出,检查来检查去,才发现我的子VI中最外层是一个while循环,没有跳出条件,并不能把结果输出到父VI中。总结:设计和调用子VI要考虑好子VI中的逻辑。

2、第二个卡了我好久好久,就算到现在还不是很明白的一个点就是串口的接收发送问题,我尝试了所有的结构体,也用了延时啊啥的,就是解决不了,每接收过一次数据,就不能立即发送的问题,而且和串口接

收程序在同一个while结构体里的程序也会受到影响,导致响应迟缓。虽然我怎么都没有搞懂为什么和怎么解决,在老师的指点下,我用各种不同的方法乱试,不惜耗费大量的时间,终于在一个偶然间让我给蒙出来了,我将整个大工程分成了三个while结构体,“串口接收部分”、“滚动屏部分”、“串口发送部分”让他们分开来各自自行,并在“串口接收部分”里加了200ms延时,虽然这个延时会影响“滚动屏部分”至于为啥,我也不知道,然后在“发送部分”加了“时间结构体”,当按下按键就要发送数据的时候就把“串口接收关掉”,等发送完后再打开,尽管程序中还是存在一些细小的bug,不过设计目标基本已经实现了

推荐访问:电梯 实例 模拟


[labview电梯程序【labview实例模拟电梯系统设计】]相关文章