李秉榮,劉夫云*,程 雄,王喬義,藍(lán)毓勝,馬永輝
(1.桂林電子科技大學(xué)機(jī)電工程學(xué)院,桂林 541004;2.右江礦務(wù)局, 桂林541004)
地磅是一種運(yùn)用比較廣泛的稱(chēng)重儀器,也稱(chēng)為汽車(chē)衡。目前,我國(guó)很多地方仍使用傳統(tǒng)地磅,采用人工填寫(xiě)單據(jù)、報(bào)表的方式來(lái)記錄數(shù)據(jù)。這種工作方式安全性差,容易出錯(cuò),效率低下,難以滿(mǎn)足現(xiàn)代生產(chǎn)經(jīng)營(yíng)的要求。因此,針對(duì)國(guó)內(nèi)地磅稱(chēng)重系統(tǒng)自動(dòng)化程度不高的現(xiàn)狀,本文設(shè)計(jì)了一套地磅稱(chēng)重系統(tǒng),將傳感器、單片機(jī)、A/D轉(zhuǎn)換芯片、計(jì)算機(jī)及數(shù)據(jù)庫(kù)有效的結(jié)合起來(lái),實(shí)現(xiàn)了稱(chēng)重?cái)?shù)據(jù)的自動(dòng)采集、自動(dòng)處理和自動(dòng)存儲(chǔ),為企業(yè)的現(xiàn)代化管理提高效率。
首先,利用由電阻應(yīng)變式傳感器組成的測(cè)量電路測(cè)出壓力信號(hào),經(jīng)過(guò)信號(hào)的放大、濾波,然后以模擬信號(hào)的方式傳送到A/D轉(zhuǎn)換器。其次,將經(jīng)A/D轉(zhuǎn)換后的的數(shù)字信號(hào)由單片機(jī)傳送給上位機(jī)。最后,在上位機(jī)以MyEclipse6.0.1 為開(kāi)發(fā)環(huán)境,構(gòu)建一個(gè)地磅信息管理系統(tǒng),用于接收、顯示并存儲(chǔ)相關(guān)信息。具體方案如流程圖1。
圖1 總體方案設(shè)計(jì)流程圖
1.1.1 電阻應(yīng)變式傳感器的測(cè)量電路
電阻應(yīng)變式傳感器通常采用橋式測(cè)量電路。它由箔片式電阻應(yīng)變片電阻R1、R2、R3、R4組成。電橋的一個(gè)對(duì)角線(xiàn)接工作電壓E,另一個(gè)對(duì)角線(xiàn)接輸出電壓Uo。在測(cè)量重量之前,調(diào)節(jié)滑動(dòng)式線(xiàn)性可變電阻器Rp1, 當(dāng)載荷為0 時(shí), 輸出為零。測(cè)量電路如圖2[1-10]所示。
圖2 電阻應(yīng)變式傳感器的測(cè)量電路
1.1.2 差動(dòng)放大電路
由于傳感器輸出的模擬信號(hào)比較微弱,需要放大一定的倍數(shù)才能滿(mǎn)足A/D轉(zhuǎn)換器的要求,這里采用一種典型的差動(dòng)放大電路,它由UA741和電阻組成。差動(dòng)放大電路如圖3[2-11]所示。
圖3 差動(dòng)放大電路
1.1.3 單片機(jī)與PC機(jī)串口通信及A/D轉(zhuǎn)換電路
(1)單片機(jī)與PC機(jī)的串口通信采用RS-232C串行通信標(biāo)準(zhǔn)接口, RS-232C總線(xiàn)接口芯片種類(lèi)很多,這里使用MAXIM公司生產(chǎn)的MAX232 芯片實(shí)現(xiàn)TTL和EIA之間的電平轉(zhuǎn)換,其接線(xiàn)電路如圖4所示。需要注意的是由于該工作電路對(duì)電源噪聲比較敏感,為了提高器件的抗干擾能力,這里采用了1.0 μF電容連接+5 V電源去耦。同時(shí),在PCB布線(xiàn)時(shí),電容應(yīng)該盡可能的靠近芯片。
(2)A/D轉(zhuǎn)換芯片采用ADC0832,這款芯片具有8位分辨率,雙通道A/D轉(zhuǎn)換,輸入輸出電平與TTL/CMOS兼容, 5 V電源供電時(shí)輸出電壓在0 ~5 V之間,工作頻率為250 kHz,轉(zhuǎn)換時(shí)間為32 ms,功耗為15 MW等優(yōu)點(diǎn)。適合本系統(tǒng)的要求。其與單片機(jī)的連接電路圖如圖4[3-4]所示。
實(shí)驗(yàn)采用mpx4115 壓力傳感器來(lái)測(cè)量系統(tǒng)的精度,該傳感器承受壓力的線(xiàn)性區(qū)間為15 kPa~115 kPa。測(cè)量時(shí)補(bǔ)償值為9.3 kPa,即y=[(115-15)/(243-13)] *X+9.3。其中y—壓力, X—經(jīng) A/D轉(zhuǎn)換后的數(shù)字量。通過(guò)隨機(jī)對(duì)10組數(shù)據(jù)進(jìn)行測(cè)量,其實(shí)驗(yàn)數(shù)據(jù)如下表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)
圖4 單片機(jī)與PC機(jī)串口通信及A/D轉(zhuǎn)換電路
通過(guò)上述實(shí)驗(yàn)數(shù)據(jù)可知,該系統(tǒng)的測(cè)量精度在0.1 ~0.3之間。
該系統(tǒng)采用RS-232C串口通信技術(shù),以MyEclipse6.0.1為開(kāi)發(fā)環(huán)境,通過(guò)Sun公司提供的Java中的comm.jar包,完成單片機(jī)與PC機(jī)的串口通信,編制出了地磅稱(chēng)重管理系統(tǒng)可視化軟件。
1.3.1 RS-232串行通信接口
RS-232是目前最常用的一種串行通信接口,被定義為一種低速率串行通信標(biāo)準(zhǔn),最大傳輸距離在50 m左右。采用RS-232串口通信能夠滿(mǎn)足設(shè)計(jì)的要求。
1.3.2 Java與COM口的串口通訊
Sun公司的J2SE中并沒(méi)有直接提供任何一種串行通信協(xié)議的開(kāi)發(fā)包,而是以獨(dú)立的jar包形式發(fā)布在java.sun.com網(wǎng)站上的comm.jar,稱(chēng)之為Java Communication API,它是J2SE的標(biāo)準(zhǔn)擴(kuò)展。comm.jar提供了對(duì)常用的RS-232串口通信的支持。與comm.jar包一起的還有兩個(gè)重要的文件:win32com.dll和 javax.comm.properties。 comm.jar提供了通信用的java API, win32com.dll提供了供comm.jar調(diào)用的本地驅(qū)動(dòng)接口, 而 javax.comm.properties是這個(gè)驅(qū)動(dòng)的類(lèi)配置文件[5]。
Java讀寫(xiě)COM口主要是調(diào)用Javax..comm包中的comm.API函數(shù)。在初始化波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)的同時(shí),將輸入輸出數(shù)據(jù)流和該串口建立一個(gè)映射,串口的輸入輸出操作就直接反映在輸入流和輸出流上。通過(guò)CommPort類(lèi)的get-InputStream()和getOutputStream()方法取得端口的輸入流和輸出流[6]。
1.3.3 Java與串行口通訊的軟件實(shí)現(xiàn)
串口讀寫(xiě)數(shù)據(jù)的流程圖如下圖5所示。
圖5 向串口讀寫(xiě)數(shù)據(jù)流程圖
串口讀寫(xiě)程序如下所示:
/*打開(kāi)并初始化串口程序*/
public void serialPortInitialize(){
portId=CommPortIdentifier.getPortIdentifiers(“COM 1”);//獲取通信端口COM1
serialPort=(SerialPort)portId.open(“ serialComm”,2000);//打開(kāi)端口
serialPort.setSerialPortParams(1200, //波特率1200
SerialPort.DATABITS_8, //數(shù)據(jù)位8位
SerialPort.STOPBITS_1, //停止位1位
SerialPort.PARITY_NONE);//無(wú)奇偶校驗(yàn)位
}
/*從端口讀取數(shù)據(jù)*/
InputStream input=serialPort.getInputStream();
Input.read(…);
/*往端口寫(xiě)數(shù)據(jù)*/
OutputStream output=serialPort.getOutputStream();
Output.w rite(…);
1.3.4 單片機(jī)與PC機(jī)的通信協(xié)議
單片機(jī)端:?jiǎn)纹瑱C(jī)先發(fā)送0x00給PC機(jī),并且等待PC機(jī)的回復(fù),當(dāng)接收到PC機(jī)發(fā)送來(lái)的數(shù)據(jù)是0x00時(shí),單片機(jī)開(kāi)始向PC機(jī)發(fā)送數(shù)據(jù)。當(dāng)接收到PC機(jī)發(fā)送來(lái)的數(shù)據(jù)是0xff時(shí),單片機(jī)不執(zhí)行任何操作,并且重新發(fā)送0x00 給PC機(jī),等待回復(fù)。PC機(jī)端:點(diǎn)擊軟件連接按鈕,接收單片機(jī)發(fā)送來(lái)的數(shù)據(jù),當(dāng)接收到的數(shù)據(jù)是0x00時(shí),向單片機(jī)發(fā)送0x00,并且開(kāi)始接收單片機(jī)傳發(fā)送的數(shù)據(jù),同時(shí)PC機(jī)端通過(guò)設(shè)置數(shù)據(jù)校驗(yàn)來(lái)判斷數(shù)據(jù)是否接收完整,當(dāng)數(shù)據(jù)接收不完整時(shí),向單片機(jī)發(fā)送0xff,丟失該數(shù)據(jù),并且重新接收數(shù)據(jù)。
該系統(tǒng)主要包括5個(gè)模塊,即串口通信模塊、數(shù)據(jù)錄入模塊、查詢(xún)打印模塊、權(quán)限管理模塊和數(shù)據(jù)統(tǒng)計(jì)模塊[7-12]。
(1)串行通信模塊
該模塊的功能實(shí)現(xiàn)了單片機(jī)與PC機(jī)的串口通信,實(shí)現(xiàn)了數(shù)據(jù)的傳輸。
(2)數(shù)據(jù)錄入和網(wǎng)絡(luò)通信模塊
該模塊用于記錄編號(hào)、車(chē)號(hào)、空車(chē)時(shí)間、重車(chē)時(shí)間、貨物名稱(chēng)、型號(hào)規(guī)格、毛重、皮重、凈重、單價(jià)、過(guò)磅費(fèi)、金額、供貨單位、收貨單位、司機(jī)、操作員和備注等數(shù)據(jù)。其中毛重、皮重是通過(guò)串口自動(dòng)接收數(shù)據(jù),不需要人工記錄。同時(shí),通過(guò)Java的socket類(lèi)實(shí)現(xiàn)將記錄的數(shù)據(jù)實(shí)時(shí)的傳輸給中心服務(wù)器,便于通過(guò)企業(yè)內(nèi)部網(wǎng)或Internet查詢(xún)相關(guān)數(shù)據(jù)。
(3)查詢(xún)打印模塊
該模塊用于客戶(hù)打印稱(chēng)重的相關(guān)數(shù)據(jù)。
(4)權(quán)限管理模塊
該模塊實(shí)現(xiàn)了不同的管理員對(duì)數(shù)據(jù)庫(kù)操作的不同權(quán)限,其中超級(jí)管理員可以添加或者更改操作員,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的任何操作,而操作員只有記錄數(shù)據(jù)的功能。
(5)數(shù)據(jù)統(tǒng)計(jì)模塊
該模塊用于記錄日統(tǒng)計(jì)數(shù)據(jù),月統(tǒng)計(jì)數(shù)據(jù)和季度統(tǒng)計(jì)數(shù)據(jù)。
本系統(tǒng)的軟件界面如圖6所示。
圖6 系統(tǒng)的軟件界面
本文系統(tǒng)的介紹了地磅稱(chēng)重系統(tǒng)的硬件和軟件設(shè)計(jì)方法,其中硬件部分介紹了組成該系統(tǒng)的三個(gè)重要的電路,軟件部分介紹了Java程序中的comm.jar包。通過(guò) RS-232串口,實(shí)現(xiàn)了Java與單片機(jī)的串口通信。最后,筆者通過(guò)Java語(yǔ)言開(kāi)發(fā)了一個(gè)地磅信息管理系統(tǒng)。整個(gè)系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)的采集、處理、傳輸、顯示、通信、存儲(chǔ)、查詢(xún)和打印等功能,能夠滿(mǎn)足企業(yè)對(duì)稱(chēng)重的自動(dòng)化需求。
[ 1] 祝常紅.數(shù)據(jù)采集與處理技術(shù)[ M] .電子工業(yè)出版社.2008.1.
[ 2] 張紅潤(rùn),劉秀英,張亞凡,等.單片機(jī)應(yīng)用設(shè)200例[ M] .北京航空航天大學(xué)出版社.2006.7.
[ 3] AT89系列單片機(jī)技術(shù)手冊(cè)[ S] .北京威立電子技術(shù)有限公司.14-23.
[ 4] 張大明.單片機(jī)微機(jī)控制應(yīng)用技術(shù)[ M] .機(jī)械工業(yè)出版社.2006.8.
[ 5] 張思民,梁維娜.Java程序設(shè)計(jì)實(shí)踐教程[ M] .清華大學(xué)出版社.2006.8.
[ 6] 李良, 朱善安.基于Java的串口通信[ J] .電子器件, 2007(4):714-720.
[ 7] 李鐘蔚,馬文強(qiáng),王殊宇.Java項(xiàng)目開(kāi)發(fā)實(shí)例自學(xué)手冊(cè)[ M].人民郵電出版社.2008.9.
[ 8] 吳橋.汽車(chē)稱(chēng)重管理信息系統(tǒng)的開(kāi)發(fā)與應(yīng)用[D] .浙江:浙江大學(xué), 2006.
[ 9] 王華奎,馬建芬,趙菊敏,等.電子電路設(shè)計(jì)[M].電子工業(yè)出版社.2004.8.
[ 10] 周廣輝.基于無(wú)線(xiàn)網(wǎng)絡(luò)與Internet的壞境監(jiān)測(cè)系統(tǒng)[ D] .大連:大連理工大學(xué), 2005.
[ 11] 童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)[ M] .高等教育出版社.2001.1.
[ 12] 王立峰,延偉東,章華.軟件工程理論與實(shí)踐[M].北京:清華大學(xué)出版社.2002.