無人干預的全自動PCB組裝可以實現嗎?

 新聞資訊    |      2018-12-27
在印制電路板(pcb)制造和組裝行業中,術語“原始pcb”或“空白pcb”用來表示未組裝(無載)pcb,而術語pcbA用于表示已組裝(有載)pcb。
 
實際上,術語“pcbA”現在有點不合時宜。雖然它仍在業內使用,但大約從20世紀80年代,設計師和工程師就逐步不再用它;他們現在通常使用“pcb”來同時指代未組裝和已組裝的pcb(從該術語所在的上下文中得出其確切含義)。
 
說完這些,我們將在本文中使用術語“pcb”和“pcbA”來確保我們在談論同一件事。
 
那么,我的問題是:我們離無人干預的pcbA下單甚至制造還有多遠?我希望能像照片打印服務一樣簡單。除了使設計師和工程師能更經濟、更容易地實現這一切,這種能力有助于使pcbA工廠重新回到“我國”。那么生產鏈中到底缺少什么,在阻止這種情況成為現實呢?
 
過去幾年,我遇到了與計算機輔助設計(CAD)和計算機輔助制造(CAM)系統之間數據傳輸相關的各種問題和不同預期。為更好地理解所涉及的問題,我研制發布了一款名為Zofzpcb的3D Gerber Viewer(3D Gerber查看器),可以從zofzpcb.com免費下載。觀看這個視頻,可了解Zofzpcb的運行情況。
 
正如你可能想象,這類軟件應用必須了解大量pcb(A)的相關知識,才能對其進行正確的可視化處理。我學到了什么?嗯,其中一件事是,我當然沒想到事情會發生得這么亂。
 
我們來想象一下有這樣一個獨立于供應商的系統,它接受來自多家設計公司的文件——每個公司都可能使用不同的電子CAD(ECAD)軟件包——并且只需點擊一下按鈕就可以制作和組裝pcb(圖1)。實現這樣一個系統需要的不僅僅是“把數據丟過來”。必須檢查設計的可制造性,同時根據元器件類型和可獲得性、數量和所需的交付時間進行報價。如果需要人工輸入,則雙方都會在價格計算上消耗大量資源。詳細的元器件選擇及對供應商提供的專有格式元器件列表進行梳理將是場噩夢。此外,pcb上元器件的位置和旋轉也必須予以核實。
 
對我來說,這種獨立于供應商的系統,其概念是以3D Gerber查看器為中心的,其中,查看器可以是桌面應用或在線(基于云或云托管的)web服務。眾所周知,到目前為止,Gerber文件是這項工作所最常使用的格式,因此我將針對這種文件,而暫時忽略ODB++/IPC2581。
 
CAD到CAM文件
 
由于與pcb設計和制造中所用Gerber格式有關,你有沒有想過“Gerber”這個詞的由來?如果有想過,那你可能想讀下EEWeb主編Max Maxfield對David J. Gerber所著《The Inventor's Dilemma(發明家的困境)》一書的評論。
 
幾年前,Gerber格式借助GerberX2形式的新計劃和新倡導獲得了新生。該標準歡迎我們所有人將我們的想法都輸入到其中。這肯定是好事,但問題的重要部分不僅僅是經典的Gerber功能。例如,在這種方法中,拾放(P&P)文件、物料清單(BOM)文件(另請參閱《How to Build a pcb: The Bill of Materials(如何構建pcb:物料清單)》)和新的應用程序編程接口(API)格式是必需的。據我所知,當我們接受改變時,X2會覆蓋大多數格式問題。
 
基本問題:文件的差異在哪里?
 
你是否知道,你可以將Microsoft Office文件的擴展名更改為“zip”,然后解壓縮?然后,你可在里面看到一套不同的文件(媒體、文本、XML)所有這些文件都由zip容器裝在一起。
 
這在概念上類似CAD/CAM Gerber文件集,也即將多個文件捆綁在一起形成一個“文檔”。問題是我們缺少(或者有太多)文件名的正式定義。
 
