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