孫倫業(yè),裴 瑞,劉永杰,葉世康
(安徽理工大學(xué)機(jī)械工程學(xué)院,安徽淮南 232001)
電解加工是基于金屬在電解液中產(chǎn)生電化學(xué)陽(yáng)極溶解的原理對(duì)工件成形的特種加工方法[1]。加工過(guò)程中,電流通過(guò)工具陰極對(duì)金屬零件持續(xù)放電,會(huì)對(duì)流經(jīng)加工間隙的電解液持續(xù)加熱,使得溫度不斷升高,導(dǎo)致加工區(qū)域的電導(dǎo)率發(fā)生較大變化,最終對(duì)零件加工精度產(chǎn)生重要影響[2]。同時(shí),電解液溫度的持續(xù)上升也會(huì)導(dǎo)致加工間隙的電解液產(chǎn)生氣化沸騰現(xiàn)象,使氣泡率顯著增加,當(dāng)氣泡率增大到一定值時(shí),電解液流場(chǎng)易產(chǎn)生流動(dòng)“堵塞”現(xiàn)象,嚴(yán)重影響加工的穩(wěn)定性[3]。因此,對(duì)加工過(guò)程中的電解液溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)和有效控制具有十分重要的意義。
由于電解加工間隙十分狹小,對(duì)加工區(qū)域內(nèi)部的電解液溫度直接測(cè)量具有較大難度,一般采用對(duì)電解液池循環(huán)系統(tǒng)中的溫度進(jìn)行采集的方式來(lái)監(jiān)測(cè)溫升,如果采用人工測(cè)溫的方式耗時(shí)費(fèi)力,并且電解液加熱過(guò)程中產(chǎn)生廢氣,長(zhǎng)時(shí)間吸入會(huì)對(duì)操作人員產(chǎn)生危害。目前國(guó)內(nèi)電解設(shè)備通常采用單點(diǎn)測(cè)溫的方法,并不能實(shí)時(shí)掌握溫度數(shù)值的變化[4]。對(duì)于多點(diǎn)測(cè)溫方式,相關(guān)學(xué)者開展了一系列研究,索云天等運(yùn)用模塊化的設(shè)計(jì)思想,基于DS18B20單總線的傳輸方式,通過(guò)STM32單片機(jī)實(shí)現(xiàn)了多點(diǎn)溫度采集[5]。饒文軍等結(jié)合外部Pt1000溫度傳感器以及單片機(jī)的ADC數(shù)據(jù)轉(zhuǎn)換模塊實(shí)現(xiàn)了多通道溫度數(shù)據(jù)采集[6]。李東明等根據(jù)遠(yuǎn)程網(wǎng)絡(luò)應(yīng)用環(huán)境下的溫度測(cè)量需求,設(shè)計(jì)了一種基于以太網(wǎng)的遠(yuǎn)程多通道高精度溫度數(shù)據(jù)采集系統(tǒng)[7]。上述研究人員開發(fā)的溫度采集系統(tǒng)雖然在功能上能夠?qū)崿F(xiàn)高精度的多點(diǎn)采集,但沒有建立較完善的監(jiān)測(cè)系統(tǒng),不能實(shí)現(xiàn)在監(jiān)測(cè)端對(duì)溫度變化的在線監(jiān)測(cè)。
針對(duì)上述問題,文中提出了一種采用LabVIEW與STM32的多通道溫度監(jiān)測(cè)方案,在單片機(jī)的控制下實(shí)現(xiàn)DS18B20溫度傳感器對(duì)電解液溫度的多點(diǎn)采集,利用程序化的LabVIEW編程語(yǔ)言設(shè)計(jì)的監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)PC機(jī)對(duì)電解液循環(huán)系統(tǒng)的多通道溫度數(shù)值的監(jiān)測(cè)、存儲(chǔ)和分析。
電解加工溫度監(jiān)測(cè)系統(tǒng)采用“PC+STM32單片機(jī)”的上下位機(jī)結(jié)構(gòu),用戶可根據(jù)實(shí)際工況條件,設(shè)計(jì)滿足需求的操作界面和功能程序。如圖1所示,系統(tǒng)由PC機(jī)、STM32單片機(jī)和溫度傳感器等構(gòu)成。
圖1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)
DS18B20溫度傳感器采集循環(huán)系統(tǒng)內(nèi)電解液溫度,通過(guò)STM32單片機(jī)內(nèi)置的ADC轉(zhuǎn)換成數(shù)字信號(hào),實(shí)時(shí)讀取轉(zhuǎn)換結(jié)果并采用FATFS文件管理模塊將溫度數(shù)據(jù)存入MicroSD卡。PC作為上位機(jī)采用RS232通訊標(biāo)準(zhǔn)接口實(shí)現(xiàn)與下位機(jī)之間的數(shù)據(jù)傳輸,當(dāng)STM32單片機(jī)檢測(cè)到上位機(jī)發(fā)送溫度采集命令時(shí),將溫度數(shù)據(jù)的高8位和低8位通過(guò)Modbus通訊協(xié)議發(fā)送至LabVIEW用戶端,上位機(jī)使用LabVIEW設(shè)計(jì)的溫度監(jiān)測(cè)程序,將接收的數(shù)據(jù)信息進(jìn)行分析、處理和存儲(chǔ)。
溫度采集端使用一種可組網(wǎng)式的DS18B20溫度傳感器,測(cè)溫范圍為-55~+125 ℃,工作電壓范圍為3.0~5.5 V,可以符合電解液溫度變化的區(qū)間要求[8]。在滿足多點(diǎn)測(cè)溫采集的同時(shí),為達(dá)到較高的轉(zhuǎn)換精度,溫度傳感器采用外部供電的方式,由STM32單片機(jī)供電部分引出的5 V(VOUT2)或3.3 V(VOUT1)提供穩(wěn)定的電源,確保DS18B20在動(dòng)態(tài)測(cè)溫周期中獲得足夠的電流供應(yīng)。
選用內(nèi)核為Cortex-M3的STM32F103RCT6單片機(jī)作為采集系統(tǒng)的控制中心,具有中斷延遲短、配置靈活和運(yùn)算速度快等特點(diǎn),同時(shí)擁有的雙12位ADC,256 KB的FLASH,4 Mbit/s的UART,可以實(shí)現(xiàn)對(duì)信號(hào)的精確采集和存儲(chǔ)[9]。
硬件電路主要包括電源轉(zhuǎn)換電路、通訊接口電路、高速外部晶振電路、外擴(kuò)引腳電路等。單片機(jī)系統(tǒng)內(nèi)部RC振蕩器會(huì)受溫度影響,導(dǎo)致時(shí)鐘頻率降低,因此外接8 MHz無(wú)源晶振,如圖2所示。外部高速時(shí)鐘HSE連接時(shí)鐘系統(tǒng),有效解決了時(shí)鐘頻率精度低的問題。
圖2 8 MHz晶振電路
STM32F103RCT6單片機(jī)包含硬件調(diào)試模塊,具有JTAG/SWD調(diào)試接口,ST-LINK仿真器可以連接該調(diào)試接口,運(yùn)用Keil軟件對(duì)溫度采集程序進(jìn)行仿真調(diào)試,監(jiān)控程序中指針地址的變化情況,實(shí)時(shí)跟蹤程序運(yùn)行位置。硬件調(diào)試模塊允許內(nèi)核在指令斷點(diǎn)或數(shù)據(jù)斷點(diǎn)時(shí)停止,對(duì)系統(tǒng)內(nèi)、外部狀態(tài)進(jìn)行查詢,完成查詢后,內(nèi)核和外設(shè)被復(fù)原,采集程序?qū)⒗^續(xù)執(zhí)行[10]。
為方便調(diào)用.hex/.bin溫度采集文件,并在單片機(jī)上運(yùn)行,使用通訊-下載模塊,STM32F103RCT6單片機(jī)板載的CH340G芯片可以有效解決上、下位機(jī)串口通訊過(guò)程中出現(xiàn)兼容性等問題,用戶通過(guò)MCUISP軟件控制DTR和RTS引腳的高低電平狀態(tài),實(shí)現(xiàn)RESET復(fù)位,BOOT0持續(xù)為1時(shí),進(jìn)入ISP模式,MCUSIP開始連接STM32單片機(jī)并啟動(dòng)下載,完成一鍵下載溫度采集程序,圖3為一鍵下載電路。
圖3 一鍵下載電路
采集程序設(shè)計(jì)采用C語(yǔ)言,通過(guò)主程序調(diào)用的方式執(zhí)行子程序,實(shí)現(xiàn)串口通訊、TFTLCD觸摸屏顯示、溫度的采集和計(jì)算等功能,軟件設(shè)計(jì)流程如圖4所示。
圖4 軟件設(shè)計(jì)流程
主程序完成延遲函數(shù)、串口、存儲(chǔ)通道、DS18B20、LCD等初始化配置,檢測(cè)采集通道是否連接,統(tǒng)計(jì)可用通道,溫度測(cè)量每隔1 s采集1次。
子程序負(fù)責(zé)初始化DS18B20的I/O口,檢測(cè)到DS18B20存在,開始讀取和寫入字節(jié),在轉(zhuǎn)換命令下完成溫度轉(zhuǎn)換,跳過(guò)序列號(hào),設(shè)置溫度報(bào)警門限,發(fā)送3字節(jié)數(shù)據(jù),數(shù)據(jù)寫入TH溫度上限、TL溫度下限并配置寄存器,寫入分辨率為12 bit,EEPROM寄存器中的溫度數(shù)據(jù)在器件掉電時(shí)仍然保存,測(cè)得的溫度數(shù)值與EEPROM中的TH、TL用戶字節(jié)內(nèi)容進(jìn)行比較,若溫度值高于TH則報(bào)警指示燈點(diǎn)亮,TFTLCD觸摸屏顯示所測(cè)溫度數(shù)值。
電解加工過(guò)程中工況環(huán)境較復(fù)雜,加工電源輸出的電流可能會(huì)對(duì)STM32芯片內(nèi)部產(chǎn)生電磁干擾,造成采集程序運(yùn)行偏離正常路徑,部分?jǐn)?shù)據(jù)丟失,為解決上述問題,設(shè)計(jì)了IWDG定時(shí)器,由頻率為60 kHz的LSI時(shí)鐘驅(qū)動(dòng),如圖5所示。
圖5 IWDG定時(shí)器設(shè)計(jì)流程
首先,分別初始化函數(shù)InitIWDG和FeedIWDG,設(shè)置預(yù)分頻器IWDG_PR值,其次,如果觸發(fā)按鍵,F(xiàn)eedIWDG函數(shù)調(diào)用IWDG_ReloadCounter函數(shù)向IWDG_KR寄存器寫入0xAAAA,判斷12位遞減計(jì)數(shù)器,遞減計(jì)數(shù)到0時(shí)產(chǎn)生復(fù)位信號(hào),IWDG進(jìn)行清零,程序正常運(yùn)行。如果程序運(yùn)行出錯(cuò)未發(fā)送信號(hào),IWDG定時(shí)器就會(huì)超時(shí)溢出,強(qiáng)制對(duì)STM32單片機(jī)進(jìn)行復(fù)位,有效避免了采集系統(tǒng)陷入死循環(huán)。
LabVIEW是一款功能強(qiáng)大的圖形化編程語(yǔ)言軟件,在數(shù)據(jù)采集和人機(jī)交互方面有著明顯的優(yōu)勢(shì)[11]。因此,文中采用LabVIEW作為溫度監(jiān)測(cè)系統(tǒng)的開發(fā)平臺(tái),依據(jù)隊(duì)列消息和并行循環(huán)事件的編程方法,編寫上位機(jī)監(jiān)測(cè)程序,設(shè)計(jì)了包括串口通訊、靜態(tài)參數(shù)配置、溫度數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)處理與分析等功能模塊,如圖6所示。
采用LabVIEW平臺(tái)提供的VISA函數(shù)實(shí)現(xiàn)串口通訊,具有程序開發(fā)周期短、可移植性強(qiáng)等優(yōu)點(diǎn),通過(guò)VISA資源函數(shù)配置串口COM參數(shù),VISA函數(shù)讀取屬性節(jié)點(diǎn)內(nèi)緩存的字節(jié)數(shù)據(jù),發(fā)送Command十六進(jìn)制命令,如果下位機(jī)反饋0x23,則表示連接成功,串口LED顯示連接狀態(tài),如圖7所示。
圖7 串口通訊設(shè)計(jì)
數(shù)據(jù)的循環(huán)采集和讀取是監(jiān)測(cè)系統(tǒng)的重要組成部分,完成數(shù)據(jù)初始化和前面板初始化,清除歷史數(shù)據(jù),執(zhí)行Acquire采集和讀取數(shù)據(jù),由子函數(shù)發(fā)送16進(jìn)制幀,命令下位機(jī)開始數(shù)據(jù)采集,VISA函數(shù)讀取串口緩沖區(qū)數(shù)據(jù),若緩存為0則繼續(xù)等待,若不為0,則將讀取的字符串轉(zhuǎn)換為u8數(shù)組,存入數(shù)據(jù)循環(huán)隊(duì)列中,每讀取一個(gè)數(shù)據(jù)則會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的Receiver Data消息。停止采集時(shí),利用VISA清空緩沖區(qū)函數(shù),清除接收緩沖區(qū)中不正確的數(shù)據(jù),減少采集誤差,同時(shí),發(fā)送命令給下位機(jī)STM32,圖8為溫度數(shù)據(jù)采集設(shè)計(jì)。
圖8 溫度數(shù)據(jù)采集
溫度監(jiān)測(cè)系統(tǒng)主要功能是直觀地顯示每一時(shí)刻溫度數(shù)值的變化,通過(guò)讀取數(shù)據(jù)幀,校驗(yàn)數(shù)據(jù)是否有效,采集的各通道溫度數(shù)據(jù)傳輸至NI_Channel Name通道設(shè)定溫度波形數(shù)據(jù)屬性,進(jìn)行文件存儲(chǔ),保存數(shù)據(jù)到溫度波形數(shù)組,由LabVIEW前面板的表格界面顯示測(cè)量的溫度數(shù)值,波形圖表流動(dòng)顯示對(duì)應(yīng)溫度曲線,采集點(diǎn)數(shù)達(dá)到設(shè)定值后,自動(dòng)觸發(fā)停止按鈕。
為了便于用戶掌握各通道溫度變化,系統(tǒng)加入了溫度超限報(bào)警模塊,如圖9所示。將有效溫度數(shù)據(jù)高8位和低8位整合為16位數(shù),進(jìn)而轉(zhuǎn)換為實(shí)際溫度值,將其分別與設(shè)定的各通道溫度上限、下限值進(jìn)行比較,如果某通道溫度數(shù)值超過(guò)報(bào)警閾值,數(shù)字顯示框呈紅色,顯示為報(bào)警狀態(tài),如果處于正常范圍內(nèi),則顯示綠色。
圖9 溫度曲線與超限報(bào)警模塊
TDMS文件以分層式存儲(chǔ),適用于采集不同類型的數(shù)據(jù),LabVIEW監(jiān)測(cè)系統(tǒng)除了完成實(shí)時(shí)監(jiān)測(cè)各通道溫度變化情況外,同時(shí),利用VI選板的TDMS文件存儲(chǔ)每一時(shí)刻的溫度數(shù)值。溫度采集停止時(shí),值信號(hào)觸發(fā)保存事件結(jié)構(gòu),程序啟動(dòng)自動(dòng)保存,并顯示文件存儲(chǔ)路徑,保存溫度數(shù)據(jù)到TDMS文件中,方便采集結(jié)束后進(jìn)行統(tǒng)計(jì)和分析。
為了檢驗(yàn)系統(tǒng)軟件和硬件設(shè)計(jì)的可行性以及各項(xiàng)功能運(yùn)行的穩(wěn)定性,開展了實(shí)際測(cè)溫試驗(yàn),如圖10所示。根據(jù)測(cè)試要求在LabVIEW前面板選擇COM通訊端口號(hào)、設(shè)置采集時(shí)間間隔和數(shù)據(jù)采集量等。將多個(gè)DS18B20溫度傳感器放入電解液池內(nèi)各待測(cè)位置,啟動(dòng)串口通訊,測(cè)試過(guò)程中,通過(guò)LabVIEW監(jiān)測(cè)界面,觀察到各通路溫度曲線變化。
圖10 測(cè)試現(xiàn)場(chǎng)
測(cè)試結(jié)束后,提取TDMS文件存儲(chǔ)的溫度數(shù)據(jù),利用Origin繪制各通路數(shù)據(jù)曲線,如圖11所示??梢钥闯?,溫度數(shù)據(jù)曲線因隨機(jī)噪聲以及偶然的外界因素干擾而形成脈沖峰值。為了進(jìn)一步驗(yàn)證溫度監(jiān)測(cè)平臺(tái)對(duì)數(shù)據(jù)采集的可靠性,經(jīng)信號(hào)放大、A/D轉(zhuǎn)換和數(shù)字濾波處理后,如圖12所示。圖12中,有效地濾除尖峰,沒有出現(xiàn)信號(hào)的丟失和數(shù)據(jù)的失真,較好地保留了原始溫度數(shù)據(jù)曲線的趨勢(shì)和峰值特征,系統(tǒng)具有較高的穩(wěn)定性。
圖11 原始溫度數(shù)據(jù)
圖12 數(shù)據(jù)處理后溫度數(shù)據(jù)
測(cè)試結(jié)果顯示,電解液加熱過(guò)程中,溫度采集裝置運(yùn)行穩(wěn)定,系統(tǒng)響應(yīng)迅速,采集的溫度值與電子測(cè)溫設(shè)備的采集值進(jìn)行對(duì)比,結(jié)果如表1所示,可以看出,采集的溫度數(shù)據(jù)誤差控制在1.5%之內(nèi),這表明系統(tǒng)測(cè)量精度符合技術(shù)要求,能滿足電解加工的實(shí)際需要。
表1 對(duì)比試驗(yàn)結(jié)果
文中提出了電解液溫度實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)方案,在LabVIEW編程語(yǔ)言環(huán)境下,以PC機(jī)和STM32F103RCT6單片機(jī)作為主要硬件,完成對(duì)系統(tǒng)軟件開發(fā)和硬件設(shè)計(jì),實(shí)現(xiàn)了多通路的溫度采集、波形顯示、溫度超限報(bào)警、數(shù)據(jù)自動(dòng)存儲(chǔ)等一系列功能,并在電解池中開展了測(cè)溫采集試驗(yàn),驗(yàn)證了所設(shè)計(jì)的溫度監(jiān)測(cè)系統(tǒng)自動(dòng)化程度高,操作簡(jiǎn)單,具有較好的穩(wěn)定性,能夠滿足電解加工對(duì)溫度采集和監(jiān)測(cè)的要求,該方案可以為解決實(shí)際工程應(yīng)用中的溫度采集問題提供參考。