梁廣瑞,莫勝憾,喻寧娜
(廣西機電職業技術學院,廣西南寧530007)
目前焊縫激光視覺跟蹤系統在焊接自動化中的應用越來越廣泛,焊機安裝焊縫跟蹤系統可以在焊接過程中使焊槍自動對中焊縫,保證焊接質量,從而減少焊接工人或減輕勞動強度。由于焊縫激光視覺跟蹤系統進行圖像處理與識別時計算量很大,一般將識別出來的位置偏差信號傳送給下位電機控制器來控制電機運行以完成跟蹤過程。由于焊接現場環境惡劣,常采用PLC作為下位電機控制器。為了降低設備成本,更好地推廣焊縫激光視覺跟蹤系統,采用Stm32微處理器設計了3軸步進電機控制器取代原PLC的方案。經現場使用一年多來,系統運行穩定可靠,效果良好。
系統跟蹤系統如圖1所示,由埋弧焊機小車、激光視覺系統、步進電機控制器、步進電機及其驅動器、光電編碼器、十字導軌、焊槍等組成。
激光視覺系統將激光投射到工件上,通過采集形成表征焊縫三維位置的圖像并進行實時圖像處理,識別出焊縫在水平位置和高度位置的偏差信息,通過PC機的串口發送給步進電機控制器,由步進電機控制器完成糾偏控制算法,最后輸出脈沖信號給步進電機驅動器,步進電機在驅動信號作用下帶動焊槍在十字型導軌機構的水平方向和高度方向上移動,實現焊縫實時跟蹤。埋弧焊小車的前進由獨立的直流電機進行調速控制,同時決定了焊接速度。由于在不同情況或工藝要求下焊接速度不同,會影響糾偏控制參數,為了實現控制參數的自調整,通過光電編碼器檢測小車速度并反饋至步進電機控制器。另外在焊接過程中,通常需要焊槍在焊縫中心位置左右微擺以改善焊縫成形,這種焊槍的左右擺動也通過步進電機控制器提供控制信號。
從以上分析看出,步進電機控制器需要三路脈沖信號控制三個軸:一路根據焊縫水平位置的偏差控制焊槍的左右移動,一路根據高度位置的偏差控制焊槍的上下移動,最后一路控制焊槍擺動的寬度和速度。

圖1 埋弧焊焊縫跟蹤系統
步進電機控制器選用基于ARM Cortex-M3內核的Stm32系列32位微控制器,該芯片運行速度快,外設功能齊全,7個TM最多可以產生28個精準的PWM信號,特別適合用于電機控制領域。本控制器主要由主控芯片最小系統、電源模塊、串口通信模塊、輸入輸出模塊組成,主控芯片最小系統直接按芯片手冊提供圖紙設計,其余各模塊原理分別如圖2所示。硬件設計的主要任務是提供完成邏輯功能的硬件模塊并保證系統的可靠性、抗干擾性。整個控制器由24 V開關電源供電,控制器的電源模塊使用了抑制串模和共模干擾的電源濾波器,通過AP1501-50和LM1117s電源芯片將24 V轉換成5 V和3.3 V電壓進行板級供電,輸入端口使用光電隔離技術,輸出端口使用高耐壓、大電流復合晶體管陣列ULN2003芯片。輸出使用了PA端口,其中PA1、PA6、PA8為PWM功能映射到端口的引腳,PA2、PA3、PA4為旋轉方向信號輸出引腳。輸入信號通過光隔PC817進行光電隔離后進入PB端口,輸入信號主要有3個軸的6個限位信號、小車前進的速度編碼信號,圖2的輸入部分只畫出了一路的電氣原理圖,其他輸入通道采用同樣原理。

圖2 步進電機控制器硬件原理
為了提高系統響應的實時性和程序開發效率,使用μC/OS-Ⅱ嵌入式多任務實時操作系統進行開發。該操作系統2000年就得到了美國聯邦航空管理局用于商用飛機的、符合RTCA DO-178B標準的認證,證明其具有足夠的穩定性和安全性[3]。使用操作系統可以仿制出“多CPU”環境,使得每個任務都覺得自己擁有獨立的CPU。這樣一來,任務的程序設計就可以得到簡化,每個任務只需要考慮自己的執行流程即可,一個繁雜的多功能系統就可以分解為多個簡單的任務,從而降低了程序設計的難度,同時也提高了程序設計的效率與可靠性[4]。
基于實時操作系統應用軟件設計的關鍵就是任務劃分。根據對控制器控制要求的分析以及任務的同步性、設備依賴性、緊迫性、功能聚合等特點將軟件功能分為四個主要任務,優先級由高到低為:手動調整焊槍位置任務、糾偏算法控制任務、通信協議任務、焊槍擺動任務。其中糾偏算法控制任務是關鍵性任務,水平方向和高度方向的糾偏都在一個采樣周期中處理,具有同步性,故都整合到糾偏算法控制任務;通信協議任務接收到位置偏差之后觸發糾偏算法控制任務執行。手動調整焊槍位置任務的執行與糾偏算法控制任務互斥,當在自動跟蹤焊接過程中不會觸發,故不妨將其列為最高優先級。
激光視覺系統與運動控制器之間的通信采用自定義協議。通信的內容主要有:激光視覺系統傳遞給運動控制器的位置偏差信號;激光視覺系統作為人機操作界面發送給運動控制器的手動操作、自動跟蹤命令信號;運動控制器反饋給激光視覺系統的運行狀態信號等。每幀數據統一為5個字節,協議格式如表1所示。

