最新技术文档
当前位置:首 页>> 技术支持>> 技术文档 [阅读]

紫金桥软件Spc组件与报表组件结合实例

概述

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 ,蓝色的点表示正常范围、红色的点表示控制得不好。

这样不但可以看到图形,还可以得到每个点的详细数据。