项目8 智能电子秤的设计与应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目8 智能电子秤的设计与应用
电子秤在日程生活中很常见。

本项目应用LabVIEW 软件、应变桥以及相应的电路,来实现电子秤的功能。

8.1 项目描述
8.1.1项目目标
1. 了解应变片原理、悬臂梁,学习电桥分析
2. 了解电子秤的原理
2. 进一步熟悉实验平台nextboard 、nextpad
3. 进一步学习模拟信号采集系统
4. 学习使用LabVIEW 的状态机编写智能电子秤VI
8.1.2任务要求
设计电子秤,实现如下功能:
1. 可测量1000g 以内的质量
2. 可软件整定调零
3. 数码管显示测试结果
4. 具有去皮(去除容器质量)等功能
8.1.3实践环境
硬件设备:nextboard 实验平台、NI PCI-6221数据采集卡、nextsense_06 (应变桥实验模块)。

应变桥实验模块由贴有4个应变片的双孔悬臂梁和放大器组成。

1.应变片是由敏感栅等构成用于测量应变的元件,使用时将其牢固地粘贴在构件的测点上,构件受力后由于测点发生应变,敏感栅也随之变形而使其电阻发生变化,再由专用仪器测得其电阻变化大小,并转换为测点的应变值。

项目中使用的硬件模块,悬臂梁黏贴的是金属箔式电阻应变片。

2.双孔悬臂梁称重传感器,是电子计价秤中广泛使用的传感器。

其具有上下两个平衡梁。

本实验中使用的应变桥模块,使用的就是悬臂梁就是双孔悬臂梁,一端固定,另一端可放置砝码。

悬臂梁上贴有4个应变片,如图8-1所示,上下各有两片。

其中R1和R3形变量一致,R2和R4形变量一致。

因此电桥输出电压为: R R R R E E R U R R R R R
⎛⎫∆∆∆∆∆=-+-=⨯⨯ ⎪⎝⎭31241234444
图1 双孔悬臂梁应变片贴片图示 图2 惠斯通电桥
3.电桥
称重检测元件上最常用到的调理电路就是惠斯通电桥。

惠斯通电桥是一种可以精确测量电阻的仪器。

如图8-2是一个通用的惠斯通电桥。

桥路上的四个电阻叫做电桥的四个臂,V out这个点使用AI通道测量其电压变化。

当AI所测电压值为0时,称电桥达到平衡。

平衡时,四个臂的阻值满足一个简单的关系,利用这一关系就可测量电阻。

若将四个应变片全部连入桥路中,通过采集桥路输出电压,可以推算出当前所测质量。

同时使用4个应变片的桥路,称之为全桥。

使用全桥方式测量,桥路灵敏度最高。

若使用2个应变片连入桥路,称之为半桥,灵敏度次之。

使用一个应变片连入桥路,灵敏度最低。

本项目中采用全桥,如图8-3所示。

悬臂上的4个应变片全部连入桥路中,R1和R3为一对,连入桥路对臂中,R2和R4为一对,连入另一个对臂中。

桥路使用5V供电。

由于桥路的输出信号比较微小,故在应变梁模块上提供了放大电路作为信号调理电路,放大倍数为500。

可将桥路输出电压V out连接至放大电路,使用AI通道测量放大器输出电压。

在未放置砝码时,确保桥路经放大后的输出电压为0V,即需要做电路调零。

若当前测试得到的电压不为零,调节桥路这一侧的调零电阻,若仍无法得到0V,可调节右侧放大电路的调零电阻,直到输出电压接近0V。

即可开始实验及编程。

图3全桥连线图
软件平台:LabVIEW(2011以上版本)、nextpad
8.2 任务1制作按钮与数码管
8.2.1制作按钮
图 4 自定义控件操作
自定义控件的制作方式,前面的课程已经描述过,此处不做过多的解释。

最主要是选择需要修饰的控件,打开控件编辑器窗口,导入所需图片,见图8-4。

制作自定义控件,变换按钮的T/F的两幅图片,也可将T-F , F-T两个状态的图片一并修改。

将该按钮的机械动作修改为“释放时转换”,显示项去掉“标签”、“布尔文本”选项。

8.2.2制作数码管
1.制作数码管簇
电子秤上的数码显示如图8-5所示。

称重范围在1000g之内,最小单位为1g,因此需要3位数码显示,分别为百位、十位和个位。

数码管的制作流程如下:
1)在控件选板中布尔控件“方形指示灯”,放置在前面板,在控件上点右键,去掉控件的标签显示。

2)把方形指示灯拖放为细长形状,然后复制控件,用此方法做4个竖条和3个横条。

3)把控件拼出“8”的形状,并在8的右下角放置一个圆形指示灯,然后右击控件,取消控件的标签(label)显示。

