概述
SPC即统计过程控制(Statistical Process Control)。SPC主要是指应用统计分析技术对生产过程进行实时监控,科学的区分出生产过程中产品质量的随机波动与异常波动,从而对生产过程的异常趋势提出预警,以便生产管理人员及时采取措施,消除异常,恢复过程的稳定,从而达到提高和控制质量的目的。
波动分为两种:正常波动和异常波动。正常波动是偶然性原因(不可避免因素)造成的。它对产品质量影响较小,在技术上难以消除,在经济上也不值得消除。异常波动是由系统原因(异常因素)造成的。它对产品质量影响很大,但能够采取措施避免和消除。过程控制的目的就是消除、避免异常波动,使过程处于正常波动状态。异常波动可归结为原料不均匀、工具破损、工艺或操作的问题、制造或检测设备的性能不稳定等。
SPC技术原理
统计过程控制(SPC)是一种借助数理统计方法的过程控制工具。它对生产过程进行分析评价,根据反馈信息及时发现系统性因素出现的征兆,并采取措施消除其影响,使过程维持在仅受随机性因素影响的受控状态,以达到控制质量的目的。当过程仅受随机因素影响时,过程处于统计控制状态(简称受控状态);当过程中存在系统因素的影响时,过程处于统计失控状态(简称失控状态)。由于过程波动具有统计规律性,当过程受控时,过程特性一般服从稳定的随机分布;而失控时,过程分布将发生改变。SPC正是利用过程波动的统计规律性对过程进行分析控制的。因而,它强调过程在受控和有能力的状态下运行,从而使产品和服务稳定地满足顾客的要求。
紫金桥实时数据库拥有功能齐全的SPC组件,可以为用户的质量管理提供参考依据。
本文讲述紫金桥spc组件的高级应用,涉及到用户自定义脚本、和报表的联合操作。Spc组件内嵌报表只能显示一些状态信息。需要更多的信息需要,使用外部报表;外部报表和内嵌报表可以一起使用。
创建和使用spc组件
在紫金桥软件中创建使用该组件需要以下3个步骤:
- 定义spc点
- 在窗口上创建spc曲线控件设置相关属性
- 编写脚本(可选)
定义一个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 ,蓝色的点表示正常范围、红色的点表示控制得不好。
这样不但可以看到图形,还可以得到每个点的详细数据。