張雪蓮,楊 鵬,龐 璐
(中國電子科技集團公司 第四十六研究所,天津 300220)
光纖激光器加工高反射材料產(chǎn)生大量返回光,如果返回光吸收模塊設(shè)計不完善,則會對高精密的光源器件產(chǎn)生不可逆的損傷[1];光纖激光器在將電能轉(zhuǎn)換成光能的過程中,會產(chǎn)生大量的熱,如果未開啟冷卻系統(tǒng),則在會造成光源本身的溫升,影響激光器光功率及光束質(zhì)量[2]。因此,對激光器監(jiān)測和預(yù)報警保護系統(tǒng)的設(shè)計能有效避免重大損失。隨著USB接口日趨流行,同時RS232 串口作為一種傳統(tǒng)的通信接口,成本低,數(shù)據(jù)傳輸可靠性高,連線簡單、通訊距離長等優(yōu)點[3]?;趦烧邇?yōu)點,將USB轉(zhuǎn)RS232串口,并利用Visual Basic編程實現(xiàn)串口通訊。盡管國內(nèi)外已有關(guān)于光纖激光器工業(yè)應(yīng)用的研究,但是沒有詳細(xì)的介紹,同時價格高,兼容性低。為解決這些問題,本文介紹了激光器的監(jiān)控系統(tǒng)軟、硬件設(shè)計及其測試結(jié)果。本設(shè)計以國產(chǎn)化、模塊化作為研究的根本目的,具有實際應(yīng)用意義。本文通過Visual Basic編寫USB轉(zhuǎn)RS232串口通訊的軟件,以STM32F407ZG單片機為核心設(shè)計激光器功率驅(qū)動控制電路,泵源電流過大、溫度過高、回光過大等故障保護硬件電路,完成PC端上位機軟件對光纖激光器功率控制(0~100%),實現(xiàn)對光纖激光器泵源溫度、工作電流大小、激光器功率狀態(tài)等數(shù)據(jù)實時采集和監(jiān)測功能。
激光器安全監(jiān)測和控制系統(tǒng)設(shè)計結(jié)構(gòu)如圖1所示,本系統(tǒng)主要分為3個結(jié)構(gòu):控制層、數(shù)據(jù)層和信號傳輸層。驅(qū)動模塊主要用于實現(xiàn)激光器功率電流大小控制。數(shù)據(jù)層將采集到的溫度、回光、電流等信號送給控制層進行轉(zhuǎn)換處理,形成采集信號;同時數(shù)據(jù)層與保護模塊進行閾值比較,如果大于設(shè)定值,則產(chǎn)生報警信號。將采集信號及報警信號經(jīng)過串口傳輸給PC端上位機完成激光器報警信號的實時監(jiān)測及顯示。上位機通過發(fā)送命令給主控模塊實時采集報警信號,修改過程參數(shù),控制光源啟動,實現(xiàn)對激光器的智能化控制;并將采集到的數(shù)據(jù)進行復(fù)雜的數(shù)學(xué)計算及存儲[4-5],實現(xiàn)更加優(yōu)越的信息處理功能。
圖1 系統(tǒng)整體結(jié)構(gòu)框圖
控制層設(shè)計如圖2所示,整個系統(tǒng)通過意法半導(dǎo)體ST公司以ARM CortexTM-M4為內(nèi)核的主控芯片STM32F407ZG及其外圍控制電路,結(jié)合外圍信號的產(chǎn)生與中斷,實現(xiàn)激光器平均功率、峰值功率、脈沖頻次和脈沖寬度等參數(shù)的調(diào)節(jié)[6-7]。主控模塊主要負(fù)責(zé)控制光纖激光器電流傳輸,通過傳感器采集溫度、PD返回光信號,將采集到的電流、溫度、返回光對應(yīng)的電壓信號經(jīng)STM32F407ZG內(nèi)部PID算法處理后[8],通過串口MAX3232與上位機通信,實現(xiàn)對溫度及電流信號的實時監(jiān)測。
圖2 控制層結(jié)構(gòu)框圖
STM32F407ZG芯片I/O端口D是12bit的D0~D11,依次對應(yīng)功率大小PD0~PD11,設(shè)Pin口的輸入范圍為0~4 095,對應(yīng)0~100%的標(biāo)稱功率值。上位機設(shè)置好激光器功率大小及工作模式,通過USB轉(zhuǎn)串口傳輸給主控模塊,主控模塊配置好激光器工作模式,將輸入的功率二進制信號送給數(shù)模轉(zhuǎn)換器DAC,得到對應(yīng)功率電壓大小0~2 V。如果收到啟動命令,則選通多路模擬開關(guān),輸出當(dāng)前功率對應(yīng)的電壓大小,控制驅(qū)動模塊的恒流源電路,驅(qū)動激光器的泵源工作。
激光器數(shù)據(jù)層主要分為泵源溫度、電流、回光采集、保護模塊如圖3所示。
圖3 數(shù)據(jù)層結(jié)構(gòu)圖
在激光器泵源關(guān)鍵點設(shè)置溫度傳感器(10 K負(fù)溫度系數(shù)熱敏電阻),通過基準(zhǔn)電路采樣溫度電壓,將此傳感采樣電壓經(jīng)OPA4340運算放大器換算后送STM32F407ZG經(jīng)PID計算,得到相應(yīng)溫度值存儲于寄存器,然后經(jīng)串口傳輸給上位機解碼后,實時顯示激光器采樣溫度[9]。同時設(shè)計通過電壓比較器LM2901組成的電路為激光器提供溫度比較保護,上位機軟件能設(shè)置溫度報警門限,下發(fā)給激光器主控模塊,當(dāng)溫度采集信號高于報警值,則產(chǎn)生報警信號AMT,中斷驅(qū)動電流輸出,避免激光器由于泵源或者熔點溫度過高而導(dǎo)致光功率、光譜性能的下降[10-11]。
驅(qū)動模塊設(shè)有電流采集及保護電路,如果調(diào)節(jié)的某組電流大小超過閾值,則使STM32F407ZG芯片I/O口F的0~7 bit對應(yīng)位置高。假設(shè)若為第二組過流,則產(chǎn)生一個過流信號SW為0X02存儲于寄存器中,同時觸發(fā)中斷,關(guān)閉激光器功率電壓輸出,并產(chǎn)生過流信號通過串口傳輸給上位機實時顯示當(dāng)前報警,執(zhí)行軟件關(guān)閉出光命令,達到硬件和軟件雙重保護激光器工作的目的。
激光器回光采集、保護模塊采用InGaAs PIN光電探測器PD將不同的功率的激光器返回光信號轉(zhuǎn)換為電流信號,經(jīng)運算放大器POA4340組成I-U電路和電壓跟隨電路得到穩(wěn)定的回光電壓值,然后輸出給LM2901組成的比較電路,上位機通過串口設(shè)置回光PD電壓閾值,下發(fā)給主控STM32F407模塊,經(jīng)其內(nèi)部DAC數(shù)模轉(zhuǎn)換處理后,與采集的回光電壓值比較,完成回光信號的實時采集和報警保護處理,實現(xiàn)激光器回光過大保護功能[12-13]。
PC端上位機軟件串口通信模塊主要由上位機作為主控制器,運行底層串口通信程序和頂層的應(yīng)用程序,通過其USB接口與主控模塊進行數(shù)據(jù)和指令的下發(fā)和上傳,控制激光器運行模式、功率、頻率、占空比、電流、溫度、回光等各種信號的監(jiān)控和實時顯示。USB 轉(zhuǎn) RS232模塊采用英國FTDI的FT232專用轉(zhuǎn)換芯片和一些外圍的電阻和電容構(gòu)成,以實現(xiàn)USB數(shù)據(jù)和RS232數(shù)據(jù)的相互轉(zhuǎn)換和雙向傳輸[14]。由MAX公司的MAX3232電平轉(zhuǎn)換芯片和一些外圍電容構(gòu)成,其主要工作是將RS232電平和TTL/CMOS電平進行相互的轉(zhuǎn)換,保證電氣特性匹配,實現(xiàn)與主控芯片STM32F407ZG的通信。此串口通信模塊基于MCU/PLD/FPGA到USB口的工業(yè)控制,兼容性強、高效穩(wěn)定[15]。
Microsoft Communications Control(MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法[16]。本設(shè)計采用MSComm通信事件驅(qū)動方法,通過MSComm控件的output屬性給串口端發(fā)數(shù)據(jù),設(shè)置Rthreshold為 1。接收緩沖區(qū)收到每一個字符都會使MSComm控件產(chǎn)生OnComm事件。當(dāng)接收緩沖區(qū)中有數(shù)據(jù),OnComm事件捕獲并處理這些通訊事件,程序響應(yīng)及時,可靠性高[17]。串口通信模塊初始化程序設(shè)計如圖4所示,設(shè)計思路如下:
圖4 初始化配置流程圖
1)確定USB口輸入的端口號Comportnum=Val(Right(Cbo1.Text, 1)),配置傳輸?shù)牟ㄌ芈? 600 bps,校驗位(n,無),數(shù)據(jù)位(8Bit)、停止位(1Bit),F(xiàn)rmLasercontrol.Com1.Settings="9 600,n,8,1",傳遞給CmdPortset_Click()函數(shù)打開對應(yīng)端口。串口通信,主從雙方波特率須保持一致,才能對數(shù)據(jù)進行有效的傳輸,波特率高,則有效傳輸距離短,根據(jù)激光器實際應(yīng)用情況,5 m左右即滿足通信距離需求,同時為兼顧數(shù)據(jù)傳輸速率,本設(shè)計設(shè)置波特率為9 600。
2)串口初始化,即串口超時設(shè)置,設(shè)置timer的enabled屬性為true,若緩沖區(qū)有數(shù)據(jù),則開始讀寫寄存器;若設(shè)超時port_timeout=1 000(毫秒級),等待1 000 ms后串口初始化,調(diào)用數(shù)據(jù)傳輸函數(shù),判斷接收或輸入?yún)^(qū)是否有數(shù)據(jù),若緩沖區(qū)等待超時,1 000 ms后,enabled 屬性為false,通信超時[18];
3)設(shè)置接收和發(fā)送緩沖區(qū)大小FrmLasercontrol.Com1.InBufferSize=1 024,F(xiàn)rmLasercontrol.Com1.OutBufferSize=1 024,調(diào)用函數(shù)sendconfig()、write_reg(),啟動數(shù)據(jù)傳輸。
本系統(tǒng)上、下位機(即主控模塊)通信一幀數(shù)據(jù)包的16進制格式為:
02 10 00 01 00 06 00 0C ConfigurationH(1~6) ConfigurationL(1~6),其中02為本機地址,10為功能碼(此處為給下位機發(fā)送激光器各參數(shù)命令碼),00 01為寄存器Configuration()的起始地址,00 06為下發(fā)的數(shù)據(jù)個數(shù),00 0C為下發(fā)數(shù)據(jù)字節(jié)數(shù),ConfigurationH(0~6) ConfigurationL(0~6)為給下位機發(fā)送的控制激光器運行的各類參數(shù),最后進行CRC校驗(數(shù)據(jù)低位在前),完成此數(shù)據(jù)包的配置,實現(xiàn)數(shù)據(jù)的可靠發(fā)送,上位機串口發(fā)送數(shù)據(jù)流程如圖5所示。
圖5 串口發(fā)送數(shù)據(jù)流程圖
上位機串口數(shù)據(jù)發(fā)送代碼如下:
Public Sub sendconfig()
Dim sbyte() As Byte
If paramerter_config = 1 Then '1為下發(fā)功率
ReDimsbyte(20) As Byte
sbyte(0) = &H2
sbyte(1) = &H10
sbyte(2) = &H0
sbyte(3) = &H1 '模式起始地址
sbyte(4) = &H0
sbyte(5)=&H6 '數(shù)據(jù)個數(shù)sbyte(6) = &HC '下發(fā)字節(jié)數(shù)
sbyte(7) = ConfigurationH(1) '光源控制方式
sbyte(8) = ConfigurationL(1)
sbyte(9) = ConfigurationH(2) '調(diào)制方式
sbyte(10) = ConfigurationL(2)
sbyte(11) = ConfigurationH(3) '電流控制方式
sbyte(12) = ConfigurationL(3)
sbyte(13) = ConfigurationH(4) '內(nèi)部電流設(shè)置 1%~100%
sbyte(14) = ConfigurationL(4)
sbyte(15) = ConfigurationH(5) '內(nèi)部脈沖頻率值 1 000~50 000 Hz
sbyte(16) = ConfigurationL(5)
sbyte(17) = ConfigurationH(6) '內(nèi)部輸出脈寬值1~99%
sbyte(18) = ConfigurationL(6)
Call CRC16_Check(sbyte(), 18)
FrmLasercontrol.Com1.RThreshold = 1
FrmLasercontrol.Com1.Output = sbyte
Start_Addr = sbyte(3)
Num_word = sbyte(5)
Num_byte = Num_word * 2
End If
End Sub
本系統(tǒng)設(shè)計的電流、溫度大小采集及其故障狀態(tài),回光故障等存儲于寄存器StatusRegister()中,起始地址Start_Addr為101,而上位機對下位機參數(shù)、功率、頻率、占空比等配置于寄存器Configuration()中,Start_Addr為0~100;若Start_Addr>100,則接收的為激光器光功率電流控制方式,設(shè)置為外部DA控制(0x0000:內(nèi)部DA控制功率輸出;0xff00:外部0~10 V控制功率輸出,0~10 V對應(yīng)功率0~100%),系統(tǒng)采用構(gòu)造簡單、功能強大的Modbus協(xié)議作為上下層通信協(xié)議[19],首先進行CRC校驗,校驗成功,判斷是本機地址MOD_ADDR即02,通信成功才開始判斷寄存器地址碼,然后存入相應(yīng)寄存器,完成數(shù)據(jù)的寫配置。通過MSComm控件的Input屬性讀串口端收到的數(shù)據(jù)[20],上位機串口接收數(shù)據(jù)流程如圖6所示。
圖6 串口接收數(shù)據(jù)流程圖
上位機串口數(shù)據(jù)接收代碼如下:
Public Sub readconfig()
mbuf= Com1.Input ' 串口接收數(shù)據(jù)
If checkPack_CRC(mbuf) Then
If mbuf(0)= MOD_ADDR Then '本機地址02
If mbuf(2)=Num_byte Then '下發(fā)數(shù)據(jù)個數(shù)
Call write_reg(mbuf)
End If
End If
End If
End Sub
Public Sub write_reg(buf() As Byte
If Start_Addr< 101 Then
For i = 1 To Num_word
Configuration(Start_Addr + i - 1) = buf(2 * i + 1) * CLng(256) + buf(2 * i + 2)
Next i
Else
If ConfigurationH(3) = &HFF And ConfigurationL(3) = &H0 Then
externalPower=CLng(StatusRegister(12) * 100 / 3441) '外部DA
If externalPower> 100 Then
externalPower = 100
End If
Poutset.Text = external Power & "%"
End If
End If
End Sub
通過本系統(tǒng)控制功率300 W(本設(shè)計適用于0~5 000 W的激光器控制系統(tǒng)),波長為1 080 nm的光纖激光器工作,將上位機與激光器通過USB轉(zhuǎn)串口通訊線連接,啟動激光器,配置好通信端口,進入上位機控制界面。使用內(nèi)部使能,內(nèi)部功率,內(nèi)部調(diào)制模式(即 Configuration的1~3字節(jié)均為0x0000),并下發(fā)100%功率控制命令。主控模塊按照協(xié)議接收并解壓數(shù)據(jù),將輸入的功率二進制信號送給數(shù)模轉(zhuǎn)換器DAC,得到對應(yīng)功率電壓大??;如果收到啟動命令,則選通多路模擬開關(guān),輸出當(dāng)前功率對應(yīng)的電壓大小,控制驅(qū)動模塊的恒流源電路,驅(qū)動激光器的泵源工作,實現(xiàn)連續(xù)控制激光器輸出激光目的。實際測試時,首先連接串口線,打開整機電源,然后選擇全內(nèi)部模式,選擇對應(yīng)功率后,點擊上位機啟動按鍵,即可控制激光器輸出激光,從而得到所需測試數(shù)據(jù),圖7為上位機參數(shù)下發(fā)界面圖。為得到激光輸出時泵源工作溫度曲線,激光輸出功率曲線,分別選擇功率20%、40%、60%、80%、100%時進行測試。
圖7 上位機參數(shù)下發(fā)界面圖
將輸出功率、泵浦溫度等數(shù)據(jù),利用VB的圖象控件和曲線函數(shù)實現(xiàn)對采集數(shù)據(jù)的分析處理,直觀地顯示出所采集數(shù)據(jù)的變化趨勢。測試結(jié)果如圖8光纖激光器數(shù)據(jù)采集曲線所示,橫坐標(biāo)表示激光器電流大小I(A),即采樣電流大小分別為2、4、6、8、10,單位A,0~10 A電流對應(yīng)控制的激光輸出功率為0~100%,可以看出隨著功率升高,泵浦溫度穩(wěn)定。表1中泵浦功率為實際標(biāo)稱值,根據(jù)測試結(jié)果由:效率=(輸出效率/泵浦功率)*100%,可計算出不同功率時激光輸出效率,光纖激光功率輸出轉(zhuǎn)換效率曲線如圖9所示,可讀出當(dāng)功率為100%時,激光輸出效率高達70.53%。對激光器整機經(jīng)過72 h滿功率連續(xù)激光輸出,功率穩(wěn)定性如圖10所示,72 h內(nèi)的最大輸出功率值為300 W,最小為290 W,平均功率為295.28 W,根據(jù)測試結(jié)果由:功率不穩(wěn)定性=(PMAX-PMIN)/PAVR*100%,可計算72 h內(nèi)激光功率輸出不穩(wěn)定性為3.4%,即穩(wěn)定度為96.6%。
圖8 光纖激光器數(shù)據(jù)采集曲線
圖9 光纖激光功率輸出轉(zhuǎn)換效率曲線
圖10 72 h功率穩(wěn)定性測試曲線
經(jīng)72 h老化后激光功率輸出不穩(wěn)定度為3.4%,實際生產(chǎn)時光路設(shè)計上可采用加強泵浦溫度控制,提高光束質(zhì)量,有效抑制光子暗化等方式更進一步改善輸出功率穩(wěn)定性[21]。本文通過Visual Basic編寫PC端上位機軟件,控制以STM32F407ZG單片機為主控芯片設(shè)的計激光器功率驅(qū)動電路,可實現(xiàn)0~100%功率控制;整個系統(tǒng)具有泵源電流過大、溫度過高、回光過大等故障保護功能,并能光纖激光器泵源溫度、工作電流大小、激光器功率狀態(tài)等數(shù)據(jù)實時采集和監(jiān)測。
綜上所述,本文設(shè)計的激光器安全監(jiān)測和控制系統(tǒng)穩(wěn)定,光光轉(zhuǎn)換效率高達70.53%,穩(wěn)定度高達96.6%。實時監(jiān)測的PC端上位機軟件操作方便,可視化強,串口通信傳輸可靠。激光器電路結(jié)構(gòu)模塊化,維護方便;整個系統(tǒng)具有故障保護,數(shù)據(jù)實時采集和監(jiān)測等功能,已廣泛應(yīng)用于光纖激光器切割、焊接、精密打孔、3D雕刻等工業(yè)加工領(lǐng)域。