调整布尔控件的位置,使其更加美观。

4)选中这8个布尔控件,把它们组合起来。

5)在控件选板中,选择”经典→经典数组、矩阵与簇”,将簇的外框放置在前面板上,将数码管“8”拖放到簇外框中。

右击簇的外框,在快捷菜单中,选择”自动调整大小→调整为匹配大小”。

6)在簇边框上右击鼠标,选择“重新排序簇中控件”,从最上面的控件开始按照顺时针方向右0
到7排序,如图8-6所示,排序后,选择窗口上的对钩,关闭排序窗口,即完成了一个数码管的制作。

图5 数码管图6 簇中的控件排序
7)把该数码管复制成三个,并在菜单栏中,查看→工具选板,将调色板的选项配置为T (透明色),涂色簇的外框,将三个簇的外框隐去。

8)在控件选板中,选择修饰->平面圆盒,将簇放置到平面圆盒上,并将该盒子移至后面。

9)用涂色功能,将平面圆盒涂黑。

根据需要,适当调整控件的摆布和黑色平面圆盒的大小形状,就制作好如图8-5所示的的3位数码管图形。

要想使数码管按照数据正确显示,还需要进行一些程序框图的设计。

2.一位数码显示实现
一位数码显示的程序框图如图8-7所示,这里主要用到条件结构。

图中的条件结构共有0~9十个分支,每个分支里都有一个布尔常量组成的常量数组。

在数组输出端与簇之间放置了一个“数组至簇转换”函数(该函数位于“编程→数组”),该函数默认大小为9个成员,由于该数码管有8个,在该函数上点右键,把大小修改成8个。

当数值输入控件输入“0”时,选择0分支,数码管显示“0”,以此类推。

图7 一位数码显示实现
3.三位数码显示实现
1)把图8-7中的条件结构复制成3个,分别连接数码管的百位、十位和各位。

2)对于输入的数据进行判断,如果>0就把该数值分解成百位、十位、个位;如果<0,就记为“0”,然后分解。

当运行VI时,在数值输入控件输入1000以内的数据,就会在数码观众显示出来。

程序框图和三位数码显示结果如图8-8所示。

3)把三位数码显示VI保存为“数码管subVI.vi”,并进行图标和连线板的编辑,以备其它VI 调用。

连线板有一个数值型输入端“Numeric”和三个簇输出端,即三个数码管簇。

图8 三位数码显示实现
8.3 任务2设计电子秤前面板
选项卡控件用于将前面板控件重叠放置在一个较小的区域内。

选项卡控件由选项卡和选项标签组成。

可将前面板对象放置在选项卡控件的每一个选项卡中,并将选项卡标签作为显示不同选项卡的选择器。

前面板设计时,不要将前面板做的过大,除非用户需求是希望运行时程序全屏,否则尽量减小前面板的大小。

考虑到设计者和使用者所使用的显示器分辨率可能不一致而导致用户无法正常使用程序。

通常建议将程序前面板的大小控制在1024*768范围内。

若面板所需放置的内容很多时,推荐使用选项卡控件。

本项目中有三个选项,如图8-9所示。

第一个为“系统描述”,用来描述系统的功能、应变桥的连接等;第二个选项为“配置信息”,用来显示在双孔悬臂梁称重传感器上放置不同质量的砝码时,对应的电压数值,以及电压变化曲线;I/O配置通道信息;校准等。

第三个选项为“电子秤”,用来显示重物的质量和“去皮”控制,该选项是电子秤的主界面。

新建一个VI,VI的前面板颜色默认色为灰色。

这是因为在工业场合中,灰色是最不容易引起视觉疲劳的色彩。

在做工业化流水线测试测量设备的时候,设计前面板,要尽量避免过多使用明亮色调的。

高亮度的色彩如红色通常用于警报,阅读或提示性的文字无需全部设为高亮度色彩。

除了不要出现过多种色彩以外,前面板的字体也应当保持统一,如中文全部统一使用微软雅黑或宋体。

大小也最好能控制在3种以内。

只有需要引起用户特别关注的内容才需要用粗体或高亮显示。

否则使用者无法将注意力集中到应当注意的内容上。

控件选板中的“修饰”中的内容,可以帮助美化界面。

图9 电子秤前面板
8.4 任务3设计质量换算子VI
被测物质的质量,通过应变桥电路,转换成电压信号。

该电压信号经过放大后,送到数据采集卡。

因此采集到的电压信号还要经过变换,转换成质量,送显示。

图8-10即为电压-质量的转换算法,并加入了去皮(清零)功能。

前半部分是以100g质量所对应的电压值为基准,计算得出当前质量,并使用就近取整的函数,将所得质量变为整数(故精度为1g)。

