摘 要 在質(zhì)量管理領(lǐng)域,Minitab軟件是與Six-sigma關(guān)聯(lián),實現(xiàn)過程分析和評價的強(qiáng)有力的工具,使用程序代碼操作Minitab,可以高效地導(dǎo)入數(shù)據(jù),繪制控制圖,計算質(zhì)量參數(shù),檢驗異常并自動生成分析結(jié)論。
【關(guān)鍵詞】Delphi 10 Minitab 15 控制圖 異常檢驗
在開發(fā)測量數(shù)據(jù)管理軟件過程中,需要對數(shù)據(jù)進(jìn)行管理。例如對數(shù)據(jù)庫中的數(shù)據(jù)按照設(shè)定的條件實現(xiàn)增,刪,查,改,標(biāo)識異常等基本操作。為了方便軟件用戶對制造與測量過程實施控制,軟件需要實現(xiàn)控制圖功能,從而對過程的受控狀態(tài)進(jìn)行分析和檢驗。
目前軟件實現(xiàn)控制圖主要有2種模式:1.自主開發(fā)。包括條件篩選,數(shù)據(jù)提取和導(dǎo)入,參數(shù)計算,調(diào)用Picture或第三方Chart控件繪圖,處理繪圖異常數(shù)據(jù),完成圖形繪制并輸出結(jié)果。這種開發(fā)方式存在以下不足:
(1)實現(xiàn)各種質(zhì)量參數(shù)的計算過程非常繁瑣,而且計算結(jié)果要與Minitab軟件計算的參數(shù)進(jìn)行反復(fù)對比和修正。
(2)由于Minitab軟件具有檢驗異常數(shù)據(jù)的8種模式,采用自主開發(fā)實現(xiàn)8種異常模式的判定難度較大。2.購買第三方SPC控件,在數(shù)據(jù)管理軟件中集成。這種開發(fā)方式在升級和維護(hù)時可能存在一些技術(shù)限制,例如運行第三方控件可能需要特殊的運行庫或某些系統(tǒng)控件的支持,從而使程序的可移植性受到影響。
本文所采用的開發(fā)模式是通過代碼調(diào)用Minitab軟件,以命令行字符串控制Minitab自動繪制控制圖并計算參數(shù)。開發(fā)工具為Delphi 10 Seattle,采用VCL開發(fā)模式,編譯平臺為Win32,控制圖軟件采用Minitab 15中文版。其中,測量數(shù)據(jù)管理軟件主要實現(xiàn)數(shù)據(jù)管理功能,當(dāng)需要實現(xiàn)控制圖時,軟件通過代碼控制Minitab自動打開,在Minitab的數(shù)據(jù)表寫入條件篩選數(shù)據(jù),調(diào)用對應(yīng)的命令行字符串在Minitab中自動生成各種控制圖,顯示計算參數(shù),并按照異常數(shù)據(jù)檢驗的8種模式自動生成分析結(jié)論。
1 調(diào)用Minitab軟件的命令行指令
Minitab軟件支持各種命令行操作,可通過編輯器-啟用命令菜單打開命令行工具。首先在Minitab工作表中按列填寫數(shù)據(jù),通過統(tǒng)計-控制圖菜單可設(shè)置參數(shù)并生成所需的控制圖,Minitab會話欄將自動生成命令行指令。下面以生成XBar-R控制圖命令行為例:
1.1 錄入數(shù)據(jù)并打開命令行工具
手工錄入數(shù)據(jù)后,單擊編輯器菜單中的啟用命令菜單。
1.2 設(shè)置8種數(shù)據(jù)檢驗條件
在XBar-R控制圖菜單中,單擊XBar-R選項,選擇檢驗選項卡,將8種數(shù)據(jù)檢驗條件全部選中。
1.3 通過菜單指令生成控制圖和異常數(shù)據(jù)分析結(jié)論
如圖1所示。
1.4 將命令行指令轉(zhuǎn)換為代碼調(diào)用的字符串
將XBar-R控制圖的命令行指令轉(zhuǎn)換為字符串:
Var str_MtbCmd:string; //Minitab命令行字符串
str_MtbCmd := 'XRChart ' + '' + ComboBox1.Text + '' + ' ' + ComboBox4.Text + ';Same 2;Test 1 2 3 4 5 6 7 8.';
2 向Minitab軟件寫入數(shù)據(jù),調(diào)用COM的OLE對象接口實現(xiàn)
2.1 使用CreateOleObject函數(shù)創(chuàng)建Minitab對象
try
v := CreateOleObject('Mtb.Application'); //創(chuàng)建Minitab對象
v.UserInterface.Visible := True; //顯示Minitab窗口
except
ShowMessage('創(chuàng)建Minitab對象失?。?);
end;
2.2 按列將數(shù)據(jù)寫入Minitab數(shù)據(jù)表
Var
va,v_proj,v_Columns,v_Column: variant;
va := VarArrayCreate([0,i-1],varDouble); //創(chuàng)建OLE動態(tài)數(shù)組
{
//將條件篩選數(shù)據(jù)寫入OLE動態(tài)數(shù)組va
}
v_proj := v.ActiveProject; //聲明Project對象
v_Columns := v_proj.ActiveWorksheet.Columns; //聲明Columns對象
v_Column := v_Columns.Add(,,1); //使用Add方法增加列
v_Column.Name := ComboBox1.Text; //對數(shù)據(jù)表列名賦值
v_Column.SetData(va); //按列寫入數(shù)據(jù)
3 調(diào)用命令行指令生成控制圖
v_proj.ExecuteCommand(str_MtbCmd); //寫入命令行字符串
由于Object Pascal屬于強(qiáng)類型的語言,在操作COM的OLE對象接口時,聲明的Minitab 對象,例如Project,Columns,Column,Graph等必須聲明為variant類型。另外使用SetData()函數(shù)時,數(shù)組不能直接賦值,需要創(chuàng)建OLE動態(tài)數(shù)組,先將本地數(shù)組賦值給OLE動態(tài)數(shù)組,再將動態(tài)數(shù)組名即數(shù)組首地址通過SetData()函數(shù)進(jìn)行參數(shù)傳遞,將數(shù)據(jù)寫入Minitab軟件。
測量數(shù)據(jù)管理軟件生成的數(shù)據(jù)(如圖2所示)。
XBar-R控制圖的實現(xiàn)結(jié)果(如圖3所示)。
上述操作在Minitab 15和Minitab 16中均測試通過。
本文以操作Minitab軟件生成XBar-R控制圖為例,介紹了軟件代碼透過COM的OLE對象接口調(diào)用Minitab軟件寫入數(shù)據(jù),調(diào)用命令行繪制控制圖,并實現(xiàn)異常數(shù)據(jù)檢驗的過程。由于Minitab的大部分功能均能通過命令行進(jìn)行控制,因此其它的Minitab統(tǒng)計圖表也能采用類似的方法以代碼控制的方式實現(xiàn),相比手工方式錄入數(shù)據(jù)再繪制統(tǒng)計圖表,程序調(diào)用方式極大的提高了效率。
對軟件用戶來說,通過控制圖評價過程受控狀態(tài),及時發(fā)現(xiàn)過程異常,查明原因并排除異常,從而使過程恢復(fù)到受控狀態(tài),對提高企業(yè)的過程能力,提升質(zhì)量管理水平具有重要的現(xiàn)實意義。
作者簡介
張毅(1970-),男。2006年9月畢業(yè)于華中科技大學(xué),最后學(xué)位:管理碩士?,F(xiàn)供職于東風(fēng)汽車有限公司刃量具廠刀量具制造管理部,職稱:高級工程師。主要研究方向為電子技術(shù)應(yīng)用,工業(yè)軟件開發(fā),項目風(fēng)險管理。
作者單位
東風(fēng)汽車有限公司刃量具廠刀量具制造管理部 湖北省十堰市 442002