王 瑜,閆 杰,王一嘯
(西安航空學院機械工程學院,陜西西安 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 強大的數據處理能力,將出售的商品信息進行匯總,便于后續的分析和查閱。稱重系統上位機主要由數據庫模塊、語音識別播報模塊、數據匯總模塊、串口通信模塊、商品管理模塊和主面板程序模塊組成,可以實現重量數據采集、顯示,按照物品單價進行總價計算、找零、語音播報、數據存儲等功能。