程序中同时判定清零按钮是否被按下(值为真否),若为真,读取当前质量作为容器质量,并减去“去皮”的质量;若为假,减去的质量为0,即表示不去零。

其中数值控件“去皮”中的数据如何修改和传递呢?按照我们期待的逻辑,点击清零按钮,读取当前质量,并保存在去皮数值控件中,直到下一次清零按钮再次由假变为真值时,才会更新去皮数值控件中的值。

编辑好该VI后,还要进行图标和连线板的编辑,以便主VI 调用。

图 10 电压质量转换算法
8.5 任务4采集质量数据
一个系统可以分为若干个操作步骤,可以自己画出流程图。

流程图中每个组成都可以成为一个状态,将每个状态变为程序中的一个帧,且在需要时可以灵活调用各个帧,用状态机来实现非常方便。

8.5.1状态机基本架构
点击菜单栏的“文件→新建”,选择菜单中的第二个新建选项,打开新建模板的对话框,选择标准状态机模板,如图8-11所示。

状态机由状态的集合以及对应状态切换的转换函数构成。

每个状态可触发一个或多个状态或结束进程处理状态机的组成有:while循环,移位寄存器,枚举类型,条件结构。

图11 状态机基本架构
移位寄存器可将上一次循环的值传递至下一次循环。

移位寄存器以一对接线端的形式出现,分别位于循环两侧的边框上,位置相对。

右键循环边框,从快捷菜单选择添加移位寄存器,右侧的移位寄存器存储每次循环结束后的数据,左侧的寄存器为下一循环提供所存储的数据。

移位寄存器在内存上开辟了内存空间。

关闭VI之前,未初始化的移位寄存器将保留上一次循环的值。

在图8-11中的为枚举型接线端子。

在使用时,应把它进行自定义,用来添加所需状态。

在该端子上右击,选择“打开自定义类型”,出现枚举控件编辑窗口。

右击该枚举控件,选择“编辑项”,会出现该控件的属性对话框。

把第0项“Initialize”、第1项“Stop”修改为需要的状态名称,然后点击对话框中的“插入”按钮,添加所需要的状态名称。

可以使用“上移”和“下移”来改变元素所在的位置。

比如一个同时具有读、写操作的数据采集的VI,一般需要“初始化”、“开始采集”、“写数据”、“读数据”、“停止数据采集”五个状态。

关闭控件编辑对话框对话框,选择保存该控件到指定位置,文件名为“状态机.ctl”,窗口如图8-12所示。

鼠标单击“初始化”枚举端子右边的向下三角号查看,可看到这五个状态选项。

使用这样的自定义控件,可以同时修改所有引用位置的控件内容,可以发现在条件结构框中使用的该枚举控件,已经和修改后的内容保持一致了。

图12基于状态机数据采集框架
此时,条件结构只有两个分支:“初始化”、“开始数据采集”,另外三个分支,需要添加。

在“开始数据采集”分支的选择器标签上右击,选择“在后面添加分支”就出现“写数据”分支;以此方法添加,就实现了五个各分支的条件结构。

查看条件结构,此时的条件结构中以及包含了其余的各个所需添加的帧,名称和枚举控件中所包含的元素相同,见图8-13。

图13 查看条件结构
在状态机中,Beginning State(初始状态)为“初始化”;初始化的Next State(下一个状态)为“开始数据采集”;开始数据采集之后的状态就应该是读、写操作了。

程序运行时,会一直进行读、写操作,直到满足停止条件,才进入“停止采集”状态。

因此,读和写互为下一个状态。

把状态机控件复制到每一个分支,并与条件结构的数据隧道连接,选择适当的“Next State”:
初始化→开始数据采集→写数据→读数据

停止按钮按下→停止采集→停止VI
程序框图如图8-14所示。

图14 状态机状态切换
8.5.2状态机实现数据采集
本项目中程序框图出现了双循环,LabVIEW是天生并行的并行环境。

在LabVIEW编程过程中,若两个线程之间没有数据连线影响到两个线程的执行顺序,则这两个线程就是并行的,这是由LabVIEW 的数据流思想决定的。

下面对前面学习的基于状态机的数据采集框架,进行数据采集程序设计。

在进行设计之前,首先对该项目进行分析,来确定创建数据采集的类型。

由于要给桥路一个激励电压AO,电压值为5V,因此需要创建一个电压AO过程;另外要读取被测物质的质量,就要创建一个电压AI 过程。

对该框架的五个分支分别设计如下:
1.初始化分支:
图15 初始化分支
初始化分支如图8-15所示,在初始化分支中,定义去皮功能为假,并指定下一个状态为开始数据采集。

2.开始数据采集分支:
1)创建AO 电压通道,输出接线端配置采用RSE模式(参考单端模式),电压范围0~10V。

