張正良 張東寧 吳彥文 高 宇
(昆明電器科學(xué)研究所,昆明 650221)
微弧氧化(MAO)技術(shù)是一種新型金屬表面處理技術(shù)[1],經(jīng)過微弧氧化處理后提高了金屬的耐磨性和耐腐蝕性,在國防裝備、航天、機械、汽車、船舶等領(lǐng)域得到了應(yīng)用。微弧氧化是將鋁合金置于強電場環(huán)境的溶液中,器件表面因受到電壓作用而發(fā)生微弧放電,產(chǎn)生高壓高溫使微區(qū)的鋁原子與溶液中的氧結(jié)合生成一層以氧化鋁為主要成分的陶瓷層。微弧氧化作為一種等離子體電化學(xué)技術(shù)受到電流密度、電壓、頻率、占空比及氧化時間等能量參數(shù)的影響[2],故在微弧氧化過程中實時記錄能量參數(shù)的變化對研究微弧氧化工藝有重要作用。本設(shè)計基于MCGS及控制微弧氧化的DSP2407A設(shè)計人機交互界面,實現(xiàn)了對微弧氧化過程中的電參數(shù)的實時記錄及監(jiān)視,并支持?jǐn)?shù)據(jù)導(dǎo)出為分析微弧氧化過程及優(yōu)化工藝奠定了基礎(chǔ)。
本文主要有四部分組成,第一部分分析了人機界面在整個系統(tǒng)中的位置和作用;第二部分定義了通信幀結(jié)構(gòu)和開發(fā)驅(qū)動;第三部分設(shè)計DSP通信幀解析程序;第四部分分析了微弧氧化過程中電參數(shù)變化過程。
根據(jù)MAO的工藝要求,電源能輸出高電壓大電流且頻率、占空比都可調(diào)節(jié),輸出波形如圖1所示。

圖1 電壓波形示意圖
電源參數(shù):正向電壓0~600V可調(diào),額定電流300A,脈沖個數(shù) 1~32767個可調(diào);負(fù)向電壓 0~100V,額定電流150A,脈沖個數(shù)1~32767個可調(diào);占空比5%~100%可調(diào)。脈沖頻率最高可達7.3kHz。此外根據(jù) MAO過程正負(fù)電源可以分別選擇在自動模式下運行,即開始階段為恒流輸出,當(dāng)膜層長厚擊穿電壓達到限壓值后為恒壓輸出,整個電源系統(tǒng) 結(jié)構(gòu)如圖2所示。

圖2 MAO系統(tǒng)結(jié)構(gòu)示意圖
整個系統(tǒng)大致可以分為主電路,DSP控制模塊,人機界面等三個模塊。系統(tǒng)開始運行時DSP的各個功能單元都是停止的,操作員在人機界面上設(shè)定好整個系統(tǒng)的參數(shù)后,MCGS通過串口通信協(xié)議將設(shè)置的參數(shù)值傳遞到DSP模塊,DSP根據(jù)串口通信的命令幀中的命令將參數(shù)傳遞到各個控制模塊,當(dāng)參數(shù)設(shè)定后MCGS人機界面就可以發(fā)送啟動系統(tǒng)的命令幀,DSP模塊就根據(jù)先前的設(shè)定啟動各個功能單元。在系統(tǒng)的運行過程中MCGS不停的發(fā)送采集命令幀將DSP的模擬量AD轉(zhuǎn)換結(jié)果和DA通道的輸出值傳送到MCGS中,MCGS通過各個組件把采集來的數(shù)據(jù)以波形或數(shù)值的形式顯示在界面上,并根據(jù)條件進行數(shù)據(jù)存儲;當(dāng)微弧氧化過程結(jié)束后,可以通過人機界面的數(shù)據(jù)導(dǎo)出功能將微弧氧化過程中的數(shù)據(jù)導(dǎo)出進行更為深入的分析。
根據(jù)系統(tǒng)的工作過程可知:①人機界面需要設(shè)置DSP功能模塊的參數(shù);②人機界面需要實時采集DSP的模擬量輸入和輸出;③人機界面需要發(fā)送特殊的命令來驅(qū)動 DSP的功能模塊。為方便理解在DSP中參與通信的數(shù)據(jù)都以數(shù)組的方式進行存儲,根據(jù) MCGS的通信需求,在DSP中分別建立模擬量采樣數(shù)組 ADData[]含 16個元素,模擬量輸出數(shù)組 DAdata[]含 4個元素,數(shù)據(jù)交換數(shù)組 DataE[]含16個元素。
為實現(xiàn)MCGS和 DSP控制模塊之間的通信,本文設(shè)計了一種通信幀結(jié)構(gòu)如圖3所示。