Stackup描述文本文件也列出了用于每個層的文件,旨在由人來解讀。如何正確加載Gerber文件?就Zofzpcb來說,我支持兩種方法:自動和手動。對于自動方法,有一個Mask Set腳本,用于定義多個命名約定以及與每個約定的特定功能相關聯的文件名。如果你沒有修改ECAD的Gerber導出模塊中的默認設置,則很有可能加載文件時不會出任何問題。如果有問題,你可以手動指配文件。
 
請注意,除了有其他非Gerber文件,且在GerberX2下這些文件不能自我識別外,X2解決了這個問題。但是,X2最近發布了擴展規范,而使用戶可以在描述文件用途的文件中添加注釋。此外,在最新版X2規范中,面向pcb生產推出了Gerber工作文件。
 
制造pcb裸板
 
無論文件格式如何,設計人員希望以圖形描述的形式將某些內容傳遞給工廠。這些內容繪制在pcb層上,有時作為有效載荷層的補充。這些元素在其轉變為銅箔之前必須要除去(圖2)。
 
我們將Gerber描述轉變為機器對機器(M2M)格式。讓我們節省人工智能(AI)和光學字符識別(OCR)工作,試圖識別哪些線條和其他元素是指真實物理對象,哪些線條是描述更抽象事物的文字或插圖。為任何繪圖元素添加注釋,是種很好的解決方案。如果能自動添加描述成分,那最好,因為如果由人來添加合適的注釋,則有可能被忽略。
 
X2中可以添加注釋,我們只需坐享其成。在此期間,我們如何傳遞元信息?大多數情況下,這不再需要了。例如,電路板尺寸或每個層的功能標記已包含在了疊層中。如果確實需要,最好將此信息保存在單獨層上,而不是作為疊層的一部分(圖2)。
 
電路板輪廓的標注:有多種方法可提供此信息:(1)作為單獨文件;(2)使用特定的線寬(例如零線寬)繪制在某些層上;(3)作為鉆孔文件上的走線。最后一種方法相對較新,也令人沒底。
 
同樣,對圖形元素添加注釋可解決這個問題(圖3)。有趣的是,電路板的輪廓用多邊形元素來描述會最好。但過去,輪廓只是用由走線制成的圖形來構成。檢測輪廓并實現轉換的算法,希望看到一個閉環。當然,可能還有額外的閉環(代表切口)位于主輪廓內。我們還有一個小對象(即V形槽)需要正式定義,添加注釋亦可完成這項工作。注意:用網絡名和器件引腳名來注釋焊盤,可以替代IPC356文件,從而不再需要它。
 
對pcb進行良好定義,可為執行設計規則檢查(DRC)測試提供基礎,并自動確定價格類別,而用于計算pcb制造價格。為此,pcb供應商需要以某種電子形式提供定價。對于我的情況,若我能讀取標準的逗號分隔值(CSV)類型的文件(以為此目的定義的格式列出了價格計算規則),那我會很高興。此想法是,設計人員可以向應用提供pcb制造商網站的URL,然后系統可以下載并使用這些定價規則。
 
在pcb制造商的接收端,會需要自動拼板軟件。對于這項功能,Oshpark.com提供了一個很好的例子?,F有的無人值守訂單處理系統之間的主要區別在于:我們需要有一個M2M風格的API,能在多個供應商中通用。
 
總結:讓我們決定使用GerberX2,以Gerber格式而不是Excellon格式來保持鉆孔和布線數據,使用正確的帶注釋焊盤(使用IPC356或GerberX2),并在GerberX2中使用疊層文件。并且,在X2轉換完成之前,使用Zofzpcb進行自動化處理。另外,pcb供應商應以CSV文件的形式在其網站上公開其特性、功能和定價,并提供上傳pcb數據和訂單信息的標準化方法。
 
在pcb的情況中,至少在設計人員的頭腦中已經選好了元器件。當然,我們可以在設計階段更改元器件,而且大多數設計人員無需付出大量精力,而去完美一致地填寫BOM列表。事實上,確定特定制造商零件號的實際工作,可能要到設計階段的后期才會去做。
 
