用labview设计的电子秤.docx
《用labview设计的电子秤.docx》由会员分享,可在线阅读,更多相关《用labview设计的电子秤.docx(15页珍藏版)》请在冰豆网上搜索。
用labview设计的电子秤
1设计任务描述
1.1设计题目:
基于Labview的智能电子秤设计
1.2设计要求
1.2.1设计目的
1.2.2基本要求
(1)掌握NI-DAQ使用方法。
(2)了解电子秤的测量原理及方法。
(3)能够测量重量,显示重量和收费。
能够设置量程和输入单价。
1.2.3发挥部分
电子秤的前面板上有数字小键盘,该小键盘能为电子秤输入单价。
2设计思路
根据此次课程设计的要求,通过自上而下的设计思路,设计该电子秤:
(1)利用NI公司提供的数据采集卡和Labview开发数据采集程序,将传感器传过来的电压模拟信号变换成数字信号。
采集到得数字信号必定和施加到传感器上的压力有了一定的线性关系,压力又与重量有相等的关系,那么这个数字信号就和重量有线性关系。
并且,设计无论选择那个量程传感器所传给采集卡的电压都是0——4V的电压信号。
(2)通过这个数字信号在程序中转变成相应的重量g或kg。
(这个数字信号通过乘以对应的数值来完成。
)在利用【格式化写入字符串】自VI将单位g或kg加到该重量数值后面,构成称重的结果通过【字符串显示控制】把重量在前面板上显示出来。
(3)数据小键盘输入货物的单价。
单价的单位由所选择的量程自动决定是“元/g”还是“元/kg”。
也是通过【格式化写入字符串】把单价值以他的单位合成,通过【字符串显示控制】把单价在前面板上显示出来。
(4)将单价乘以重量得到应付款数。
在利用上面说的【格式化写入字符串】把应付款数以他的单位合成,通过【字符串显示控制】把单价在前面板上显示出来。
(5)通过按【付款】键把消费信息存入计算机D盘中的Excel中,留作日后查看时备用。
(6)当数字信号高于4V时,报警。
以此来提示销售者量程选择过小。
以免算坏传感器。
3.设计方框图
设计方框图展现出的是设计电路的主要框图,在设计时主要实现的功能和流程,简单易懂,在设计框图中需要体现出电路的设计思想。
4程序流程图
5各部分设计及参数计算
5.1各部分电路设计
5.1.1DAQ数字采集小助手的设计:
图5-1DAQ子VI示意图
设置DAQ为输入电压信号,选择范围为0V到5V,选择通道1。
设置成功后当打开数据采集卡并运行程序,将模拟输入端连接到电压信号数据行时。
转动电位器,图4-1中的数字信号输出端将输出一个与电位器上电压信号相同的数字信号。
该数字信号是以重量成比例关系的。
5.1.2量程选择设置:
使用下拉列框来选择量程,下拉列框编辑项设置如图4-2所示。
图5-2下拉列框编辑项
在选择不同的量程是,下拉列框在程序版上将输出相应的值0、1、2、3。
5.1.3量程的选择与重量数值的计算:
当【请选择量程】下拉列框选择了0到1000g时,它将输出0给【索引数组】,【索引数组】将会把连给它的数组的第0个元素(250)索引出来。
索引出来的结果(250),以数据采集卡采集得到的数值相乘,得到重量的数值0到1000。
在后面的程序设计中将会为这个表示重量的数值加上单位“/g”。
当【请选择量程】下拉列框选择了0到10kg时,它将输出1给【索引数组】,【索引数组】将会把连给它的数组的第1个元素(2.5)索引出来。
索引出来的结果(2.5),以数据采集卡采集得到的数值相乘,得到重量的数值0到10。
在后面的程序设计中将会为这个表示重量的数值加上单位“/kg”。
当【请选择量程】下拉列框选择了0到50kg时,它将输出2给【索引数组】,【索引数组】将会把连给它的数组的第2个元素(12.5)索引出来。
索引出来的结果(12.5),以数据采集卡采集得到的数值相乘,得到重量的数值0到50。
在后面的程序设计中将会为这个表示重量的数值加上单位“/kg”。
图5-3量程的选择与重量数值
当【请选择量程】下拉列框选择了0到100kg时,它将输出3给【索引数组】,【索引数组】将会把连给它的数组的第3个元素(25)索引出来。
索引出来的结果(25),以数据采集卡采集得到的数值相乘,得到重量的数值0到100。
在后面的程序设计中将会为这个表示重量的数值加上单位“/kg”。
从而完成量程的选择与重量数值的计算过程。
5.1.4过重提醒的设计:
图5-4过重提醒的设计
由于所设计的压力传感器的安全工作电压在输出为0V到4V之间。
如果,我们所采集到得电压信号大于4V,为了仪器的安全就应当报警,来提示人们。
如果DAQ输出的数值大于4V,就说明传感器的输出电压高于4V,传感器会有危险。
这是报警指示灯会亮,从而来提醒人们注意。
5.1.5重量的数值与它相应单位的合成
图5-5重量的数值与它相应单位的合成
DAQ采集到的代表重量的电压值乘以相应的扩大倍率得到只是一个数值,它要加上单位才可以表示重量。
【量程选择】不但控制了索引要扩大的倍率,还控制了该量程下所对应的单位。
重量的数值与索引到的单位通过【格式化写入字符串】得到重量
,通过字符串显示控制【商品重量】显示出来给消费者和销售者。
5.1.6小键盘输入单价
图5-6小键盘的前面板设计
销售者可以通过前面板上的小键盘输入单价。
一按【回车键】就可以将输入的单价输入系统。
并且,输入的这个单价会在前面板上显示。
以供消费者和销售者核对。
小键盘的设计框图如下图5-7所示。
图5-7小键盘的程序框图
图5-8
如图5-8所示的程序框图,当2端为真时4端将输出3端的值,当2端为假时它经输出1端的值。
设计10个这样的程序框图,这10的程序框图的1端都令为数值0。
3端设计为0到9的数值。
对应与0到9的数值按钮。
当0到9的某一个按钮按下时。
这10个程序框图中有一个将输入一个对应于该按钮的数值和9个0到如下图4-9的加和框图中进行加和。
图5-9
由于计算机的运行速度非常快,在它的一个运行周期内我们是不可能按下两个数据键的,所以图5-9加和后的总和只可能是0到9的值,并且这个总和的数值对应于人们刚刚按下的键。
利用移位寄存器,把得到的每一个数值转换成十进制。
就是销售者输入的商品单价。
例如:
销售者按键的顺序是
1
2
.
5
【回车键】。
那么移位寄存器即与它连接的程序的动作为
0×10+1=1
1×10+2=12
12×10+5=125
125÷10=12.5
输出单价12.5元。
5.1.7单价的显示与应付款数的计算:
图5-10单价的显示与应付款数的计算程序框图
单价×重量得到应付款数。
通过【格式化字符串】把单位“元”加到应付款数的后面。
在单价的数值后面加上单位“元/g”或“元/kg”。
通过【字符串显示控制】加以显示。
5.1.8采集系统当前时间并加以显示:
图5-11采集系统当前时间
将系统的当前时间采集下来,显示给人们。
并且把它同重量、单价、应付款数一起写入电子表格。
以供人们日后查看之用。
时间将作为它们的一个表示。
5.1.9重量、单价、应付款数、时间存入计算机D盘中的Excel中:
图5-12重量、单价、应付款数、时间存入计算机D盘中的Excel中
但按下【付款】按钮时程序将跳出里面的循环到达外面的循环,这时重量、单价、应付款数、时间存入计算机D盘中的Excel中。
5.2各部分参数计算
5.2.1DAQ采集到的电压值换成重量的数值的参数计算:
由于采集到的电压值都是0到4的值。
要以所选的量程对应的重量对应就必须乘以不同的数值。
(1)
当量程为0到1000g时:
(2)当量程为0到10kg时:
(3)当量程为0到50kg时:
(4)当量程为0到50kg时:
6工作过程分析
6.1当重物为830g左右,选择量程为0到1000g,单价为1.2元时:
图6-1选择量程和输入单价
图6-2重量、单价、应付款数、时间显示
6.26.1情况下当物重高于1000g时:
图6-3选择量程和输入单价
这时过重指示将亮起来。
如图6-4所示。
图6-4重量、单价、应付款数、时间、报警显示
由于1027.5g大于量程1000g。
所以过重指示灯亮了。
提示销售者该选择更高的量程。
以上两组重量、单价、应付款数、时间都被存入了计算机D盘的名为xiaofeijilu的Excel中。
如图6-5所示。
图6-5名为xiaofeijilu的Excel中的数据记录
当你选择其他3个量程时,也与上面5.1,5.2相似。
7元器件清单
序号
名称
数量/个
1
While循环结构
3
2
条件结构
4
3
选择s?
t:
f
10
4
符合运算
1
5
下拉列框
1
6
布尔按钮
13
7
显示列框
7
8
写入电子表格文件
1
9
格式化写入字符串
4
10
创建数组
3
11
索引数组
2
12
获取日期/时间字符串
1
8主要元器件介绍
8.1条件结构:
条件结构是LabVIEW最基本的结构之一,条件结构类似于文本编成语言中的switch语句或if…then…else语句。
条件结构可从【结构】子选板中创建,条件结构包含选择端口和选择器标签,如图7-1所示。
图8-1条件结构
在条件结构中,选择端口相当于C语言的switch语句中的表达式,框图表示符相当于“表达式n”。
编程时,将外部控制条件连接至选择端口上,程序运行时选择端口会判断送来的控制条件,引导选择结构执行相应框架中的内容。
8.2数据采集卡:
在设计的过程中,通过传感器把压力信号转换成电压信号,电压信号通过数据采集卡送到计算机系统。
一个典型的数据采集卡的功能有模拟输入、模拟输出、数字I/O、计数器/定时器等,这些功能分别由相应的单元电路来实现。
模拟输入是采集卡最基本的功能。
它一般由多路开关(MUX)、放大器、采样/保持电路,以及A/D转换器来实现,通过这些部分,一个模拟信号就可以转化为数字信号。
本次设计选用NI公司的SC-2075型数据采集卡作为系统硬件的核心部分。
图8-2数据采集助手
8.3While循环结构:
图8-3While循环结构
在Labview中,当不确定循环次数时,用While循环比较方便。
它使Labview中一个重要的结构。
它相当于C语言的While和do……while结构。
条件端口输入的是布尔变量,它用于判断循环在什么条件下停止执行。
它有两种使用状态:
StopifTrue和ContinueifTrue。
当每一次循环结束时,条件条件端口便会检测通过数据连线输入的布尔值,并根据输入的布尔值和其使用状态决定是否继续执行循环。
用鼠标右键单击条件端口,在弹出的快捷菜单中选择【真(T)时循环】或【真(T)时继续】,可以切换条件端口的使用状态。
重复端口i为当前循环的次数。
While循环可以添加移位寄存器。
小结
虚拟仪器技术是现代仪器技术与计算机技术相结合的产物,是21世纪科学技术中的核心技术之一。
它的出现导致传统仪器的结构、概念和设计观点都发生了巨大的变革,代表着仪器发展的最新方向和潮流。
虚拟仪器是我们测控技术与仪器专业主修的专业课之一,记得上学期我们刚接触这门课的时候,根本就不知道它是一门什么样的课程,每次上课的时候我们就是按照书本上的例子来做题,老师要是让我们自己来实现一个什么样的功能,感觉可难了,不知如何下手。
但是,后来在吕老师的指导下,觉得自己对虚拟仪器这门课已经有了最基本的了解,自己能编一些简单的程序,能实现一些简单的功能。
通过这次课程设计,我所收获的是对虚拟仪器的软件编程系统LabVIEW有了更深层次的了解。
LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:
其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。
从学习的过程中我也深深地体会到了这一点,利用框图来编程序既形象又容易记忆,当熟悉各个框图在什么地方,又知道它们的功能时,编一个程序变得容易多了。
我知道在学习的道路上我还有很多路要走,我应该更加坚定,更加顽强,让心中那股对学习的热情,对真理的执着的火焰熊熊燃起。
也许实训只是一个人学习生涯的一个小片段,但是他对一个知识海洋畅游的学生来说,却是一个让知识升华的大好境遇。
总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。
最后终于做完了有种如释重负的感觉。
此外,还得出一个结论:
知识必须通过应用才能实现其价值!
有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。
致谢
这一周的课程设计已经结束,之所以能短时高效的完成。
首先要感谢吕老师,的大力支持和指导。
在设计过程遇到很多困难,每一次找到老师时,老师都会认真解答,并不断为我们引导设计思路,与此同时还未我们提供相关应用软件,这让我们不仅圆满的完成课程设计要求的内容,并且还对书中内容有了进一步认识,在此表示对黄老师诚挚的谢意。
吕老师是我们教研室的主任,每天他都会很忙,有的时候吕老师正在办公室忙着搞科研,同学们有问题了就会到他的办公室去找他,每次去办公室找老师时心里都会有些害怕,担心会因为打扰他他会批评我们,但是每次找吕老师时,他的脸上总是面带着微笑,然后给同学们认真的讲解。
他特别注重培养我们的创新精神,就像是这次课程设计,老师只给了我们一个要设计的题目,没有任何要求。
吕老师之所以没给我们设计要求,是因为他想让我们自由发挥,能设计出什么功能就设计什么功能,而且是越新颖越好,越有思想越好。
在设计过程当中通过努力,互相帮助,大家在一起集思广益,在很短时间内完成设计要求。
对帮助过我的同学表示感谢。
也感谢沈阳工程学院图书馆的支持,科技书刊借阅室和多媒体电子阅览室提供本设计要求所需资料。
还有对本设计有过帮助的人,在此一并表示感谢!
参考文献
[1]杨乐平.LabVIEW程序设计与应用.北京:
电子工业出版社,2001
[2]张重雄.虚拟仪器技术分析与应用.北京:
电子工业出版社,2008
[3]张毅,周绍磊.虚拟仪器技术分析与应用.北京:
机械工业出版社,2004
[4]王利强,彭月祥,宁可庆.计算机测控系统与数据采集卡应用.北京:
机械工业出版社,2007
附录A1前面板图