圖3 通信幀結(jié)構(gòu)
整個通信幀共有8個字節(jié)組成:
首字節(jié)是起始碼,用來標(biāo)注通信幀命令的開始。
第二字節(jié)為地址碼,用來標(biāo)注本通信幀要到達的設(shè)備的地址,地址值為0~255。
第三字節(jié)為命令碼,用來標(biāo)注此通信幀的主要功能,命令碼的取值區(qū)間為0~255,共可以容納256個通信命令,在本設(shè)計中用到的命令碼主要有:AD采集:0xAD;DA 采集:0xDA;數(shù)據(jù)交換命令:0xDD;停止命令:0x00;啟動命令:0x11;參數(shù)寫入命令:0x22。
第四字節(jié)為操作域,用來標(biāo)注命令碼操作的數(shù)據(jù)域,如果要采集AD采樣結(jié)果的第二通道的值,那么命令碼為:0xAD,操作域為 0x01,解析程序就會把第二個AD采樣通道的值填入返回幀中。
第五字節(jié)是數(shù)據(jù)高8位,主要用于攜帶DSP存儲單元中的高8位數(shù)據(jù),在DSP中數(shù)據(jù)以16位為一個存儲單元,而串口通信則以8位為一個單元,所以要傳輸一個DSP數(shù)據(jù)存儲單元的值就得分為高8位和低8位。對于一些并不攜帶通信數(shù)據(jù)的命令,如啟動命令:0x11,只要在DSP的通信幀解析中加以屏蔽即可,為了通信幀的統(tǒng)一性還是要保留數(shù)據(jù)位的通信。
第六字節(jié)為數(shù)據(jù)位低8位,主要用于攜帶DSP存儲單元中的低8位數(shù)據(jù)。
第七字節(jié)為數(shù)據(jù)結(jié)束位,這是為多數(shù)據(jù)通信預(yù)留,以便實現(xiàn)用一幀傳送多數(shù)據(jù)。
第八字節(jié)為幀停止位,用來標(biāo)注通信幀的結(jié)束。
在DSP的應(yīng)用中為了實現(xiàn)對象控制往往需要一個人機界面,通常采用的方法是MCU+DSP,即用一個MCU做人機界面,用DSP做控制。這種方法雖然可以解決簡單的人機界面問題,如鍵盤輸入、LCD顯示輸出等,但很難實現(xiàn)變量變化趨勢監(jiān)控,而且開發(fā)難度大、風(fēng)險大、難以實現(xiàn)大量數(shù)據(jù)存儲查詢等復(fù)雜功能。北京昆侖通態(tài)公司推出的mcgsTpc系列嵌入式HMI(人機界面)產(chǎn)品廣泛的應(yīng)用于工控領(lǐng)域,性能穩(wěn)定,提供了完整的開發(fā)平臺,用戶可以根據(jù)需要自行開發(fā)硬件的驅(qū)動程序,實現(xiàn)組態(tài);而基于DSP設(shè)計變頻恒流穩(wěn)壓微弧氧化電源控制器并非通用設(shè)備,MCGS并沒有提供相應(yīng)的設(shè)備驅(qū)動。
基于圖3的通信幀結(jié)構(gòu),本文開發(fā)了變頻恒流穩(wěn)壓微弧氧化電源控制器的 MCGS驅(qū)動,將 DSP和MCGS連接起來。MCGS上的驅(qū)動與DSP通信結(jié)構(gòu)如圖4所示。

圖4 通信框架結(jié)構(gòu)
MCGS上的驅(qū)動主要通過三種方式發(fā)送命令幀與DSP進行通信:
第一種周期采集,即周期的收發(fā)通信幀,主要是對AD、DA結(jié)果進行采集,如圖4所示,驅(qū)動給出了與上層應(yīng)用的接口:AD、DA通道。
第二種命令驅(qū)動,驅(qū)動給出設(shè)備命令函數(shù),上層應(yīng)用只要調(diào)用相應(yīng)的函數(shù)就可以收發(fā)通信幀。設(shè)備命令有:Stop(發(fā)送停止命令)、ConGo(發(fā)送起動命令)、RDSP(CHL AS INTEGER,Fd AS INTEGER)(讀通道值)、WDSP(發(fā)送數(shù)據(jù)更新命令)等。
第三種方式是數(shù)據(jù)改變時觸發(fā)通信,收發(fā)通信幀。在上層的應(yīng)用中,如果與數(shù)據(jù)交換通道相連的變量的值發(fā)生改變時,就會觸發(fā)一次通信,完成通信幀的收發(fā)以實現(xiàn)數(shù)據(jù)交換。在MCGS開發(fā)環(huán)境中加載此驅(qū)動后就可以從設(shè)備驅(qū)動窗口看到驅(qū)動與上層交互界面的接口如圖5所示。

