虚拟仪器技术课程设计报告书.docx
《虚拟仪器技术课程设计报告书.docx》由会员分享,可在线阅读,更多相关《虚拟仪器技术课程设计报告书.docx(18页珍藏版)》请在冰豆网上搜索。
虚拟仪器技术课程设计报告书
虚拟仪器技术课程设计
题目:
基于LabVIEW的自动化控制和编程设计
院(系、部):
电控学院
班级:
测控06-2班
姓名:
徐宁
学号:
0605070218
指导教师:
宏志
工程技术大学
课程设计成绩评定表
学期
2008-2009
(2)
姓名
徐宁
专业
测控技术与仪
器
班
级
测控06-2
课程名
称
虚拟仪器课程设计
论文题
基于LabVIEW的自动化控制和编程设计
目
评定指标
分值
得分
知识创新性
20
评
理论正确性
20
容难易性
15
疋
结合实际性
10
指
知识掌握程度
15
书写规性
10
标
工作量
10
总成绩
100
评语:
任课教师
王雨虹
时间
2009年6月14日
备注
课程设计任务书
一、设计题目
虚拟仪器课程设计
二、设计任务
第一天:
查资料,熟悉题目;
第二天:
方案分析、比较;
第三天:
编程设计;
第四天:
整理设计材料
第五天:
整理设计说明书。
三、设计计划
第1天:
选题查资料;
第2天:
方案确定;
第3天:
绘制流程图、调试程序;
第4天:
设计说明书编辑;
第5天:
设计说明书编辑并输出。
四、设计要求
1、针对实际问题,设计解决方法
2、以软件为主,可以进行相关硬件容的设计
3、详细说明设计思路
4、形成设计报告
指导教师:
宏志教研室主任:
宏志
时间:
2009年6月15日
摘要随着人类社会的进步与科学技术的发展,计算机技术在民用和工业控制领域的作用愈显示出其魅力。
特别是串行通信技术,已成为实现生产自动化,提高生产力,减轻劳动强度的有效手段。
串口通信是一种在计算机与计算机之间或计算机与外围设备之间传送数据的常用方法。
串行通信使用计算机建的串口,用户无需再购买任何特殊硬件,只要一根串口线就可以达到发送或接收数据的目的,而且不失测试的准确性。
但传统的串口调试采用高级语言,程序代码冗长,不便,进行功能拓展。
如果对串口数据进行分析,则需推翻原有程序结构,重新编制代码。
图形化编程语言LabVIEW的出现为串口调试与数据分析带来了极大方便。
本文开发了基于LabVIEW的串口调试软件,并给出了在该软件基础上扩展串口数据分析模块。
系统以ATM5係列单片机为核心,主要由CCD摄像头、信号调理电路(包括低通滤波电路和电荷放大电路、RS-232通信电路等几部分组成。
在本系统中,利用单片机部的ADC把经过放大调理后模拟量转换为数字量,利用串口传送到上位机。
在上位机可以方便的对采样数据进行分析记录。
上位机采用软件LABVIEW图形化的语言编写,具有友好的人机界面。
利用Labview软件进行双机串行通信系统可分为以下3个模块:
(1)端口配置模块:
负责串口的开关、端口的选择、波特率、数据位、停止位、校验位的选择等。
(2)数据发送模块:
负责实现发送数据的处理与数据的多种发送方式,具有选择手动发送或自动发送、选择发送数据的类型、设置自动发送时间间隔、读取要发送的文本、清空发送区域等功能。
(3)接收显示模块:
负责实现接收数据的处理与数据的多种显示方式,具有自动接收和结束接收的功能,能够保存接收的数据和清空显示区域。
串口通信方式简单、可靠、稳定,具有很好的可移植性、实时性,且具有使用线路少、成本低,特别在远程传输时,能够避免多条线路特性的不一致而被广泛采用。
LabVIEW作
为一个具有良好开放性的虚拟仪器开发平台,为面向仪器的编程提供了强有力的支持,在LabVIEW环境下能够开发出各种功能强大、开放性好的虚拟仪器软件,构造出实用的计算机辅助测试、分析与控制系统。
事实表明,与传统方法相比,基于LABVIEW的串口调试与数据分析效率高、功能全、操作简单、功能强大,具有良好的可移植性和可扩展性,能够很好地满足用户要求。
关键字:
串口通信单片机CCD摄像头
文献综述
在基于PC机的测控领域中,虚拟仪器技术的应用越来越广泛,由于大多数PC机都有1〜2个RS2232串行通信接口,因此,串行通信非常流行。
串行通信是一种古老但目前仍常用的数据传输方法,它用于PC机与其他仪器(例如MCS251单片机、变频器等可编程仪器)或者与另外一台计算机之间的通信。
通信最终目的是将发送端发送的数据正确无误地传到接收端,由于种种因素的影响,接收端可能会收到错误的数据,甚至数据根本就没有收到。
在进行异步通信时,为了避免这种差错,目前大多采用检错重发的方法加以改正。
随着高性能处理器的出现,在实际应用中已越来越多地运用软件方式对传输的数据进行检错。
其中较常用的方法有异或和、校验和、循环冗余码校验(CRC)等方法。
对于一般的测控系统采
用较多是前两种方法,本文着重讨论基于LabVIEW的串口通信数据校验和的实现方法。
在弹体硬目标侵彻试验中,对高冲击信号的提取最常用的是压电加速度传感器,由于压电加速度传感器产生的电荷量很小,为了记录弹体高速侵彻硬目标过程中的加速度—时间曲线很重要的一步就是实时采集数据并对其进行显示、存储和总结测试结果。
在传统的测试系统中,通常只能对静态参数或极缓慢变化的参量进行测量,对动态参量,特别是快速过程或
单次猝发过程只能借助于图形记录分析仪。
与传统仪器相比,虚拟仪器提高了仪器资源的可再用性、系统可靠性、测量精度和测量可重复性。
LabVIEW是美国国家仪器公司(Nationailnstrument)开发的一种虚拟仪器平台,它提
供了丰富的数据采集、分析和存储库函数以及包括DAQ、GPIB、PXI、VXI、RS-232/485在
的各种仪器通信总线标准的所有功能函数。
本文正是利用基于LabVIEW的虚拟仪器技术对传感器的信号进行采集。
过程较为复杂,编程工作量较大,周期长,效率低。
如果将单片机为核心的小系统作为前端的数据。
LabVIEW程序由三部分构成,即前面板、程序框图和接口板。
前面板实现的是程序的输入输出功能,它包括旋钮、按钮、图形和其他控制元件与显示元件以完成用鼠标、键盘向程序输入数据或从计算机显示器上观测数据,图4是条码扫描器控制的主程序界面。
程序框图是图形化编程,是VI图形化的源代码,对前面板上的各种控件对象进行控制,是VI测试功能软件的图形化表示。
接口板为函数模板,它包括编程所涉及到的VI程序和函数,VI程序使用接口板来替代文本编程的函数参数表,每个输入和输出的参数都有自己的连接端口。
LabVIEW串口子VI是通过RS-232串口总线与PC实现数据通信。
LabVIEW串口子VI共有6个串行通信节点,主要完成对串口的设置和读写操作等功能。
(1)串口参数设置节点(VISAConfigureSerialPort.vi):
用于对串口进行参数设置,包括串口号、波特率、数据位、停止位、奇偶校验、数据流量控制等。
(2)串口写节点(VISAWrite):
向发送缓冲器写入数据或命令。
(3)串口读节点(VISARead):
从串口缓存中读出所传送的数据。
(4)读串口缓存节点(VISABytesatSerialPort):
读串口所有排队等待的数据。
(5)串口中断节点(VISABreak.vi):
向串口延时发送数据,延时时间可以设置。
(6)串口关闭(VISAClose):
将打开的串口关闭。
在LabVIEW中,进行串口通讯的基本步骤分为3步:
第一:
串口初始化,利用VISAConfigureSerialPort.vi节点设定串口的端口号、波特
率、停止位、校验位、数据位,需要注意的是在LabVIEW中串口号是从0开始编号的。
第二:
读写串口,利用VISARead节点和VISAWrite节点对串口进行读写。
第三:
关闭串口,停止所有读写操作。
本系统以单片机和CCD摄像头传感器为主的前端采集系统来代替数据采集卡,单片机具有体积小、功耗低、性价比高等特点。
但开发据采集系统,将采集到的数据利用串口传送到PC主系统,在LabVIEW环境下对数据进行显示、处理与分析,既充分利用了LabVIEW的强大功能,又降低了系统的开发成本,提高了效率。
摄像头的主要工作原理具体而言,摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。
当扫描完一行,视频信号端就输出低于最低视频信号电压的电平(如0.3V),并保持一段时间。
这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。
然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。
此区中有若干个复合消隐脉冲,其中有个脉冲远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。
场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。
摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。
奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。
1Labview部分设计
1.1visa简介
Labview提供了强大的VISA库°VIS虚拟仪器软件规,是用于仪器编程的标准I/O
函数库及其相关规的总称。
VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。
VISA本身不具备
编程能力,他是一个高层API,通过调用底层驱动程序来实现对仪器的编程,如图1,VISA
是采用VPP标准的I/O接口软件,其软件结构包含三部分,如图2。
图1visa结构图
图2实际接口图
与其它现存的I/O接口软件相比,VISA的I/O控制功能具有如下几个特点:
适用于各种仪器类型(如VXI仪器,GPIB仪器,RS-232串行仪器,消息基器件,寄存器器件,存储器器件等仪器);适用于各种硬件接口类型;适用于单、双处理器结构或分布式网络结
构;适用于多种网络机制
VISA的I/O软件库的源程序是唯一的,其与操作系统及编程语言无关,只是提供了标准形式的API文件作为系统的输出。
1.2发送端程序设计
1.2.1设置顺序框架启动
LabVIEW,在其框图程序中加入顺序框架(sequeneestructure),在顺序框架的右键快捷菜单中选择AddFrameAfter,再添加两个顺序框架。
这样就形成了0、1、2逐步执行的三个顺序框架,它们分别对应串口的参数设置、发送数据、接收数据。
1.2.2设置串口参数
LabVIEW共有5个串行通信节点,分别实现串口设置、写串口、读串口、检测串口缓存、中断等功能,这些节点位于功能模板—InstrumentI/O子模板—Serial子模板中。
在0号顺序框架中,按图3所示设置串口,其中在此顺序框架中引入了本地结果变量,利用此变量将端口号传递给后面的顺序框架。
刁口匚|口口口口口口口口口口口口口口口口口口口口口口口口口口口口口口;;
端口号
:
口口口口口口口口口口口口口口口口匸口口口口口□□口口口口口口口口:
:
图3设置串口参数图
1.2.3校验和的计算并发送数据
在1号顺序框架中,通过For循环将5组十六进制字符转换为二进制数并相加(丢弃
进位),然后取反加1。
将此结果再转换为十六进制字符,与原5组十六进制字符利用
BuildArray节点组成发送数据块数组,通过写串口节点分6次发送至串口。
1.2.4接收返回信息
接收端收到数据后经过检错,若无误就接收数据而不返回任何信息;若有错就发送
“数据有误,请重新发送!
”信息。
发送端在接收到此信息后,必须再次发送。
因此,在2号顺序框架中,通过读串口节点,来接收返回信息,其框图程序略去。
从发送端前面板图中可以看到该返回信息,如图4所示。
图4接收返回信息图
至此发送端程序设计完毕,保存此程序,取名为“发送数据•Vi”。
1.3接收端程序设计
接收端的设置顺序框架和设置串口参数设计同发送端一样。
1.3.1接收数据检错
如图4所示在1号顺序框架中,先通过读串口节点,将缓冲区中的数据全部一次性读出,并显示结果。
通过For循环将读出的整个字符串每两字节分别转换为数字后相加求和(丢弃进位)。
求和结果通过前面板的“检错结果”显示,若显示为“0”,表明数据传送无误,否则即错。
此外,在该顺序框架中再次引入了一个本地结果变量,利用此变量将求和结
果传递给后面的顺序框架,以便判断正误并反馈信息
如图5所示在0号顺序框架中,通过选择结构来判断收到数据的正误,求和结果通过本
地结果变量输入,若求和结果为“0”,则不回发任何信息;若求和结果不为“0”,则回发“数据有误,请重新发送!
”信息,请求重新发送数据。
至此接收端程序设计完毕,保存此程序,
口口□□口口□□口□口□□□□□□□□□□□口□口□口□口口
取名为“接收数据•Vi
跆蛊篋裂;慕務張器善
图5重发框图
由此可以得出Labview的总体程序:
这里是程序面板(图6):
图6程序函数面板图
这里是前面板(图7):
.10
D37
则弓1
上“:
5
Hnaj
图7程序前面板图
2单片机部分设计
2.1硬件部分
MCS-51单片机部有一个功能很强的全双工串行口,该串行口有4种工作方式,波特率
可是软件设置,由片的定时器/计数器产生,接收、发送均可触发中断系统,使用十分方便。
有2个物理上独立的接收、发送缓冲器SBUF对外也有两条独立的收、发信号线RXD
(P3.0)和TXD(P3.1)。
本文采用RS232串行接口标准,在电气特性上,RS-232采用负逻辑,要求高低两信号间有较大的幅度,标准为:
逻辑“1”在-5V~-15V之间,逻辑“0”在+5V~+15V之间,通常采用-10V左右为逻辑1,+10V左右为逻辑0。
由于MCS-51系统的信号输入输出为TTL电平,逻辑1为3.8V左右,逻辑0为0.4V左右,因此,必须外接电路实现TTL电平到RS-232电平的传换。
本文采用MAX232实现此转换。
采用TLC0831芯片进行数据的采集。
TLC0831芯片为8位逐次逼近电压型A/D转换器,支持单信道输入串口输出,极性设置固定,不需寻址。
其主要特点为:
8位分辨率;5Vde
电源提供0~5V的可调基准电压;输入输出可与TTL和M0S兼容。
若要提高信号的采样频率,只需选择转换速度较快的A/D芯片即可。
硬件部分原理图
如图&
ADCOi32
f^CC
INAOfI
/EA
PII
CHI
+r.-.
RSt
I^SS
ri,2
CUD
X2
TXD
UHUXI
亠一一
oa9
?
01050%WH^
O-oox
图8硬件protel图
亡汁J
Zvcc
Cl-
v+
⑴
V-,
0
F12IN
T2OUT
GND
40
RESKT
2(1
1T
2.2软件部分
下面给出单片机软件部分的主要程序。
波特率设置为9600,用定时器1产生波特率,
串口工作在方式1无奇偶校验。
定时器0设定采样的时间间隔。
TLC0831为A/D转换器数据采样子程序,SEND为单片机发送子程序。
CK
EQU
P1.0
;0832
的时钟
DO
EQU
P1.1
;0832
的输出
DI
EQU
P1.2
;0832
的配置输入
CS
EQU
P1.3
;0832
的片选
ORG0000H;主程序入口
AJMPMAIN
ORG0030H;主程序
MAIN:
MOVTMOD,#20H;T1选择为方式2,8位计数,自动装载
NOP
NOP
MOVTH1,#OFDH;选择波特率为9600bps
NOP
NOP
MOVTL1,#OFDH
NOP
NOP
SETBTR1;启动定时器
NOP
MOVSCON,#040H;选择串口为方式1,10位异步通信格式NOP
NOP
END:
MOVSBUF,A;发送0832采集来的数据
CLRCS;片选有效
NOP
MOVA,#03H;配置0832为单端输入
MOVR0,#03;共配置3位
WWWR:
CLRCK
RRCA;将配置位移入C中
MOVDI,C;开始配置0832
SETBCK
DJNZR0,WWWR
CLRCK;稳定0832的输出通道
NOP
SETBCK
MOVR0,#8;循环8次,采一个字节RRRD:
CLRCK
MOVC,D0
RLCA
SETBCK
DJNZR0,RRRD
SETBCS;取消片选
NOP
WAIT:
JNBTI,WAIT;等待发送完毕
CLRTI;清发送完标志
NOP
SJMPSEND;继续下一次发送
END
总结
通过对上述软硬件的调试和完善,建立了以LABVIEW为软件平台的单片机数据采集系
统,并对输入信号进行了频谱分析。
基于该单片机数据采集系统,利用LABVIEW的强大功
能,可以建立对信号进行分析处理的多种方案,完成系统相应的功能要求,进一步建立个人虚拟实验室。
不仅可以剩下很多硬件,还为我们的电路模拟做出了巨大的贡献。
是一个不可多得的好软件。
通过使用LabVIEW在较短时间开发了通信虚拟实验系统,它采用模块化设计思想,以图形化语言设计,直观的将图像显示,公式表达、仿真结果等表示出来。
该系统操作简单,程序功能扩展容易,学生可以通过该系统加深对通信原理课程的理解。
目前该系统已经成功的应用到教学实验中,取得了极好的效果。
在开发基于机的测控程序中运用PC,LabVIEW开发串口通信程序简单方便、运行可靠,其数据校验和的实现简单明了。
该程序稍加改动即可实现数据异或和校验,并能在实际基于PC机的测控程序中加以应用。
总之丄abVIEW采用易于使用的图形化编程语言大大缩短了程序开发的周期并可以在
更广泛的围得以应用。
随着测试系统自动化、虚拟化、集成化要求的不断提高,LabVIKW以其设计方便快捷的特点,必将成为未来检测系统的开发标准。
心得与体会
LabVIEW作为一个具有良好开放性的虚拟仪器开发平台,为面向仪器的编程提供了强有力的支持,在LabVIEW环境下能够开发出各种功能强大、开放性好的虚拟仪器软件,构造出实用的计算机辅助测试、分析与控制系统。
本文利用SPCE061A进行前端数据采集,通过串口实现与LabVIEW的数据通讯,利用LabVIEW勺强大信号分析处理功能,开发了一套投资少、操作简便的数据采集与信号分析系统。
实验证明,该系统运行良好。
在这里不仅学到了很多的软件知识,还与硬件有了一次充分的接触,对单片机的学习有了更深层次的理解,更直观,更实际。
也为我们下一个课程设计做了很好的铺垫,是下一个设计的基础。
软件和硬件的结合才是新一代测控人才的要求,我会更加注意理解和体会这一深奥的道理,让自己在学习东西的同时变的更加充实。
参考文献
[1]君华.基于LabVIEW的虚拟仪器设计[M].:
电子工业,2002.9-10.
[2]铁,时风,等.基于LabVIEW的虚拟仪器技术在无损检测中的应用[J].无损检测,2001,23(6):
240-248.
[3]罗光坤,昊,等.基于LabVIEW与单片机串口的数据采集系统[J].仪表技术,2002,5:
14-16.
[4]宋晓军.LabVIEW实现远程分布式故障诊断系统通信[J].工业高等专科学校学报,2003,10(3):
5-9.
[5]宋丽梅,斐,等.虚拟仪器技术在线检测控制滴灌管生产线[J].天津大学学报,2004,37
(1):
41-44.
⑹志刚•现代通信原理[M].:
清华大学,1992.系统(MATLAB版)[M].树棠,译.:
电子工业,2005.