離線編程軟件的設(shè)計與開發(fā)
摘要SMT設(shè)備要達到最大的產(chǎn)量,必須要考慮生產(chǎn)線的效率。點膠機是SMT生產(chǎn)線中的重要設(shè)備,因此提高點膠機的生產(chǎn)效率具有十分重要的意義。本文以CAMALOT 5000系統(tǒng)為例,介紹了點膠機離線編程軟件的設(shè)計與開發(fā)中的思想、方法和經(jīng)驗,本文著重探討了坐標數(shù)據(jù)的處理和轉(zhuǎn)換,同時針對基于點膠系統(tǒng)優(yōu)化的TSP問題進行了分析和研究,對程序優(yōu)化進行了系統(tǒng)分析設(shè)計,并編程實現(xiàn)了基本方案。最后在CAMALOT 5000系統(tǒng)上使用本解決方案,大幅度提高了生產(chǎn)效率,證明了本解決方案的優(yōu)越性和高效性,也為其他SMT設(shè)備的離線編程軟件的設(shè)計提供了一種可參考的思路。
關(guān)鍵詞:離線編程;優(yōu)化;點膠機;旅行商問題
Abstract: To achieve maximum output from SMT equipment, equipment efficiency should be take into account. Dispensing system is a important equipment in SMT line, so it is important to improve the dispensing system''s efficiency. Take CAMALOT 5000 for example, this paper introduces thought, method, experience of designing and developing optimization software for dispensing system, especially X-Y data''s processing and conversion, analyse and research is given about TSP bade on SMT optimization. System analysis design scheme is provided and realized by programming. Finally, this solve scheme is applied to CAMALOT 5000 system, it has greatly improved the produce efficiency, and proved superiority and efficiency of scheme. At the same time, it may provide a referable way of design of off-line programming software for other SMT equipment.
Key words: Off-line programming ; Optimization; Dispensing system; TSP
點膠機是SMT混裝生產(chǎn)工藝流程中經(jīng)常用到的設(shè)備之一。使用貼片膠的典型焊接過程包括點膠貼片固化翻面插件波峰焊接五個步驟。點膠是整個流程的第一步,其生產(chǎn)效率的高低將會左右著整條線的產(chǎn)量,因而要提高點膠機的生產(chǎn)效率,避免成為瓶頸,這就是我們研究點膠機離線編程軟件的意義所在。
設(shè)備介紹
為了滿足SMT混裝生產(chǎn)的要求,我公司于今年5月引進一臺CAMALOT 5000點膠機,CAMALOT 5000屬聯(lián)線液體點膠系統(tǒng),可應(yīng)用于表面貼裝技術(shù) (SMT)。這些系統(tǒng)在業(yè)界應(yīng)用極為廣泛,其特點是可靠、耐用、新穎、適應(yīng)性強,可以處理各種電路板和基板。5000 平臺在全部三個軸上均采用了滾珠絲杠和伺服電動機(帶有閉環(huán)編碼器),可以確保用戶能夠流暢、精準、正確地點膠。為了便于您操作,它們還提供了易用的增強型圖形用戶界面。這些點膠機專為電路板方面的應(yīng)用而設(shè)計,它們使用一種特殊的傳送系統(tǒng),可容納面積達19" x 19" (483mm x 483mm)的電路板,每小時點膠數(shù)最多達 25,000點,但這需要在一種理想的情況下實現(xiàn),本文將在后面探討程序如何優(yōu)化以使設(shè)備接近這種理想工作狀態(tài)。
其工作過程包括以下幾步:
1)PCB(印制電路板)由進口傳送帶被裝載到X-Y工作臺上。
2)視覺系統(tǒng)讀取PCB基準點,并將PCB定位。
3) 點膠頭依次將膠水點到PCB上指定位置上直至所有位置全部點完。
4) PCB由出口傳送帶卸載。
設(shè)備的不足及解決
2.1 設(shè)備的不足之處
作為點膠設(shè)備的第一品牌,CAMALOT 5000優(yōu)點很多,但也有它的不足之處,主要體現(xiàn)在以下幾個方面:
1)軟件沒有導(dǎo)入CAD數(shù)據(jù)的功能。一般通過利用機器的人工示教方式,移動攝像頭在電路板上找出所有膠點的坐標位置,但這種方式會占用設(shè)備的生產(chǎn)時間,而且采用人工示教方式找點對于普通的一塊有幾百個貼片元件的電路板來講是一件費時費力而又極易出現(xiàn)差錯的工作。同時由于人為的必然誤差,元件位置偏差等原因?qū)е碌男迯?fù)及返工的成本上升。
2)某一膠點位置的查找不方便。機器軟件坐標數(shù)據(jù)中沒有元件位號(如C1),僅有X坐標和Y坐標,這樣在對某一膠點調(diào)整時將無從判斷其具體位置,只能一個個通過移動攝像頭在電路板上查找需調(diào)整膠點的坐標位置,相當麻煩。
3)程序優(yōu)化有瑕疵。只依據(jù)最短路徑優(yōu)化而不考慮膠量大小的影響,這樣有可能比較大的膠量會對后面比較小的膠量造成不良影響。
2.2 解決辦法
針對上述不足,我著手編寫了CAMALOT點膠機離線編程軟件(CAMALOT Programming System,簡稱CPS)來解決這些問題。CPS采用VB6.0開發(fā),具有典型的WINDOWS風(fēng)格,界面簡潔,操作簡便,具有以下特點:
1)可快速將CAD數(shù)據(jù)轉(zhuǎn)換為點膠程序,只需幾秒鐘時間,大幅度提高編程效率。
2)處理的數(shù)據(jù)中包含元件位號,可以很方便的查找及修改某一膠點數(shù)據(jù),包括坐標位置和膠量大小。
3)有程序優(yōu)化功能,除了依據(jù)最短路徑法,還依據(jù)膠量大小排序,膠量小的排在前面,膠量大的排在后面。
4) 可對坐標數(shù)據(jù)格式進行自動處理,只保留小數(shù)點后2位。
軟件開發(fā)思路及過程
CPS主要包含兩方面的功能:CAD數(shù)據(jù)的轉(zhuǎn)換和程序編輯;程序優(yōu)化。下面本文將圍繞這兩個方面逐一介紹。
3.1 CAMALOT 5000點膠程序格式分析
現(xiàn)在SMT設(shè)備的程序一般都是文本格式,用記事本可以打開,CAMALOT 5000也不例外,圖1所示的是CAMALOT 5000程序的文本格式??梢詫Ⅻc膠程序大致劃分為兩個數(shù)據(jù)段:第一個是程序控制語句段,主要是一些點膠時的機器參數(shù)設(shè)置,針對所有的點膠程序都是通用的;第二個是點膠數(shù)據(jù)段,包括點膠程序名,從圖1可以看出該程序名為TEST.CAM,坐標數(shù)據(jù)的前兩行為MARK坐標數(shù)據(jù),從第三行開始是膠點坐標數(shù)據(jù),包括X坐標,Y坐標,S列為膠量控制參數(shù),參數(shù)值為1到4,我們定義4為標準膠量,數(shù)值越小,膠量越大。
3.2 將坐標數(shù)據(jù)轉(zhuǎn)換為CAMALOT程序文本格式
由于程序控制語句段為通用字段,所以我們在坐標數(shù)據(jù)轉(zhuǎn)換過程中根本不用考慮,只需在導(dǎo)出CAMALOT程序時直接添加在程序字段的最前面就可以了。我們考慮的重點就是如何將CAD坐標數(shù)據(jù)轉(zhuǎn)換為CAMALOT點膠數(shù)據(jù)格式。為了簡化起見,我們首先用EXCEL對CAD坐標數(shù)據(jù)進行處理,只保留X坐標和Y坐標,并另存為CSV格式(逗號分割)。CAD數(shù)據(jù)的轉(zhuǎn)換包括兩個過程:坐標數(shù)據(jù)的讀取和數(shù)據(jù)格式的轉(zhuǎn)換。下面將分別進行介紹:
3.2.1 坐標數(shù)據(jù)的讀取
采用VB6編寫讀取文本數(shù)據(jù)的代碼,首先介紹幾個個非常有用的函數(shù):
1)InStr(string1,string2)。返回string2在string1字符串中最先出現(xiàn)的位置。例如InStr("30.56", ".")返回3。
2)Len(string)。返回string字符串包含的字符數(shù)。
3)Left(string, length)。返回字符串string中從左邊算起指定length長度的字符。例如Left("30.56",2)返回"30"。
4)Right(string, length)。返回字符串string中從右邊算起指定length長度的字符。例如Left("30.56",2)返回"56"。
下面我們編寫一段代碼來讀取一行坐標數(shù)據(jù):
Dim tabPos As Integer
Dim x As Variant
Dim y As Variant
Dim strRow As Variant
strRow = "20.8666,30.8666" ''設(shè)定strRow為待讀取的一行坐標數(shù)據(jù)
tabPos = InStr(strRow, ",") ''定出逗號位置
x = Left(strRow, tabPos - 1) ''取出X坐標數(shù)據(jù)
tabPos = InStr(x, ".") ''定義X坐標數(shù)據(jù)小數(shù)點位置
X= Left(x,tabPos 2)''X坐標數(shù)據(jù)只保留小數(shù)點后兩位
StrRow = Right(strRow,Len(strRow)-Len(x)-1)''去掉已讀取的X坐標數(shù)據(jù)部分
tabPos = InStr(strRow, ".") ''定義Y坐標數(shù)據(jù)小數(shù)點位置
Y = Left(strRow, tabPos 2) ''Y坐標數(shù)據(jù)只保留小數(shù)點后兩位
最后的運算結(jié)果就是x為20.86,y為30.86。
3.2.2 數(shù)據(jù)格式的轉(zhuǎn)換
在這里我們編寫一段代碼來將前面讀取的x和y坐標轉(zhuǎn)換camalot的mark坐標格式:
Open "d:\camalot\test.txt" For Output As #1
str = " " & 1 & "; REFPT; " & x & "; " & y& ";"
Print #1, str
最后的執(zhí)行結(jié)果就是在d盤的camalot目錄下生成了一個test.txt的文本文件,該文本文件包含這樣的內(nèi)容:“1; REFPT ; 20.86; 30.86;”,這樣也就將x和y坐標轉(zhuǎn)換camalot的mark坐標格式。
3.3 點膠機程序的優(yōu)化
我們仔細觀察點膠機的工作過程,就會發(fā)現(xiàn)膠機的點膠速度還是很快的,它的大部分時間都花在點膠頭的移動上了。我們要考慮的主要因素就成了如何盡量減少點膠頭的移動距離問題,即尋求最短路徑的問題。假設(shè)總共有PCB板上有n個需要點膠位置,從一個特定的起始點出發(fā),如何才能尋找一條最優(yōu)的路徑,使得其能遍歷所有的點而運動的總距離最短。數(shù)學(xué)描述如下:
假設(shè){1,2,3,…,i…,n}為一系列要遍歷的點,其坐標位置分別為{(X1,Y1),(X2,Y2),…,(Xi,Yi),…,(Xn,Yn)},我們的目標是尋求一個序列{(i1,i2,…,in)}使得:
1) 每個點在序列中僅出現(xiàn)一次;
2) 滿足ikik 1(1≤k≤n)兩點間距離最小。
我們稱這個問題是電路板問題,這個問題實質(zhì)上就是一個典型的旅行商問題(Traveling Salesman Pro-blem,簡稱TSP)。TSP是一個圖論的經(jīng)典問題,就是說有一個旅行售貨商要從他所在的村子出發(fā),到周圍的幾個村子售貨,每個村子去一次,最后回到出發(fā)點,求他的一條最短路徑。作為圖論的經(jīng)典問題,TSP問題一直是一個在工程規(guī)劃、地理信息系統(tǒng)、軍事等領(lǐng)域應(yīng)用十分廣泛的問題,對該問題的研究有著重要的理論和應(yīng)用價值。下面從以TPS問題為基礎(chǔ)介紹一種點膠程序優(yōu)化算法:
1) 確定初始出發(fā)位置,我們設(shè)定離坐標原點最近距離的膠點為初始點。
2) 依據(jù)膠量的大小,先從膠量小的膠點開始,在所有還沒有放置到PCB上的膠點位置中,尋找一個距離上一個膠點位置最近的膠點,以此作為下一個要放置的膠點,同時將此膠點從未放置膠點序列中除去;
3) 重復(fù)步驟2)直至所有膠點都被放置完畢。
3.4 工程實際應(yīng)用
應(yīng)用本文中介紹的方法于實際,產(chǎn)生出了良好的效果。依據(jù)上述介紹的優(yōu)化算法編寫的CPS優(yōu)化軟件,已經(jīng)運用于實際生產(chǎn)過程中,該軟件的程序界面如圖2所示。
該軟件采用典型windows風(fēng)格界面,操作簡單。具有對每一元件項進行修改、增加、刪除、替換、瀏覽等功能,并且該軟件所處理文件數(shù)據(jù)格式與CAMALOT 5000程序格式一致,其優(yōu)化處理后的點膠程序可直接拿到CAMALOT 5000上運行,從而可以實現(xiàn)離線編程,極大提高程序編制效率及可靠性,減輕編程人員負擔(dān)。 點膠設(shè)備的應(yīng)用簡介
半導(dǎo)體產(chǎn)品
LSI、IC、一般邏輯電路IC、混合電路IC、晶體管、二極管等
光學(xué)產(chǎn)品
照相機、天文望遠鏡、眼鏡、其它
電子、機械部件
印制電路板、電解電容器、可變電阻、水晶振蕩器、傳感器、LED、LCD、磁頭、繼電器、插接件、微型馬達、變壓器、線圈等
一般家電產(chǎn)品
音響、揚聲器、電視機、收音機、電冰箱、洗衣機等
精密儀器、電子產(chǎn)品
DVD、VTR、攝像機、鐘表、電腦、文字處理機、打印機、復(fù)印機、電子計算器、液晶電視、 醫(yī)療器械等
辦公用品、一般生活用品
鋼筆、玩具、漁具、樂器、磁帶、體育用品、家具、管材、電池等
大型設(shè)備
摩托車、汽車、輪船、飛機等
其它
食品、化妝品、藥品等
結(jié)束語
通過對設(shè)備程序的優(yōu)化,可以在一定程度上減少機器的生產(chǎn)周期時間,但對于生產(chǎn)效率的提高來說,這僅僅是其中的一部分,更多的時候要依靠科學(xué)的管理,優(yōu)秀的操作工,良好的設(shè)備維護與保養(yǎng)來實現(xiàn),這些更是應(yīng)該引起我們注意的地方。