表1 協議格式
如數據幀01H 23H F8 38H B2H,01表示本幀數據為位置偏差數據,其中水平方向正偏差23H個單位,高度方向負偏差8個單位(補碼),后兩個字節為CRC校驗碼。通信協議功能的實現由串口中斷和協議解析兩部分組成,串口接收到5個字節數據之后,給通信協議發信號,任務獲得CPU運行權利之后解析數據幀,根據命令執行動作。通信協議任務流程如圖3所示。
焊接過程中,焊槍會在水平方向和高度方向偏離焊縫中心,焊槍需要在水平和高度兩個方向上進行糾偏,實現焊縫自動跟蹤。兩個偏差信號是激光視覺系統同時發送給運動控制器的,并且在一個控制周期內同時進行糾偏,因此兩個方向上的糾偏算法統一使用一個任務完成。接收到偏差信號后,觸發該任務執行,任務流程如圖4所示。手動任務主要根據上位機發送來的運動指令產生相應的PWM和方向信號調整焊槍位置,任務流程如圖5所示。
由于激光傳感器前置,焊縫中心檢測位置超前焊槍較大距離,為解決這個問題,水平方向糾偏算法采用軌跡斜率PD控制[1],控制算法為

式中 u(n)為當前輸出量;k(n)和k(n-1)分別為當前和前一次的焊縫斜率;Kp為比例增益;Kd為微分增益。PD控制參數采用試驗方法進行整定,整定結果為 Kp=120,Kd=55。

圖3 通信協議任務流程

圖4 糾偏算法控制任務流程

圖5 手動控制任務流程
在高度方向上,激光視覺系統通過分析圖像中焊縫三維位置信息來計算高度位置變化,與水平方向跟蹤相比,無需延時。焊接過程中的高度變化具有非線性、時變和不確定性,因此采用專家PID控制算法來實現。通過PID機理分析及現場試驗,總結出以下四條規則,控制算法如下[4]:
(2)當 e(k)Δe(k)>0 或 Δe(k)=0 時,表明誤差在向誤差絕對值增大方向變化,或誤差為一常量。此時,如果,表明誤差較大,給控制器實施較強的控制作用,控制器輸出為:


(3)當 e(k)Δe(k)<0,表明誤差的絕對值向減少方向變化,此時保持控制器輸出不變。
以上各式中,e(k)、e(k-1)、e(k-2)分別為當前誤差、前一次誤差、前兩次誤差;u(k)、u(k-1)分別為當前控制器輸出和前一次輸出;k1為增益放大系數,k1>1;KΦ為與小車前進速度相關的系數,速度越快,該系數越大。
焊接過程中,焊槍在焊縫中心的左右擺動及擺動速度影響焊接效果。如果啟動焊槍擺動功能,則會激活焊槍擺動任務。在實際運行中,如果擺動速度較快,會出現步進電機丟步現象,因此在焊槍擺動的中心處安裝有光電對射傳感器檢測焊槍何時擺動到中間位置,作為脈沖校準。焊槍擺動任務流程如圖6所示。

圖6 焊槍擺動任務流程
基于stm32微控制器的步進電機控制器成本低、硬件電路簡單,經過一年多在不同焊接環境中運行,性能穩定可靠,滿足生產要求,降低了設備成本,有利于進一步推廣焊縫跟蹤系統的應用。
[1]莫勝憾,喻寧娜,鐘義廣,等.PLC在埋弧焊焊縫激光視覺跟蹤系統中的應用[J].焊接,2009(9):55-58.
[2]莫勝憾,喻寧娜,鐘義廣,等.塔吊臂架角鋼外角接焊縫跟蹤系統[J].電焊機,2009,39(9):29-33.
[3]Jean J.Labrosse.嵌入式實時操作系統 μC/OS-Ⅱ(第二版)[M].邵貝貝,譯.北京:北京航空航天大學出版社,2003:1-3.
[4]周航慈.基于嵌入式實時操作系統的程序設計技術(第二版)[M].北京:北京航空航天大學出版社,2011:21-38.
[5]劉金琨.智能控制[M].北京:電子工業出版社,2005:12-17.
[6]李伯成.嵌入式系統可靠性設計[M].北京:電子工業出版社,2006:98-101.