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