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