概述
SPC即統(tǒng)計(jì)過(guò)程控制(Statistical Process Control)。SPC主要是指應(yīng)用統(tǒng)計(jì)分析技術(shù)對(duì)生產(chǎn)過(guò)程進(jìn)行實(shí)時(shí)監(jiān)控,科學(xué)的區(qū)分出生產(chǎn)過(guò)程中產(chǎn)品質(zhì)量的隨機(jī)波動(dòng)與異常波動(dòng),從而對(duì)生產(chǎn)過(guò)程的異常趨勢(shì)提出預(yù)警,以便生產(chǎn)管理人員及時(shí)采取措施,消除異常,恢復(fù)過(guò)程的穩(wěn)定,從而達(dá)到提高和控制質(zhì)量的目的。
波動(dòng)分為兩種:正常波動(dòng)和異常波動(dòng)。正常波動(dòng)是偶然性原因(不可避免因素)造成的。它對(duì)產(chǎn)品質(zhì)量影響較小,在技術(shù)上難以消除,在經(jīng)濟(jì)上也不值得消除。異常波動(dòng)是由系統(tǒng)原因(異常因素)造成的。它對(duì)產(chǎn)品質(zhì)量影響很大,但能夠采取措施避免和消除。過(guò)程控制的目的就是消除、避免異常波動(dòng),使過(guò)程處于正常波動(dòng)狀態(tài)。異常波動(dòng)可歸結(jié)為原料不均勻、工具破損、工藝或操作的問(wèn)題、制造或檢測(cè)設(shè)備的性能不穩(wěn)定等。
SPC技術(shù)原理
統(tǒng)計(jì)過(guò)程控制(SPC)是一種借助數(shù)理統(tǒng)計(jì)方法的過(guò)程控制工具。它對(duì)生產(chǎn)過(guò)程進(jìn)行分析評(píng)價(jià),根據(jù)反饋信息及時(shí)發(fā)現(xiàn)系統(tǒng)性因素出現(xiàn)的征兆,并采取措施消除其影響,使過(guò)程維持在僅受隨機(jī)性因素影響的受控狀態(tài),以達(dá)到控制質(zhì)量的目的。當(dāng)過(guò)程僅受隨機(jī)因素影響時(shí),過(guò)程處于統(tǒng)計(jì)控制狀態(tài)(簡(jiǎn)稱受控狀態(tài));當(dāng)過(guò)程中存在系統(tǒng)因素的影響時(shí),過(guò)程處于統(tǒng)計(jì)失控狀態(tài)(簡(jiǎn)稱失控狀態(tài))。由于過(guò)程波動(dòng)具有統(tǒng)計(jì)規(guī)律性,當(dāng)過(guò)程受控時(shí),過(guò)程特性一般服從穩(wěn)定的隨機(jī)分布;而失控時(shí),過(guò)程分布將發(fā)生改變。SPC正是利用過(guò)程波動(dòng)的統(tǒng)計(jì)規(guī)律性對(duì)過(guò)程進(jìn)行分析控制的。因而,它強(qiáng)調(diào)過(guò)程在受控和有能力的狀態(tài)下運(yùn)行,從而使產(chǎn)品和服務(wù)穩(wěn)定地滿足顧客的要求。
紫金橋實(shí)時(shí)數(shù)據(jù)庫(kù)擁有功能齊全的SPC組件,可以為用戶的質(zhì)量管理提供參考依據(jù)。
本文講述紫金橋spc組件的高級(jí)應(yīng)用,涉及到用戶自定義腳本、和報(bào)表的聯(lián)合操作。Spc組件內(nèi)嵌報(bào)表只能顯示一些狀態(tài)信息。需要更多的信息需要,使用外部報(bào)表;外部報(bào)表和內(nèi)嵌報(bào)表可以一起使用。
創(chuàng)建和使用spc組件
在紫金橋軟件中創(chuàng)建使用該組件需要以下3個(gè)步驟:
- 定義spc點(diǎn)
- 在窗口上創(chuàng)建spc曲線控件設(shè)置相關(guān)屬性
- 編寫腳本(可選)
定義一個(gè)spc點(diǎn)
定義Spc點(diǎn)在實(shí)時(shí)數(shù)據(jù)庫(kù)中
這里以文本文件為例子,其他的屬性都可以不填。添加完成后保存,并返回。
在窗口創(chuàng)建spc曲線控件以及修改相關(guān)屬性
關(guān)閉點(diǎn)組態(tài)管理界面,進(jìn)入開(kāi)發(fā)界面;并且新建立一個(gè)窗口;
拖入spc組件和報(bào)表到窗口,并命名spc組件名字為”MySpc”,報(bào)表為”Rpt”;
設(shè)置spc組件的屬性,點(diǎn)擊下圖腳本按鈕
輸入如下的腳本到計(jì)算完成時(shí)標(biāo)簽:
int CveAll,AllItm;
int i,j;
real val;
CveAll = #MySpc.GetCurveCnt();
if (CveAll>0) then
i = #Rpt.RowCount();
#Rpt.DeleteRow(0,i);
AllItm = #MySpc.GetCve_ItmCnt(0);
for i=0 to AllItm step 1
#Rpt.AddRow(1);
val = #MySpc.GetCve_ItmVal(0,i);
#Rpt.SetVal(1,i+1,Val);
next
endif
if (CveAll==2) then
AllItm = #MySpc.GetCve_ItmCnt(1);
for i=0 to AllItm step 1
if(#Rpt.RowCount()<=i) then
#Rpt.AddRow(1);
endif
val = #MySpc.GetCve_ItmVal(1,i);
#Rpt.SetVal(2,i+1,Val);
next
endif
#MyTxt1.Text = IntToStr(CveAll,10);
#MyTxt2.Text = IntToStr(AllItm,10);
//腳本完
完成后,點(diǎn)擊返回按鈕,然后確定。
以上腳本詳細(xì)解釋,
CveAll = #MySpc.GetCurveCnt();
#MySpc 為 spc 組件的名字, GetCurveCnt函數(shù)是得到目前有幾個(gè)曲線。
根據(jù)這個(gè)值,在報(bào)表里面決定顯示幾列數(shù)值。
i = #Rpt.RowCount();
#Rpt.DeleteRow(0,i);
AllItm = #MySpc.GetCve_ItmCnt(0);
for i=0 to AllItm step 1
#Rpt.AddRow(1);
val = #MySpc.GetCve_ItmVal(0,i);
#Rpt.SetVal(1,i+1,Val);
next
這部分代碼顯示第一列數(shù)據(jù),GetCveItmCnt() 是得到某個(gè)曲線的點(diǎn)數(shù)。
GetCve_ItmVal()得到某個(gè)點(diǎn)的具體數(shù)值。
運(yùn)行效果見(jiàn)上圖。
上下的紅線表示UCL與LCL、中間的黃線表示 CL ,藍(lán)色的點(diǎn)表示正常范圍、紅色的點(diǎn)表示控制得不好。
這樣不但可以看到圖形,還可以得到每個(gè)點(diǎn)的詳細(xì)數(shù)據(jù)。