基于labwiew虚拟仪器的液位控制设计.docx
- 文档编号:29906255
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:14
- 大小:284.92KB
基于labwiew虚拟仪器的液位控制设计.docx
《基于labwiew虚拟仪器的液位控制设计.docx》由会员分享,可在线阅读,更多相关《基于labwiew虚拟仪器的液位控制设计.docx(14页珍藏版)》请在冰豆网上搜索。
基于labwiew虚拟仪器的液位控制设计
目录
虚拟仪器设计基础课程设计任务书3
一引言5
二整体方案设计5
三硬件设计5
3.1.超声波模块5
3.2单片机模块6
3.3电磁阀8
四软件设计9
五系统调试12
六心得体会12
七参考文献13
八附录14
虚拟仪器设计基础课程设计任务书
一.设计题目
液位控制系统设计
二.设计目的和要求
通过对虚拟仪器的设计,了解虚拟仪器设计的基本原理及常用的对象使用方法;通过设计一台虚拟式数据采集系统、图形识别系统、通过串口、并口控制、测温系统、转速测量系统等,了解虚拟仪器数据采集卡的使用及设置,并口或串口的数据传输,了解虚拟编程中如何驱动非NI公司的数据采集卡或电脑中常用的声卡,学会把外界物理信号采集到计算机并进行简单分析或者通过虚拟仪器产生符合要求的信号并通过声卡输出或者学会利用NI的ELVIS系统设计简单的测量软件。
加深虚拟仪器知识、单片机的了解,培养学生运用虚拟仪器思想解决工程实际问题的能力。
三.设计内容
A.详细要求:
使用LabVIEW开发环境和NIELVIS,搭建液位系统模型,编写能控制此液位系统进出水、水平显示、预警等信息的程序。
B.前面板上要设置必要的控件对象以设置相应参数。
C.设计界面要美观,程序可读性好。
四.设计进度安排
设计时间总计2周
课程设计任务及要求讲解(0.5天)
设计任务分析及查找资料(1.5天)
程序编制及调试(5.5天)
设计说明书撰写(2天)
答辩(0.5天)
五.设计任务书应包括的主要内容
目录设计题目任务分析实现过程程序前面板及流程图
结束语心得体会参考文献
六.考核方法
考核方式由三部分组成:
平时学习态度(含考勤)、设计完成情况(含方案、程序质量、界面、说明书等)及答辩情况确定。
七.教师评语及成绩
一.引言
液位测量仪器在气象部门和水利部门有着广泛的应用。
液位的测量有很多种方法,其中超声波测量方法有很多其它方法不可比拟的优点:
a)测量精度高;b)响应时间短可以方便的实现无滞后的实时测量;c)非接触测量,性能稳定可靠,对液体的物理化学性质的适应性极强(如:
不怕酸碱等强腐蚀性液体等)。
超声波测量液位的基本原理是:
由超声探头发出的超声脉冲信号,在液体中传播,遇到空气与液体的界面后被反射,接收到回波信号后能得到超声波传播时间。
根据其传播速度和传播时间计算出其传播距离,得到液位高度。
本系统利用NI数据采集卡的相关功能实现对超声波信号进行准确的计时,从而实现了高精度的液位测量。
二.整体方案设计
首先使用超声波模块获取液位信息,通过NI数据采集卡将信号输入电脑中,经过LabVIEW程序处理,来控制电磁阀的关闭,使液面保持在某个范围以内。
其整体方框图如图1所示:
图1整体方案设计
三硬件设计
3.1.超声波模块
本模块性能稳定,测度距离精确。
模块高精度,盲区(2cm)超近。
主要技术参数:
使用电压:
DC5V;静态电流:
小于2mA;电平输出:
高5V;电平输出:
底0V;感应角度:
不大于15度 ;探测距离:
2cm-450cm;高精度:
可达0.3cm;测距角度范围120度。
板上接线方式,VCC、trig(控制端)、echo(接收端)、out(空脚)、GND
注:
TRIP引脚是内部上拉10K的电阻,用单片机的IO口拉低TRIP引脚,然后给一个10us以上的脉冲信号。
OUT脚为此模块作为防盗模块时的开关量输出脚,测距模块不用此脚!
图2正面效果
模块工作原理:
(1)采用IO触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.
测试距离=(高电平时间*声速(340M/S))/2
本模块是通过一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到移动测量的值了。
3.2单片机模块
本次系统设计选用AT89S51A。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器。
其管脚图如图5所示:
图3AT89S51引脚图
VCC:
电源电压输入端。
GND:
电源地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口除了作为普通I/O口,还有第二功能。
RST:
复位输入端,高电平有效。
ALE/PROG:
地址锁存允许/编程脉冲信号端。
PSEN:
外部程序存储器的选通信号,低电平有效。
EA/VPP:
外部程序存储器访问允许。
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
XTAL1:
片内振荡器反相放大器和时钟发生器的输入端
单片机的P1.1与超声波模块的发射端相连,P3.2与超声波模块的接收端相连。
图4硬件部分运行结果
3.3电磁阀
本次试验选用的电磁阀是常闭型电磁阀,它通电打开,不通电的时候一直关闭。
电磁阀是用来控制流体的方向的自动化基础元件,属于执行器;通常用于机械控制和工业阀门上面,对介质方向进行控制,从而达到对阀门开关的控制。
电磁阀里有密闭的腔,在不同位置开有通孔,每个孔都通向不同的油管,腔中间是阀,两面是两块电磁铁,哪面的磁铁线圈通电阀体就会被吸引到哪边,通过控制阀体的移动来档住或漏出不同的排油的孔,而进油孔是常开的,液压油就会进入不同的排油管,然后通过油的压力来推动油缸的活塞,活塞又带动活塞杆,活塞杆带动机械装置动。
这样通过控制电磁铁的电流就控制了机械运动。
唯有电磁阀是用电磁力作用于密封在电动调节阀隔磁套管内的铁芯完成,不存在动密封,所以外漏易堵绝。
电动阀力矩控制不易,容易产生内漏,甚至拉断阀杆头部;电磁阀的结构型式容易控制内泄漏,直至降为零。
所以,电磁阀使用特别安全,尤其适用于腐蚀性、有毒或高低温的介质。
电磁阀本身结构简单,价格也低,比起调节阀等其它种类执行器易于安装维护。
更显著的是所组成的自控系统简单得多,价格要低得多。
由于电磁阀是开关信号控制,与工控计算机连接十分方便。
其接线方式:
二根电线随便接,安装方式:
接口上面有指示水流方向。
注意:
电磁阀需配2A电流的电源,这样有利于阀的正常运行。
四软件设计
软件设计部分首先采用DAQ助手实现数据的采集。
由于外部输入信号为方波信号,可使用计数器测量周期。
周期测量是对连续上升沿和下降沿之间的时间间隔进行测量。
周期的公式如下:
频率(Hz)=计数/计数器时基率
其中计数是输入信号测量时一个周期中计数器时基的计数。
为了方便频率和时间测量,计数器的时基率是已知的(20MHz或100kHz)。
如需配置测量,需指定输入信号的预期范围。
根据此范围,NI-DAQmx将自动选择一个能提供最高测量分辨率的内部时基作为计数器时基。
由于输入信号与测量开始的相对相位的问题,连续测量的第一个采样通常是无效的。
例如,如进行连续周期测量,当测量在输入信号进行到其当前周期的一半时,第一个采样的周期是预期值的一半。
此后的采样显示的是正确的值,因为这些采样基于完整周期的输入信号。
因此,连续周期、脉冲宽度和半周期测量的第一个采样往往小于其实际值。
在连续频率测量中,第一个采样的频率常比实际频率高。
在周期采样中,也可使用一个或两个计数器完成测量。
对于大多数应用,将测量方法设为1计数器(低频)使用的资源更少,且足以得到需要的结果。
但是,如信号为高频或差异较大,则可使用双计数器测量法,即2计数器(高频)或2计数器(大范围)。
取决于输入信号的频率和测量方法的不同,测量的结果有可能发生不同程度的误差。
NI-DAQmx将在内部根据需要进行自动选择以适于成对计数器的测量。
图5DAQ配置
显示出外部输入的液位变化,并根据液位是否高于或者低于设置的液面高度控制电磁阀的关闭或打开,并进行报警。
图6报警配置
软件部分总体设计的程序框图及前面板设计如下图。
图7程序框图
图8前面板框图
五系统调试
设定的最小值0.1,最大值为0.2.当输入的液位信号低于0.1时,液位过低,打开电磁阀,报警器报警。
当输入的液位高于0.2时,液位过高,关闭电磁阀,报警器报警。
当低于0.1时,其前面板结果如图4所示。
当高于0.2时,其前面板结果如图5所示。
图9低于0.1时前面板图
图10高于0.2时前面板图
六心得体会
为其两个星期的虚拟仪器设计很快就结束了,这次课程设计是我和另一同学一起做的,关于基于LabVIEW虚拟仪器的液位控制系统设计。
是一个硬件与软件相结合的题目。
因为以前最多就是单纯的硬件设计,所以这次就我个人而言,是个比较大的挑战。
首先是硬件部分的设计,由于采用的是超声波传感器测液位,问了一下以前做过相关课设的同学,情况都不是太理想。
所以,在老师的帮助下,我们学习了解了一下相关的毕设论文。
考虑到时间的限制及能力的局限,我们简化了设计思路,自己重新编写相关程序并进行调试。
硬件部分的超声波传感模块,我们借用了现成的模块电路,这为我们自己搭建电路省去了很多时间。
将程序鞘入单片机并接上硬件电路。
完成了通过超声波传感器采集液位,为后续的软件部分提供数据输入。
接着是软件设计部分。
我们采用的是DAQ助手实现数据的采集,显示出外部输入的液位变化,并根据液位是否高于或者低于设置的液面高度控制电磁阀的关闭或打开,并进行报警。
在接入NI数据采集卡后,由于硬件输入的信号是方波信号,而不是直接的时间信号,与机器周期在时间上相差比较大,因此,我们实现的液位显示在很小的距离变化范围,存在一定的系统偏差。
在理论上没有完全的实现液位显示与控制。
因此,我们设计的这套系统仍需要对单片机的程序进行修改,改变我们直接输入的模拟方波信号为计算出的具体的时间值,使得其与机器周期一致,结合时间的延时,就可以精确的实现对液位的实时监控与显示及报警功能。
两周的课程设计,我学到了很多以前没有掌握好的知识,也加强了我的动手实践能力。
虽然最后没有完全实现相关的系统功能,但是这次课程设计对我以后的毕业设计及其他相关实践都有很大的帮助,是我受益匪浅。
最后,非常感谢在这次课程设计中帮助指导我们的周建民老师和唐赣老师!
七参考文献
[1]吴成东,孙秋野,盛科.LabVIEW虚拟仪器程序设计及应用[M].北京:
人民邮电出版社,2008.5-197
[2]杨乐平.labview高级程序设计[M].北京:
清华大学出版社,2003.10-140
八附录
主程序:
#include
sbitECHO=P3^2;//将接收端定义为P3.2,
sbitbo=P1^0;//输出波形端
sbitTRIG=P1^1;//控制端
/*******************************************
函数功能:
延时超过10us
******************************************/
voiddelay()
{
unsignedchari;
for(i=0;i<20;i++)
;
}
/*******************************************
函数功能:
主函数
******************************************/
voidmain(void)
{
EA=1;//开放总中断
EX0=1;//允许使用外中断
IT0=1;//选择负跳变来触发外中断
//TRIG=0;//拉低
//TRIG=0;//启动发射
//delay();//持续一段时间
//TRIG=1;//拉低
bo=1;//输出高电位
while
(1)
{
TRIG=0;//拉低
TRIG=0;//启动发射
delay();//持续一段时间
TRIG=1;//拉低
}
}
/**************************************************************
函数功能:
外中断T0的中断服务程序
**************************************************************/
voidint0(void)interrupt0using0//外中断0的中断编号为0
{
bo=~bo;//每产生一次中断请求,P1.0取反一次。
//TRIG=0;//拉低
//TRIG=1;//启动发射
//delay();//持续一段时间
//TRIG=1;//拉低
}
图11运行过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 labwiew 虚拟仪器 控制 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)