News And Information
-技术与支持-
微信公众号-关注紫金桥
了解软件最新资讯
销售热线:
400-678-6601
售后热线:
13304891586
0459-8151391
0459-8151518
紫金桥软件Spc组件与报表组件结合实例 
紫金桥软件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 ,蓝色的点表示正常范围、红色的点表示控制得不好。
  这样不但可以看到图形,还可以得到每个点的详细数据。