理想情況下,分銷商網站應幫助設計人員查找和確認零件號,并以合適的格式編寫BOM。幸運的是,許多分銷商都有便于自動報價和訂單號檢查的API。這是流程的一部分,在此過程中可以做很多事來簡化工作。由于我一直在使用來自不同元器件分銷商的API,我發現器件命名并不總是一致,這很令人不爽(我知道你被驚到了)。
 
雖然目前的系統可以供人使用,但其很難實現自動化。這可以搞定嗎?我們必須有更高明的方法來做事。此外,其他所需考慮的重要因素包括:包裝、重新包裝選項,以及了解插播廣告需要多少額外零件。
 
一些組裝廠備有常用元器件,如去耦電容和電阻。相對于制造工程師必須確認每項決策(有時候他們不確定元器件的作用)來說,設計人員決定是否使用庫存元器件要容易得多。
 
令人高興的是,自動訂單系統領域正在發生很多變化,包括分銷商網站上的BOM解析器,以及來自SnapEDA.com、Supplyframe.com和OctoPart.com等網站的其他工具(圖4)。WYSIWYG軟件在此可提供元器件尺寸的可視化并檢查它們是否適合相關的pcb封裝。Zofzpcb現在可提供這些功能:BOM中的自動列檢測;將其與IPC356中的元器件指示符列表進行比較;以及元器件的3D呈現
 
圖4:元器件搜索結果。
 
總結:分銷商,請修改你數據庫中的零件名!對于組裝廠,請提供很簡單的可下載網頁文件——包含庫存元器件以及對應大型分銷商訂貨號的參考——以便其可以使用大型供應商的API。
 
組裝
 
在我看來,P&P文件格式的概念有誤。ECAD導出器可根據封裝計算出重心,P&P機器可利用元器件的中心放置器件(無論這意味著什么)。
 
對于非對稱(或僅一個對稱軸)的元器件,兩個參考中心是不同的,例如DPACK甚至SOT-23封裝。焊盤越長,差異越大。P&P編程要求操作員修正位置。另一個問題是,P&P文件中的旋轉值指的是庫零件的原始旋轉。雖然這些旋轉不是任意的——IPC-A-610中對它們有規定——但在CAD的封裝中,旋轉和中心位置不對的情況司空見慣。此外,庫可能是水平或垂直創建的,而兩引腳有極性元器件的極性也可能弄反了。
 
不堪的P&P文件標準迫使P&P機器供應商采用其自己的文件格式(參見《An Interview with Jonathan Hirschman of pcb:NG(就pcb:NG采訪Jonathan Hirschman)》)。在我看來,現有的P&P文件格式應被淘汰;取而代之,可以從IPC356或GerberX2中的焊盤注釋中提取信息。每個重心應該用外接矩形的中心(如果使用的話)來替換。
 
P&P機器的編程仍是項需要花費大量人手的任務。這項工作的進步至少可顯著減少工作量。通過為每種P&P機器類型編寫單獨的轉換程序,可以實現完全集成。
 
在此,Zofzpcb可提供通用的元器件查看器(圖5)。在客戶端,設計人員可以檢查器件的放置并決定是否批準通過;之后,組裝廠可以參考所接受的設計,而無需有pcbA物理示例(點擊此處,可查看圖5的動畫示例)。
 
價格計算非常復雜,特別是要做到精確和有競爭力。焊接pcb未通過測試的預期概率,乘以該pcbA的成本,是價格的一部分。另外,器件數量、器件尺寸、最小間距等不得超過指定組裝線的制造能力。API可能只是標準格式的可下載文件,其中含有每條組裝線的規則。將規則應用于設計參數,可能是客戶端軟件的任務。
 
總結:P&P文件的新定義可以由IPC356提供或作為帶注釋的X2提供。Zofzpcb可以運行DRC/DFM和組裝的定價模型。所需的是創建可在每個組裝廠網站上獲取的定價模型描述文件格式。