2)创建AI电压通道,输入接线端配置采用差分模式,电压范围-5~5V。

设置采样时钟的采样率为100、采样模式为连续采样、每通道采样50。

在采样时钟后放置DAQmx开始任务,用来开始测量。

3)在While循环上添加移位寄存器,每个通道添加2个,分别连至“任务输出”和“错误输出”,即完成该分支设计。

该分支程序框图如图8-16所示。

图16 开始数据采集分支
图17写数据分支
图18读数据分支
图19停止采集分支
3.写数据分支:
如图8-17所示,该分支实现模拟信号生成过程,作用是通过AO通道,将5V电压作为桥路激励电
压,加在电桥上。

4.读数据分支:
当悬梁上放置不同重物时,电桥输出电压会发生变化。

该电压经放大器放大后,通过数据采集卡,送到上位机。

读数据分支作用就是读取该电压,并进行数据处理,送显示:首先设置每通道采样数为50,把采样数据求平均值;然后调用“电压质量转”子VI,把电压值转换为质量,进行显示“当前g”;再调用“数码显示”子VI,把质量值在三位数码管上显示。

该分支程序框图如图8-18所示。

5.停止采集分支:
在该分支实现停止采集任务、清除任务、停止运行VI。

该分支程序框图如图8-19所示。

8.5.4实现去皮功能
本项目中是用了两个while循环,一个while循环来完成状态机结构的运行,另一个循环就是用来放置事件结构,如图8-20所示。

事件结构无需轮询界面,超时无数值设定,则事件结构当且仅当有事件发生(如某个布尔量的数值改变了)才会做出响应。

可以触发事件结构的动作有很多,常见的有单击鼠标按键、单击键盘按键、修改数值控件的值等。

通常放置于While循环,每次循环仅处理一个事件,无事件发生时休眠。

所谓休眠,就是不做轮询的操作。

无界面操作,就不工作,将资源留给CPU处理其他事情。

在程序框图中放置事件结构,程序框图-控件选板-结构-事件结构,拖放至程序框图上,并将其放置于一个while循环中。

需要注意的是,要停止该循环,需要添加一个事件帧,用来响应界面停止按钮的操作。

添加事件帧:右击事件结构,在快捷菜单中选择“添加事件分支”。

跳出对话框,选择事件源,为“清零”按钮,发生的事件可以选择“值改变”。

如果需要响应其他的动作,最右侧的事件当中,展开各个选项,做选择即可。

配置完成后,点击确定按钮。

图 20 事件结构实现去皮功能
8.6 调试测试系统
操作步骤:
1、将nextsense_06模块安置在对应的nextboard平台的模拟信号槽位槽位上。

2、打开nextboard电源,使用nextpad检测模块是否正常使用。

3、关闭nextboard电源,进行硬件连接。

应变桥的左端用螺丝固定在nextsense_06模块的上方,右端悬空。

4、调零。

1)在nextpad里面双击“传感器”文件夹,双击“6”打开应变桥实验。

在该实验界面选择“调零”选项,如图8-21所示。

2)按照该界面上的步骤1~4操作:
➢单击“应变桥”电路选择“全桥”连接,并把硬件电路按照全桥方式连接。

➢把桥路激励电压AO设置为5V,桥路上的开关打到“On”。

➢把电桥的输出端U sc连接到AI+、AI-,nextboard电源,单击采集按钮,观察AI电压信号波形,如果偏离零点,调节桥臂中的调零电位器,以使波形在零位置。

➢把电桥的输出端Usc连接到放大电路的输入端Vin,再把放大器输出端连接到AI+、AI-,单击采集按钮,观察AI电压信号波形,如果偏离零点,调节放大器上的调零电位器,以
使波形在零位置。

5、检查应变桥实验模块有型变时,模块电路是否有正确的电压值输出。

在实验界面选择“实验测量”选项,如图8-22所示。

在该界面中,察看数据I/O通道、观察电压随重物变化曲线、总务质量等信息。

放置不同质量的砝码,读取对应电压值,观察数值是否正确。

图21 系统调零界面图22实验测量界面
6、根据任务要求,编写VI。

7、实验模块在不同位置时通道号也不一样。

在nextpad中,读取数据I/O物理通道号,填写到自己的VI通道号中。

8、运行调试VI,进行功能测试测试,截取图片,撰写项目报告。

图23 系统调零
图24 无物体时
图25 重量为7g时电子称版
图26 重量为7g时应变力测试板
图27 实现去皮功能电子称板
图28 实现去皮功能应变力测试板
图29 实现去皮功能应变力测试板
图30 实现去皮功能电子秤板
图31 不去皮电子称板
总结。

相关文档
最新文档