圖5 設(shè)備驅(qū)動界面
圖 5中對應(yīng)數(shù)據(jù)對象欄是指窗口應(yīng)用中的變量,通道類型為驅(qū)動通過的接口。
從圖4中可知,DSP需要對通信幀進行接收、解析、發(fā)送等三個操作才能實現(xiàn)與MCGS之間的通信。DSP通信幀收發(fā)流程如圖6所示。

圖6 DSP通信幀收發(fā)流程
為了提高通信的效率,通信幀的接收和發(fā)送都是以中斷的方式進行處理[3]。在DSP中建立一個通信幀數(shù)組TMPCMD[]和接受完成標(biāo)志Flag,當(dāng)通信幀接收完成后SCI的接收中斷服務(wù)程序就使Flag置1,主程序知道Flag置1后就會對接收的通信幀數(shù)組TMPCMD[]進行解析,解讀其中內(nèi)容進行相應(yīng)的動作并且更新發(fā)送幀數(shù)組 TMPCMDS[],更新完成后啟動返回幀的發(fā)送Flag置0,SFlag置1,返回幀的實體就是 TMPCMDS[]數(shù)組,返回幀發(fā)送完后SFlag置0。
解析就是對命令幀中的內(nèi)容所具有的意義進行理解,并調(diào)用相應(yīng)的函數(shù)完成通信幀中所賦予的意義。解析流程圖如圖7所示。

圖7 通信幀解析流程
當(dāng)通信幀接收完成后,接收中斷就會對Flag置1,這時主程序就對通信幀進行解析,解析的第一步將通信幀中的命令碼,操作域,攜帶數(shù)分別放入結(jié)構(gòu)體TmpCmdMAP中的Code域,F(xiàn)ield域,和Data域中。第二步對 Code域進行分析即圖 7中的判斷塊,其中的0x$$是指命令碼的值。從3.2可知本文一共定義了AD采集:0xAD;DA采集:0xDA;數(shù)據(jù)交換命令:0xDD;停止命令:0x00;起動命令:0x11;參數(shù)寫入命令:0x22等6個命令。對于AD、DA命令碼,解析程序會根據(jù) TmpCmdMAP中的Field域?qū)⑾鄳?yīng)的AD采樣結(jié)果和DA輸出結(jié)果更新到返回幀中相應(yīng)的位置上,在返回幀中命令碼保持與發(fā)送幀中的一致;對于數(shù)據(jù)交換命令:0xDD解析程序會將接收幀中的數(shù)據(jù)攜帶值還原成 16位格式,更新到TmpCmdMAP中的Data域中,并將該值更新到數(shù)據(jù)區(qū)數(shù)組 DataE[TmpCmdMAP. Field]中。再將更新后的DataE[TmpCmdMAP. Field]值更新到返回幀數(shù)組中;對于停止命令:0x00解析程序會調(diào)用PWMStop()函數(shù)停止波形輸出,及自動控制的所有功能,返回幀數(shù)據(jù)域、命令域均填0x00。對于起動命令:0x11則調(diào)用PWMStart()函數(shù)起動波形輸出,及自動控制的所有功能,返回幀數(shù)據(jù)域、命令域均填 0X11;對于參數(shù)寫入命令:0x22解析程序調(diào)用 PWMStop()函數(shù)停止波形輸出,再調(diào)用Refresh()函數(shù),刷新控制模塊的數(shù)據(jù),主要是將人機界面設(shè)定值更新到各功能單元,返回幀數(shù)據(jù)域、命令域均填0X22。
開發(fā)好MCGS驅(qū)動和DSP通信解析程序后就可以進行人機交互窗口的設(shè)計,人機交互窗口如圖8所示。

