王澤平 房雲峰 姜寶龍 白振宇


摘要:應用MATLAB環境下PC機與Arduino實時串行通訊及數據處理的方法,完成焊接熱循環測試系統的搭建。針對K型熱電偶提取焊接溫度場數據,基于MATLAB進行實時的曲線繪制和焊接熱循環分析,簡化了焊接熱循環實驗流程,便于進一步完善實驗步驟。
關鍵詞:焊接;熱循環;測試系統
0? 引言
HAZ熱循環的測定分為焊接熱模擬法和就地實測法。目前實驗室多采用焊接熱模擬法。焊接熱模擬法是將試件放在熱模擬裝置中經歷與焊接相同的熱過程,其設備比較昂貴。在焊接熱循環的地實測法上,多采用紅外測溫法和熱電偶法。紅外測溫技術是一項較為新型的測溫技術,但在對焊接溫度場進行測試時,焊接區附近的焊接飛濺、煙塵、保護氣體等會直接影響到其監測。本文設計新型焊接熱循環測試系統,通過Arduino及計算機實時地對溫度數據進行分析處理,繪制熱循環曲線,分析計算焊接熱循環的主要參數。新版本的MATLAB開發了相應的Arduino模塊,相對于單片機來說,在進行與實時通訊時更具有便捷性。本文應用了一種MATLAB環境下,PC機與Arduino實時串行通信數據處理方法,簡化測試系統開發流程,提高了項目開發效率。
1? 測試裝置設計
1.1 總體
測溫裝置以Arduino為主控單元,同時控制6路測溫模塊測溫,并采集焊接時的電流和電壓和各路測溫模塊的數字信號。Arduino將數據傳送到上位機,上位機基于MATLAB完成繪制測試溫度曲線、焊接電壓電流值曲線的工作, 并以Excel格式存儲測量值。同時設置繼電器隔離模塊,可以耐受GMAW焊時焊接電流及電壓對系統的干擾。系統構成如圖1所示。
1.2 測溫模塊
測溫模塊是焊接熱循環測試系統的核心,使用合理的測溫元件及信號調理電路是數據采集有效性的根本。
實驗設備中常用的溫度傳感器有光學溫度傳感器,數字式溫度傳感器、熱電偶、熱電阻等[1]。焊接區附近的焊接飛濺、弧光等直接影響光學溫度傳感器的測量精度,同時焊接溫度場溫度最高可達1300℃。為滿足焊接熱循環的測定,選擇K型熱電偶作為測溫元件。
針對K型熱電偶,本文選用美國MAXIM公司生產的MAX6675芯片作為數模轉換器。芯片內置冷端補償范圍為-20~+80℃,適應室溫波動的測試環境。同時芯片具備簡單的SPI串行接口,通過三根線實現與Arduino的通訊。因其具備熱電偶斷線檢測功能,和較強的抗干擾性,使得熱電偶測溫線路變得簡單,方便了焊接熱循環區傳感器的線路布置。
MAX6675作為從設備,采用SPI串行外設總線與Arduino接口,其工作時序,其中如圖2所示,CS為片選信號,SO為串行數里輸出,SCK為串行時鐘輸入[2]。Arduino的ATmega系列處理器內建SPI接口,位于數字10~13腳。
在MAX6675的CS引腳從1變為0時,芯片停止信號轉換,并通過SO引腳發送轉換后的數據。每個時鐘周期發送出一位數據。高位先發送,需要16個時鐘周期發送完整的數據。15是冗余位,14-3是溫度值,D2檢測熱電偶是否斷開位。將片選端連接到Arduino的2~7的I/O口上,便于在程序中進行數據的循環采樣,將一個循環中六個傳感器采集的溫度信號歸為一組,按組與上位機進行數據傳輸,每組數據作為中斷信號,如設置回調函數觸發事件,當緩沖區中達到設定字節的數據時,觸發中斷。
1.3 與PC端的通訊模塊
采用MATLAB作為上位機,與Arduino進行實時通訊[3-4]。MATLAB與Arduino的通訊方式有四種,其中實現數據回傳的有Simulink串口通信或者儀器控制工具箱,為了保證系統的實時性更高,本文選用儀器控制工具箱,采用基于事件驅動中斷通信機制,與上位機進行數據傳送。使用serial函數創建串口對象,定義通信模式,并在對象屬性上獲得串口的狀態。
查詢和中斷為讀取串口數據的兩種方式[5]。查詢方式,大量的數據下位機分批分時傳輸給PC機,需要不停查詢串行口的緩沖區,時刻保持著有數據就讀取的狀態,不能對數據進行實時處理。為了保證測試系統的實時性,以中斷方式對串口進行控制,實現實時處理下位機傳送的數據,采用MATLAB的事件和回調函數機制完成。
裝置工作時,MATLAB通過調用儀器控制工具箱中serial函數,創建串口對象,得到Arduino文件句柄,操作文件實現對PC機串行口讀寫[6]。PC機可以通過MATLAB向串行口發送特殊指令,Arduino對此反應,將采樣數據通過串行口回傳。MATLAB通過中斷,實時接收Arduino發送的數據,并完成對數據分析處理、文件存儲及圖形顯示。
1.4 MATLAB實時顯示數據
常用的MATLAB二維畫圖函數為plot,但其一般為靜態的。實時的數據顯示需要動態同步顯示。本文采用drawnow,刷新屏幕的,搭配plot完成數據曲線的實時顯示。
2? 結論
本文設計的焊接熱循環測試裝置由Arduino采集MAX6675的輸出信號,并將數據送入上位機,有MATLAB中進行數據處理和實時顯示。
由MATLAB本身在工程計算方面的強大,便與對測試系統的進一步完善和開發。利用多路熱循環測試系統,在焊接過程中實時測試各測點的溫度,并分析繪制熱循環曲線計算其主要參數,為后續分析焊接參數對應力變形、焊接冷卻相變過程、接頭組織、分析HAZ組織與性能提供數據支持。
參考文獻:
[1]李宇.焊接熱循環數據采集系統中的硬件設計[J].科技創新與應用,2017(28):96-97.
[2]周志煒.基于MAX6675的測溫裝置[C].中國電工技術學會電工產品可靠性研究會.第五屆電工產品可靠性與電接觸國際會議論文集.中國電工技術學會電工產品可靠性研究會:中國電工技術學會,2014:363-367.
[3]向先波,徐國華,張琴.Matlab環境下PC機與單片機的串行通信及數據處理[J].單片機與嵌入式系統應用,2004(12):27-31.
[4]張中然,焦波,孫志勇,丁明娜.一般光照條件下鋁塑泡罩藥品包裝檢測系統[J].哈爾濱理工大學學報,2017,22(05):65-69,75.