基于tcp的LABVIEW课程设计报告书Word文件下载.docx
《基于tcp的LABVIEW课程设计报告书Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于tcp的LABVIEW课程设计报告书Word文件下载.docx(21页珍藏版)》请在冰点文库上搜索。
当计算机与适当的I/O接口设备配置完毕,虚拟仪器的硬件平台就被确定,此后软件就成为仪器的关键部分,这也是“软件就是仪器”之说的来由。
这意味着只要按照测量原理,采用适当的信号分析技术与处理技术,编制某种测量功能的软件就可构成该种功能的测量仪器。
2.虚拟仪器概述
2.1虚拟仪器概念
虚拟仪器技就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。
自1986年问世以来,世界各国的工程师和科学家们都已将NILabVIEW图形化开发工具用于产品设计周期的各个环节,从而改善了产品质量、缩短了产品投放市场的时间,并提高了产品开发和生产效率。
使用集成化的虚拟仪器环境与现实世界的信号相连,分析数据以获取实用信息,共享信息成果,有助于在较大围提高生产效率。
虚拟仪器提供的各种工具能满足我们任何项目需要。
2.2虚拟仪器的优势
(1)性能高。
虚拟仪器技术是在PC技术的基础上发展起来的,所以完全"
继承"
了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据高速导入磁盘的同时就能实时地进行复杂的分析。
此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优势
(2)扩展性强。
NI的软硬件工具使得我们不再受限于当前的技术中。
这得益于NI软件的灵活性,只需更新计算机或测量硬件,就能以最少的硬件投资和极少的、甚至无需软件上的升级即可改进整个系统。
在利用最新科技的时候,我们可以把它们集成到现有的测量设备,最终以较少的成本加速产品上市的时间。
(3)节约时间。
在驱动和应用两个层面上,NI高效的软件构架能与计算机、仪器仪表和通讯方面的最新技术结合在一起。
NI设计这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活性和强大的功能,使我们轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制解决方案。
(4)无缝集成。
虚拟仪器技术从本质上说是一个集成的软硬件概念。
随着产品在功能上不断地趋于复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同设备总是要耗费大量的时间。
NI的虚拟仪器软件平台为所有的I/O设备提供了标准的接口,帮助我们轻松地将多个测量设备集成到单个系统,减少了任务的复杂性。
2.3虚拟仪器的构成
2.3.1虚拟仪器系统的构成
虚拟仪器由硬件设备与接口、设备驱动软件和虚拟仪器面板组成。
其中,硬件设备与接口可以是各种以PC为基础的置功能插卡、通用接口总线接口卡、串行口、VXI总线仪器接口等设备,或者是其它各种可程控的外置测试设备,设备驱动软件是直接控制各种硬件接口的驱动程序,虚拟仪器通过底层设备驱动软件与真实的仪器系统进行通讯,并以虚拟仪器面板的形式在计算机屏幕上显示与真实仪器面板操作元素相对应的各种控件。
用户用鼠标操作虚拟仪器的面板就如同操作真实仪器一样真实与方便。
2.3.2虚拟仪器系统的硬件构成
虚拟仪器的硬件系统一般分为计算机硬件平台和测控功能硬件。
计算机硬件平台可以是各种类型的计算机,如台式计算机、便携式计算机、工作站、嵌入式计算机等。
它管理着虚拟仪器的软件资源,是虚拟仪器的硬件基础。
因此,计算机技术在显示、存储能力、处理器性能、网络、总线标准等方面的发展,导致了虚拟仪器系统的快速发展。
2.3.3虚拟仪器系统的软件构成
测试软件是虚拟仪器的主心骨。
NI公司在提出虚拟仪器概念并推出第一批实用成果时,就用软件就是仪器来表达虚拟仪器的特征,强调软件在虚拟仪器中的重要位置。
NI公司从一开始就推出丰富而又简洁的虚拟仪器开发软件。
使用者可以根据不同的测试任务,在虚拟仪器开发软件的提示下编制不同的测试软件,来实现当代科学技术复杂的测试任务。
在虚拟仪器系统中用灵活强大的计算机软件代替传统仪器的某些硬件,特别是系统中应用计算机直接参与测试信号的产生和测量特性的分析,使仪器中的一些硬件甚至整个仪器从系统中消失,而由计算机的软硬件资源来完成它们的功能。
虚拟仪器测试系统的软件主要分为以下四部分。
2.4虚拟仪器开发软件
虚拟应用软件开发环境是设计虚拟仪器所必需的软件工具。
应用软件开发环境的选择,是以开发环境人员的喜好不同而不同,但最终都必须提供给用户一个界面友好、功能强大的应用程序。
软件在虚拟仪器中处于重要的地位,他担负着对数据进行分析处理的任务,如数字滤波、频谱变换等。
在很大的程度上,虚拟仪器能否运行成功,就取决于软件。
因此美国NI公司提出了“软件就是仪器”的口号。
目前已有多种虚拟仪器的软件开发工具,主要分为以下两类:
(1)传统的文本式编辑方法,如C、VisualC++、VisualBasic、LabWindows/CVI等。
(2)图形化编辑方法,如NI公司的LabVIEW软件,HP公司的VEE等。
使用图形化软件编程的优势是软件开发周期短,编程容易,特别适合于不具有专业编程水平的工程技术人员。
下面会介绍一下LabVIEW软件的具体概述。
3LabVIEW软件的概述
LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言。
传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。
VI指虚拟仪器,是LabVIEW的程序模块。
3.1LabVIEW编辑界面
Labview编程环境主要由启动窗口、控件选板、函数选板、工具选板、菜单栏、工具栏、项目浏览器窗口构成。
如图3.1为LabVIEW的启动界面
图3-1LabVIEW的启动界面
如图3.2为LabVIEW软件的前面板和编辑面板以及各种函数结构
图3-2LabVIEW前面板和编辑面板
3.2LabVIEW的特点
(1)LabVIEW(LaboratoryVirtualinstrumentEngineeringWorkbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。
它还置了便于应用TCP/IP、ActiveX等软件标准的库函数。
这是一个功能强大且灵活的软件。
利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
(2)图形化的程序语言,又称为"
G"
语言。
使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。
它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。
它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。
使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
(3)它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。
像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
3.3LabVIEW的应用领域
(1)LabVIEW是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
4LABVIEW的TCP/IPD通讯设计
4.1TCP/IP概述
Internet中使用最为广泛的网络协议为TCP/IP协议集。
TCP是TCP/IP协议集中的隶属于传输层的传输控制协议。
IP是Internet网络中隶属于网络层的基础协议,由IP控制传输协议的协议单元称为IP数据。
IP数据中含有发送或接收方的IP地址。
IP提供可靠的、无连接的、具有时间限制的自动重试机制的数据投递服务,构成了Internet网络数据传输的基础。
TCP以此为基础增加了连接管理和确认重发等机制,向更高层的应用程序提供面包连接的、可靠的传输服务。
TCP/IP协议族共分为四层:
链路层、网络层、传输层和应用层。
TCP/IP协议的传输层,包括TCP、UDP协议,可以被LabVIEW直接应用。
TCP/IP通常被认为四层协议系统
(1)链路层:
通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡
(2)网络层:
处理分组在网络中的活动,例如分组的选路(IP、ICMP和IGMP)
(3)运输层:
主要为两台主机上的应用程序提供端到端的通信(TCP和UDP)
(4)应用层:
Telnet远程登录,FTP文件传输协议,SMTP简单传输协议,SNMP简单网络管理协议。
构造互联网最简单的办法就是把两个或多个网络通过路由器进行连接。
路由器的好处是为不同类型的物理网络提供连接。
如图4-1为TCP/IP分层结构:
图4-1TCP/IP分层结构
4.2LabVIEW中的TCP通讯总流程图
服务器程序和客户端程序可以在两台联网的计算机上运行,当然也可以同时在一台计算机上运行,本次课程设计实现的就是在一台计算机上同时运行的情况。
另外,在运行的时候必须先启动服务器,待服务器初始化完成,在运行客户机,如图为TCP通讯总流程图:
图4-2TCP通讯总流程图
4.3LabVIEW中的TCP功能函数
在Labview中可以利用TCP进行网络通信,并且,Labview对TCP的编程进行了高度集成,用户通过简单的编程就可以在Labview中实现网络通信。
3.3.1TCP侦听
该函数的功能是创建一个侦听器并在指定端口等待TCP连接的请求。
该函数节点只能在作为服务器的主机上使用。
开始侦听某个指定端口时,不能再使用其他TCP侦听VI侦听该窗口。
图4-3TCP侦听函数
图4-4TCP侦听函数端口界面
网络地址:
指定侦听的网络地址。
如不指定网络地址,LabVIEW将侦听所有的网络地址。
通过字符串至IP地址转换函数可获取当前计算机的IP网络地址。
端口:
是要侦听连接的端口号。
连接ID:
是唯一标识TCP连接的网络连接引用句柄,该连接句柄用于在以后的VI调用中引用连接。
3.3.3打开TCP连接
该函数的功能是用指定的计算机名称和远程端口或服务名称来打开一个TCP连接。
该节点只能在作为客户机的主机上使用。
该函数节点主要接线端定义如下:
图4-5打开TCP连接函数
图4-6打开TCP连接函数端口
地址:
是要与其建立连接的地址。
该地址可以为IP句点符号格式或主机名。
远程端口或服务名称:
可以接受数字或字符串输入,是要与其确立连接的端口或服务的名称。
3.3.4读取TCP数据
该函数从指定的TCP连接中读取数据。
图4-7读取TCP数据函数
图4-8读取TCP数据函数端口
是唯一标识TCP连接的网络连接引用句柄。
读取的字节:
是要读取的字节数。
连接ID输出:
返回值与连接ID相同。
数据输出:
包含从TCP连接读取的数据。
3.3.4写入TCP数据
该函数通过数据输入端口将数据写入到指定的TCP连接中。
图4-9写入TCP数据函数
图4-10写入TCP数据函数端口
唯一标识TCP连接的网络连接引用句柄。
数据输入:
包含要写入连接的数据。
写入的字节:
VI写入连接的字节数。
3.3.5关闭TCP连接
该函数的功能是关闭指定的TCP连接。
图4-11关闭TCP数据函数
图4-12关闭TCP数据函数端口
是唯一标识要关闭的网络连接的网络句柄。
中止:
保留以便今后使用。
其值值与连接ID相同。
不要将该输出端与其它TCP函数相连。
4.4LabVIEW中的TCP通讯程序图
4.4.1如图为TCP服务器的完整流程框图:
图4-13TCP服务器程序框图
如图为TCP服务器的完整流程框图前面板:
图4-14TCP服务器前面板
4.4.2如图为TCP客户端的完整流程框图:
图4-15TCP客户端程序框图
如图为TCP客户端的完整流程框图:
图4-16TCP客户端前面板
5软件调试
(1)当客户端ip地址刚好为服务器的ip地址,且客户端端口刚好与服务器相对应时,这时“TCP服务器”在运行,TCP客户端也在运行同时接收到服务器的数据,如下图所示,图5-1显示的为服务器发出矩形波,打开客户端同时客户端接收到矩形波,通过调节频率、相位以及幅值来不断的改变波形的形状;
图5-2显示的为服务器发出正弦波,匹配端口与ip地址之后,打开客户端同时客户端接收到矩形波,通过调节频率和相位以及幅值来不断的改变波形的形状;
图5-3显示的为服务器发出三角波,匹配端口与ip地址之后,打开客户端同时客户端接收到三角波,通过调节频率和相位以及幅值来不断的改变波形的形状;
图5-1矩形波
图5-2正弦波
图5-3三角波
(2)客户端ip地址为服务器的ip地址,当“端口”不对应时,即使“TCP服务器”在运行,TCP客户端也接收不到任何的数据,如图所示
图5-4调试三角波
(3)因为必须先进行初始化服务器,待服务器完成初始化之后才启动客户端。
当“端口”对应时,此时ip地址也正确,如果对于客户端与服务器所执行的先后顺序不相同,则此时客户端接收不到数据,与此同时也会报错,如图所示
图5-5调试三角波
(4)在一台计算机上进行操作此通讯时,此时客户端中所对应的ip地址一定要为服务器的ip地址完全相同,否则此时客户端接收不到数据,与此同时也会报错,如图5-6所示
图5-6调试三角波
(5)当“端口”对应时,即“TCP服务器”停止运行,“TCP客户端”也不可以运行。
会报错,如图5-7所示
图5-7调试波
设计心得
这次LabVIEW课程设计历时一周的时间,在加上之前的实验课,时间汇总起来熟悉这个软件有了将近半个月的时间,经过这些天的上机课,虽然最终课设任务基本上达到老师的要求,但我对这次课程设计的收获却不是很满意。
刚开始上课接触这个软件时,听老师讲的津津有味,感觉这个LabVIEW应该会很有趣,我个人比较喜欢单片机这类的小型嵌入式的东西,因为这些东西在一定程度上能给自己带来一定的精神上的乐趣,因此前面刚开始上机接触此软件时,我甚至有点兴奋的小情绪。
但随着实验的一步一步走的过程中,我却发现LabVIEW这门课可能并没有我想象的那么好玩,或者说成我在做实验的过程中没有得到一些小小的成就也罢,几天后开始渐渐失去新鲜感,亦可以说只是为完成任务而在那花费时间。
在忙忙碌碌几天之后我抬头看看周围,和我一样混日子的人比比皆是,我突然觉得我不能再把时间给耽搁下去了,与其被动的“挨打”,倒不如主动地去请教,多学点东西,以后就少问点别人,少给自己带来带你麻烦,于是开始看文档,看教程,开始从最简单的建工程开始一步一步的来学习,不懂就问度娘、CSDN,在网上找些解决问题的办法。
最终经历了最后几天的努力,加上参考一些文档,最终做出来的这个课程设计还将就着能看。
对于这次的动手课程设计实践,我总结了一些自己的一些经验同时也学到了很多之前所未学到过的东西,通过这次课程设计我发现理论与现实差距还是有很大的,单单学习书本上的知识是不够的,自己要更多的思考,多犯一些错误,才能走的更远。
本次课设我意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。
总之,在学习的过程中,无论是对于学习方法还是理论知识,我都有了新的认识,受益匪浅,这将激励我在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。
参考文献
[1]虚拟仪器设计基础教程,黄松岭,吴静编著,:
清华大学,2008.10
[2]数据采集与仪器控制,伟,顾永刚等编著,:
清华大学,2016.7
[3]LabVIEW程序设计教程,江建军,继光编著.——:
电子工业,2008.3
[4]基于LabVIEW和TCP的数据采集系统的开发及应用,东、施奇峰、王云波,中冶京诚工程技术电气工程技术所;
[5]基于TCP/IP以太网协议的LabVIEW和CANoe通信研究,梁伟、王承惠、建东,2011航空试验测试技术学术交流会论文集,2010年