Quinn-Curtis Forums
Quinn-Curtis Forums
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Tools for Microsoft .Net & .Net Compact Framework
 SPC Control Chart Tools for .Net
 Invalid Alarm

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
   

T O P I C    R E V I E W
blazermaniac Posted - 17 Apr 2017 : 17:52:51
Hi,

I found that in the case when one point alarms and the next points samples value is equal to the control limit, it also alarms. In SimpleLimitTest when the alarmState is true and the limittype is SPC_GREATERTHAN_LIMIT, shouldn't it do a

if (value <= (limitvalue - hysteresisValue))

vs

if (value < (limitvalue - hysteresisValue))

And for limittype of SPC_LOWERTHAN_LIMIT do a

if (value >= (limitvalue + hysteresisValue))

vs

if (value > (limitvalue + hysteresisValue))
3   L A T E S T    R E P L I E S    (Newest First)
quinncurtis Posted - 22 Jun 2018 : 17:48:41
5 or 6 months ago we changed the software to make the comparison in the hysteresis test use the same comparison operator as the simple limit test. So if you haven't downloaded the current version of the software you should. It now looks like:

public bool SimpleLimitTest(double value, double limitvalue, int limittype)
        {
            bool result = false;
            if (!ChartSupport.BGoodValue(value)) return result;
            switch (limittype)
            {
                case SPC_LOWERTHAN_LIMIT:
                    if (!alarmState)
                    {
                        if (comparisonOperator && (value <= limitvalue))
                            result = true;
                        else if (!comparisonOperator && (value < limitvalue))
                            result = true;
                        else
                            result = false;
                    }
                    else
                    {
                        if (!comparisonOperator && (value >= (limitvalue + hysteresisValue)))
                            result = false;
                        else
                          if (comparisonOperator && (value > (limitvalue + hysteresisValue)))
                            result = false;
                        else
                            result = true;
                    }
                    break;
                case SPC_GREATERTHAN_LIMIT:
                    if (!alarmState)
                    {
                        if (comparisonOperator && (value >= limitvalue))
                            result = true;
                        else if (!comparisonOperator && (value > limitvalue))
                            result = true;
                        else
                            result = false;
                    }
                    else
                    {
                        if (!comparisonOperator && (value <= (limitvalue - hysteresisValue)))
                            result = false;
                        else
                        if (comparisonOperator && (value < (limitvalue - hysteresisValue)))
                            result = false;
                        else
                            result = true;
                    }
                    break;
            }

            return result;
        }
blazermaniac Posted - 22 Jun 2018 : 13:52:15
We are already setting the ComparisonOperator to false. But as you can see from the code snippet that I provided, that flag is not considered when the hysteresisValue is being used. Should that flag be used then? Should the alarmState be true in this scenario?
quinncurtis Posted - 19 Apr 2017 : 11:49:10
Whether or not a value exactly at +-3 sigma should be in alarm is a matter of personal preference (i.e. the > or >= test). Mathematically it is immaterial. The odds of a process being out of control at exactly 3 sigma are the same as (3 sigma + 10e-100). So you should take it seriously.

That being said, the software includes a flag (ComparisonOperator) that can be set on a per control limit basis which will force the comparison test to be either > or >= for the +sigmas and < and <= for the -sigmas. The default value is true, set to false to force a > evaluation for + sigmas, and a < evaluation for - sigmas.

this.PrimaryChart.GetControlLimitData(SPCChartObjects.SPC_UPPER_CONTROL_LIMIT).ControlLimitRecord.ComparisonOperator = false;


Quinn-Curtis Forums © 2000-2018 Quinn-Curtis, Inc. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.07