程漢濤,王學(xué)俊,孔新偉,周晨晨
(大連工業(yè)大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,遼寧大連116034)
貼片機(jī)可視化運(yùn)動(dòng)仿真系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
程漢濤,王學(xué)俊*,孔新偉,周晨晨
(大連工業(yè)大學(xué)機(jī)械工程與自動(dòng)化學(xué)院,遼寧大連116034)
貼片機(jī)在制造過(guò)程中,需要進(jìn)行貼裝測(cè)試工作,進(jìn)行這項(xiàng)工作不僅需要消耗基板、元件而且費(fèi)時(shí)費(fèi)力,對(duì)貼片機(jī)的調(diào)試工作也很麻煩。為了解決以及更多的了解這方面的技術(shù)問(wèn)題,從可視化動(dòng)態(tài)仿真的角度提供新的思路,通過(guò)建立貼片機(jī)三維模型、實(shí)現(xiàn)貼片機(jī)可視化運(yùn)動(dòng)仿真、對(duì)仿真系統(tǒng)進(jìn)行測(cè)試與優(yōu)化幾個(gè)方面對(duì)貼片機(jī)技術(shù)進(jìn)行研究設(shè)計(jì),實(shí)現(xiàn)了貼片機(jī)的可視化運(yùn)動(dòng)仿真,使貼片機(jī)的工作流程清晰形象的展現(xiàn)出來(lái)。
表面貼裝;三維建模;仿真;OpenGL
表面貼裝技術(shù)SMT(Surface Mounting Techno-logy),是指根據(jù)PCB板上元器件坐標(biāo)值,通過(guò)自動(dòng)組裝設(shè)備,精確貼裝到印制線路板(或者其他基板)上的過(guò)程,然后進(jìn)行加熱固化,最后進(jìn)行必要的清洗工作,以達(dá)到元器件自動(dòng)焊接到基板上的一種電子元器件裝聯(lián)技術(shù)。貼片機(jī)是一種精密的工業(yè)機(jī)器人,是機(jī)、電、光以及計(jì)算機(jī)控制技術(shù)的綜合體,它通過(guò)吸取、位移、定位、放置等功能,在不損傷元件和印制電路板的情況下,實(shí)現(xiàn)了將SMC/SMD元件快速而準(zhǔn)確地貼裝到PCB板所指定的焊盤位置上[1]。
我國(guó)的貼片機(jī)大部分依靠進(jìn)口,貼片技術(shù)依然有待于追趕世界先進(jìn)水平。目前,貼片機(jī)朝著高性能、高精度、智能化、模組化發(fā)展。貼片機(jī)的虛擬仿真技術(shù)還在理論準(zhǔn)備或者實(shí)施準(zhǔn)備階段。因此對(duì)貼片機(jī)的仿真系統(tǒng)有很大的研究空間。
完整的貼片機(jī)可視化仿真設(shè)計(jì)不僅可以滿足工業(yè)的虛擬制造需求、貼片機(jī)的調(diào)試需要[2],還可以應(yīng)用到貼片機(jī)的教學(xué)過(guò)程中。貼片機(jī)可視化仿真系統(tǒng)在產(chǎn)品的銷售環(huán)節(jié)會(huì)大幅度的提高貼片機(jī)產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。
貼片機(jī)仿真系統(tǒng)的需求主要包括兩個(gè)方面:應(yīng)用程序使用的需求分析和貼片機(jī)模型建立的需求分析。
貼片機(jī)仿真系統(tǒng)需要通過(guò)OpenGL圖形編程接口實(shí)現(xiàn)貼片機(jī)的三維建模以及動(dòng)畫控制,將貼片機(jī)的結(jié)構(gòu)以及貼裝工作過(guò)程直觀地顯示出來(lái)。
在計(jì)算機(jī)操作系統(tǒng)的控制下,貼片機(jī)在重要部件如貼裝主軸、動(dòng)/靜鏡頭、吸嘴座和送料器上進(jìn)行了Mark標(biāo)識(shí),貼裝頭根據(jù)導(dǎo)入的貼裝元件的封裝類型、元件編號(hào)等參數(shù)到相應(yīng)的位置抓取吸嘴后,吸取元件;靜鏡頭依照視覺(jué)處理程序?qū)ξ≡M(jìn)行檢測(cè)、識(shí)別與對(duì)中;對(duì)中完成后貼裝頭將元件貼裝到PCB上預(yù)定的位置[1]。這一系列元件識(shí)別、對(duì)中、檢測(cè)和貼裝的動(dòng)作都是工控機(jī)根據(jù)相應(yīng)指令獲取相關(guān)的數(shù)據(jù)后指令控制系統(tǒng)自動(dòng)完成。
貼片機(jī)的組成根據(jù)不同貼片機(jī)的類型稍有區(qū)別,本文選取動(dòng)壁式貼片機(jī)為仿真原型,基本組成部分包括:機(jī)架、基板的傳送機(jī)構(gòu)和支撐臺(tái),X、Y以及Z伺服系統(tǒng)、定位系統(tǒng)、光學(xué)識(shí)別系統(tǒng)、供料架、貼片頭等等。
在進(jìn)行貼片機(jī)程序建模之前,首先根據(jù)貼片機(jī)的組成對(duì)貼片機(jī)的模型進(jìn)行適當(dāng)?shù)暮?jiǎn)化工作,保留其中對(duì)貼片機(jī)仿真過(guò)程不可缺少的部分。針對(duì)該系統(tǒng)仿真的需求,設(shè)計(jì)保留如圖1所示的貼片機(jī)的組成部分進(jìn)行程序建模,保留部分包括:機(jī)架,基板的傳送機(jī)構(gòu)和支撐臺(tái),X、Y以及Z伺服系統(tǒng),供料架,貼片頭部分。貼片機(jī)的定位、光學(xué)控制系統(tǒng)等進(jìn)行省略,以便適當(dāng)簡(jiǎn)化程序建模的工作量。
圖1 貼片機(jī)保留部分結(jié)構(gòu)圖
根據(jù)貼片機(jī)仿真系統(tǒng)的需求,對(duì)貼片機(jī)仿真系統(tǒng)的需求以實(shí)例的方式直觀系統(tǒng)的展現(xiàn),首先基本的操作流程如圖2所示。
圖2 貼片機(jī)具體使用流程圖
通過(guò)讀取PCB_CNC/CAM數(shù)據(jù)提取系統(tǒng)生成的CGF格式文件,獲取貼片機(jī)仿真系統(tǒng)系統(tǒng)仿真過(guò)程中所需要的數(shù)據(jù),主要包括如圖3所示的選擇貼裝的元件的器件標(biāo)志、元件料位、元件貼裝坐標(biāo)等信息。在獲取仿真系統(tǒng)所需要的元件信息后,需要在貼裝元件信息顯示區(qū)域的信息欄中顯示當(dāng)前等待或者正在貼裝的元件的信息,從而使操作者對(duì)仿真過(guò)程的工作狀態(tài)有詳細(xì)的了解。
圖3 貼裝元件信息顯示區(qū)域示意圖
貼片機(jī)各個(gè)部位的模型數(shù)據(jù)結(jié)構(gòu)體組合構(gòu)成了貼片機(jī)的整體數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單列舉如下:
在繪制貼片機(jī)圖形錢首先考慮到OpenGL繪圖時(shí)避免發(fā)生閃爍現(xiàn)象,所以采用OpenGL的雙緩沖繪圖技術(shù)。雙緩沖技術(shù)是指在兩個(gè)緩沖區(qū)內(nèi)存中繪圖,當(dāng)一個(gè)緩沖被顯示時(shí),另一個(gè)正在繪圖,當(dāng)一幀圖形繪制完后兩個(gè)緩沖區(qū)就進(jìn)行交換,這樣就大大提高了繪圖的速度而且不會(huì)看到不完整的幀[3]。在OpenGL完成繪圖操作之后中使用SwapBuffers()交換緩沖區(qū)內(nèi)容從而實(shí)現(xiàn)雙緩沖繪圖。
在繪制貼片機(jī)的三維模型過(guò)程中需要通過(guò)多次的坐標(biāo)系統(tǒng)的平移和旋轉(zhuǎn)來(lái)實(shí)現(xiàn)貼片機(jī)模型的繪制過(guò)程,最終實(shí)現(xiàn)貼片機(jī)模型如圖4所示。
圖4 OpenGL繪制的貼片機(jī)模型三維效果
2.1 CGF文件格式的解析
貼片機(jī)仿真系統(tǒng)是通過(guò)讀取PCB_CNC/CAM數(shù)據(jù)提取系統(tǒng)生成的CGF格式控制命令文件獲取貼片元件信息的,CGF文件包含當(dāng)前料槽的配置、料槽內(nèi)器件的行列間距、料槽內(nèi)器件厚度、角度等配置參數(shù),以及待貼裝元件信息及其貼裝坐標(biāo)位置。CGF格式文件的結(jié)構(gòu)主要包括3個(gè)部分,分別是:文件頭部分、料槽信息部分、元件信息部分。
文件頭部分結(jié)構(gòu)體File_Index_TypeDef的內(nèi)容包括:選擇貼裝元件的數(shù)量、對(duì)應(yīng)料槽的總數(shù)、地址信息等等,其函數(shù)簡(jiǎn)單列舉如下:
料槽數(shù)據(jù)結(jié)構(gòu)體的內(nèi)容包括:料架編號(hào)、料架的型號(hào)、料槽旋轉(zhuǎn)角度、器件步距、器件厚度等料槽參數(shù)。每一中種料槽對(duì)應(yīng)著一個(gè)Feed_Stack_TypeDef數(shù)據(jù)結(jié)構(gòu)體,并且按照編號(hào)從小到大進(jìn)行排列,因此在CGF文件中料槽配置數(shù)據(jù)信息部分存放的是Feed_Stack_TypeDef的鏈表內(nèi)容,其函數(shù)簡(jiǎn)單列舉如下:
在CGF文件中選擇貼裝元件信息部分中,存放著該次要進(jìn)行貼裝的元件信息,這些元件的信息是以結(jié)構(gòu)體SMT_Code_TypeDef對(duì)象的結(jié)構(gòu)體鏈表形式存放的。每個(gè)貼裝元件的信息都對(duì)應(yīng)著一個(gè)SMT_Code _TypeDef對(duì)象,SMT_Code_TypeDef對(duì)象的主要內(nèi)容包括:器件的編號(hào)、器件標(biāo)志、器件對(duì)應(yīng)的料槽編號(hào)(料位)、器件目標(biāo)貼裝點(diǎn)的三維坐標(biāo)值以及器件貼裝時(shí)應(yīng)旋轉(zhuǎn)的角度,其函數(shù)簡(jiǎn)單列舉如下:
通過(guò)添加“打開文件”按鈕消息,該按鈕的ID為IDC_OPENFILE,在VC環(huán)境下生命函數(shù)OnBn-ClickedOpen(),通過(guò)消息宏ON_BN_CLICKED()將OnBnClickedOpen()和控件 IDC_OPENFILE相關(guān)聯(lián),在函數(shù)OnBnClickedOpen()中進(jìn)行對(duì)CGF格式文件的讀取操作,將文件中貼片元件的信息保存在數(shù)據(jù)結(jié)構(gòu)體Feed_Stack_TypeDef的鏈表中。
2.2 CGF格式文件的讀取
在打開CGF文件后,定義一個(gè)File_Index_TypeDef對(duì)象File_Index,首先從文件的頭部讀取sizeof (File_Index_TypeDef)大小的內(nèi)容保存在 File_ Index中。
從File_Index中獲取當(dāng)前CGF文件中的器件總數(shù)File_Index.Chip_Sum、料槽總數(shù)File_Index.Feed_ Sum等信息。之后逐個(gè)讀取元件信息保存在以m_ StacK_Header為鏈表頭的Feed_Stack_TypeDef數(shù)據(jù)結(jié)構(gòu)體鏈表中,直到讀取File_Index.Feed_Sum個(gè)料槽信息為止。同樣的方法讀取 File_Index.Chip_ Sum個(gè)貼裝元件信息保存在SMT_Code_TypeDef數(shù)據(jù)結(jié)構(gòu)體鏈表當(dāng)中。至此我們就將CGF格式文件中的數(shù)都讀取出來(lái)了。
2.3 貼片機(jī)仿真運(yùn)動(dòng)的實(shí)現(xiàn)
貼片機(jī)仿真運(yùn)動(dòng)就是將貼片機(jī)從吸嘴在料槽上吸去貼裝元件到將本次要貼裝元件全部貼裝完畢為止的過(guò)程通過(guò)計(jì)算機(jī)虛擬的平臺(tái)顯示在我們的視區(qū)內(nèi)[4]。
貼片機(jī)的仿真運(yùn)動(dòng)包括多個(gè)階段。先是貼片機(jī)的貼片頭運(yùn)動(dòng)至料槽處,通過(guò)貼片頭和吸嘴的運(yùn)動(dòng)將貼裝元件逐個(gè)吸取附在貼片頭的吸嘴上。
其次是貼片頭根據(jù)貼裝元件的目標(biāo)坐標(biāo)進(jìn)行運(yùn)動(dòng)貼裝的過(guò)程。在貼片機(jī)的模型中,貼片機(jī)的模型數(shù)據(jù)是以CChipStrcut結(jié)構(gòu)體的形式保存的,在這個(gè)結(jié)構(gòu)體當(dāng)中包含著貼片機(jī)各個(gè)部分的模型的數(shù)據(jù)。貼片機(jī)的運(yùn)動(dòng)是通過(guò)在定時(shí)器中修改貼片機(jī)中運(yùn)動(dòng)部分模型的數(shù)據(jù)坐標(biāo)然后進(jìn)行視圖重繪來(lái)實(shí)現(xiàn)的。
在定時(shí)器中,首先要判斷當(dāng)前貼片頭的運(yùn)動(dòng)方式,當(dāng)前是貼片頭在運(yùn)動(dòng)還是吸嘴在上下運(yùn)動(dòng)吸取或者貼裝元件。
在貼片機(jī)的仿真過(guò)程中,貼片機(jī)的運(yùn)動(dòng)部分主要集中在貼片頭部分,為了使貼片機(jī)仿真過(guò)程的運(yùn)動(dòng)更加貼近實(shí)際,在貼片頭的運(yùn)動(dòng)時(shí),根據(jù)設(shè)定的速度和加速度值,將貼片頭從起始位置運(yùn)動(dòng)到目標(biāo)位置的過(guò)程進(jìn)行勻加速、勻速、勻減速3個(gè)階段的劃分[5]。
首先計(jì)算出貼片頭當(dāng)前位置坐標(biāo)和目標(biāo)位置坐標(biāo)的距離,貼片機(jī)在運(yùn)動(dòng)過(guò)程中,首先進(jìn)行判斷當(dāng)前貼片頭中是否有吸附的元件,如果沒(méi)有貼片頭要移動(dòng)到料盤附近,然后吸嘴逐個(gè)的去吸起相應(yīng)的元件,并且更新貼片頭中元件的信息。然后貼片頭根據(jù)元件中的元件的貼裝坐標(biāo)信息移動(dòng)到目標(biāo)點(diǎn),此后更改貼片頭運(yùn)動(dòng)狀態(tài),貼片頭保持位置不變,吸嘴開始向下運(yùn)動(dòng)將元件放置在PCB板上目標(biāo)位置[6]。
2.4 元件的貼裝模擬
在貼裝的過(guò)程中,每次貼片頭吸嘴吸附的元件運(yùn)動(dòng)到目標(biāo)坐標(biāo)即完成該元件的貼裝后,就將該元件對(duì)應(yīng)的Pick_Stack_TypeDef結(jié)構(gòu)體對(duì)象中的State元素狀態(tài)由FALSE改變成TRUE。在繪制貼片機(jī)的模型的線程中,掃描Pick_Stack_TypeDef結(jié)構(gòu)體鏈表,在其中State狀態(tài)為TRUE的元件的貼裝目標(biāo)坐標(biāo)繪制圓點(diǎn)用來(lái)模擬電路板的貼裝效果。
電路板貼裝效果的觀測(cè)是通過(guò)ID為IDC_SHOW的按鈕實(shí)現(xiàn),聲明函數(shù)OnBnClickedShow(),通過(guò)消息宏ON_BN_CLICKED()將OnBnClickedShow()和控件IDC_SHOW相關(guān)聯(lián)。觸發(fā)OnBnClickedShow()消息后,在定時(shí)器中修改繪制電路板時(shí)關(guān)聯(lián)。在OnBn-ClickedShow()函數(shù)中開啟定時(shí)器,在定時(shí)器中逐漸改變glRotatef(m_PCBAngle,1.0,0.0,0.0)中的參數(shù)m_PCBAngle的值,從而實(shí)現(xiàn)貼裝電路板的90°翻轉(zhuǎn),讓操作者可以正視電路板的貼裝效果。
2.5 仿真系統(tǒng)的測(cè)試與優(yōu)化
在初始程序編制完成后,通過(guò)讀取貼片機(jī)的PCB_CAM/CNC數(shù)據(jù)提取系統(tǒng)生成的數(shù)據(jù)文件,來(lái)對(duì)貼片機(jī)的可視化運(yùn)動(dòng)仿真進(jìn)行測(cè)試。在測(cè)試過(guò)程中貼裝元件信息顯示區(qū)域的元件信息變化顯示十分順暢、正確無(wú)誤,貼片機(jī)的模型運(yùn)動(dòng)狀態(tài)也不存在閃爍現(xiàn)象。但是貼片機(jī)的貼片頭運(yùn)動(dòng)在某些時(shí)刻會(huì)發(fā)生跳動(dòng),經(jīng)過(guò)分析后發(fā)現(xiàn)是對(duì)貼片機(jī)進(jìn)行速度控制的過(guò)程中運(yùn)算判斷不全面[7]。在更改后貼片機(jī)可視化運(yùn)動(dòng)仿真系統(tǒng)運(yùn)行穩(wěn)定、可靠性較高,界面可操作性比較好[8]。最終的貼片機(jī)可視化運(yùn)動(dòng)仿真系統(tǒng)實(shí)現(xiàn)了如圖5所示的效果。
圖5 貼片機(jī)可視化運(yùn)動(dòng)仿真系統(tǒng)實(shí)現(xiàn)效果
圖5中,通過(guò)左側(cè)窗口的貼裝位置X、貼裝位置Y、貼裝位置Z、旋轉(zhuǎn)角度以及最上面的運(yùn)動(dòng)速度這幾個(gè)文本框的數(shù)據(jù)變化來(lái)觀察記錄貼片機(jī)的運(yùn)行實(shí)現(xiàn)情況。
本文在對(duì)目前國(guó)內(nèi)外主流貼片機(jī)的結(jié)構(gòu)及工作原理研究分析之后,得出研究貼片機(jī)虛擬仿真加工系統(tǒng)的必要性。本設(shè)計(jì)主要是實(shí)現(xiàn)貼片機(jī)三維模型的建立以及貼片機(jī)運(yùn)動(dòng)的控制,并且能夠?qū)N片機(jī)仿真的結(jié)構(gòu)進(jìn)行觀察。并且為系統(tǒng)設(shè)計(jì)了友好的用戶畫面。此系統(tǒng)功能完善、運(yùn)行穩(wěn)定、布局合理,可以以非常高的效率完成貼片機(jī)的仿真加工工作。
[1] 賈春燕.貼片機(jī)研究與結(jié)構(gòu)設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2008.
[2] 肖永山.片式電子元件貼裝設(shè)備綜述[J].電子工業(yè)專用設(shè)備,2006(5):138-140.
[3] 楊青生.基于OpenGL的三維可視化研究[D].西安:陜西師范大學(xué),2002.
[4] 李鵬程.表面貼裝系統(tǒng)的優(yōu)化軟件設(shè)計(jì)和實(shí)現(xiàn)[D].西南交通大學(xué),2012.
[5] 錢佳敏,于蘭峰,曹曄.動(dòng)臂式貼片機(jī)貼裝軌跡的可視化仿真[J].機(jī)械設(shè)計(jì)與制造,2012,(3):121-123.
[6] 王君.貼片機(jī)貼裝過(guò)程的優(yōu)化研究[D].華南理工大學(xué),2011.
[7] 劉慧杰,靳海亮.基于VC++的OpenGL三維圖形開發(fā)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2009(7):122-124+174.
[8] Song Zhiming,Kang Fengju.Seabed Scene Simulation and Its Realization in Extending Vega[J].Journal of Marine Science and Application,2003:262-264.
程漢濤(1987- ),男,漢族,碩士,研究方向?yàn)榍度胧疆a(chǎn)品設(shè)計(jì)與開發(fā),624767843@qq.com;
王學(xué)俊(1963- ),男,教授,研究生導(dǎo)師,從事機(jī)電產(chǎn)品開發(fā)方向研究;
孔新偉(1987- ),男,碩士研究生,從事嵌入式產(chǎn)片開發(fā)方向研究。
Research and Implementation of a Visual Simulation System on Chip Mounter
CHENG Hantao,WANG Xuejun*,KONG Xinwei,ZHOU Chenchen
(Dalian Polytechnic University,School of Mechanical Engineering and Automation,Dalian Liaoning 116034,China)
Placement machine in the process of manufacture,tests need to be pasted on the job,this job not only need to consume substrate,components and time-consuming,laborious for SMT machine debugging work is also very trouble.In order to solve the technical problems and learn more about this,from the perspective of visual dynamic simulation a new train of thought is provided,through the establishment of three-dimensional model SMT machine,SMT machine visualization simulation,the simulation system testing and optimization aspects of placement machine is analyzed in the design and implementation of the placement machine visual motion simulation,make the placement machine workflow clear image display.
surface mounted technology;simulation;OpenGL
10.3969/j.issn.1005-9490.2014.02.022
TN605;TN305
A
1005-9490(2014)02-0270-05
2013-06-05修改日期:2013-07-01
EEACC:0170E