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