陳 超,楊 琪,李智斌
(東方電氣集團(tuán)東方鍋爐股份有限公司,四川 德陽 618000)
在工業(yè)生產(chǎn)過程中,焊條保溫桶常用于焊工施焊過程中對焊條的加熱保溫。其工作原理為:采用獨立的(70~80)V交直流電源對焊條保溫桶上、中、下3個加熱區(qū)域進(jìn)行供電,通過內(nèi)置加熱控制系統(tǒng)將焊條保溫桶內(nèi)部溫度控制在(100~150)℃之間。因此,為保證其保溫性能可靠,需定期對其加熱保溫性能進(jìn)行檢測。在實際檢測過程中,一般要求對焊條保溫桶內(nèi)部上、中、下3個區(qū)域溫度均上升至100℃后的第一個控溫周期內(nèi)(升溫、降溫、升溫)最高、最低溫度進(jìn)行記錄,3個區(qū)域溫度均能保持在(100~150)℃ ± 10℃之間則視為焊條保溫桶檢測合格。
目前,工業(yè)中對焊條保溫桶加熱保溫性能檢測的常用做法是通過自制工裝將3支熱電偶放置于焊條保溫桶內(nèi)部上、中、下3個位置進(jìn)行溫度測量,并利用打點式自動平衡記錄儀實現(xiàn)溫度記錄及確認(rèn)。該方法存在檢測效率低下,易受自動平衡記錄儀性能及環(huán)境溫濕度影響,無法自動記錄檢測人員、檢測時間等關(guān)鍵信息,檢測數(shù)據(jù)不便于存檔及后期查找,不利于后期量值溯源的缺點。因此,為解決上述缺點,本文設(shè)計了一種基于STM32、Qt的焊條保溫桶智能檢測系統(tǒng)。
系統(tǒng)主要由下位機(jī)溫度采集部分和上位機(jī)數(shù)據(jù)處理部分兩個部分組成。下位機(jī)溫度采集部分利用MAX31855熱電偶溫度轉(zhuǎn)換芯片對用于測量焊條保溫桶內(nèi)部溫度的集成式三點測溫?zé)犭娕紲囟炔杉盘栠M(jìn)行放大、冷端補(bǔ)償、模數(shù)轉(zhuǎn)換,然后通過單片機(jī)STM32F407ZGT6接收并處理熱電偶溫度數(shù)據(jù)后實時顯示在OLED顯示屏上,同時單片機(jī)通過串口將溫度數(shù)據(jù)發(fā)送給上位機(jī)。上位機(jī)利用Qt實現(xiàn)溫度數(shù)據(jù)實時接收解析、存儲、繪圖顯示、極值點尋找、檢測結(jié)果判定及歷史數(shù)據(jù)查詢等功能。具體而言系統(tǒng)應(yīng)滿足如下功能需求:
1)準(zhǔn)確測量焊條保溫桶內(nèi)部上、中、下3個區(qū)域的溫度,測溫誤差應(yīng)小于±1℃,并實現(xiàn)OLED顯示屏實時顯示溫度數(shù)據(jù)。
2)提供用戶登錄、注冊功能,并對用戶信息的合法性進(jìn)行驗證,以此保障系統(tǒng)的安全性。
3)實現(xiàn)溫度數(shù)據(jù)的實時保存、繪圖顯示,便于用戶直觀查看溫度變化及后期查詢。
4)自動尋找各路溫度數(shù)據(jù)的極值點并實時顯示,檢測完成后自動判定檢測結(jié)果,并用紅色對誤差超標(biāo)的數(shù)據(jù)加以區(qū)分。
5)提供歷史檢測數(shù)據(jù)查詢功能,方便用戶管理各臺焊條保溫桶,方便后期量值溯源。
6)當(dāng)檢測完成后,系統(tǒng)及時切斷焊條保溫桶電源,確保用電安全。
系統(tǒng)硬件部分主要由單片機(jī)系統(tǒng)模塊、溫度采集模塊、OLED顯示模塊、電源控制模塊、串行通信模塊組成。集成式三點測溫?zé)犭娕挤謩e采集焊條保溫桶內(nèi)部上、中、下三路溫度數(shù)據(jù),并由MAX31855處理補(bǔ)償后傳送給STM32F407ZGT6單片機(jī)。單片機(jī)將該溫度數(shù)據(jù)進(jìn)行濾波處理后,通過OLED顯示模塊實時顯示,同時通過串口將溫度數(shù)據(jù)傳送給PC機(jī),再由PC機(jī)做數(shù)據(jù)處理并保存。待檢測完成后,系統(tǒng)通過電源控制模塊自動切斷焊條保溫桶電源,使其停止加熱保溫。系統(tǒng)硬件結(jié)構(gòu)圖如圖1。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖Fig.1 System hardware structure diagram
系統(tǒng)采用意法半導(dǎo)體公司設(shè)計的STM32F407ZGT6作為微處理器,它是基于ARM Cortex-M4內(nèi)核的32位微處理器,主頻高達(dá)168MHz,具有優(yōu)異的實時數(shù)據(jù)處理能力。其具有1024K片上FLASH和192K SRAM、3個SPI、3個IIC、6個串口,內(nèi)部集成SPI總線、串行總線、12位A/D等資源,完全滿足系統(tǒng)開發(fā)以及后期功能擴(kuò)展的需要[1]。另外,編程時可以選擇基于HAL庫的STM32CubeMX軟件進(jìn)行開發(fā),其圖像化的參數(shù)配置能極大縮短開發(fā)周期,降低編程難度。
系統(tǒng)采用K型集成式三點測溫?zé)犭娕紝崿F(xiàn)焊條保溫桶內(nèi)部上、中、下3個位置的溫度采集,并通過MAX31855熱電偶溫度轉(zhuǎn)換芯片處理補(bǔ)償熱電偶的微弱信號,利用STM32F407ZGT6單片機(jī)的三路SPI串行通信通道即可讀取焊條保溫桶內(nèi)部上、中、下3個位置的溫度數(shù)據(jù)。MAX31855直接將熱電偶信號轉(zhuǎn)換為數(shù)字信號,具有信號放大、冷端補(bǔ)償、線性化、檢測熱電偶開路、A /D轉(zhuǎn)換及SPI串口數(shù)字化輸出功能,通過SPI兼容接口輸出14位帶符號數(shù)據(jù)[2]。其最高溫度讀數(shù)為+1800℃,最低溫度讀數(shù)為-270 ℃,冷端補(bǔ)償范圍為-55℃~+127℃,溫度分辨率為0.25℃[3]。在實際溫度采集過程中,MAX31855內(nèi)部的ADC采樣會讓溫度數(shù)據(jù)產(chǎn)生0.25℃的波動,此時可以通過均值濾波的方式加以改善,經(jīng)程序補(bǔ)償處理后,最高可保持±1℃的精度。由于熱電偶產(chǎn)生的電勢差微弱,容易受電源電壓的影響,導(dǎo)致熱電偶產(chǎn)生的模擬信號嚴(yán)重失真,故在靠近芯片電源引腳的位置連接大小為1μF的旁路電容,用于降低電源對熱電偶的影響[4]。集成式三點測溫?zé)犭娕冀Y(jié)構(gòu)圖、溫度采集電路分別如圖2、圖3。
圖2 集成式三點測溫?zé)犭娕冀Y(jié)構(gòu)圖Fig.2 Integrated three-point temperature measurement thermocouple structure diagram
圖3 溫度采集電路Fig.3 Temperature acquisition circuit
系統(tǒng)采用0.96英寸,分辨率為128×64的OLED作為下位機(jī)顯示模塊,通過單片機(jī)IIC通信接口進(jìn)行連接。利用自制字庫,提前繪制焊條保溫桶相關(guān)信息界面,最后只需單片機(jī)定時將處理后的溫度數(shù)據(jù)通過IIC通信接口發(fā)送給OLED顯示屏,即可實現(xiàn)焊條保溫桶內(nèi)部上、中、下三路溫度數(shù)據(jù)的實時顯示。OLED信息顯示如圖4。
圖4 OLED信息顯示Fig.4 OLED Information display
焊條保溫桶作為大功率器件,不能直接和單片機(jī)連接,需要通過輸出驅(qū)動器實現(xiàn)單片機(jī)對焊條保溫桶電源通斷的控制。由于固態(tài)繼電器的眾多優(yōu)點,本文采用德力西CDG1-1DD/25A固態(tài)繼電器作為連接焊條保溫桶和單片機(jī)之間的驅(qū)動器,同時為提高系統(tǒng)穩(wěn)定性,采用光電耦合器PC817C實現(xiàn)電氣隔離。電源控制電路如圖5。
圖5 電源控制電路Fig.5 Power control circuit
下位機(jī)程序采用模塊化程序設(shè)計方法,包含溫度采集子程序、數(shù)據(jù)處理子程序、OLED顯示子程序、電源控制子程序、串口通訊子程序,主要實現(xiàn)對焊條保溫桶內(nèi)部上、中、下3個位置溫度數(shù)據(jù)的采集、濾波處理,并將處理好的數(shù)據(jù)實時顯示在OLED顯示屏上,同時通過串口將數(shù)據(jù)傳送給上位機(jī)。另外,電源控制子程序還負(fù)責(zé)接收上位機(jī)發(fā)出的電源控制指令,在系統(tǒng)檢測完成后及時斷開焊條保溫桶電源。下位機(jī)程序流程圖如圖6。
圖6 下位機(jī)程序流程圖Fig.6 Lower computer program flow chart
上位機(jī)軟件基于Qt進(jìn)行開發(fā),采用多線程編程方式,同時實現(xiàn)數(shù)據(jù)存儲及繪圖顯示。Qt是Qt Company開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架,具有優(yōu)良的跨平臺特性、面向?qū)ο?、豐富的API、大量的開發(fā)文檔、開源等優(yōu)點,用戶可以輕而易舉地通過拖拽的方式布控Qt界面控件[5-7]。上位機(jī)軟件主要完成系統(tǒng)登錄驗證、數(shù)據(jù)接收解析、數(shù)據(jù)極值點尋找、數(shù)據(jù)存儲及繪圖、電源控制、歷史數(shù)據(jù)查詢等功能。上位機(jī)軟件結(jié)構(gòu)圖如圖7。
圖7 上位機(jī)軟件結(jié)構(gòu)圖Fig.7 Upper computer software structure diagram
3.2.1 系統(tǒng)登錄驗證模塊
為辨別當(dāng)前檢測人員信息,系統(tǒng)設(shè)有用戶注冊、登錄功能。同時為記錄用戶數(shù)據(jù),此處選用Qt內(nèi)置的SQLite數(shù)據(jù)庫進(jìn)行存儲。該數(shù)據(jù)庫支持標(biāo)準(zhǔn)的SQL命令,數(shù)據(jù)存儲在單個物理文件中,零配置和安裝,在系統(tǒng)崩潰或失電之后可自動恢復(fù)。訪問速度快、體積小,訪問數(shù)據(jù)庫的程序直接從磁盤上的數(shù)據(jù)文件讀寫,具有高達(dá)2TB的大存儲量,完全滿足本應(yīng)用程序的開發(fā)需求[8]。系統(tǒng)初始化時,SQLite數(shù)據(jù)庫中包含一張帶有系統(tǒng)管理員賬號、密碼的用戶信息表單,該表單用于用戶注冊、登錄、身份驗證等功能,系統(tǒng)管理員可以通過登錄管理員賬號的方式實現(xiàn)對系統(tǒng)普通用戶的增刪改查。用戶登錄、注冊界面如圖8、圖9。
圖8 用戶登錄界面Fig.8 Login UI
圖9 用戶注冊界面Fig.9 Registration UI
3.2.2 數(shù)據(jù)接收解析模塊
上位機(jī)與下位機(jī)通過串口實現(xiàn)數(shù)據(jù)通信。為保證上位機(jī)接收數(shù)據(jù)的準(zhǔn)確穩(wěn)定,需要在上位機(jī)與下位機(jī)之間設(shè)定一個通信協(xié)議。下位機(jī)將采集到的三路溫度數(shù)據(jù)打包成一定格式后,通過串口傳輸給上位機(jī),此時上位機(jī)按照相同格式解析接收到的數(shù)據(jù)包即可獲取焊條保溫桶內(nèi)部上、中、下3個位置的溫度數(shù)據(jù)。
3.2.3 數(shù)據(jù)極值點尋找模塊
根據(jù)焊條保溫桶檢測要求,需要對焊條保溫桶內(nèi)部上、中、下3個區(qū)域溫度均上升至100℃后的第一個控溫周期內(nèi)的最高、最低溫度進(jìn)行記錄。因此,當(dāng)溫度數(shù)據(jù)解析出來后,需要分別尋找這3個位置的溫度極大、極小值。由于焊條保溫桶保溫曲線為偽正弦曲線,因而在程序設(shè)計時,通過將當(dāng)前溫度數(shù)據(jù)與下一個溫度數(shù)據(jù)相互比較的方式求出溫度極大值、極小值。溫度極值尋找流程圖如圖10。
圖10 溫度極值尋找流程圖Fig.10 Temperature extremum search flow chart
3.2.4 數(shù)據(jù)存儲及繪圖模塊
為保存焊條保溫桶檢測過程中的溫度數(shù)據(jù),系統(tǒng)采用Qt內(nèi)置的SQLite輕量級文件型數(shù)據(jù)庫進(jìn)行存儲。當(dāng)用戶登錄成功,填寫被檢焊條保溫桶相關(guān)信息并開始檢測后,此時系統(tǒng)根據(jù)用戶所填信息,自動新建一張表名為被檢焊條保溫桶編號的新表單。該表單主要存放當(dāng)前檢測人員信息、檢測日期、溫度極值以及帶時間標(biāo)簽的焊條保溫桶內(nèi)部3個溫度采集點的溫度數(shù)據(jù)。通過以上表單設(shè)置,可以極大方便后期查看不同編號焊條保溫桶的檢測信息。同時,系統(tǒng)采用QcustomPlot對解析出來的溫度數(shù)據(jù)進(jìn)行實時溫度曲線繪制。QcustomPlot是基于Qt的用于繪圖及數(shù)據(jù)可視化的C++部件,它沒有復(fù)雜的依賴關(guān)系,在Qt工程中引入相應(yīng)的頭文件即可使用[9]。系統(tǒng)檢測主界面如圖11。
圖11 系統(tǒng)檢測主界面Fig.11 System verification main interface
3.2.5 電源控制模塊
系統(tǒng)在檢測完成后,通過固態(tài)繼電器實現(xiàn)焊條保溫桶電源的切斷。當(dāng)系統(tǒng)完成檢測后,上位機(jī)軟件通過串口向下位機(jī)發(fā)送電源斷開“OFF”指令。當(dāng)下位機(jī)接收到該指令后,立即將控制固態(tài)繼電器通斷的PC0引腳置為低電平,此時固態(tài)繼電器斷路,焊條保溫桶電源被切斷,本次檢測完成。
3.2.6 歷史數(shù)據(jù)查詢模塊
為方便用戶查詢歷史數(shù)據(jù),系統(tǒng)設(shè)有歷史數(shù)據(jù)查詢功能。用戶可通過焊條保溫桶編號、檢測日期等信息精確查找該焊條保溫桶的歷史檢測數(shù)據(jù),并自動將所查詢的歷史溫度數(shù)據(jù)通過QcustomPlot進(jìn)行繪圖顯示,方便用戶查看。另外,系統(tǒng)還通過調(diào)用Qt中QPdfWriter、QPainter類實現(xiàn)了檢測證書PDF格式導(dǎo)出功能,用戶可以根據(jù)需求選擇是否導(dǎo)出檢測證書。
為保證系統(tǒng)溫度采集數(shù)據(jù)的準(zhǔn)確性,選用溫度波動范圍為±0.05℃的熱電偶恒溫爐在50℃~200℃溫度區(qū)間內(nèi)每隔25℃對系統(tǒng)進(jìn)行標(biāo)定。在各項標(biāo)定溫度下,使用系統(tǒng)的上、中、下三路溫度采集通道同時進(jìn)行測量,從而得到三路溫度采集通道的溫度數(shù)據(jù),系統(tǒng)測試數(shù)據(jù)見表1。通過表1數(shù)據(jù)可以看出,系統(tǒng)三路溫度采集通道的測溫最大絕對誤差均在±1℃以內(nèi),系統(tǒng)溫度采集準(zhǔn)確性及穩(wěn)定性良好,滿足系統(tǒng)設(shè)計要求。
本文基于STM32和Qt設(shè)計并實現(xiàn)了焊條保溫桶智能檢測系統(tǒng)。系統(tǒng)利用STM32單片機(jī)采集溫度數(shù)據(jù),并通過串口將溫度數(shù)據(jù)傳送至Qt上位機(jī)。經(jīng)過實際測試,系統(tǒng)成功實現(xiàn)了焊條保溫桶內(nèi)部溫度數(shù)據(jù)的自動采集,實現(xiàn)了數(shù)據(jù)保存、曲線繪制、極值尋找及歷史數(shù)據(jù)查詢等功能,并能通過溫度極值自動給出檢測結(jié)論,檢測完成后自動切斷焊條保溫桶電源。通過標(biāo)定測試發(fā)現(xiàn)系統(tǒng)測溫誤差均在±1℃以內(nèi),溫度采集準(zhǔn)確性及穩(wěn)定性良好,滿足焊條保溫桶的實際檢測要求,具有良好的實用價值。