- 相关推荐
仪器管理系统课程设计报告
每一台仪器都应该有专人负责,在仪器的显著位置贴上管理卡,上面有仪器管理人的姓名,仪器的购置时间,仪器的型号,仪器的使用的情况和仪器经常出现的问题。以下是小编整理的仪器管理系统课程设计报告,欢迎阅读。
仪器管理系统课程设计报告1
课程设计的要求和内容(包括原始数据、技术要求、工作要求)
虚拟仪器技术是测试技术和计算机技术相结合的产物,它融合了测试理论、仪器原理和技术、计算机接口技术、高速总线技术以及图形化软件编程技术于一身,实现了测量仪器的集成化、智能化、多样化及可编程化,本课程设计的任务是帮助学生学习和了解虚拟仪器的原理及开发技术,掌握虚拟仪器软件平台LabVIEW的基本的编程方法及调试技术,并结合计算机声卡来完成一个信号发生器与时频分析仪的设计。
具体要求与内容:
1. 具备数字存储示波器、信号发生器和信号分析仪三个主要功能模块;
2. 可以通过前面板交互界面实现示波器与信号发生器功能切换;
3. 采集数据可以在单次和连续两种方式进行切换,采集的数据可以进行存储,类型可以在WAV、BIN和TXT三种类型进行切换,数据存储要求用子VI实现;
4. 对于信号发生器,要求可以叠加各种噪声,要求可以改变信号相关参数,同时能够实现两个以上信号叠加为一个复合信号;
5. 时频分析仪应该能够完成大部分时域和频域分析,可实现信号分析前的加窗或滤波器操作,可以对原始数据和结果数据进行保存,示波器的各个参数灵活可调并且可以将已存数据重新载入进行分析观察。对于音频信号可以选择性的进行播放。
虚拟仪器技术概述
虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。LabVIEW(Laboratory Virtual Instrument Engineering Workbench,实验室虚拟仪器集成环境)是一种图形化的编程语言(又称G语言),它是由美国NI公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。使用这种语言编程时,基本上不用写程序代码,取而代之是程序框图。
时钟显示的结构
本课题设计的是一个数字电子时钟。通过获取电脑的系统时间,并分离出给数字,在通过布尔显示显示。数字的显示主要是7个长条的布尔显示组成,原理与7段数码管相似。7段数码管显示不同的数字主要通过其7个布尔不同的真假值控制,将0-9对应的7段布尔显
示值对应的局部变量存入条件结构的十个不同分支中,然后再把条件结构与截取时间字符连接来过去时间并显示.
设计过程用到的控件和函数
在制作数码管电子钟的过程中,我们用到一个显示控件,四十二个长方形LED组成的'数码管,四个圆形LED组成的两个“冒号”,和一个圆形的按钮,其中LED和按钮都是布尔控件,这些控件都是放大前面板的。而前面板是图形化的人机界面,模拟数码管电子钟工作的过程。在程序框图上,用到一个获取日期/时间(秒)、一个格式化日期/时间字符串、八个截取字符串、一个While循环、六个条件结(Case结构)、十六个常量、四百十二个局部变量、四十二个真常量、四十二个假常量等等。
设计过程:
一,在程序框图放上一个获取日期/时间(秒),获取和返回计算机当前时间的时间标识。如果计算机当前时间是“上午 08:45:57 2010-12-30”,那么获取日期/时间(秒)同样显示“上午 08:45:57.59 2010-12-30”。计算机的时间格式是什么,获取日期/时间(秒)就显示什么样的时间格式。
二,在程序框图放上一个格式化日期/时间字符串,在“时间格式字符串”创建常量并写上“%X”,如果计算机当前时间格式是“上午10:25:31”,那么格式化日期/时间字符串显示“上午10:25:31”,
若计算机当前时间时间格式是“08:45:57”,那么格式化日期/时间字符串显示“08:45:57”。计算机的时间格式是什么,格式化日期/时间字符串就显示什么样的时间格式。
三是在程序框图放上八个截取字符串,把它们排成一列,按从上往下的顺序,在第一个截取字符串的偏移量处创建一个常量,因为要截取时的十位上的数字,而我们的计算机的时间格式是“上(下)午 XX:XX:XX”,如“上午 11:40:12”,所以在常量上写上“5”;在长度(剩余)处创建一个常量,写“1”,表示截取一个数字。而剩下的七个截取字符串,从上往下依次在偏移量处创建一个常量,并顺序写上“6、7、8、9、10、、11、12”(包括了两个冒号),在长度(剩余)处都创建一个常量和都写上“1”。
四,在前面板放上七个方形指示灯,把它们排成数码管的形状,并调成合适的大小,为了美观,要把它们的标签去掉。
五,在程序框图放上一个条件结构,编辑条件结构,使有0、1、2、3、4、5、6、7、8、9共十个分支。编辑0分支,在0分支里放上七个局部分量,分别与前面板的七个方形指示灯对应,然后放上一个真常量和一个假常量,真常量控制六个方形指示灯的亮,假常量控制一个方形指示灯的灭,将条件结构的布尔输入端子与其中一个截取字符串的输出端连接,当截取字符串输出“0”时使得数码管显示“0”的形状;其它分支类似于这样的编辑,使得截取字符串输出“1、2、3、4、5、6、7、8、9”时数码管显示“1、2、3、4、5、6、7、8、9”的形状;这样的条件结构总共有六个(相应的前面板也要总共有六个数码管),分别与截取字符串的输出连接,显示时、分、秒,并设置所有的“0”分支为“默认”。
六,在前面板上放上两个圆形指示灯,组成冒号的形状。然后在程序框图上放上一个等于的关系运算比较符,它的一个输入端与一个截取“:”的截取字符串的输出端连接,另一个输入端创建常量,填上“:”,当运行时会变亮(变红色)。时间格式的另一个冒号也是这样操作的。
七,把第五、第六步所创建的东西放入一个While循环里,在前面板上放上一个圆形的指示灯,把它转换为输入控件,在程序框图上与循环条件相连接,当圆形指示灯变“绿”时数码管停止工作,当变“红”时数码管开始工作。
八,在进行上面的操作时要时时注意前面板的数码管的排列和修饰,注意程序框图各个控件的排列的调整。还要不时的运行程序,以检验做得怎么样,随时发现错误,及时修改。
制作完了数码管电子钟,命名为“数码管电子钟.vi”,打开轶件时数码管电子钟一般不会立即工作,因为圆形指示灯是绿色的,还要点击一下圆形指示灯使它变“红”,这时数码管才会工作。
仪器管理系统课程设计报告2
一、课程设计目的
掌握虚拟仪器的概念和系统组成,虚拟仪器系统的基本设计思想;认识虚拟仪器的软件开发工具LabVIEW及图形化编程语言;掌握虚拟仪器软件的设计方法,能够运用LabVIEW进行数据操作、结构控制、文件读写、信号处理、数学分析、波形分析等。
二、第一阶段设计
1、第一题
第一题要求建立一个二维数组,由于没有指定数组的具体数值,所以设计为让用户
自行输入数组的元素,并生成一个新的数组,再进行后续的操作。数组长度是使用数组大小函数来获得,经过数组大小函数后,通过索引数组来的到二维数组的行数与列数,想乘后的到数组的长度,查找元素和替换元素则是直接用已有的函数即可实现。
2、第二题
任意创建一个二维数组常量,并定义数组元素后用第一题的方法得到数组的长度,把数组和数组长度输入到重排数组维数函数中,即可得到重新排列后的一维数组。而后让用户自己设计把最后多少个元素放置到数组前面,经过一维数组循环移位后即可实现功能。
3、第三题
首先是创建了个数组输入控件,让用户自己输入一维数组的元素,利用一维数组排序函数即可实现升序排列,然后把升序排列的结果利用反转一维数组函数进行反转,即可得到降序排列的数组。
4、第四题
首先建立了一个二维的数组常量,定义数组的元素后显示出来。利用数组的最大值最小值函数得到数组的最大值最小值以及位置,由于位置是以数组形式表示的,则用数组索引把行数列数提取出来并显示。但这个方法的问题在于,数组的最大值最小值函数并不能把数组中所有的最值的位置都输出出来,它只输出第一个找到的最值的位置。
5、第五题
建立一个簇然后在簇里添加题目要求的内容后,把顺序设置好,接着按顺序把相应的输入控件捆绑到簇中。
6、第六题
首先求阶乘要分为3种情况,一是等于零,而是大于零,还有就是小于零。让用户输入n的值后,马上进行判断,如果等于零,则直接输出1,如果小于零则输出0(表示出错),如果大于零则进入循环进行运算。For循环中,以n为总循环次数,建立反馈节点(初值为1),i加1后再与自身相乘,得到结果;while循环中,以i加1后的值是否大于n为循环结束条件,其余与for循环相似。
7、第七题
利用随机数(0-1)函数,生成一个0-1(不等于1)的随机数,在for循环结构中,让其循环5次,第一次乘以10,作为5位随机数的第一位,第二次乘以100作为5位随机数的第二位,以此类推。但这样会出现6位数的随机数,所以在生成随机数的时候就进行判断,限定随机数不能大于0.9。
8、第八题
建立数组输入控件,把输入后的数组通过数组大小函数计算出数组的长度作为for循环的总循环次数,在for循环中把数组的每个元素提取出来,通过累加得到结果。
9、第九题
用for循环,循环2000次,每次生成一个随机数,然后输入波形图中得到波形。建立顺序结构,使用两个定时器,先读出第一个定时器的.值,然后波形生成完成后进入顺序结构把两个定时器的值相减得到时间。
10、第十题
一开始想法是直接使用打开文本文件函数,打开文件后读取完毕再关闭文件,设置2个按钮。后来发现三个问题,一是如果还没打开文件就点关闭文件按钮的话程序就会死掉,二是在文件对话框中选择取消后会报错,三是打开文件后不关闭文件再次打开时是程序会死掉。后来经修改,程序改为,一开始关闭文件按钮是不可见的,只有点击了打开文件按钮后才显示,而点击了打开文件按钮后该按钮也将隐藏,点击了关闭文件按钮后才显示。如果在对话框中选择取消,则重置按钮状态,然后退出程序(在对labview的不断熟悉中,意识到其实不需要使用如此复杂的逻辑关系。)
11、第十一题
一开始只使用了条件结构,判断输入的值是否大于等于0,如果是,则直接开平方后输出,如果不是则弹出提示对话框并输出-99999.0。后来发现如果这样的话输入负数的时候对话框将不断弹出,所以后来加入了事件结构,但数值改变时才执行程序,解决了问题。
12、第十二题
建立事件结构,以两个按钮作为事件结构的触发条件,分别将一维数组和二维数组写入电子表格文档。和第10题一样出现问题,即选择取消后报错,进入写入电子表格文档的子vi程序,把错误处理那改成no dialog则不再报错。
13、第十三题
使用读取电子表格文件函数读取文件,然后显示到数组中。遇到与12题一样的问题,但这次打开函数的子vi找不到错误处理,所以在调用函数前加入了文件对话框,判断是够有错误,没有错误才执行读取。使用通用错误处理函数,使其不弹出对话框。
14、第十四题
矩阵计算行列式以及矩阵相乘都有现成的函数可以调用,在计算之前要考虑两个问题,一是计算行列式时,矩阵必须为方阵,二是计算矩阵相乘时,A矩阵的列数要和B矩阵的行数相等,所以在计算之前使用条件结构进行判断,如果不满足条件则弹出对话框提示,并使用条件结构防止对话框不停地弹出。
15、第十五题
使用公式求积分函数,通过字符串常量把公司输入,再设定上下限,得到结果。