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