SPC即統計過程控製(Statistical Process Control)。SPC主zhu要yao是shi指zhi應ying用yong統tong計ji分fen析xi技ji術shu對dui生sheng產chan過guo程cheng進jin行xing實shi時shi監jian控kong,科ke學xue的de區qu分fen出chu生sheng產chan過guo程cheng中zhong產chan品pin質zhi量liang的de隨sui機ji波bo動dong與yu異yi常chang波bo動dong,從cong而er對dui生sheng產chan過guo程cheng的de異yi常chang趨qu勢shi提ti出chu預yu警jing,以yi便bian生sheng產chan管guan理li人ren員yuan及ji時shi采cai取qu措cuo施shi,消xiao除chu異yi常chang,恢hui複fu過guo程cheng的de穩wen定ding,從cong而er達da到dao提ti高gao和he控kong製zhi質zhi量liang的de目mu的de。
波動分為兩種:正常波動和異常波動。正常波動是偶然性原因(不可避免因素)造成的。它對產品質量影響較小,在技術上難以消除,在經濟上也不值得消除。異常波動是由係統原因(異常因素)造成的。它對產品質量影響很大,但能夠采取措施避免和消除。過程控製的目的就是消除、避免異常波動,使過程處於正常波動狀態。異常波動可歸結為原料不均勻、工具破損、工藝或操作的問題、製造或檢測設備的性能不穩定等。
SPC 技術原理
統計過程控製(SPC)是shi一yi種zhong借jie助zhu數shu理li統tong計ji方fang法fa的de過guo程cheng控kong製zhi工gong具ju。它ta對dui生sheng產chan過guo程cheng進jin行xing分fen析xi評ping價jia,根gen據ju反fan饋kui信xin息xi及ji時shi發fa現xian係xi統tong性xing因yin素su出chu現xian的de征zheng兆zhao,並bing采cai取qu措cuo施shi消xiao除chu其qi影ying響xiang,使shi過guo程cheng維wei持chi在zai僅jin受shou隨sui機ji性xing因yin素su影ying響xiang的de受shou控kong狀zhuang態tai,以yi達da到dao控kong製zhi質zhi量liang的de目mu的de。當dang過guo程cheng僅jin受shou隨sui機ji因yin素su影ying響xiang時shi,過guo程cheng處chu於yu統tong計ji控kong製zhi狀zhuang態tai(簡稱受控狀態);當過程中存在係統因素的影響時,過程處於統計失控狀態(簡稱失控狀態)。由於過程波動具有統計規律性,當過程受控時,過程特性一般服從穩定的隨機分布;而失控時,過程分布將發生改變。SPC正zheng是shi利li用yong過guo程cheng波bo動dong的de統tong計ji規gui律lv性xing對dui過guo程cheng進jin行xing分fen析xi控kong製zhi的de。因yin而er,它ta強qiang調tiao過guo程cheng在zai受shou控kong和he有you能neng力li的de狀zhuang態tai下xia運yun行xing,從cong而er使shi產chan品pin和he服fu務wu穩wen定ding地di滿man足zu顧gu客ke的de要yao求qiu。
紫金橋實時數據庫擁有功能齊全的SPC組件,可以為用戶的質量管理提供參考依據。
本文講述紫金橋spc組件的高級應用,涉及到用戶自定義腳本、和報表的聯合操作。Spc組件內嵌報表隻能顯示一些狀態信息。需要更多的信息需要,使用外部報表;外部報表和內嵌報表可以一起使用。
在紫金橋軟件中創建使用該組件需要以下3個步驟:
定義spc點
在窗口上創建spc曲線控件設置相關屬性
編寫腳本(可選)
定義Spc點在實時數據庫中
這裏以文本文件為例子,其他的屬性都可以不填。添加完成後保存,並返回。
關閉點組態管理界麵,進入開發界麵;並且新建立一個窗口;
拖入spc組件和報表到窗口,並命名spc組件名字為”MySpc”,報表為”Rpt”;
設置spc組件的屬性,點擊下圖腳本按鈕
輸入如下的腳本到計算完成時標簽:
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);
//腳本完
完成後,點擊返回按鈕,然後確定。
以上腳本詳細解釋,
CveAll = #MySpc.GetCurveCnt();
#MySpc 為 spc 組件的名字, GetCurveCnt函數是得到目前有幾個曲線。
根據這個值,在報表裏麵決定顯示幾列數值。
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
這部分代碼顯示第一列數據,GetCveItmCnt() 是得到某個曲線的點數。
GetCve_ItmVal()得到某個點的具體數值。
運行效果見上圖。
上下的紅線表示UCL與LCL、中間的黃線表示 CL ,藍色的點表示正常範圍、紅色的點表示控製得不好。
這樣不但可以看到圖形,還可以得到每個點的詳細數據。