劉 薇
(佛山市順德工業與信息技術研究中心有限公司,順德 528300)
目前,國內風扇葉焊接企業基本采用人工操作超聲波焊接機,需要通過人眼識別定位缺口來將風葉固定到位,然后啟動焊接機進行焊接。這些工作靠人工完成存在著勞動強度大、效率低、定位精度低、產品合格率低等問題。焊接機數字化是現代焊接發展的必由之路[1],但在如何實現貫流風葉超聲波焊接自動化上,國內仍處于空白,被視為難以攻破的關鍵技術難題。為了滿足焊接機自動檢測的需求,視覺檢測作為一種非接觸式的檢測技術被應用于貫流風葉焊接機中。
貫流風葉焊接機主要由超聲波發生器、模具、電氣系統組成。電氣系統是開環控制,由PLC輸出脈沖串,控制電機系統,驅動絲桿轉動[2]。
視覺系統硬件主要包括相機組、光源、光源控制器、工控機等。相機組由相機和鏡頭組成,主要完成采集圖像功能。根據焊機工藝要求,本系統采用兩套相機組,中節和產品分別對應一組。本系統中被檢測風葉半徑47mm,運動速度8圈/分鐘,精度要求為0.5mm,視場大小為400mm×300mm,選用130萬像素相機,采用8mm的鏡頭,光源采用白色環形光源,通過GIGE千兆網實現圖像數據傳輸,在VC6.0環境中基于MIL9視覺軟件開發庫進行軟件開發。系統組成如圖1所示。該系統用戶操作界面如圖2所示,主要功能模塊包括操作功能模塊、模板操作功能模塊及顯示功能模塊。

圖1 系統組成

圖2 用戶操作界面
焊接機分為上下兩個工位,端蓋、產品、中節三種不同的被檢測對象。兩組相機工作流程完全相同,以單個相機組工作流程為例其流程圖如圖3所示。
2.2.1 圖像采集實現
1)利用Pylon相機提供的函數,實現圖像采集功能,系統中兩個相機分別對應一個圖像采集線程,在系統初始化時將兩個線程掛起
m_pImageProcessThread0->ResumeThread();
m_pImageProcessThread1->ResumeThread();