圖8 人機交互窗口結(jié)構(gòu)
主要有封面、波形調(diào)整等10個窗口組成,在上層窗口中只用點擊相應(yīng)子窗口名的按鈕就可以進入下一層窗口,在子窗口中只用單擊就可以返回上一層窗口。
封面主要顯示系統(tǒng)運行時間和各個子窗口的入口的按鈕。
波形調(diào)整界面主要作用是設(shè)置波形參數(shù),恒流穩(wěn)壓參數(shù)以及啟動和停止DSP波形輸出和PID系統(tǒng)。
PID設(shè)定窗口主要是用來調(diào)試 PID,與波形調(diào)整界面中的調(diào)整不同,這個界面中還可以以Q15格式調(diào)整PID的Kp、Ki、Kd等參數(shù)。
時間設(shè)定界面主要是用來修正觸摸屏的時間參數(shù),設(shè)定系統(tǒng)運行時間以及系統(tǒng)進入穩(wěn)壓PID后的運行時間,時間控制值設(shè)定后起效。
歷史波形參數(shù)查詢界面主要用來查看以往的波形參數(shù),并可以調(diào)用子窗口進行記錄輸出。
報警監(jiān)視窗口主要用來監(jiān)視系統(tǒng)的報警信息,主要是溫度報警和通信報警。
模擬量監(jiān)控窗口主要是對系統(tǒng)的電流、電壓進行監(jiān)控,以及輸出模擬量記錄以進行工藝分析。
系統(tǒng)開發(fā)完成后用兩個鋁合金器件進行了實驗,記錄的電參數(shù)如圖9所示,其中上圖為電流變化記錄,下圖為電壓變化記錄。
主要電參數(shù):正向脈沖個數(shù)為 15個,反向脈沖個數(shù)為5個,占空比為50%;恒流參數(shù)為正向電流3A,反向電流1A,正向穩(wěn)壓值為500V;反向穩(wěn)壓值為80V。

圖9 電參數(shù)變化關(guān)系
從圖9中可以看出0~1200s時只有正向電流,正向電壓,主要作用是在鋁合金表面生成普通的氧化鋁薄膜為微弧氧化做鋪墊,1200s以后正向電流電壓,反向電流電壓都出現(xiàn)上升過程,這是電流PID的作用,然而隨著微弧氧化的進行,陶瓷層氧化膜不斷增厚,電流不斷減小,電壓在恒流PID作用下就達到了限壓值,系統(tǒng)轉(zhuǎn)入穩(wěn)壓PID程序。
電壓進入穩(wěn)壓PID程序后大概到2500s處電壓都是穩(wěn)定不變的。進入恒壓PID后,從圖9中可以看到正向電流和反向電流都開始不斷的減小。
在 3500s處反向電流幾乎等于 0。根據(jù)以往經(jīng)驗當(dāng)反向電流接近0后,繼續(xù)微弧氧化就會增大樣品表面的粗糙度。將反向電參數(shù)的控制方式改為手動,提高反向電壓,從圖9的電壓圖中可以看到,反向電壓有一個向下的小口,是由于跳到手動擋后反向電壓為0造成的。反向電壓手動升高后,正向電壓依然是穩(wěn)壓 PID,正向的電流和反向的電流都有所增大。
大約在8000s處正向電流在穩(wěn)壓PID作用下達到0.8A左右,為了延長微弧氧化時間采取與反向同樣的方法,改為手動模式,所以就看到了正向電壓向下的那條線。從正向電壓的向下線后,可以看出電壓只用向上調(diào)很小的范圍電流就發(fā)生了很大的變化。第一個器件的微弧氧化在17000s左右因反向電流為0而結(jié)束。第二個器件的微弧氧化過程與第一個基本相同。
本人機界面的設(shè)計實現(xiàn)了:①提供友好的人機交互接口;②實時記錄了微弧氧化過程中的電參數(shù),實現(xiàn)了對微弧氧化過程的監(jiān)視;③成功開發(fā)了一種適用于對DSP模擬量和數(shù)字量進行監(jiān)控的通信協(xié)議。
[1]Nakatsugawa,R Martin ,E J Knystautas. Improving Crossion Resistance of AZ91D Magnesium Alloy by Nitrogen Ion Implantation [J]. Corrosion Science,1996,52(12):921-926.
[2]王虹斌,方志剛,將白靈. 微弧氧化技術(shù)及其在海洋環(huán)境中的應(yīng)用[M].北京:國防工業(yè)出版社,2010.
[3]王潞鋼,陳林康,等. DSPC2000程序員高手進階[M].北京:機械工業(yè)出版社,2004.