摘 要:本文以全自動晶圓劃片機設備為基礎,重點講述日志記錄模塊。通過收集、分析用戶需求確定日志記錄內(nèi)容,日志查看程序具備的功能。結合設備實際情況,使用VisualC++6.0,Microsoft Office Access數(shù)據(jù)庫進行程序開發(fā)。
關鍵詞:日志記錄;Microsoft Office Access;全自動劃片機
DOI:10.16640/j.cnki.37-1222/t.2018.12.044
全自動晶圓劃片機是集光機電計算機一體化的復雜設備,包括晶圓從上片、對準、劃切、清洗、甩干到下片的完全自動化。其工序是將整片晶圓通過劃切分割成單個芯粒的工藝過程。承載了包括晶圓減薄以及材料制備、光刻等前幾百道工序的材料和制造成本,一旦出現(xiàn)問題,整個投入就會前功盡棄。業(yè)內(nèi)只要提到劃片機首要關心的問題就是其可靠性如何。但畢竟系統(tǒng)是人開發(fā)的,即使經(jīng)過再多次測試,也無法預料運行過程會出現(xiàn)什么想不到的問題。此動機之下,記錄設備狀態(tài)達到對設備實時監(jiān)控是系統(tǒng)設計最為重要的任務。分析記錄內(nèi)容,可快速、準確定位故障原因,提高設備可維護性從而提高系統(tǒng)可靠性;提取并分析設備中工藝數(shù)據(jù),可提高設備使用率及晶圓劃切工藝。因此日志記錄功能于全自動晶圓劃片機設備是至關重要的。
1 全自動晶圓劃片機日志記錄內(nèi)容分析
1.1 設備故障記錄
全自動晶圓劃切設備由上料、自動對準、測高、劃切、清洗、下料六個重要流程組成,六個流程中設備都有出現(xiàn)故障的可能,故障發(fā)生后都會影響后續(xù)流程的可靠性。以測高故障為例,測高故障發(fā)生后操作者忽略當前故障繼續(xù)切割,導致切割晶圓深度達不到要求,若不記錄測高故障及故障處理方式,很難發(fā)現(xiàn)是由測高故障導致的晶圓切割深度錯誤,用戶從而認為設備可靠性不高。記錄故障內(nèi)容從設計角度出發(fā),協(xié)助分析故障原因可改進設備硬件可靠性、軟件算法可靠性。給用戶提供部分可恢復故障處理方式的方法,減少設備故障時間,提高設備可靠性。因此記錄設備故障種類、時間、故障處理方式,是日志記錄的一項重要內(nèi)容。
1.2 設備操作記錄
設備運行過程中,記錄設備操作情況,如開機、關機時間;當前使用文件名、文件修改內(nèi)容。記錄功能模塊啟動和結束信息,如設備初始化開始、結束時間。日志記錄協(xié)助設計者實時監(jiān)控系統(tǒng),設備產(chǎn)出不合格產(chǎn)品后,據(jù)記錄定位錯誤原因,如系統(tǒng)Bug、用戶操作失誤等。
快速、準確定位Bug是日志記錄的一項重要任務。操作失誤導致錯誤以及如何避免是設計者和使用都關心的問題。
1.3 設備工藝內(nèi)容記錄
由于晶圓劃切這一道工序的重要性,決定了芯片加工技術水平的提高不僅依靠設備可靠性,還與劃切工藝息息相關。節(jié)約生產(chǎn)成本、提高芯片生產(chǎn)線產(chǎn)能是劃切工藝的重要任務。記錄工藝數(shù)據(jù)協(xié)助工藝人員從設備上提取重要數(shù)據(jù)進行工藝數(shù)據(jù)分析和研究必不可少。
2 全自動晶圓劃片機日志查看程序功能分析
2.1 日志顯示功能
一個完整的制造設備系統(tǒng)中日志查看功能必不可少。日志可以記錄到數(shù)據(jù)庫、文件等地方,記錄內(nèi)容較多時,按一定格式寫入。因此,日志查看程序?qū)⑷罩緩挠涗浳募凶x取,并按規(guī)定格式解析后顯示
2.2 日志拷出功能
由于生產(chǎn)制造成本的提高,工藝人員在進行工藝數(shù)據(jù)分析時不能一直占用設備,須將數(shù)據(jù)從設備上批量拷貝走再進行分析,程序須具備拷出日志到U盤功能。拷出數(shù)據(jù)須可以在客戶使用的主流數(shù)據(jù)分析軟件中使用。
2.3 日志搜索功能
設備中存儲大量日志記錄,設計者、使用者感興趣角度不同,對幾天或數(shù)天前記錄進行分析要查看大量內(nèi)容,加入關鍵字搜索功能,如維修人員搜索“清洗臺報警”關鍵字,程序自動將搜索結果按日期排列顯示,協(xié)助維修人員快速了解故障原因,解決維修時間,并可將搜索結果導出方便統(tǒng)計設備故障率。
3 實現(xiàn)方法
根據(jù)上述分析,由于Microsoft Office Access有強大的數(shù)據(jù)處理、統(tǒng)計分析能力,利用Access的查詢功能,可以方便地進行各類匯總、平均等統(tǒng)計。在統(tǒng)計分析上萬條、十幾萬條記錄及以上的數(shù)據(jù)時速度快且操作方便,且Visual C++ 6.0使用Microsoft Office Access來開發(fā)軟件較容易,因此使用Microsoft Office Access來做日志記錄軟件開發(fā)。
Visual C++ 6.0下如何使用Microsoft Office Access數(shù)據(jù)庫在很多資料中都有介紹,這里就不再贅述,重點介紹如何從數(shù)據(jù)庫中讀取大量數(shù)據(jù)而不導致設備死機。
設備實際使用過程,Microsoft Office Access數(shù)據(jù)庫中會保存大量記錄,若用戶使用日志查看程序時一次大量讀取全部記錄,程序占用大量內(nèi)存導致計算機死機。因此在實際使用過程中需要分批次讀取記錄。定義每次讀取記錄條數(shù)為常量PageSize,數(shù)據(jù)庫中記錄總條數(shù)為pRecordCount,分批讀取總次數(shù)PageCnt = pRecordCount/PageSize。具體實施步驟如下:
3.1 獲取數(shù)據(jù)庫記錄總條數(shù)
在日志寫入時加入序號一列,用于標記當前寫入記錄位于數(shù)據(jù)庫第幾條,方便程序使用SQL語句獲取記錄總條數(shù):sql.Format("SELECT * FROM [%s] ORDER BY [序號]",strTable);
m_pRecordset = OpenRecordset(sql);
if (!m_pRecordset->adoEOF)
{
m_pRecordset->MoveLast();
strNO=(LPCSTR)(_bstr_t)m_pRecordset->GetCollect("序號");
*pRecordCount = atoi(strNO);
}
3.2 獲取一頁數(shù)據(jù)庫
根據(jù)參數(shù)PageSize、PageCnt確定獲取一頁數(shù)據(jù)時SQL語句讀取條數(shù)范圍:sql.Format("SELECT TOP %d * FROM [%s] WHERE [序號] BETWEEN %d AND %d ORDER BY [序號] DESC", PageSize, strTable, PageSize * (PageCnt - 1) + 1, PageSize *PageCnt)。
3.3 獲取全部數(shù)據(jù)庫
程序初始時,須顯示一頁最新記錄,此時PageCount是計算得到的值,之后顯示頁面下拉時,對PageCount進行-1操作,向上翻頁PageCount進行+1操作。如果計算機內(nèi)存足夠也可在程序啟動時讀取一頁記錄,后開啟線程讀取余下記錄:
for (; PageCount > 0;PageCount-- )
{
CArray
ReadDataFromAccess(PageSize,PageCount,TableName,sArrayLogData);
}
4 總結
使用Microsoft Office Access數(shù)據(jù)庫進行日志程序存儲查看數(shù)據(jù)軟件開發(fā),簡單易學,開發(fā)后的日志程序記錄了大量數(shù)據(jù),實時監(jiān)控設備運行狀態(tài),有效提高設備可維護性,對設備可靠性、生產(chǎn)效率的提高起至關重要的作用。
參考文獻:
[1]孫鑫.VC++深入解析[M].北京:電子工業(yè)出版社,2012.
作者簡介:劉婷婷(1982-),女,陜西榆林人,工程師,主要從事劃片機晶圓劃切工藝及設備軟件設計工作。