王 瑜,闫 杰,王一啸
(西安航空学院机械工程学院,陕西西安 710077)
物料计量是工业生产和贸易流通中的重要环节,称重系统是不可缺少的。称重效率直接影响生产和贸易流通的效率,也关系到企业的利润[1]。目前,电厂、化工厂、钢厂、物流仓库[2]、交通运输系统[3]、超市中都有称重系统。相比较传统的机械秤重,电子称重以高集成度、高精度、高智能化、低成本的优势无异于更具有广阔的市场前景[4]。为了改进传统称重系统,国内外学者们开展了大量研究工作,2004 年中国运载火箭技术研究院的刘九卿等结合国内外数字式智能称重传感器的发展与应用情况,重点研究了整体型和分离型数字式智能称重传感器及其称重系统的基本原理[5]。同济大学的王硕等建立了实桥交通载荷模型,并利用对实桥交通载荷模型进行修改试算的方法对桥梁的限载进行了研究[6]。吉林大学的郭怀天等提出了电子天平的比例测量方法,有效地回避了大部分电压源芯片输出精度和输出功率之间的矛盾,简化了电源电路,降低了成本[7]。西安工业大学的张惠芳等采用Levenberg-Marquardt 优化算法进行最小二乘法拟合,能够提高动态称重系统的测量精度[8]。
基于LabVIEW 的称重系统采用HL-8 称重传感器获得物体重量数据,通过HX711 高精度A/D 转换模块将数据发送到Arduino 开发板中,数据经过处理和存储后,通过串口发送到上位机,上位机基于LabVIEW 开发平台,实现重量数据采集、显示、按照物品单价计算总价、找零、语音播报、数据存储等功能,便于查看和汇总历史数据。
基于LabVIEW 的称重系统结构图如图1 所示,该系统主要由HL-8 称重传感器、HX711 高精度A/D转换模块、Arduino UNO 开发板[9]、上位机等组成。称重传感器感受物体的重量,将表示物体重量的模拟量发送到HX711 高精度A/D 转换模块,A/D 转换模块将模拟量转化为数字量放大后输出,Arduino UNO开发板接收到HX711 高精度A/D 转换模块输出的数字信号,并进行运算、存储后将数字信号发送到上位机[10],由LabVIEW 上位机主面板程序模块计算、显示、语音播报。
图1 系统结构图
HL-8 称重传感器的红色接线端是电源正极,黑色接线端是电源地,分别和HX711 模数转换模块的输出正极(E+)和负极(E-)相连,给HL-8 传感器供电,HL-8 传感器可以接收信号,正常工作。HL-8 传感器的白色接线端和绿色接线端分别是差分信号的负极和正极,连接HX711 模数转换模块的A-和A+。HX711 模数转换模块的GND 和VCC 接线端分别接Arduino UNO 的GND 和5 V,HX711 模数转换模块的DT 和SCK 接线端分别连接Arduino UNO 的两个I/O接口,DT 接线端连接Arduino UNO 的I/O 接口3,SCK接线端连接Arduino UNO的I/O接口2。HL-8、HX711、Arduino UNO 电路连接图如图2 所示。
图2 HL-8、HX711、Arduino UNO电路连接图
Arduino 是一款灵活便捷,可以跨平台使用,非常友好的开源电子原型制作平台。该次设计选用Arduino UNO R3 型号的开发板,采用USB 接口与电脑相连供电。Arduino UNO R3 开发板上有三个重要的LED 指示灯,分别为ON(电源指示灯)、TX(发送)和RX(接收)[11-12]。下位机软件设计基于Arduino IDE 开发平台,下位机具体程序流程如图3 所示,通过Arduino UNO 读取HX711 传感器的数值,计算重量数据后,Arduino UNO 将数据送至上位机[13],延时后,判断是否停止采集,如果收到停止采集命令,停止采集重量数据;如果没有收到停止采集命令,Arduino UNO 再次读取HX711 传感器的数值。
图3 下位机程序流程图
上位机基于LabVIEW 开发平台,LabVIEW 的优势如下:LabVIEW 可以跨越多个平台,LabVIEW 支持Windows、Linux 和Mac OS 等多种计算机操作系统,而且不需要任何辅助代码就可以轻易实现,使交流更容易,沟通更灵活。LabVIEW 虽然以图形的可视化编辑程序更方便,但仍保留对其他高级语言的包容性及支持其编程环境[14]。此外,LabVIEW 最大的优势是提供了各种各样的图形控件和其强大的图形化编程能力,使枯燥乏味的编程环境渐渐变得有趣,应用更广,更容易被人接受和学习[15-16]。
称重系统上位机分为六个模块:数据库模块、语音识别播报模块、数据汇总模块、串口通信模块、商品管理模块和主面板程序模块。
3.2.1 数据库模块
数据库选用Microsoft Office 的Access 数据库管理系统。Access 可以处理多种不同类型的数据信息,界面友好、操作方便、用途广泛、易于扩展,能够使用链接表访问Excel 文件,进行编辑和操作数据内容等。预先在数据库中存储销售的商品名称、单价以及备注等信息,销售时,在商品清单模块更新数据,读取数据库中保存的商品信息,便于销售。读取数据库文件的程序前面板如图4 所示,Access 数据库中保存的商品信息如图5 所示。
图4 读取数据库文件的程序前面板
图5 Access数据库中保存的商品信息
3.2.2 语音识别播报模块
语音识别播报模块是在微软推出的应用编程接口API 的基础上进行文本识别后合成语音播报,进行文本识别朗读。首先,在程序中调用语音合成等子VI 到选择列表,可用TTS 语音和可用音频输出设备的列表。然后检查SPAI语音的状态并报告是否完成与输出设备的通信,接着,使用当前的SAPI语音设置说话速度,最后,连接到输入的文本字符串[17],实现读取文本框中的内容并可以调节音量和语速。语音识别播报模块前面板如图6所示,在“Text to speak”文本框中输入需要播报的语音,并调整好音量大小和语速,有英语和汉语两种播报模式,汉语模式下可以播报英语也可以播报汉语,英语模式下只能播报英语。如果正在进行语音识别播报,语音识别播报模块前面板中的指示灯“Speaking...”点亮。
图6 语音识别播报模块前面板
3.2.3 数据汇总模块
数据汇总模块将称重系统销售后的数据进行汇总,包括销售商品名称、单价、重量和总价格,数据汇总模块前面板如图7 所示。将数据存储到Excel 表格中,用户可以根据需要打印,进行数据统计和分析,通过分析可以掌握商品的销售情况,以便更好地经营,提高效益。
图7 数据汇总模块前面板
3.2.4 串口通信模块
VISA 可以控制串口、USB、以太网等,并根据使用仪器的类型调用相应的驱动程序,用户无需学习各种仪器的通信协议,使用方便,容易上手[18]。称重系统选用VISA串口通信。需要在官网下载和LabVIEW版本对应的VISA 并安装。该系统的主要功能是LabVIEW 上位机程序通过串口读取Arduino UNO 中的数据,需要使用四个函数:VISA 配置串口、VISA 写入、VISA 读取、VISA 关闭,这四个函数位于函数选板中的“仪器I/O”—“串口”选板[19-20]。
3.2.5 商品管理模块
商品管理模块配合数据库模块使用,当程序运行时,读取数据库中的商品清单,包括商品名、单价和商品备注等。可以理解为数据库是仓库,商品管理模块可以读取仓库里已有的商品信息。而且通过该模块也可以添加新的商品,包括商品名称、单价、图片信息以及备注等,使称重系统更加智能化。数据的读取和存储更便捷,方便随时了解商品的销售信息。商品管理模块前面板如图8 所示。
图8 商品管理模块前面板
3.2.6 主面板程序模块
主面板程序模块是整个称重系统的主要显示模块。包括“商品管理”按钮、“报表生成”按钮、“停止”按钮、“显示找零”按钮、“去皮”按钮、“确认”按钮、“COM 口”控件、“收到款”控件、“找零”控件、“总价”控件、“重量显示”控件、“销售清单”控件等。系统可以显示重量、单价、商品名称、总价格、根据收款面值显示找零以及语音播报出售商品信息等功能。称重系统的使用过程如下:首先,将Arduino UNO 和上位机相连,运行LAbVIEW 上位机程序,接着,将物品放置在称重传感器上,称重传感器将压力信号传送到HX711 芯片,通过检测电路将放大后的电信号传送到Arduino UNO 开发板中,经过存储和处理后,上传到上位机显示重量,LabVIEW 上位机程序根据单价计算得出总价格,而且输入收款金额时,可以计算出找零。最后,点击“确认”按钮,语音播报出售的商品信息并存储数据,以便后续数据统计和分析。主面板程序模块前面板如图9 所示。
图9 主面板程序模块前面板
该文以LabVIEW 为上位机软件开发平台,设计了一种称重系统。称重系统下位机利用HL-8 称重传感器采集物品重量数据,选用24 位高精度A/D 转换模块调理重量数据,利用Arduino UNO 将重量数据发送到上位机。基于LabVIEW 强大的数据处理能力,将出售的商品信息进行汇总,便于后续的分析和查阅。称重系统上位机主要由数据库模块、语音识别播报模块、数据汇总模块、串口通信模块、商品管理模块和主面板程序模块组成,可以实现重量数据采集、显示,按照物品单价进行总价计算、找零、语音播报、数据存储等功能。