版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.PAGE.XX大学毕业设计〔论文题目:基于LabVIEW的红外传感器的多路数据采集系统设计指导赵红梅职称:讲师学生__逯静丹__20092250118专业:电子信息科学与技术院〔系:物理工程学院完成时间:2013.5.242013年5月24日..摘要虚拟仪器是当前测控领域的技术热点。LabVIEW是目前多数虚拟仪器系统所采用的开发软件。它是一种图形化的编程语言。在这种基于图形化编程语言的开发环境中,LabVIEW可以高效、快速地编写出相应的应用程序。本设计就是采用LabVIEW平台,编程实现了数据采集、实时显示以及数据存储等功能。本文先对系统结构和LabVIEW虚拟仪器平台作了简要概述,并说明了本设计要完成了工作和要解决的问题。在第3节中简述了串行通信的概念,介绍了LabVIEW中串行通信模块中的一些功能函数,并解决了串行通信在LabVIEW中是如何实现的问题。在第4节中对本设计中用到的的ModbusASCII协议作了详细说明,包括ModbusASCII模式、ModbusASCII帧、LRC校验和的实现等。在第5节中,介绍了数据采集系统的整个框架,包括前面板设计和各个模块的程序框图设计步骤。最后对本设计的整个工作过程作了回顾与总结。关键词:虚拟仪器;LabVIEW;数据采集;串行通信;ModbusASCII协议AbstractVirtualinstrumentisnowatechfadinthefieldofmeasurementandcontrol.LabVIEWisadevelopmentsoftwareusedbymostofthevirtualinstrumentsystemcurrently.Itisagraphicalprogramminglanguage.Inthisdevelopmentenvironmentbasedongraphicalprogramminglanguage,wecanprogramthecorrespondingapplicationwithLabVIEWfastandefficiently.Inthepaper,weprogramtoachievethefunctionofdataacquisition,real-timedisplay,anddatastorageusingtheplatformofLabVIEW.ThispaperfirstlygivesabriefoverviewofthestructureofthesystemandLabVIEWvirtualinstrumentplatform,andillustratestheworkwewillcompleteandtheproblemwewillsolve.Inthethirdsection,wedescribetheconceptofserialcommunication,introducesomefunctionsofserialcommunicationmoduleofLabVIEW,andsolvetheproblemhowtorealizetheserialcommunicationinLabVIEW.Inthefourthsection,wemakeadetailedexplanationforModbusASCIIprotocol,includingModbusASCIIpattern,ModbusASCIIframe,andLRCchecksumrealization.Inthefifthsection,weintroducethewholeframeworkofthedataacquisitionsystem,includingthedesignofthefrontpanelandthestepofprogramdiagramdesignofeachmodule.Finallywemakeareviewandsummaryofthewholedesignprocess.Keywords:Virtualinstrument;LabVIEW;Dataacquisition;Serialcommunication;ModbusASCIIcommunicationprotocol目录摘要IAbstractII目录III0引言11系统结构简介22LabVIEW概述32.1图形化虚拟仪器开发平台—LabVIEW32.2基于LabVIEW平台的虚拟仪器程序设计42.3本设计所做的工作53基于LabVIEW的简单串行通信的实现63.1基本功能函数63.2串口通信步骤及程序框图64ModbusASCII协议简介84.1ModbusASCII模式84.2ModbusASCII帧84.3ModbusASCII校验方式〔LRC校验94.4ModbusASCII校验方式在LabVIEW中的实现105数据采集系统设计115.1程序流程图115.2前面板设计125.3地址搜索125.4浓度采集145.5温度采集165.6数据保存166本设计的总结及研究意义176.1总结176.2研究意义18致谢19参考文献20..0引言虚拟仪器<VirtualInstrument>是基于计算机的软硬件测试平台,已经在工业控制领域得到广泛的应用。LabVIEW是由美国国家仪器公司推出的、主要面向计算机测控领域的虚拟仪器软件开发平台,是一种基于图形开发、调试和运行的集成化环境。利用LabVIEW设计多路数据采集系统时,可配置NI公司的数据采集板卡模拟采集多路信号,但是数据采集板卡价格较贵。本设计选用smartGAS红外气体传感器作为前端数据采集系统进行多路数据采集,然后通过RS-485串口通讯将数据传输至上位机,在LabVIEW开发平台下,对各路数据进行处理和实时显示,从而实现了一种在LabVIEW环境下的单片机多路数据采集系统。1系统结构简介仪器控制是指通过PC上的软件远程控制总线上的一台或多台仪器。它比单纯的数据采集要复杂得多,它需要将仪器或设备与计算机连接起来协同工作,同时还可以根据需要延伸和拓展仪器的功能。一个完整的仪器控制系统除了包括计算机和仪器外,还必须建立仪器与计算机的通路以及上层应用程序。RS-485接口在总线上是允许连接多达128RS-485接口方便地建立起设备网络。但是PC上都不带RS-485的接口,因此在接入电脑前需要通过485-232转换器或485-USB转换器才能接入PC。本设计测试时,选用的是485-232转换器。多路数据采集系统框架如图1所示。PC机PC机485-232转换器RS485接口红外传感器红外传感器···RS485接口···图1多路数据采集系统框架图2LabVIEW概述现代技术的进步,特别是以计算机技术为代表的不断革新的计算机技术,正从各个层面上影响并引导着各行各业的技术革新,基于计算机技术的虚拟仪器系统技术也正以不可逆转的力量推动着测量控制技术、数据采集和分析等技术的发展。传统仪器主要由信号采集与控制模块、分析与处理模块、以及测量结果的表达与输出模块这三大功能模块组成。传统仪器的这些功能都是以硬件形式存在的。而虚拟仪器则是将这些功能移植到计算机上完成。相对于传统仪器,虚拟仪器具有性能高、扩展性强、开发时间少、完美的集成功能等特点。
LabVIEW是一款优秀的虚拟仪器软件开发平台。LabVIEW以其直观、简便的编程方式,众多的源码级设备驱动程序,多种多样的分析和表达支持功能,可为用户快捷地构建实际生产中所需要的仪器系统创造有力的基础条件。其中数据采集与仪器控制是LabVIEW最具竞争力的核心技术。虚拟仪器是当前测控领域的技术热点,它代表了未来仪器技术的发展方向。虚拟仪器的关键技术是软件,通过虚拟仪器的软件开发平台,开发者无需了解过多的仪器专业知识,就可方便、快捷地开发出满足应用的虚拟仪器。LabVIEW<LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器工程平台>是目前多数虚拟仪器系统所采用的开发软件。2.1图形化虚拟仪器开发平台—LabVIEWLabVIEW是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/PI、ActiveX等软件标准的库函数,是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都更加形象化。传统的文本式编程是一种顺序的设计思路,设计者必须写出执行的语句。而LabVIEW是基于数据流的工作方式,同时是基于图形化的编程,这使得设计者不必掌握大量的编程语言和程序设计技巧便可设计出虚拟仪器系统。目前,在以PC机为基础的测试和工控软件中,LabVIEW的市场普及率仅次于C++/C语言。LabVIEW具有一系列无与伦比的优点:首先,LabVIEW作为图形化语言编程,采用流程图式的编程,运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似;同时,LabVIEW提供了丰富的VI库和仪器面板素材库,近600种设备的驱动程序<可扩充>如GPIB设备控制、VXI总线控制、串行口设备控制、以及数据分析、显示和存储;并且LabVIEW还提供了专门用于程序开发的工具箱,使得用户能够设置断点,调试过程中可以使用数据探针和动态执行程序来观察数据的传输过程,更加便于程序的调试。因此,LabVIEW受到越来越多工程师、科学家的普遍青睐。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32编译器。像许多通用的软件一样,LabVIEW提供了Windows、UNIX、Linux、MacintoshOS等多种版本。2.2基于LabVIEW平台的虚拟仪器程序设计所有的LabVIEW应用程序,即虚拟仪器<VI>,它包括前面板<FrontPanel>、流程图<BlockDiagram>以及图标/连结器<Icon/Connector>三部分。〔1前面板:前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制和显示对象。但并非画出两个控件后程序就可以运行,在前面板后还有一个与之对应的流程图。〔2流程图:流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。如果将VI与传统仪器相比较,那么前面板上的控件对应的就是传统仪器上的按钮、显示屏等控件,而流程图上的连线端子相当于传统仪器箱内的硬件电路。在许多情况下,使用VI可以仿真传统仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与传统标准仪器相差无几。这种设计思想的优点体现在两方面:①类似流程图的设计思想,很容易被工程人员接受和掌握,特别是那些没有很多程序设计经验的工程人员。②设计的思路和运行过程清晰而且直观。如通过使用数据探针、高亮执行调试等多种方法,程序以较慢的速度运行,使没有执行的代码显示灰色,执行后的代码会高亮显示,同时在线显示数据流线上的数据值,完全跟踪数据流的运行。这为程序的调试和参数的设定带来诸多的方便。〔3图标/连接设计:这部分的设计突出体现了虚拟仪器模块化程序设计的思想。在设计大型自动检测系统时一步完成一个复杂系统的设计是相当有难度的。而在LabVIEW中提供的图标/连接工具正是为实现模块化设计而准备的。设计者可把一个复杂自动检测系统分为多个子系统,每一个都可完成一定的功能。这样设计的优点体现在如下几方面:①把一个复杂自动检测系统分为多个子系统,程序设计思路清晰,给设计者调试程序带来了诸多的方便。同时也对于将来系统的维护提供了便利。②一个复杂自动检测系统分为多个子系统,每一个子系统都是一个完整的功能模块,这样把测试功能细节化,便于实现软件复用,大大节省软件研发周期,提高系统设计的可靠性。③便于实现"测试集成"和虚拟仪器库的思想。同时为实现虚拟仪器设计的灵活性提供了前提。2.3本设计所做的工作在基于图形化编程语言的开发环境中,LabVIEW可以高效、快速地编写出相应的应用程序,完成诸如数据采集、数据处理、数据显示以及仪器控制和通信等多种功能。本设计中利用LabVIEW开发平台,编程实现对接入设备smartGAS红外气体传感器的地址搜索、浓度和温度采集,并在PC机上实时显示采集到的数据,并具有数据存储功能。3基于LabVIEW的简单串行通信的实现串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。串行通信时,发送和接收到的每一个字符实际上都是一次一位传送的,每一位为1或者为0。3.1基本功能函数在LabVIEW功能模版的函数>>仪器I/O>>串口程序库中包含进行串行通信操作的一些功能模块:〔1VISA配置串口:初始化VISAresourcename指定的串口通讯参数。〔2VISA写入:将写入缓冲区中的数据写入到VISAresourcename指定的设备或接口中。〔3VISA读取:从VISAresourcename指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。〔4VISA串口字节数:返回指定串口的输入缓冲区的字节数。〔5VISA关闭:关闭VISAresourcename指定的设备会话句柄或事件对象。3.2串口通信步骤及程序框图通过对VISA节点的调用,可以方便、快速地实现系统上位机对下位机的实时监控。串口通信程序的实现采用平铺式顺序结构,逐步执行串口的参数设置、发送数据、接收数据、关闭串口等操作。程序框图如图2所示。〔1调用VISA配置串口节点完成串口参数的设置,包括串口号、波特率、数据位、停止位、奇偶校验位等。本文中设置为:波特率2400bps、数据位7、停止位1、偶校验。〔2在顺序结构的第一个框图中,调用VISA写入节点将数据发送到指定的串口中。延时200ms,使得下位机能够有足够时间作出响应。注意:这个延时时间应根据实际情况而定,不可过长或过短。若延时时间过长,而串口仪器会不停地返回状态,则会造成串口接收缓冲区堵塞,影响正常通信;若延时时间过短,则串口仪器还未返回准确的状态字,程序就从串口缓冲区取走字符串,也会造成通信障碍。〔3在顺序结构的第二个框图中,调用VISA读取节点将数据读取到缓冲区。其中的VISA串口字节数节点返回串口输入缓冲区中的字节数。〔4调用VISA关闭节点关闭串口。图图2串口通信程序框图串口通信程序调试的几点建议:〔1对自己编写的协议,可以用串口助手来验证上位机和下位机的程序是否正确。〔2若程序无法通过,首先检查COM口的设置是否正确。〔3除了串口助手之外,还可以使用一些帮助串口调试的软件,比如Ser232Mon,该软件可以监视出入串口的数据。4ModbusASCII协议简介Modbus通信协议是一种通用工业标准,通过此协议,我们可以快速地实现对不同生产现场的控制设备进行组网,便于集中控制。Modbus可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯。当在Modbus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用Modbus协议将此信息传送出去。控制器可使用ASCII或RTU通讯模式,在标准Modbus上通讯。在配置每台控制器时,用户须选择通讯模式以及串行口的通讯参数。在Modbus总线上的所有设备应具有相同的通讯模式和串行通讯参数。本文采用ModbusASCII模式进行通讯。4.1ModbusASCII模式当控制器以ASCII模式在Modbus总线上进行通讯时,一个信息中的每8位字节作为一个ASCII码〔两个十六进制字符发送,此模式的主要优点在于允许字符之间的时间间隔长达1s,而不会出现错误。ASCII码每一个字节的格式:编码系统:十六进制,ASCII字符0-9,A-F,每个ASCII字符由一个十六进制字符组成。数据位:·1位起始位·7位数据位,低位先发送,高位后发送·1位奇偶校验位〔本文中采用偶校验·1位停止位错误校验区:纵向冗余校验4.2ModbusASCII帧在ASCII模式中,以":"冒号〔ASCII3AH表示信息开始,以回车换行键〔CRLF〔ASCII0D,0AH表示信息结束。对其它的区,允许发送的字符为十六进制字符0-9,A-F。网络中设备不断检测并接收到一个冒号":"时,每台设备对地址区解码,找出要寻址的设备。字符之间的最大时间间隔为1s,若大于1s,则接收设备认为出现了一个错误。典型的信息帧如下表1:表1ASCII信息帧开始地址功能数据纵向冗余校验结束1字符‘:’2字符2字符n字符2字符2字符4.3ModbusASCII校验方式〔LRC校验在ASCII模式中,采用纵向冗余校验方式,即LRC校验。错误校验码为一个8位二进制,也就是两个ASCII字符。计算校验码时,只有地址、功能码、数据位参与运算,开始位":"和结束位CRLF均不参与运算。由发送设备计算LRC校验码,然后和该块数据一起传送到接收端。接收设备在接收信息时计算LRC码,并与收到的LRC码进行比较,若二者不一样,则说明该数据块在传输过程中产生错误。校验和的具体计算步骤为:〔1将设备地址、功能码、数据位的每个ASCII字符用十进制表示出来,并将它们相加起来。转换表如下表2所示。〔2将上一步所得结果对256求余。〔3用255减去上一步所得结果,再加1,结果用十六进制表示。表2ASCII转换表ASCII0123456789ABCDEFHex30313233343536373839414243444546Dec.484950515253545556576566676869704.4ModbusASCII校验方式在LabVIEW中的实现具体实现方法为:先放置for循环结构,然后添加移位寄存器。顺次截取输入字符串中的一个字符,将该ASCII字符用十进制表示出来,并逐个相加。所得结果再对256求余。用255减去前面所得结果后加1,将所得数值用两位十六进制表示出来即为校验和。程序框图如下图3所示。图3LRC校验和程序框图5数据采集系统设计5.1程序流程图本文所设计的数据采集系统包括地址搜索、浓度采集、温度采集、数据存储等功能。程序流程图如下图4所示。YNY搜到指定数量的地址?YNY搜到指定数量的地址?循环读搜到的设备的浓度循环读搜到的设备的温度结束开始参数设置搜索地址停止?提示出错并检查线路连接N图图4整体程序流程框图5.2前面板设计前面板上分三个区,显示控件区、参数设置区以及开关按钮区。在显示控件区里,共有三组显示控件,每一组有10个,分别为地址显示控件、浓度显示控件和温度显示控件。最多可以显示10个传感器的有关数据。参数设置区里,均为输入控件。程序运行前,需先设置好参数,包括端口号、所连接的设备个数、要搜索的起始地址和终止地址等。在开关按钮区,有校准按钮、数据保存按钮以及停止按钮。数据采集系统前面板如下图5所示。图5数据采集系统前面板5.3地址搜索先设置搜索的初始地址和结束地址,然后用while循环在此区间内挨个搜索,发出地址搜索指令后,有回复的设备即为搜到的设备。每一次循环中,先计算LRC校验和,然后按表1所示信息帧格式将指令发送到指定串口,等待200ms,读取设备响应的数据,将地址分离出来,用索引数组显示。采用索引数组时,若设备有响应,则显示此设备地址;若设备无响应,则为空字符串。地址搜索程序框图如下图6所示。ab图6地址搜索程序框图将索引数组中的空字符串过滤掉,得到地址数组。若搜到的设备数量〔地址数组大小与指定的设备数量不相等,则结束程序;若相等,则将搜到的地址依次显示在不同的显示控件中。数组过滤与地址显示程序框图如下图7所示。图7数组过滤与地址显示程序框图图7数组过滤与地址显示程序框图5.4浓度采集整体结构采用for循环结构实现。将地址数组连接至for循环中的地址输入端,启用索引。计算读取浓度指令的校验和,将读取浓度的指令按表1所示格式发送到指定串口,等待200ms,读取设备回复的数据。计算其校验和,与读取到的校验和相比较,若不同,则重新发送;若相同,则从此信息帧中分离出浓度数据,并用十进制显示在相应显示控件中。流程框图如下图8所示。向串口发送指令向串口发送指令:Addr.03000A0001LRCCRLF开始计算LRC等待200ms读取设备回复的数据读取的校验和=计算所得校验和?分离出浓度数据并显示指定数量的设备的浓度全部读取?结束NYYN图8浓度采集程序流程框图5.5温度采集采集浓度和采集温度的程序采用平铺式顺序结构实现。在顺序结构的一个框图中为浓度采集的程序,在顺序结构第二个框图中为温度采集的程序。温度采集和浓度采集的程序基本相同。不同点仅在于:〔1若地址为01时,浓度采集程序的发送指令为":0103000A0001+校验和+〔回车换行";而温度采集程序中,只需把000A换成0003即可,即发送指令为""。〔2温度采集时,分离出的温度数据转换为十进制后,需再除以10。5.6数据保存检测文件夹"数据采集系统"是否存在,若存在,则在此文件夹下创建新路径;若不存在,则先创建文件夹"数据采集系统",然后再在此文件夹下创建路径。先将传感器编号写入电子表格文件,当按下数据保存按钮时,各个传感器当前显示的浓度和温度均保存在该电子表格文件中。如下图9所示。图9数据保存程序框图6本设计的总结及研究意义6.1总结本设计在研究虚假仪器技术以及软件开发技术的基础上,使用虚拟仪器技术实现了基于LabVIEW的红外传感器的数据采集系统的设计。通过测试,该设计方案可以方便、快捷地进行数据采集,并且具有实时显示以及数据保存等功能。若有需要,亦可以很方便地实现仪器校准等功能。本设计的前期工作主要是对虚拟仪器的了解和对LabVIEW的学习。LabVIEW是一种程序开发环境,由美国国家仪器公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化的编辑语言G编写程序,产生的程序是框图的形式。从学习过程中也能看到这一点,利用框图来编程序即形象又容易记忆,当熟悉各个框图在什么地方时,编一个程序就变得容易很多了。然后再看参考书上的例子,从简单到复杂,会越来越熟练。从编写简单的串口通信到用特定的协议编写程序,慢慢领会到了一些结构比如while循环结构、for循环结构、平铺顺序结构、事件结构等的巧妙用法,并积累了自己的经验。本设计大部分工作是程序的编写,所涉及的硬件部分都有现成的。但是对硬件的了解也是必需要做的工作。包括对红外传感测试平台、RS232接口以及RS485接口的了解。此外,了解Modbus协议也是必需要做的工作。在设计过程中,先设计各个子程序,测试其功能后再设计其他的子程序。在最后设计整个系统时,考虑了很多框架,比如平铺顺序结构,事件结构等。实际的主程序框架为多种结构的混合。网络技术的飞速发展和远程测试的需要,驱动虚拟仪器网络化方向发展。以PC机或工作站为平台,运用虚拟仪器技术构成实用的测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 法律速录实训考试题及答案
- 2026福建医科大学附属第二医院非在编工作人员招聘53人(一)模拟试卷(各地真题)附答案详解
- 南通四模生物试题及答案
- 美术画画考试题及答案
- 第1课时 发达国家集中的地区 欧洲西部的气候
- 联保电子厂测试题及答案
- 陕西师范大学从2026届毕业生中选聘科研助理模拟试卷附答案详解【突破训练】
- 《环境安全对国家安全的影响》课件
- 智慧城市交通大脑-第1篇
- 七年级下册语文古诗文默写真题变式专项练习
- 2023-2024学年福建省厦门市高一下学期7月期末质量检测生物试题(解析版)
- 肺癌大咯血的护理
- CJ/T 490-2016燃气用具连接用金属包覆软管
- 自考 00018 计算机应用基础
- 2025年福建中闽海上风电有限公司招聘笔试参考题库含答案解析
- 煤矿防治水细则解读
- 《决胜B端:驱动数字化转型的产品经理》札记
- 国家开放大学专科《管理英语2》一平台机考真题及答案(第二套)
- (正式版)SH∕T 3541-2024 石油化工泵组施工及验收规范
- 八年级(下)期末考试物理试卷-附答案解析
- 美国西南航空公司案例课件
评论
0/150
提交评论