【摘 要】針對(duì)目前貼片數(shù)據(jù)處理費(fèi)時(shí)費(fèi)力,容易出錯(cuò)的問(wèn)題,提出了利用Excel VBA編程的方法實(shí)現(xiàn)自動(dòng)貼片數(shù)據(jù)處理的思路。為了有效完成貼片數(shù)據(jù)自動(dòng)處理,分析了貼片數(shù)據(jù)格式,元件表格式,并根據(jù)設(shè)計(jì)方案實(shí)現(xiàn)了貼片數(shù)據(jù)自動(dòng)處理的功能。測(cè)試結(jié)果表明本文實(shí)現(xiàn)的貼片數(shù)據(jù)處理程序能夠迅速準(zhǔn)確的完成數(shù)據(jù)處理。
【關(guān)鍵詞】表面組裝貼片數(shù)據(jù);VBA
0 引言
表面組裝技術(shù)是目前電子制造領(lǐng)域中的主流組裝技術(shù),其關(guān)鍵設(shè)備為元器件貼裝機(jī),功能為準(zhǔn)確的將對(duì)應(yīng)的元器件放置到印制電路板的相應(yīng)位置,具有高速、高精度的特征。一條表面組裝生產(chǎn)線的效率主要取決于貼裝機(jī)的工作效率,而貼裝機(jī)的編程準(zhǔn)確性以及速度影響到組裝的質(zhì)量和生產(chǎn)效率,而貼片數(shù)據(jù)的預(yù)先處理工作占編程時(shí)間比例較大,因此如何提高貼片數(shù)據(jù)預(yù)先處理的效率就成為面臨的問(wèn)題。
1 需求分析
目前印制電路板的設(shè)計(jì)軟件主要有Altium Designer、Cadence和Mentor等,其中Cadence和Mentor設(shè)計(jì)軟件中導(dǎo)出的貼片文件不包含元器件的規(guī)格型號(hào)信息,Altium Designer導(dǎo)出的貼片文件中雖然包含元器件的型號(hào)規(guī)格信息,但是由于設(shè)計(jì)師的不同對(duì)各種元器件的命名也各不相同,并且規(guī)格型號(hào)不能滿足編程需要,由于目前電路板的密度都較高,元器件的數(shù)量巨大,在修改的過(guò)程中容易出現(xiàn)錯(cuò)誤,需要的時(shí)間較長(zhǎng)。EDA軟件導(dǎo)出的貼片數(shù)據(jù)以及元件表數(shù)據(jù)內(nèi)容如圖1所示。
貼片數(shù)據(jù)處理程序的開(kāi)發(fā)主要完成貼片數(shù)據(jù)與元件表中數(shù)據(jù)的合并,并且在合并過(guò)程中對(duì)貼片數(shù)據(jù)與元件表數(shù)據(jù)進(jìn)行比對(duì),查找出存在問(wèn)題的數(shù)據(jù),并自檢每個(gè)文件中存在的錯(cuò)誤信息,最后對(duì)元器件的封裝信息進(jìn)行標(biāo)準(zhǔn)化的修改,達(dá)到一鍵完成貼片數(shù)據(jù)預(yù)處理的工作,并輸出相關(guān)不匹配的信息,提高工作效率,避免由于人工合并造成的錯(cuò)誤。
2 設(shè)計(jì)實(shí)現(xiàn)
程序的設(shè)計(jì)實(shí)現(xiàn)主要是對(duì)兩個(gè)表中的項(xiàng)目代號(hào)進(jìn)行匹配后將相關(guān)信息進(jìn)行合并,最終得出需要的貼片數(shù)據(jù)。在該過(guò)程中執(zhí)行相關(guān)命令,得出兩個(gè)表中存在的差異數(shù)據(jù)以及各文件中數(shù)據(jù)本身存在的錯(cuò)誤問(wèn)題。執(zhí)行過(guò)成功如圖2所示。
2.1 元件表數(shù)據(jù)分離
要實(shí)現(xiàn)對(duì)元件表和貼片數(shù)據(jù)進(jìn)行合并首先需要將元件表進(jìn)行處理,元件表中將相同規(guī)格型號(hào)的元器件項(xiàng)目代號(hào)歸到同一行中,而在合并時(shí)需要將其拆分為每一行對(duì)應(yīng)一個(gè)項(xiàng)目代號(hào)以及其規(guī)格型號(hào),這樣方便數(shù)據(jù)的對(duì)比查找,從而實(shí)現(xiàn)數(shù)據(jù)合并處理。元件表中項(xiàng)目代號(hào)的分割方式主要為逗號(hào)分割,多個(gè)連續(xù)的項(xiàng)目代號(hào)使用橫杠或波浪線進(jìn)行連接,因此要對(duì)其進(jìn)行拆分首先對(duì)逗號(hào)分割進(jìn)行拆分后再進(jìn)一步對(duì)連續(xù)的項(xiàng)目代號(hào)進(jìn)行分割,實(shí)現(xiàn)每一行一個(gè)項(xiàng)目代號(hào)的目標(biāo),在該過(guò)程中統(tǒng)計(jì)每一行項(xiàng)目代號(hào)的數(shù)量,并與元件表中的數(shù)量信息進(jìn)行比對(duì),查找出實(shí)際數(shù)量與表中數(shù)量不符的條目,并進(jìn)行輸出。元件表為印制電路板設(shè)計(jì)師后期手工制作而成,因此可能會(huì)存在錯(cuò)誤,比如重復(fù)錄入元器件信息,我們需要將這些重復(fù)的信息查找出來(lái)。若使用人工審查的方式很難將這些重復(fù)錄入的信息查找出來(lái),而數(shù)據(jù)拆分完成后便可以非常便捷的查找重復(fù)數(shù)據(jù)信息。實(shí)現(xiàn)該功能的部分代碼如下:
For y=1 To k Step 1
a=Cells(d,1)
b=Len(a) ‘確定單元格字符長(zhǎng)度
Do while c<=b
If Mid(a,c,1)<>MyValue Then
c=c+1 ‘搜索分隔符
b1=b1+1
Else
Cells(x,6)=Mid(a,al,b1)
Cells(x,7)=Cells(d,2)
Cells(x,8)=Cells(d,3)
a1=a1+b1+1
c=c+1
x=x+1
b1=0
End If
Loop
Cells(x,6)=Mid(a,a1,b1)
Cells(x,7)=Cells(d,2)
Cells(x,8)=cells(d,3) ‘以分隔符為界進(jìn)行拆分
x=x+1
d=d+1 ‘進(jìn)行下一單元格內(nèi)容拆分
Next y
2.2 數(shù)據(jù)合并
元件表數(shù)據(jù)拆分完成后便可以將其與EDA軟件導(dǎo)出的數(shù)據(jù)進(jìn)行合并,生成需要的貼片數(shù)據(jù)文件。實(shí)現(xiàn)的方法為使用EDA導(dǎo)出的數(shù)據(jù)中每一行的項(xiàng)目代號(hào)到拆分完成的元件表中查找與之相同的項(xiàng)目代號(hào),若查找到便將其對(duì)應(yīng)的信息復(fù)制到貼片數(shù)據(jù)對(duì)應(yīng)行,并繼續(xù)進(jìn)行下一行的數(shù)據(jù)合并,如果查找失敗,則將該項(xiàng)目代號(hào)信息保存,輸出不匹配信息。實(shí)現(xiàn)該功能的部分代碼如下:
Do while b<=k
a=Cells(b,15)
c=1
Do While c<=j
d=Cells(c,11)
If a=d Then ‘判斷項(xiàng)目代號(hào)是否相同
Cells(b,22)=Cells(c,12)
Cells(b,22).Interior.ColorIndex=4
Cells(c,12). Interior.ColorIndex=3
‘查找到相應(yīng)信息后改變單元格底色
b=b+1
Else
c=c+1
End If
Loop
b=b+1
Loop
2.3 更改元器件封裝信息
EDA導(dǎo)出的貼片數(shù)據(jù)中元器件的封裝信息并不規(guī)范,與貼片編程軟件數(shù)據(jù)庫(kù)中的封裝信息并不能進(jìn)行匹配,因此這些數(shù)據(jù)不能直接被貼片機(jī)編程軟件進(jìn)行識(shí)別,必須進(jìn)行標(biāo)準(zhǔn)化的修改后才可以進(jìn)行導(dǎo)入識(shí)別。我們發(fā)現(xiàn)對(duì)于標(biāo)準(zhǔn)封裝的電阻、電容、電感等chip封裝類(lèi)的元器件其型號(hào)規(guī)格命名有一定的規(guī)范性,包含有其封裝信息,例如0603封裝的電容器會(huì)被命名為CT41-0603-xxx,封裝信息包含在其型號(hào)規(guī)格中。因此可以利用這個(gè)信息來(lái)對(duì)此類(lèi)元器件的封裝進(jìn)行標(biāo)準(zhǔn)化的修改,例如將所有0603封裝的電容修改為貼片編程軟件中能夠識(shí)別的封裝,如C0603。實(shí)現(xiàn)過(guò)程為查找電阻電容等元器件,方法為查找項(xiàng)目代號(hào)C*、R*的行,并識(shí)別該行內(nèi)的型號(hào)規(guī)格中是否存在類(lèi)似CT41-0603等信息,若存在便判斷此為一0603封裝的電容遠(yuǎn)期將,并將其封裝修改為C0603。
3 系統(tǒng)運(yùn)行
Excel VBA擁有按鈕、滾動(dòng)條、對(duì)話框等用戶熟悉的Windows圖形控件,可開(kāi)發(fā)出與Windows應(yīng)用程序相同的界面軟件。本程序運(yùn)行較為簡(jiǎn)單,因此界面有輸入分隔符對(duì)話框以及幾個(gè)執(zhí)行命令的按鈕控件組成,操作簡(jiǎn)單明了。
元件表數(shù)據(jù)分離結(jié)果如圖3所示。
數(shù)據(jù)合并及封裝修改后,完成匹配的元器件規(guī)格型號(hào)單元格會(huì)被更改為相應(yīng)的顏色,若未完成匹配的元器件則保持無(wú)色的底紋,結(jié)果如圖4所示。
4 實(shí)施效果
通過(guò)利用編程的方法自動(dòng)對(duì)貼片數(shù)據(jù)進(jìn)行處理,在應(yīng)用中取得了很好的效果,不僅極大的提高了數(shù)據(jù)處理的效率,并且不會(huì)出錯(cuò)誤,還能夠查找元件表中錯(cuò)誤信息以及發(fā)現(xiàn)元件表與貼片列表中的不匹配項(xiàng)目,并進(jìn)行結(jié)果報(bào)告。
在使用該程序前處理一個(gè)含有一千個(gè)元器件的貼片數(shù)據(jù)時(shí)錄入核對(duì)的時(shí)間最少需要一個(gè)小時(shí),并且要兩個(gè)人進(jìn)行核對(duì),防止出錯(cuò)。而使用貼片數(shù)據(jù)處理程序后,進(jìn)需要一個(gè)人五分鐘的時(shí)間便可以完成數(shù)據(jù)的預(yù)處理工作,并且可以顯示相關(guān)的錯(cuò)誤信息,極大的提高了效率和準(zhǔn)確性。
5 結(jié)束語(yǔ)
通過(guò)基于Excel的VBA程序的編制使得貼片數(shù)據(jù)預(yù)先處理工作降低了工作難度,提高了數(shù)據(jù)處理的準(zhǔn)確度和效率。目前Excel VBA貼片數(shù)據(jù)處理程序已投入使用,并取得顯著成效,促進(jìn)了表面組裝生產(chǎn)線的生產(chǎn)能力,為保障產(chǎn)品的順利交付提供了有效保障。
【參考文獻(xiàn)】
[1]袁竹平.Excel VBA 常用代碼實(shí)戰(zhàn)大全[M].北京:化學(xué)工業(yè)出版社,2010.
[責(zé)任編輯:曹明明]