圖3 流程圖
2)當啟動連續采集功能時則注冊線程并啟動線程
SetEvent(m_hLiveDispThreadOn0);SetEvent(m_hLiveDispThreadOn1);
3)在GrabImag0()和函數GrabImage1()中分別調用Pylon的采集函數PylonStreamGrabberQueueBuffer(),實現圖像采集。
2.2.2 多線程同步
為解決圖像采集與處理之間同步的問題,本文采用多線程同步技術,軟件中設置四個變量IfFind、IfGrab和IfFind2、IfGrab2,分別用于上相機和下相機線程同步。以上相機系統為例闡述同步原理:在圖像采集函數中只有當IfFind=true時才將顯示緩存區中的圖像數據拷入處理緩存區中,如果IfFind=flase則只采集圖像并不處理圖像。在模板匹配函數中,只有當IfGrab =true即圖像已經采集完畢了,才進行模板匹配。
2.3.1 參數設置
在進行模板匹配之前,需要對相關參數進行設置來優化模板匹配算法,主要參數如下[3]:
1)MIL顯示設置
MdispControl(MilDisplay1,M_OVERLAY_CLEAR, M_DEFAULT);
2)設置尋找模板的區域,提高效率
MpatSetPosition(ModelUp[i],0,110,710,100);3)設置模板匹配的匹配率
MpatSetAcceptance(ModelUp[i], 58);
4)設置模板匹配精度
MpatSetAccuracy(ModelUp[i],M_MEDIUM );5)設置模板匹配速度MpatSetSpeed(ModelUp[i],M_VERY_HIGH);6)用于模板匹配函數前和參數設置后,可整體優化模板匹配函數
MpatPreprocModel(MilImage1,ModelUp[i], M_DEFAULT);
2.3.2 多模板匹配
由于被檢測物體是圓柱體的側面,因此在視場范圍內會有光照不均勻現象,不能用一個模板來匹配整個區域,因此需要采用多模板匹配技術,MIL9提供了多模板匹配函數,但是此函數具有局限性,其要求每個模板的大小必須一致,在實際建模中很難做到這點,因此本文采用了另外一種多模板匹配實現方法。從第一個模板到第N個模板,進行循環檢測,遇到第一個匹配成功的模板則終止匹配,并顯示模板匹配結果。這樣不但解決了多模板匹配的問題,也能提高模板匹配的整體效率。
2.3.3 效率提升和數據轉換
采用Pylon提供的函數,利用摳圖技術,將采集圖像的大小設置為640×480,這種方法既不損失精度又能提高圖像處理的速度。在相同條件下,模版匹配速度由130ms~150ms縮短到50ms~ 70ms。
模板匹配后獲得的數據是以像素為單位,需要經過標定轉化為以毫米為單位的實際長度;標定后的數據為十進制,通過調用DecToHex()函數將其轉化為串口通訊所需的十六進制。
本系統利用微軟提供的串口編程控件MSComm實現串口通信[4]。
2.4.1 串口初始化
在串口初始化函數中,對MSComm控件的屬性進行設置[5]
1)選擇COM2:SetCommPort(2);
2)接收緩沖區:SetInBufferSize(1024);
3)發送緩沖區: SetOutBufferSize(1024);
4)設置當前接收區數據長度為0,表示全部讀取:SetInputLen(0);
5)接收緩沖區有10個及10個以上字符時,將引發接收數據的OnComm事件: SetRThreshold(9);
6)波特率115200無檢驗位,8個數據位,偶校驗,1個停止位:
SetSettings("115200,o,8,1");2.4.2 串口讀寫數據實現
通過OnComm事件來捕捉并檢查通信事件,但是這種機制存在缺點,不論讀還是寫信號都會做出響應,為區分讀與寫的信號,在軟件中設定如果檢測到第4位字符為“R”,則判定是讀信號的反饋數據;如果檢測到第4位字符為“W”,則判定是寫信號的反饋數據。設定信號中的6,7,8,9位分別對應上相機的連拍,上相機重拍,下相機連拍,下相機重拍四個信號,當判定為讀信號的反饋數據后才對6到9位數據進行分解。系統通過判斷這四位的狀態來控制整個圖像處理流程。
本系統采用松下FP系列PLC,所有的數據必須按照松下專用通訊協議MEWTOCOL來實現,主要用到的命令格式有:讀取多觸點狀態RCP、寫入多觸點狀態WCP、寫入單觸點狀態WCS、數據寫入PLC控制器WD[6]。
當被測缺口在不同位置出現時,本系統都能夠快速精確的在可視區域內對其進行識別并返回角度偏差值,定位結果如圖4、圖5所示。

圖4 上相機檢測結果

圖5 下相機檢測結果
視覺系統應用于焊接機后,檢測精度小于0.5mm,產能提高5%,產品合格率提高了1.5%,每6秒焊接一個中節,合格率超過99%,實現了自動化操作,最大程度上降低對人員身體健康的損害,項目技術處于國內領先水平,具有較高的工程應用價值和生產推廣價值。
[1] 劉皓春, 黃偉, 楊敏, 等. 單片機控制的超聲波焊接機研究[J]. 武漢理工大學學報, 2006(7): 121-124.
[2] 鐘雪盼. 貫流風葉超聲波焊接機伺服定位系統改造[J].機電信息, 2010(6): 106-108.
[3] 徐珂, 朱煜. 一種在線檢測實時圖像處理系統的實現[J].計算機系統應用2009, 18(4): 7-10.
[4] 龔建偉, 熊光明. Visual C+/Turbo C 串口通信編程實踐[M]. 北京: 電子工業出版社, 2004.
[5] 章輝, 葉建芳, 葉建威. 基于MSComm 控件串口通信的實現[J]. 電子測量技術, 2011, 34(8): 126-129.
[6] 姚健, 宋志兵, 等. 計算機與松下PLC之間通訊接口軟件設計[J]. 微計算機信息, 2002, 18(3): 47-48.