Home

User Manual - Quinn

image

Contents

1. de Visual Studio a ease Martine ert md t dent RE o 3 10 18 404 417 429 WET eR UIT ERIT IUUD e E RA D RON 9 215 NOB PRG S tus a e EM EUM e e 9 214 215 326 WebApplications 3 datos 429 Web ApplicatiOtis 5 oen cr ee phot e d er eet e trit Tot Bias Da Pr D ete ter PU te dont ces Web Applications METRE o 429 WECO m feces cerca ce wrest ERROR EORR e INGERTO RED PRI WECO 6 18 214 325 326 327 329 330 333 334 335 337 338 340 341 397 WECO T Supplemental ze cout eid cone eee ados 330 Western Electric Uli E Western Electric Rules eese eene nennen eene ennt nnns 214 325 326 Windows Applications 2 ete ie ee ireo i sierran a EEE EAEN NEn EES tAn EEEE EESK 404 Windows Applications Lie nS aa ra e e a i aa a eben Bie e Ro ee eE a aA ADPIC AMOO E E M 404 Windows IPPO oues dar orte e i epu o ex deos ente ie eire be cst d een 18 WortkingCoordm tes enn a e eee e OU ottenere Green 65 66 100 Workimngt GOrdinate Ss easet octo ox vast eta ax ee a pereunt eee 65 66 100 MorldGoordinates J oie tete eer Pe 65 66 100 WorldCoordinates cccccccccccccccsssssssssssccccccssessssssssssccsesesssssssssssesesseseseeceseeess 65 66 100 X Bar R 3 6 8 9 18 19 20 21 23 25 26 46 52 60 107 119 153 154 160 165 185 192 216 218 219 242 245 247 X Bar R 3 6 8 9 18 19 20 21 23 25 26 46 52 60 1
2. Display the time stamp row of the table spcChart EnableTimeValues true SpcChart EnableAlarmStatusValues true You can control the decimal precision of the sampled values using SpcChart ChartData DefectiveDecimalPrecision 1 You can control the decimal precision of the calculated values Range Sum using SpcChart ChartData CalculatedValueDecimalPrecision 1 SpcChart PrimaryChart DisplayFrequencyHistogram true SpcChart SecondaryChart DisplayFrequencyHistogram true spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR spcChart AutoLogAlarmsAsNotes true want no table at all use this instead title EF ee primary chart secondary chart histograms chart SpcChart UseNoTable true true true Place your chart title here spcChart ChartTable TimeItemTemplate TimeFormat ChartObj TIMEDATEFORMAT 24HMS SpcChart EnableScrollBar true spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL Creating SPC Charts in Windows Applications 411 training data SimulateData 20 30 5 Calculate the SPC control limits for both graphs of the current SPC chart X Bar R spcChart AutoCalculateControlLimits New data added after limits calculated SimulateData 100 30 10 Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range
3. Files of type Executable Files S View the MainPage xaml code and add the reference to SPCTimeVariableControlChart in the Grid layout panel The MainPage xaml file now looks like 406 Creating SPC Charts in Windows Applications lt UserControl x Class SPCApplicationl MainPage xmlns http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml xmlns d http schemas microsoft com expression blend 2008 xmlns mc http schemas openxmlformats org markup compatibility 2006 xmlns my clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL mc Ignorable d d DesignHeight 631 d DesignWidth 878 gt Grid x Name LayoutRoot Background White gt my2 SPCTimeVariableControlChart Margin 18 11 16 6 Name spcChartl Grid Row 1 EnableNotes false gt Grid UserControl You could have referenced any of the SPC charts found in the com quinncurtis spccharts namespace These are SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart 8 Display the MainPage asml cs behind code file It will look something like this using System using System Collections Generic using System Ling using System Net using System Windows
4. lt summary gt Summary description for XBarRChart lt summary gt Public Class XBarRChart Private startTime As New ChartCalendar SPC variable control chart type Private charttype As Integer SPCControlChartData MEAN RANGE CHART Number of samples per sub group Private numsamplespersubgroup As Integer 5 Number of datapoints in the view Private numdatapointsinview As Integer 17 The time increment between adjacent subgroups Private timeincrementminutes As Integer 15 Private spcChart As SPCTimeVariableControlChart Public Sub New tvc As SPCTimeVariableControlChart spcChart tvc Define and draw chart InitializeChart End Sub Public Sub InitializeChart Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData SPC Variable Control Charts 159 End Sub InitializeChart SPCTimeVariableControlChart Members Public Instance Constructors SPCTimeVariableControlChart Overloaded Initializes a new instance of the SPCTimeVariableControlChart class Public Instance Methods InitSPCTimeVariableControlChart Overloaded Initialize the class for a specific SPC chart type InitSPCTimeCusumControlChart Overloaded Initialize the class a cusum chart type The control chart type X Bar R
5. En Formi Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 14 11 44 12 14 12 44 13 14 13 44 14 14 14 44 15 34 15 44 16 14 16 44 17 14 17 44 18 14 18 44 19 14 2 4 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 200 0 180 0 100 0 060 0 220 NOTES 0 3 UCLP 0 29 102 d W w Q o PBAR 0 14 X a Uu 9 4 L1 0 0 i i H H H H T CLP 0 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 EL Logically enough the properties of the objects that make up each of these graphs are stored in properties named PrimaryChart and SecondaryChart Once the graph is initialized using the InitSPCTimeVariableControlChart or InitSPCBatchVariableControlChart method you can modify the default characteristics of each graph using these properties C Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes epoChart PrimaryChart XAxis LineColor Colors Blue spcChart PrimaryChart XAxis LineWidth A spcChart SecondaryChart YAxisl LineColor Colors Green spcChart SecondaryChart YAxis2 LineColor C
6. SPC Attribute Control Charts 257 public class FractionDefectivePartsControlChart ChartCalendar startTime new ChartCalendar SPC attribute control chart type int charttype SPCControlChartData FRACTION DEFECTIVE PARTS CHART Number of samples per sub group int numsamplespersubgroup 50 Number of defect categories int numcategories 6 Number of datapoints in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 30 SPCTimeAttributeControlChart spcChart public FractionDefectivePartsControlChart SPCTimeAttributeControlChart tac spcChart tac Define and draw chart InitializeChart void InitializeChart Initialize the SPCTimeAttributeControlChart spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart RebuildChartUsingCurrentData VB Public Class FractionDefectivePartsControlChart Private startTime As New ChartCalendar SPC attribute control chart type 258 SPC Attribute Control Charts Private charttype As Integer SPCControlChartData FRACTION DEFECTIVE PARTS CHART Number of samples per sub group Private numsamplespersubgroup As Integer 50 Number of defect categories Private numcategories As Integer 6 Number of datapoints in the view Private numdatapointsinview As Integer 17 The time increment be
7. Chart jon D ive Pa Per Numb s Numhe Percent Defe Number Defects Pern Simple Attribute Control action Defe arts m er Defects E EnablelnputStringsDisplay true Operator S Kafka EnableCategoryValues true 7 T 2 0 T 3 2 3 EnableTotalSamplesValues true N N N FRACT DEF e a 0 0 13 00 15 00 16 00 18 00 SPC Attribute Control Charts 269 The example code below is extracted from the TimeAttributeControlCharts SimpleA ttributeControlChart example program C wold InitializeChart Initialize the SPCTimeAttributeControlChart spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table spcChart ChartData Title Fraction Defective p Chart SpcChart ChartData PartNumber 321 SpcChart ChartData ChartNumber 19 SpcChart ChartData PartName Pre paint touchup SpcChart ChartData TheOperator S Kafka Display the Sampled value rows of the table SpcChart EnableInputStringsDisplay true Display the Sampled value rows of the table SpcChart EnableCategoryValues true Display the Calculated value rows of the table SpcChart EnableCalculatedValues true Display the total samples per subgroup value row SpcChart EnableTotalSamplesValues true Display the Notes row of the table S
8. void InitializeChart doub doub spec SpcC spcc Spec SpcC spec Spec spcC spec le le nar Dar Mart nart Nart Mart nart nart narre ProbabilityPlo Frob bilityFlo YAxisl LineWid YAxis2 LineWid L BubrldChartki IyL 2 Be 13 YAxisl LineColor th YAxis2 LineColor th 26 YAxisLabl LineColor xl 1 2 3 4 5 6 7 8 9 58 82 93 97 100 t InitProbabilityChart xl yl t LineColor Colors Red t ChartObjAttributes SymbolSize 12 Colors Green 3 Colors Blue 3 ChartColor DarkMagenta VB Frequency Histograms Pareto Diagrams Probability Charts 369 Sub InitializeChart Dim x1 As Double 1 0 2 3 4 5 6 7 8 9 Dim yl As Double 2 6 13 26 58 82 93 97 100 spcChart InitProbabilityChart xl yl SpcChart ProbabilityPlot SetColor Colors Red sets both line and fill color SpcC SpcC Spot Spec spcC spec spcC SpcC spcC End Sub hart ProbabilityPlot ChartObjAttributes SymbolSize 12 hart YAxisl LineColor Colors Green hart YAxisl LineWidth 3 hart ProbabilityPlot LineColor Colors Red hart ProbabilityPlot ChartObjAttributes SymbolSize 12 hart YAxis2 LineColor Colors Blue hart YAxis2 LineWidth 3 hart YAxisLabl LineColor ChartColor DarkMagenta hart Buildchare InitializeChart Pareto Diagrams The Pareto diagram is special type of
9. Get the default symbolAttrib attribute object for the symbols of the chart Set attributes before BuildChart Get the x axis of the chart object Get the x axis string labels object of the chart Get the x axis title object of the of the chart Get the y axis object of the frequency histogram part of the chart Get the y axis object of the cumulative Frequency Histograms Pareto Diagrams Probability Charts 375 Y AxisLabl Y AxisLab2 Y AxisTitlel Y AxisTitle2 Y Grid Public Instance Methods AddCategoryltem BuildChart Copy InitParetoChart InitParetoChartsDatasets SortCategoryItems frequency part of the chart Get the y axis labels object of the frequency histogram part of the chart Get the y axis numeric labels object of the cumulative frequency part of the chart Get the y axis title object of the frequency histogram part of the chart Get the y axis title object of the cumulative frequency part of the chart Get the y axis grid object of the chart Add an item to the category Values and categoryStrings arrays Overloaded Builds the Pareto chart using the base objects ChartView Overloaded Copies the source ParetoChart object Initializes the category values and the category strings for the Pareto chart Builds the histogram dataset histogramDataset using the values in frequency Values and frequencyLimits Sort the category values and category strings Changing Default Characteristics of the
10. PolarCoordinates AntennaCoordinates Attribute Class ChartAttribute ChartGradient QCChart2D Class Summary 65 This class derives from the WorldCoordinates class and extends the physical coordinate system of the plot area the area typically bounded by the charts axes to include the complete graph area the area of the chart outside of the plot area This class is an abstract base class derived from WorkingCoordinates and defines the routines needed to map the physical coordinate system of a plot area into a working coordinate system Different scale objects ChartScale derived are installed for converting physical x and y coordinate values into working coordinate values This class is a concrete implementation of the PhysicalCoordinates class and implements a coordinate system used to plot linear logarithmic and semi logarithmic graphs This class is a concrete implementation of the PhysicalCoordinates class and implements a coordinate system used to plot GregorianCalenar time based data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot elapsed time data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot polar coordinate data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot antenna coordinate data The antenna coordinate system differs from th
11. Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 10 11 40 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 2 2 0 0 1 3 2 2 3 2 7 1 1 1 6 4 3 2 4 3 1 9 1 7 3 5 5 2 1 1 6 3 0 1 0 1 FRACT DEF 0 100 0 040 0 240 0 060 0 220 0 180 0 180 0 160 0 100 0 240 0 060 0 240 0 100 0 200 0 140 0 120 0 160 NOTES N N N N N N N N N N N N GraphTopTableOffset 0 1 N N N N N 0 0 w SPC Control Limits There are two ways to set the SPC control limit for a chart The first explicitly sets the limits to values that you calculate on your own because of some analysis that a quality engineer does on SPC Variable Control Charts 187 previously collected data The second auto calculates the limits using the algorithms supplied in this software The quick way to set the limit values and limit strings is to use the charts ChartData SetControlLimitValues and ChartData SetControlLimitStrings methods This method only works for the default 3 sigma level control limits and not any others you may have added using the charts AddAdditionalControlLimit method discussed in the Multiple Control Limits section The data values in the controllimitvalues and controllimitstrings arrays used to pass the control limit information must be sorted in the following order SPC PRIMARY CONTROL TARGET SPC PRIMARY
12. UCL2 SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigm 2 SPCControlLimitRecord 1c13 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT Ba DOLI Ca SPCControlLimitRecord ucl3 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 35 UCL1 UCL1 SpcChart PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart PrimaryChart AddAdditionalControlLimit uc13 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal VB Dim sigma2 As Double 2 0 Dim sigmal As Double 1 0 Create multiple limits For PrimaryChart Dim 1c12 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCL2 LCL2 Dim ucl2 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCL2 UCL2 SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim 1c13 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCL1 LCL1
13. r UCL 37 71 BAR 29 98 RANGE 17 16 17 37 17 45 18 07 18 21 18 27 18 43 19 08 19 16 19 35 19 43 19 57 20 24 20 39 20 41 21 08 21 17 Note that even though the time stamp values do not have consistent time interval the data points are spaced evenly by batch number Creating a Variable Control Chart First select whether you want to use a time based variable control chart use SPCTimeVariableControlChart or a batch based variable control chart use SPCBatchVariableControlChart Use that class as the base class for your chart Since the two classes are so similar and share 95 of all properties in common only the SPCTimeVariableControlChart is discussed in detail with the differences between the two classes discussed at the end of the chapter The example below is extracted from the TimeVariableControlCharts XBarRChart example program Add a reference to the SPCTimeVariableControlChart to your MainPage xaml file UserControl x Class SPCApplication1 MainPage xmlnsz http schemas microsoft com winfx 2006 xaml presentation xmlns xz http schemas microsoft com winfx 2006 xaml xmlns dz http schemas microsoft com expression blend 2008 xmlns mcz http schemas openxmlformats org markup compatibility 2006 xmlns myz clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL mc Ignorable d d DesignHeight 631 d DesignWidth 878 gt Grid x Na
14. the statistical quality control expert Douglas Mongtomery Introduction to Statistical Quality Control 5 ed Hoboken New Jersey John Wiley amp Sons ISBN 9780471656319 Nelson Rules The Nelson rules were first published in the October 1984 issue of the Journal of Quality Technology in an article by Lloyd S Nelson AIAG Rules The AIAG Automotive Industry Action Group control rules are published in the their industry group Statistical Process Control Handbook Juran Rules Joseph M Juran was an international expert in quality control and defined these rules in his Juran s Quality Handbook McGraw Hill Professional 6 edition May 19 2010 ISBN 10 0071629734 Hughes Rules The only sources we could find for the Hughes rules were all second hand If anyone can direct is to an original source for the Hughes Rules please send an e mail to support quinn curtis com Duncan Rules Acheson Johnston Duncan was an international expert in quality control and published his rules in the text book Quality control and industrial statistics fifth edition Irwin 1986 Gitlow Rules Dr Howard S Gitlow is an international expert in Sigma Six TOM and SPC His rules are found in his book Tools and Methods for the Improvement of Quality 1989 ISBN 10 0256056803 324 Named and Custom Control Rule Sets The rules sets have many individual rules in common In particular the WECO rules and the Nelson rules have
15. MouseListener This class implements Net delegates that trap generic mouse events button events and mouse motion events that take place in a ChartView window A programmer can derive a class from MouseListener and override the methods for mouse events creating a custom version of the class MoveObj This class extends the MouseListener class and it can select chart objects and move them Moveable chart objects include axes axes labels titles legends arbitrary text shapes and images Use the MoveData class to move objects derived from SimplePlot FindObj This class extends the MouseListener class providing additional methods that selectively determine what graphical objects intersect the mouse cursor DataCursor This class combines the MouseListener class and Marker class Press a mouse button and the selected data cursor horizontal and or vertical line cross hairs or a small box appears at the point of the mouse cursor The data cursor tracks the mouse motion as long as the mouse button is pressed Release the button and the data cursor disappears This makes it easier to line up the mouse position with the tick marks of an axis MoveData This class selects and moves individual data points of an object derived from the SimplePlot class DataToolTip A data tooltip is a popup box that displays the value of a data point in a chart The data value can consist of the x value the y value x and y values group values and open
16. NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART numcategories In Attribute Control Charts this value represents the number of defect categories used to determine defect counts numsamplespersubgroup In an Attribute Control chart it represents the total sample size per sample subgroup from which the defect data is counted numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time 314 SPC Attribute Control Charts Update the chart data using the ChartData AddNewSampleRecord method using an override that has the batch number batch Counter below as the first parameter Even though a time stamp value is used in the AddNewSampleRecord method it is not used in the actual graph Instead it is used as the time stamp for the batch in the table portion of the chart C private void SimulateData for int i0 i lt 200 itt l VB double batchnumber batchCounter ChartCalendar timestamp ChartCalendar startTime Clone Simulate a new sample record DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART add a new sample record SpcChart ChartData AddNewSampleRecord batchnumber timestamp samples Simulate timeincrementminutes minute passing startTime Add ChartObj MINUTE timeincrementminutes batchCounter Private Su
17. The PrimaryChart object is an instance of the SPCChartObjects class The SPCChartObjects class contains the objects needed to display a single graph Below you will find a summary of the class properties Public Instance Properties AnnotationArray Get the array of TextObject objects representing the annotations of the chart AnnotationFont Set Get annotation font AnnotationNudge Set Get the x and y values use to offset a data points annotation with respect to the actual data point 320 SPC Attribute Control Charts AxisLabelFont AxisTitleFont ControlLabelPosition ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart GraphBackground BatchIncrement BatchStartValue BatchStopValue Header HeaderFont HistogramStartPos HistogramOffset MaxY MinY Set Get the font used to label the x and y axes Set Get the font used for the axes titles Set Get that numeric label for a control limit is placed inside or outside the plot area INSIDE PLOTAREA Get the array of the plot objects associated with control limits Get a reference to the charts tooltip Get Set the default background color for the graph area Set Get the number of control limits in the chart Get Set the default background color for the plot area Set to true to enable the drawing of t
18. Title Variable Control Chart MAMS Part Name Transmission Casing Bolt Operator J Fenamore Part No 283501 Operation Threading Machine 11 Chart No 17 Spec Limits Gage 8645 Units 0 0001 inch Zero Equals zero Date 10 6 2011 3 39 31 PM TIME 1539 1609 16 39 Sample 0 945 799 929 MA 945 872 891 960 MS 0 00 103 080 152 eft flat Sat 20 39 21 09 903 11 47 10 15 10 39 132 118 21 39 10 51 10 27 1 01 22 39 23 09 23 39 10 08 937 10 62 995 10 10 10 00 0 96 087 059 17 39 18 09 12 16 10 18 10 11 10 12 S 18 39 8 04 9 82 1 69 19 09 11 46 10 03 1 66 19 39 20 09 920 1034 9 94 10 04 167 129 17 09 11 66 9 96 SR SA RA ESO SS SA SA A ES Se LCL S3 9 00 The MAMS chart combines our Moving Average chart with a Moving Sigma chart The Moving Average chart is primary topmost chart and the Moving Sigma chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When calculating the Moving Sigma it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving sigma statistics 28 Standard SPC Control Charts Tabular CuSum Chart Dix Tit
19. VB Set the strings used in the header section of the table spoChart ChartData Title Variable Control Chart X Bar R spcChart ChartData PartNumber 283501 SpcChart ChartData ChartNumber 17 176 SPC Variable Control Charts SpcChart ChartData PartName Transmission Casing Bolt spcChart ChartData Operation Threading SpcChart ChartData SpecificationLimits SpcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 spcChart ChartData UnitOfMeasure 0 0001 inch spcChart ChartData ZeroEquals zero SpcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 The identifying string displayed in front of the input header string can be any string that you want including non English language strings For example if you want the input header string for the Title to represent a project name Project Name Project XKYZ for PerQuet Set the properties spcChart ChartData Title Project XKYZ for PerQuet spcChart ChartData TitleHeader Project Name VB SpcChart ChartData Title Project XKYZ for PerQuet spcChart ChartData TitleHeader Project Name Change other header strings using the ChartData properties listed below e TitleHeader PartNumberHeader e ChartNumberHeader e PartNameHeader e OperationHeader e OperatorHeader e MachineHeader e D
20. defaultSampleRowHeaderPrefix Sample Row header for Sample rows defaultDefectRowHeaderPrefix Defect 7 Row header for Defect rows batchColumnHead Batch Default string used as the batch number column head in the log file timeStampColumn Time Stamp Default string used as the time stamp column head in the log file sampleValueColumn Sample Default string used as the sample value column Regionalization 395 head in the log file notesColumn Notes Default string used as the notes value column head in the log file defaultDateFormat M dd yyyy Default date format used by the software defaultTimeStampFormat M dd yyyy Default full date time format used by the software HH mm ss defaultDataLogFilenameRoot SPCDataLog Root string used for auto naming of log data file dataLogFilename SPCDataLog Datalog default file name frequencyHistogramXAxisTitle Measurements Frequency Histogram default x axis title frequencyHistogramY AxisTitle Frequency Frequency Histogram default y axis title frequencyHistogramMainTitle Frequency Frequency Histogram default main title Histogram paretoChartX AxisTitle Defect Category Pareto chart x axis title paretoChartY Axis1Title Frequency Pareto chart left y axis title paretoChartY Axis2Title Cumulative 95 Pareto chart right y axis title paretoChartMainTitle Pareto Diagram Pareto chart main titl
21. 0 121 First of five samples samples 1 0 212 Second of five samples 120 SPC Control Data and Alarm Classes samples N 1 0 133 Last of the samples in the sample subgroup Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples VB Y GetCurrentSampleSubgroupSize is a fictional method that gets the current number of samples in the sample subgroup The value of N Y can vary from sample interval to sample interval You must have a valid sample value for each element N GetCurrentSampleSubgroupSize Size array exactly to a length of N Dim samples As DoubleArray New DoubleArray N ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples samples N 1 0 133 Last of the samples in the sample subgroup Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples Adding New Sample Records for Attribute Control Updating p and np charts Fixed Sample Subgroup Size p chart FRACTION DEFECTIVE PARTS CHART PERCENT DEF ECTIVE PARTS CHART np chart NUMBER DEFECTIVE PARTS CHART DPMO NUMBER DEFECTS PER MILLION CHART SPC Control Data and Alarm Classes 121 In attribute control charts the meaning of the data in the samples array varies
22. 1 6 8 19 39 46 121 256 260 265 Ipsorum LT DPMO Cai cr cp E 8 39 256 265 288 Dunacn Rules 101 era ES dd uerit bs o ue A LEE Ee Ea HU eM i ars Duncan Rules ia Eo e E eret ack vi 325 327 328 334 398 Duncan Rul s eva acra dite aca wha a eee re e a eget di bb Certe ep ERROR eee s D ncan oet 1 7 9 18 48 214 325 327 328 332 333 334 335 340 341 398 Elapsed TimeA utoScale nica esee eite ind e EE bte t ee eral e er e e NER Re d 67 68 100 ElapsedTimeAxis 69 73 76 Elapsed TimeAxis abels trato t ot dies ahd ob Sob lo teta coll et DT 75 76 101 ElapsedTimeGroupDatase ElapsedTimeLabel ElapsedTimeScale ElapsedTimeSimpleDatase 63 64 68 100 ErrtorBarPlot ttn tee DE ae UO e eO O NH OR CEG aE Te BEER Ve ere 78 81 101 EWMA chart 25 26 154 196 197 EWMA NIV PED P n EWMA chait etie Ene tete oat radios 25 26 154 195 196 197 Inns M 95 96 100 A O 95 96 100 Flo atmnigBarPlot aix Y ene A A NO ERI ER eee od IR ASE 78 81 101 ElostngBAL A Cer S dev ER et CM uds 78 81 101 lareiriadallisuci EE 8 354 382 FrequencyHistogram 8 18 49 56 229 251 303 304 320 321 352 354 355 356 359 360 361 362 363 364 380 382 383 397 408 409 412 421 424 FrequencyHistogramChart 8 18 49 56 251 320 321
23. 162 4 Cpk 02 02 03 03 03 03 02 02 02 02 02 02 02 02 02 02 02 Cpm 03 03 03 03 03 03 03 03 03 03 03 03 03 03 0 3 03 0 3 Ppk 0 2 02 0 3 0 3 0 3 103 103 1 03 102 103 02 02 02 02 02 02 0 3 ALARM I I I I I I H H DH H H IH I DHI lH l I I lI l l I IH I I l I l l NOTES Y Y N Y N N N N N N N Y Y N N N C spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL spcChart ChartTable BackgroundColorl Colors White SpcChart ChartTable BackgroundColor2 Colors Gray VB spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL spcChart ChartTable BackgroundColorl Colors White spcChart ChartTable BackgroundColor2 Colors Gray Table and Chart Fonts There are a large number of fonts that you have control over both the fonts in the table and the fonts in the chart The programmer can select a default font as in the case of non US character set or select individual fonts for different elements of the table and charts Table Fonts The table fonts are accessed through the charts ChartTable property Below is a list of accessible table fonts Property Name Description TimeLabelFont The font used in the display of time values in the table SampleLabelFont The font used in the display of sample numeric values in the table CalculatedLabelFont The font used in
24. 17 Spec Limits Gage 8645 Units 0 0001 inch Zero Equals zero 20 04 20 34 2104 2134 2204 2234 23 04 23 34 959 970 930 989 1020 1018 992 935 10 041 10 013 9 902 9862 9863 9 917 9991 9871 UCL S3 11 00 LCL S3 9 00 26 Standard SPC Control Charts The MA chart is another alternative to the preceding Shewhart type control charts X Bar R and I R charts in particular and is most useful for detecting small shifts in the process mean It uses a moving average where the previous N 1 sample values of the process variable are averaged together along with the process value to produce the current chart value This helps to smooth the incoming data minimizing the affect of random noise on the process Unlike the EWMA chart the MA chart weights the current and previous N 1 values equally in the average While the MA chart can often detect small changes in the process mean faster than the Shewhart chart types it is generally considered inferior to the EWMA chart Like the Shewhart charts if the MA value exceeds the calculated control limits the process is considered out of control MAMR Chart Moving Average Moving Range MAMR Moving Average Moving Range Chart with Sample Values Plotted wares a EWMA Chart MA Chart CUSum Chart CUSum Chart 2 MAMR Chart MAMS Chart Title Variable Control Chart MAMR Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec
25. 2 SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord BASIC RULES Use the WECO rules This corresponds WECO rules 1 4 which in our organization of the rules is 1 to 8 332 Named and Custom Control Rule Sets SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Use the WECO rules This corresponds WECO rules 1 8 which in our organization of the rules is 1 to 12 SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECOANDSUPP RULES Use the complete set of Nelson rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord NELSON RULES Use the complete set of AIAG rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord AIAG RULES Use the complete set of Juran rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord JURAN RULES Use the complete set of Hughes rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord HUGHES RULES Use the complete set of Gitlow rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord GITLOW RULES Use the complete set of Duncan rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord DUNCAN RULES VB Use the standard 3 sigma control limits Equivalent to WECO control rules 1 and 2 spcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord BASIC RULES Use the WECO rules This corresponds WECO rules 1 4 whi
26. 2 6 9 13 5 7 16 5 6 2 18 1 1 2 3 7 1 FRACT DEF 0 040 0 120 0 180 0 260 0 100 0 140 0 300 0 100 0 120 0 040 0 260 0 020 0 300 0 040 0 060 0 140 0 260 UCL 0 28 gt N PBAR 0 14 e zn FRACT DEF C Chart alarm emphasis mode spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL VB Chart alarm emphasis mode spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL The scatter plot symbol used to plot a data point in the chart is normally a fixed color circle If you turn on the alarm highlighting for chart symbols the symbol color for a sample interval that is in an alarm condition will change to reflect the color of the SPC Attribute Control Charts 309 associated alarm line In the example above a low alarm blue circle occurs at the beginning of the chart and a high alarm red circle occurs at the end of the chart Alarm symbol highlighting is turned on by default To turn it off use the SPCChartBase ALARM NO HIGHLIGHT SYMBOL constants TableAlarmEmphasisMode Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals p 44 10 14 10 44 11 14 11 44 12 14 12 44 7 44 8 14 8 44 B 44 14 14 14 44 15 14 15 44 Defect 1 Defect 3 FRACT DEF 4 140 0 000 0 040 0 080 0 260 0 200 0 120 1060 0 180 0 060 0 100 0 240 NE 00 orm i i i i CL 70 00 20 15 10 5 0 8 00 9 0
27. 352 354 356 359 360 361 362 380 408 421 FrequencyHistogramChart 8 18 49 56 251 320 321 352 354 355 356 359 360 361 362 380 408 421 Gnd oU OI CER G etlow Rules dente eoe ete e tem ete en e vi 325 327 328 334 398 GitlOw cece 1 7 9 18 214 325 327 328 330 332 333 334 335 340 398 ics T E iii 67 68 87 101 SON NN ELLE E E A PE 67 68 87 101 Gu O A Grid 5 14 15 49 56 57 58 62 93 101 149 157 178 180 240 252 257 275 277 312 322 359 360 369 377 381 388 389 406 407 408 416 419 420 421 428 Grid usi NS eee pisos O e o et etie d e Yo Poh a enm nei edib dia 93 101 Crinjsr idque T sseQonssacie E A E SO 78 82 101 GroupBorPlot eo tp e petto v ncn RA eco Sea ciel Mv de 78 82 101 Gro pi9atasepe sti e o da oai viet a Niel deberi dll cote eoe E od oie a 63 64 67 68 100 GOIOUpDatdSeb eie uisa tiet ast E onu oed ET 63 64 67 68 100 GroupP lotas nieiatenierniset ate etae me ere ndi a da ta latiendo 76 78 79 80 81 82 83 84 85 101 GTOUDPIOL iiit een e etre iecore ox e it 76 78 79 80 81 82 83 84 85 101 einmal 78 83 101 T HiastogrambPlot cai ei tite tope CERERI ST NOD DROPPED HERE NOLITE IERI AS 78 83 101 362 HistogramPlot iecore tes 78 83 101 354 355 359 362 363 383 386 Hughes Rules
28. 354 245 434 476 352 185 144 165 105 461 386 263 476 304 180 557 282 323 293 539 318 251 2218 472 218 199 330 109 101 13 300 119 380 410 206 122 238 SpcChart InitFrequencyHistogram freqLimits freqValues spcChart ChartOrientation ChartObj VERT DIR spcChart BarFillColor ChartColor LightCoral spcChart FrequencyHistogramPlot SetSegmentFillColor 4 Colors Blue spcChart BuildChart End Sub InitializeChart Special Considerations 1 The FrequencyHistogramChart class uses the QCChart2D HistogramPlot plot object class to draw the histogram bars That class uses individually assignable colors for each bar of the bar plot The standard ChartObj LineColor and ChartObj FillColor properties do not work to change the color of the histogram Frequency Histograms Pareto Diagrams Probability Charts 361 bars in this case Instead you can change the histogram bar colors by calling SetSegmentLineColor and SetSegmentFillColors C For int 1 0 i 9r itt t spcChart FrequencyHistogramPlot SetSegmentFillColor i Colors Blue spcChart FrequencyHistogramPlot SetSegmentLineColor i Colors Black VB Dim i As Integer For i 0 To 8 spcChart FrequencyHistogramPlot SetSegmentFillColor i Colors Blue spcChart FrequencyHistogramPlot SetSegmentLineColor i Colors Black Next i You can also use the utility properties BarFillColor BarLineColor and BarLineWidth we added to the Frequ
29. 5er e epe ten eee eed eet e dee dee eve e re e PG dete re ee dee Hughes 1 7 9 18 48 214 325 327 328 329 331 333 334 335 338 339 340 341 398 434 Index Hughes Rs e NR OD t vi 325 327 328 334 338 339 398 Image objects zc dee A ORT GE ec TU Re re ETE EE EE 94 95 102 Im ge RenderB n M 380 Butter dime oae tet elem ed 97 100 380 384 387 389 390 391 Indiyidual Rad aper aD e eene 3 6 19 20 24 46 53 106 153 154 160 194 242 Individual Range 3 6 19 20 24 46 53 106 117 145 153 154 160 194 242 Initializing the SPCControlChartData Class apa TEL Isolated MOTA AAA AA AA E E AA re t gay eme p beke ox EI RM 98 131 132 133 135 381 390 Juran Rulessc eit iR eee D PER Hm Re o EEN BRE EN EH EIUS J rati tes 1 2 6 9 18 48 214 325 327 331 333 334 335 340 341 398 J ram Rules oon ES ces ola vi 325 327 334 398 Depende danses end A O A O e BN d e n e ree da Eus 92 96 101 Legend classes Pu 92 101 TIcependlItefimzcs e ta i ont detiene dite ete en d et Pent rae eee E OEA E 92 101 Leen tem Scarica M 92 101 LA Cale RET PM eccPrTP cL 67 100 TnearAXISi uideo O EET RRE 50 69 70 75 76 93 101 Tent AT AAS ERREUR P cp eP EN EMANAN ee bees 50 69 70 75 76 93 afiearScale 3 A eine AS es Phe AA E D OD a
30. Cpm 028 i j Ppk 0 19 i f 4 re TT NOTES Note for sample subgroup 48 7 i 2 Lathe cutting tool broke i pa 10 A Replaced with new Aeon cutting tool i H m m o 60 40 20 0 0 00 8 10 06 mj If you are displaying the Notes line in the table portion of the chart the Notes entry for a sample subgroup will display Y if a note was recorded for that sample subgroup or N if no note was recorded Notes are recorded using one of the ChartData AddNewSampleRecord overrides that include a notes parameter or by using the ChartData SetNotes or ChartData AppendNotes methods See the section Updating Chart Data If you click on a Y in the Notes row for a sample subgroup the complete text of the note for that sample subgroup will display in a RichTextBox immediately above the Y You can actually edit the notes in the RichTextBox Notes Tooltip 232 SPC Variable Control Charts Simple Attribute Control Chat Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 16 46 17 16 17 46 18 16 18 46 19 16 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 FRACT DEF PBAR 0 13 Ww ul a E o a u CLP 0 00 20 15 10 5 0 4 20 00 s 0 00 12 02 05 E C private void SimulateData St
31. DefaultControlLimitSigma EnableAlarmStatus Values EnableCategoryValues EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableScrollBar EnableTimeValues EnableTotalSamplesValues GraphBottomPos GraphStartPosX GraphStartPosY 1 SPC Variable Control Charts 161 Overloaded Initializes a new instance of the SPCChartBase class Set to true to automatically log alarms in the notes log Get Set an additional margin in normalized coordinates if only the primary graphs is displayed allowing for the x axis labels Set to SPCChartBaseALARM HIGHLIGHT SYMBOL to highlight the process variable symbol if an alarm condition exists Set to Set to SPCChartBase ALARM NO HIGHLIGHT SYMBO L to turn off alarm highlighting Get the object that holds the descriptive text sampled and calculated values associated with the control chart Returns true if the control chart has been initialized at least once Get the object that holds the data table information needed to display the data table along with the chart Set Get that SPC control limits are to be calculated using the 3 sigma level standard If set true enables the alarm status row of the chart table If set true enables the category or sample values rows of the data table If set true enables data tooltips If set true enables the input string rows of the data table If set true enables the notes row of the data table If set true enables data
32. Get Set the text column spacing Set Get the offset between the start of the row and the top of the text in normalized coordinates Get Set the text row spacing Get Set the time column spacing Get Set the TimeLabel object used as a template for displaying time values in the table 150 SPC Control Data and Alarm Classes TimeLabelFont TimeRowSpacing Public Instance Methods AddCalculatedItem AddHorizontalBar AddNotesItem AddNumericltem AddStringItem AddTimeltem Clone Copy GetChartLabel IncrementRow InitDefaults Get Set the font used in the display of time values in the table Get Set the time row spacing Overloaded Add a calculated numeric item to the table using the specified column spacing increment Add a horizontal bar as a row background for the table Overloaded Add a string item to the table using the specified column spacing increment Overloaded Add a numeric item to the table using the specified column spacing increment Overloaded Add a string item to the table using the specified column spacing increment Overloaded Add a time item to the table using the specified column spacing increment Returns an object that is a clone of this object Overloaded Copies the source object Get a specific ChartLabel object in the chartLabelArray array list Overloaded Add another row to the table using the specified row spacing increment Initialize default values f
33. GraphStartPosY2 GraphStopPosX GraphStopPosY 1 GraphStopPosY2 GraphTopTableOffset HeaderStringsLevel InterGraphMargin MultipleMouseListener PrimaryChart ScrollBarBottomPosition ScrollBarPixelHeight SecondaryChart SPCChartType of the plotting area for the secondary chart Get Set the left edge using normalized coordinates of the plotting area for both primary and secondary charts Get the top edge using normalized coordinates of the plotting area for the primary chart Get the top edge using normalized coordinates of the plotting area for the secondary chart Get Set the right edge using normalized coordinates of the plotting area for both primary and secondary charts Get the bottom edge using normalized coordinates of the plotting area for the primary chart Get the bottom edge using normalized coordinates of the plotting area for the secondary chart Get Set the offset of the top of the primary chart from the bottom of the data table using normalized coordinates Set Get the level of header strings to include in the chart Use one of the SPCControlChartData header strings constants HEADER STRINGS LEVELO HEADER STRINGS LEVELI HEADER STRINGS LEVEL2 or HEADER STRINGS LEVEL3 Get Set the margin in normalized coordinates between the primary and secondary charts Set Get the MultiMouseListener Get the object that holds he the chart objects needed to display the primary chart Get Set the botto
34. Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 10 6 2011 3 39 31 PM TIME 15 39 16 09 16 39 17 09 17 39 18 09 18 39 19 09 19 39 20 09 20 39 21 09 21 39 22 09 22 39 23 09 23 39 Sample 0 945 7 99 929 11 66 1216 10 18 804 1146 920 1034 903 1147 1051 940 1008 937 10 62 MA 945 872 891 960 1011 1012 982 1003 994 1004 1015 1039 1027 996 995 1010 10 00 146 146 367 417 417 412 412 412 342 342 244 244 244 244 210 125 UCL S3 11 47 X 10 32 LCL S3 9 16 UCL 53 4 76 MR SNA ooo MR 2 62 LCL S3 0 48 The MAMR chart combines our Moving Average chart with a Moving Range chart The Moving Average chart is primary topmost chart and the Moving Range chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When Standard SPC Control Charts 27 calculating the Moving Range it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving range statistics MAMS Chart Moving Average Moving Sigma MAMS Moving Average Moving Sigma Chart with Sample Values Plotted i EWMA Chart MAChart CUSum Chat CUSumChart 2 MAMR Chart MAMS Chart
35. MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART or TABCUSUM CHART numsamplespersubgroup Specifies the number of samples that make up a sample subgroup numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time Update the chart data using a ChartData AddNewSampleRecord override that has the batch number batchCounter below as the first parameter Even though a time stamp value is also used in the AddNewSampleRecord method it is not used in the actual graph Instead it is used as the time stamp for the batch in the table portion of the chart The following code is extracted from the BatchVariableControlChart BatchDynXBarSigmaChart example program 242 SPC Variable Control Charts Batch XBarR Batch Individual Range Batch Dyn Bar Sigma Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 18 12 33 12 48 13 03 13 8 1333 13 48 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 32 25 27 32 29 29 23 24 35 28 31 26 31 C private void SimulateData batch number for a given sample subgroup int batchCounter 0 for int 0 1 lt 200 i Important to make a new ChartCalendar object each time ChartCalendar timestamp ChartCalendar startTime Clone Simulate a sample subgroup record DoubleArray samples
36. Median Range X Bar Sigma Individual Range EWMA MA establishes the variable control charts InitSPCTimeVariableControlChart initialization routine Note that the X Bar Sigma chart with a variable subgroup sample size is initialized using InitSPCTimeVariableControlChart with a charttype value of MEAN SIGMA CHART VSS X Bar Sigma charts with sub groups that use a variable sample size must be updated properly See the section Adding New Sample Records to a X Bar Sigma Chart Variable Subgroup Sample Size in the SPC Control Data and Alarm Classes chapter SPCTimeVariableControlChart InitSPCTimeVariableControlChart Method This initialization method initializes the most important values in the creation of a SPC chart If you are using the creating a cusum chart type TABCUSUM CHART your can use the similar InitSPCTimeCusumControlChart method instead That version of the Init routine has added parameters for the H and K value of the tabular cusum chart VB Overloads Public Sub InitSPCTimeVariableControlChart _ ByVal charttype As Integer ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ ByVal timeincrementminutes As Integer _ Ct public void InitSPCTimeVariableControlChart int charttype int numsamplespersubgroup int numdatapointsinview int timeincrementminutes E Parameters 160 SPC Variable Control Charts charttype The SPC chart type parameter Use one of the SPCContr
37. Once you have those two values everything else is automatic Just call the UpdateControlLimitUsingMeanAndSigma method It will run through all of the control limit records and fill out the appropriate limit values and other critical parameters SPCControlChartData UpdateControlLimitsUsingMeanAndSigma Method Visual Basic Declaration Public Sub UpdateControlLimitsUsingMeanAndSigma _ chartpos As Integer _ mean As Double sigma As Double _ C public void UpdateControlLimitsUsingMeanAndSigma int chartpos double mean double sigma Named and Custom Control Rule Sets 335 Parameters chartpos specifiy either SPC PRIMARY CONTROL TARGET or SPC SECONDARY CONTROL TARGET mean specify the process mean sigma specify the process sigma double processMean your process mean double processSigma your process sigma SpcChart ChartData UpdateControlLimitsUsingMeanAndSigma SPCChartObjects PRIMARY CHART processMean processSigma The center line value and sigma have different meanings for the Primary and Secondary charts So the UpdateControlLimitsUsingMean and Sigma applies to only one at a time If you use it for the secondary chart control limits use your historical center line value for the secondary chart type you are using Calculate the sigma value as 1 3 UCL center line where UCL is your historical 3 sigma upper control limit for your secondary chart You can also auto calculate the control limits by
38. ProbabilityAutoScale Probability Coordinates and probability axes Probability Axis ProbabilitySigmaA xis ProbabilityScale The ProbabilityScale class implements a cumulative normal probability coordinate system for a single coordinate x or y Two such scales provide the scaling routines for x and y in an PhysicalCoordindates derived class CartesianCoordinates for example This allows for different x and y scale types linear cumulative normal probability time to be installed independently for x and y coordinates 58 Class Architecture Probability AutoScale The ProbabilityAutoScale class is used with cumulative normal probability coordinates and auto scales the plotting area of graphs and to set the minimum and maximum values of the axes displayed in the graphs Probability Coordinates The ProbabilityCoordinates class extends the PhysicalCoordinates class to support a y axis probability scale in an xy coordinate plane Probability Axis The Probability Axis class implements a probability axis where the major tick marks are placed at intervals appropriate to a cumulative probability scale ProbabilitySigmaAxis The ProbabilitySigmaAxis class implements a linear axis where the tick marks are placed at linear intervals on the sigma levels of the associated probability scale NotesLabel The NotesLabel class displays the Notes items in the SPC table NotesToolTip The NotesToolTip displays the Notes tooltip for the notes item
39. Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Set the SPC text for a specific SPC chart limit Set the SPC control limit text for an SPC control chart Set the SPC value of a specific SPC chart limit Set the SPC control limit values for an SPC control chart Set data table row header for the sampled or category item Overloaded Simulates a defect measurement for a SPC Attribute Control chart with a specified mean Used with NUMBER DEFECTS CHART and NUMBER DEFECTS PERUNIT CHART charts Overloaded Simulates a sample measurement for a SPC Variable Control chart with a specified mean value This method sorts the objects in the controlLimitValues array in the ascending value of their alarm value Returns a String that represents the current Object Returns true if an alarm transition has taken place Delegate for nodification each time the check of an process variable produces an alarm state condition Delegate for notification each time the 114 SPC Control Data and Alarm Classes check of an process variable produces a change of state in alarm state condition Initializing the SPCControlChartData Class The control charts InitSPC method call initializes the SPCControlChartData object This establishes the SPC chart type how many samples per subgroup there are and how many SPCSampledValueRecord objects are stored internal to the SPCCon
40. SpcChart PrimaryChart ControlLimitLineFillMode True UCLP 0 279 UCL2 0 231 UCL1 0 183 PBAR 0 134 LCL1 0 086 LCL2 0 038 LCLP 0 000 12 00 13 00 5 A H 18 00 Control Limit Fill Option used with 1 2 and 3 sigma control limits You can also add additional control limits one at a time By default you get the 3 sigma control limits So additional control limits should be considered 2 sigma and 1 sigma control limits Do not confuse control limits with specification limits which must be added using the AddSpecLimit method There are two steps to adding additional control limits creating a SPCControlLimitRecord object for the new control limit and adding the control limit to the chart using the charts AddAdditionalControlLimit method It is critical that you add them in a specific order that order being Primary Chart SPC LOWER CONTROL LIMIT 2 2 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 2 2 sigma upper limit Primary Chart SPC LOWER CONTROL LIMIT 1 1 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 1 1 sigma upper limit C SPC Attribute Control Charts 295 double sigma2 2 0 double sigmal 1 0 Create multiple limits SPCControlLimitRecord 1c12 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCL2 LCL2 SPCControlLimitRecord ucl2 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCL2
41. The example programs for SPC Control Chart Tools for Silverlight software are supplied in complete source In order to save space they have not been pre compiled which means that 10 Introduction many of the intermediate object files needed to view the main form are not present This means that ChartView derived control will not be visible on the main Window if you attempt to view the main form before the project has been compiled The default state for all of the example projects should be the Start Page Before you do view any other file or form do a build of the project This will cause the intermediate files to be built If you attempt to view the main Window before building the project Visual Studio sometimes decides that the ChartView control placed on the main form does not exist and deletes it from the project There are two versions of the for SPC Control Chart Tools for Silverlight class library the 30 day trial versions and the developer version Each version has different characteristics that are summarized below 30 Day Trial Version The trial version of SPC Control Chart Tools for Silverlight is downloaded in a file named Trial QCSPCChartSLR22x The 30 day trial version stops working 30 days after the initial download The trial version includes a version message in the upper left corner of the graph window that cannot be removed Developer Version The developer version of SPC Control Chart Tools for Silverlight is downloa
42. Think of the last car that you bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the number of defects are tracked u chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of Standard SPC Control Charts 35 the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated Attribute Control Charts Attribute Control Charts are a set of control charts specifically designed for tracking defects also called non conformities These types of defects are binary in nature yes no where a part has one or more defects or it doesn t Examples of defects are paint scratches discolorations breaks in the weave of a textile dents cuts etc Think of the last car that you bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the
43. True spcChart EnableAlarmStatusValues True You can control the decimal precision of the sampled values using spcChart ChartData DefectiveDecimalPrecision 1 You can control the decimal precision of the calculated values Mean Range Sum using SpcChart ChartData CalculatedValueDecimalPrecision 1 SpcChart PrimaryChart DisplayFrequencyHistogram True SpcChart SecondaryChart DisplayFrequencyHistogram True spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR SpcChart AutoLogAlarmsAsNotes True want no table at all use this instead primary chart secondary chart histograms chart title SpcChart UseNoTable true true true Place your chart title here spcChart ChartTable TimeItemTemplate TimeFormat ChartObj TIMEDATEFORMAT 24HMS SpcChart EnableScrollBar True spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL training data SimulateData 20 30 5 Calculate the SPC control limits for both graphs of the current SPC chart X Bar R SpcChart AutoCalculateControlLimits Creating SPC Charts in Windows Applications 423 New data added after limits calculated SimulateData 100 30 10 Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange spcChart RebuildChartUsi
44. UCL R Da R Center line R LCL 0 R in this case is the average of the moving ranges X in this case is the mean of the samples Where the constants E and D are tabulated in every SPC textbook for various sample sizes EWMA Chart Exponentially Weighted Moving Average SPC Variable Control Charts 195 A EWMA chart showing the variable control limits actual values and EWMA values Hax A Chart CUSum Chart CUSum Chart 2 Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 5 2008 5 07 52 PM Time 17 07 17 37 18 07 18 37 19 07 19 37 20 07 20 37 21 07 21 37 22 07 22 37 23 07 23 37 0 07 0 37 1 07 Sample 40 9 45 7 99 929 11 66 12 16 10 18 804 1146 9 20 10 34 9 03 1147 10 51 39 40 10 08 29 37 10 62 EWMA 9 945 9 750 9 704 9 899 10 125 10 131 9 922 10 076 9 988 10 023 9 924 10 078 10 122 10 049 10 053 9 984 10 048 MEAN 945 7 99 929 11 66 12 16 10 18 804 1146 920 1034 9 03 1147 10 51 940 10 08 29 37 10 62 S icr e a gc d x UCL 10 7 T T T T T T T T T T T T T T T T T T j 18 00 19 00 22 00 23 00 0 00 1 00 3 06 08 The current value z for an EWMA chart is calculated as an exponentially weighted moving average of all previous samples y Goma 1 enl where Xi is the sample value for ti
45. Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 4 15 2008 4 08 49 PM TIME 6 23 6 38 6 53 7 08 7 23 7 38 7 53 8 08 8 23 8 38 8 53 9 08 9 23 9 38 9 53 10 08 10 23 MEAN 32 0 28 2 325 23 2 26 5 30 2 26 6 28 4 36 5 28 7 27 7 288 29 3 30 0 35 0 27 3 30 0 RANGE 16 7 17 6 16 7 12 3 15 0 14 7 17 8 16 9 15 7 159 21 1 98 19 3 19 0 11 7 145 17 7 SUM 160 2 141 0 162 5 116 1 132 3 151 1 132 9 142 0 182 6 143 3 138 6 143 8 146 4 150 0 175 2 136 5 150 0 Cpk 0 173 0 172 0 173 0 170 0 169 0 169 0 167 0 167 0 169 0 168 0 167 0 167 0 166 0 166 0 168 0 167 0 166 Cpm 0 229 0 228 0 228 0 228 0 227 0 227 0 227 0 226 0 226 0 226 0 225 0 225 0 225 0 224 0 225 0 225 0 224 Ppk 0 168 0 167 0 168 0 165 0 164 0 164 0 162 0 162 0 163 0 163 0 162 0 162 0 161 0 161 0 163 0 162 0 161 ALARM ele le eee er le ele le ee He ee iir iiri ee e le e ee NOTES N N N N N N N N N N N N N N N N N The example above uses the ALARM HIGHLIGHT TEXT mode Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 4 15 2008 4 11 27 PM TIME 12 56 13 11 13 26 13 41 13 56 14 26 14 41 14 56 15 11 15 26 15 41 15 56 16 11 16 26 16 41
46. color of the grid lines Extracted from the TimeVariableControlCharts IndividualRangeChart example program Title Variable Control Chart Individual Range Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 12 21 2005 1 31 18 PM Time 13 31 14 001 14 31 15 001 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 21 01 2131 C spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor Bisque spcChart ChartTable BackgroundColor2 ChartColor LightGoldenrodYellow VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor Bisque 178 SPC Variable Control Charts SpcChart ChartTable BackgroundColor2 ChartColor LightGoldenrodYellow Extracted from the TimeVariableControlCharts MedianRangeChart example program Title Variable Control Chart Median Range Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 12 21 2005 1 36 56 PM Ci spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND spcChart ChartTable BackgroundColorl Cha
47. control charts InitSPCTimeAttributeControlChart initialization routine SPCTimeAttributeControlChart InitSPCTimeAttributeControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub InitSPCTimeAttributeControlChart _ ByVal charttype As Integer _ ByVal numcategories As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ ByVal timeincremenminutest As Integer _ public void InitSPCTimeAttributeControlChart int charttype int numcategories int numsamplespersubgroup int numdatapointsinview int timeincrementminutes Parameters charttype Specifies the chart type Use one of the SPC Attribute Control chart types PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART numcategories 260 SPC Attribute Control Charts In Attribute Control Charts this value represents the number of defect categories used to determine defect counts numsamplespersubgroup In an Attribute Control chart it represents the total sample size per sample subgroup from which the defect data is counted numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time timeincremenminutes Specifies the normal time increment between adjacent subgroup samples The image b
48. depending on whether the attribute control chart measures the number of defective parts p and np charts or the total number of defects u and c charts The major anomaly is that while the p and np charts plot the fraction or number of defective parts the table portion of the chart can display defect counts for any number of defect categories i e paint scratches dents burrs etc It is critical to understand that total number of defects 1 e the sum of the items in the defect categories for a give sample subgroup do NOT have to add up to the number of defective parts for the sample subgroup Every defective part not only can have one or more defects it can have multiple defects of the same defect category The total number of defects for a sample subgroup will always be equal to or greater than the number of defective parts When using p and np charts that display defect category counts as part of the table where N is the numcategories parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart initialization call the first N 0 N 1 elements of the samples array holds the defect count for each category The N 1 th or element N in the array element of the samples array holds the total defective parts count For example if you initialized the chart with a numcategories parameter to five signifying that you had five defect categories you would use a samples array sized to six as in the code below
49. double hValue 5 Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement spcChart ChartData CusumHValue hValue SpcChart ChartData CusumKValue kValue SpcChart ChartData ProcessMean processMean VB Private charttype As Integer SPCControlChartData TABCUSUM CHART Private processMean As Double 10 Private kValue As Double 0 5 5 Private hValue As Double Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes SpcChart ChartData CusumHValue hValue SpcChart ChartData CusumKValue kValue SpcChart ChartData ProcessMean processMean Variable SPC Control Limits There can be situations where SPC control limits change in a chart If the control limits change you need to set the following ControlLineMode property to SPCChartObjects CONTROL LINE VARIABLE as in the example below The default value is SPCChartObjects CONTROL LINE FIXED C spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE spcChart SecondaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE 204 SPC Variable Control Charts VB spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE spcChart SecondaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE
50. schemas openxmlformats org markup compatibility 2006 mc Ignorable d d DesignHeight 300 d DesignWidth 400 gt lt Grid x Name LayoutRoot Background White gt lt Grid gt lt UserControl gt The window does not yet have any content First define a default size for the window by adjusting the DesignHeight and DesignWidth properties and add references to the QCChart2D and QCSPCChart namespaces In this case the QCChart2D namespace is com quinncurtis chart2dsl and it is located in the assembly DLL with the name QCChart2DSL The QCSPCChart namespace is Creating SPC Charts in Windows Applications 405 com quinncurtis spcchartsl and it is located in the assembly DLL with the name QCSPCChartSL So add the following line under the other xmlns namespace tags xmlns my clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL These lines need to be resolved by adding a references to the QCChart2DSL and QCSPCChartSL libraries to the project Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select QCChart2DSL DLL and QCSPCChartSL DLL files Add Reference NET Projects Browse Recent Look in O lib 514 QCChart2DSL dll 9 QCRTGraphsL dll QCSPCChartSL dll File name QCSPCChartSL dll QCChart2DSL dll
51. the actual SPC chart plots the calculated SPC values for the sample group The Variable Control Chart templates that we have created have options that enable the programmer to customize and automatically include header information along with a table of the measurement and calculated data in the SPC chart Enable the scrollbar option and you can display the tabular measurement data and SPC plots for a window of 8 20 subgroups from a much larger collection of measurement data represented hundreds or even thousands of subgroups and use the scrollbar to move through the data similar to paging through a spreadsheet Scrollable Time Based XBar R Chart with frequency histograms and basic header information EBlFormi Static 15 Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No Chart No Operator John Smith Machine 1 Time 17 16 17 31 17 46 18 01 18 16 18 31 18 46 19 01 19 16 19 31 19 46 20 01 20 16 20 31 20 46 21 01 CLX 52 5 of XBAR 41 4 CLX 30 3 CLR 40 6 BAR 19 2 FLCLR 0 0 a A a a aa a m iml a r eee 30 Standard SPC Control Charts Scrollable Time Based XBar R Chart with frequency histograms header measurement and calculated value information EE Formi nl x Title Variable Control Chart X Bar amp R Part No 1234567 Chart No 17 Operator J Mills Machine 11 Time 17 26 17 41 17 56 18 11 18 26 18 41
52. the two classes are very similar and share 95 of the same properties Creating and initializing a batch based SPC chart is much the same as that of a time SPC Variable Control Charts 239 based SPC chart See the example program BatchVariableControlCharts for a variety of batch SPC charts Add a reference to the SPCBatchVariableControlChart to your MainPage xaml file lt UserControl x Class BatchVariableControlCharts MainPage xmlnsz http schemas microsoft com winfx 2006 xaml presentation xmlns xz http schemas microsoft com winfx 2006 xaml xmlns dz http schemas microsoft com expression blend 2008 xmlns mcz http schemas openxmlformats org markup compatibility 2006 xmlns my clr namespace com quinncurtis chart2ds1 assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL mc Ignorable d d DesignHeight 631 d DesignWidth 878 gt Grid x Name LayoutRoot Background White gt lt my2 SPCBatchVariableControlChart Margin 18 11 16 6 Name spcChart1 Grid Row 1 EnableNotes false gt lt Grid gt lt UserControl gt Create a class to initialize the chart BatchXBarChart in our example C public class BatchXBarRChart ChartCalendar startTime new ChartCalendar SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of samples per sub group int numsamplespersubgroup 3 Number of datapoints in the view int n
53. were a pie wedge represents each data value The size of the pie wedge is proportional to the fraction data value sum of all data values ChartPlot This class is the abstract base class for chart plot objects It contains a reference to a ChartDataset derived class containing the data associated with the plot Contour Plot of the Heat Distribution of a Plasma Torch Degrees C 1000 0 1200 0 1400 0 1600 0 1800 0 1900 0 2000 0 2100 0 2200 0 2400 0 2600 0 2800 0 3000 0 The contour plot routines work with either an even grid or a random shown grid ContourPlot This class is a concrete implementation of the ChartPlot class and displays a contour plot using either lines or regions filled with color QCChart2D Class Summary 77 Group Plot Classes GroupPlot ArrowPlot BoxWhiskerPlot BubblePlot CandlestickPlot CellPlot ErrorBarPlot FloatingBarPlot FloatingStackedBarPlot GroupBarPlot GroupVersaPlot HistogramPlot LineGapPlot MultiLinePlot OHLCPlot StackedBarPlot StackedLinePlot GroupVersaPlot Group plots use data organized as arrays of x and y values where there is one or more y for every x Group plot types include multi line plots stacked line plots stacked bar plots group bar plots error bar plots floating bar plots floating stacked bar plots open high low close plots candlestick plots arrow plots histogram plots cell plots box and whisker plots and bubble plots
54. 0 0 0 25 DoubleArray variableControlLimits spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE ff Variable Control Limits updated using AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray 292 SPC Attribute Control Charts variableControlLimits new DoubleArray changeControlLimits SpcChart ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring VB Dim initialControlLimits As Double 0 13 0 0 0 27 Dim changeControlLimits As Double 0 11 0 0 0 25 Dim variableControlLimits As DoubleArray spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits updated using AddNewSampleRecord If i 10 Then need to convert changeControlLimits to a DoubleArray variableControlLimits New DoubleArray changeControlLimits End If spcChart ChartData AddNewSampleRecord timestamp samples variableControlLimits Multiple SPC Control Limits The normal SPC control limit displays at the 3 sigma level both high and low A common standard is that if the process variable under observation falls outside of the 3 sigma limits the process is out of control The default setup of our variable control charts have a high limit at the 3 sigma level a low limit at the 3 sigma level and a target value There are situations where the quality engineer also wants to display control limits at the 1
55. 0 z 1 1 4 5 5 2 2 2 1 6 1 7 Seam 1 6 4 1 2 2 1 2 0 5 1 0 2 1 5 0 2 Other 5 12 7 2 12 4 3 9 10 11 6 4 6 2 12 2 13 96 DEF 10 0 24 0 140 40 240 80 60 180 200 220 120 80 120 40 240 40 260 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N C spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND SPC Attribute Control Charts 275 spcChart ChartTable BackgroundColorl ChartColor Bisque spcChart ChartTable BackgroundColor2 ChartColor LightGoldenrodYellow VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor Bisque spcChart ChartTable BackgroundColor2 ChartColor LightGoldenrodYellow Extracted from the TimeAttributeControlCharts NumberDefectivePartsControlChart example program C spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor LightBlue VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor LightBlue Extracted from the TimeAttributeControlCharts NumberDefectivePartsControlChart example program 276 SPC Attribute Control Charts T
56. 101 149 150 180 183 245 246 247 248 278 281 317 318 319 unie 95 102 Table Background Colors ada ERE ober sede e iate a id e HR tette to ee ee eden 178 Table Backeround Colots 7 ceases 2 nee Ee RR EP EAE ER Heat EU SEI aed v0 Wa Twa deen Re bad EYE igh edere se Re Deedee Table Baek eround Colors 2i cocci ia 178 Table Fonts 35 ii dac erede ced Ses heen ee e eie red ated Be eR te cedo 180 278 Tablon c eee o A s 180 278 Table Sttifigs c cimi tH PE e EUH UO OW E HE ORO HR oe Rd en 175 Table BUTS o citet call oh adver en a Veg EE ene RERO E 115 175 TableAlarmEmphasisMode esses enne eene nente tenens sente innen 163 238 239 264 310 311 TableAl rmEmph sisMode 1 S1 tope obe rb n ab are Plor d mH e e ere Caterers TableAlarmEmphasisMode sese 163 238 239 264 310 311 Templates A A A P 6 19 182 280 Templates 1 6 7 18 19 30 40 47 48 51 182 183 214 280 281 329 330 340 TOXt UE MM EP 93 94 101 Tick Mark eere o ai tine etate ean PED OR codec delia E se FREQ tedio rad las dered egesta 98 99 101 Tick Mark oor etc ee tentato oe utei Diele Pueri Ld 98 99 101 Time Auto Sale apres TK I e ccc LT 67 68 100 Time AXIS cres ie dei t nietos red bn tendo PE e c dee iive reri Pe dO PESE DEREN 69 72 76 93 101 DmeAxiSe nci ees E E e IM M M dE TEETH US CES oo ee e
57. 148 7 152 9 157 5 151 7 155 6 142 9 143 9 147 1 144 3 154 8 144 9 140 4 163 8 151 2 147 3 151 4 162 4 Cpk 02 02 03 03 03 03 02 02 02 02 02 02 02 02 02 02 02 Cpm 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 0 3 03 Ppk 0 2 02 103 103 03 03 03 03 02 103 02 02 02 02 02 02 0 3 ALARM ETE ET EFT ee ee eee CE NOTES Y Y N Y N N N N N N N Y Y N N N N SpcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL spcChart ChartTable BackgroundColorl Colors White spcChart ChartTable BackgroundColor2 Colors Gray VB spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL spcChart ChartTable BackgroundColorl Colors White spcChart ChartTable BackgroundColor2 Colors Gray Table and Chart Fonts There are a large number of fonts that you have control over both the fonts in the table and the fonts in the chart The programmer can select a default font as in the case of non US character set or select individual fonts for different elements of the table and charts SPC Attribute Control Charts 277 Table Fonts The table fonts are accessed through the charts ChartTable property Below is a list of accessible table fonts TimeLabelFont The font used in the display of time values in the table SampleLabelFont The font used in the display of sample numeric values in the table Calculate
58. 17 SpcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL 1 VB Set the strings used in the header section of the table spcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 SpcChart ChartData ChartNumber 17 SpcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI The example below displays a maximum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Set the strings used in the header section of the table spcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 spcChart ChartData PartName Transmission Casing Bolt spcChart ChartData Operation Threading spcChart ChartData SpecificationLimits spcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 spcChart ChartData UnitOfMeasure 0 0001 inch spcChart ChartData ZeroEquals zero spcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3
59. 18 56 19 11 19 26 19 41 19 56 20 11 20 26 20 41 20 56 21 11 2 34 52 44 41 46 47 40 38 37 32 33 30 34 51 44 50 4 33 39 29 149 55 31 47 31 54 53 52 35 49 51 55 48 MEAN 39 5 46 8 347 46 8 47 2 395 42 0 426 449 38 5 428 40 9 37 8 482 413 444 SUM 197 5 234 1 173 6 233 9 236 0 197 6 210 0 213 1 224 4 192 5 214 0 204 5 189 1 240 9 206 6 221 9 o UCLX 52 7 50 E di gt 40 E XBAR 41 7 i 30 CLX 30 7 50 30 100 50 40 CLR 40 3 ul 3 30 amp 20 BAR 19 1 10 0 CLR 0 0 40 30 20 10 0 Scatter Plots of the Actual Sampled Data In some cases it useful to plot the actual values of a sample subgroup along with the sample subgroup mean or median Plot these samples in the SPC chart using additional scatter plots Standard SPC Control Charts 31 Scrollable Time Based XBar R Chart with Scatter Plot of Actual Sampled Data Static with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 123456 Chart No 18 Operator T Moosey Machine 11 74 02 F UCLX 74 018 74 01 z ij 74 00 XBAR 74 001 73 09 A AAA a an es LCLX 73 985 73 98 UCLR 0 042 a _ gt E uj 0 03 e E amp 0 02 H RBAR 0 016 0 01 e A O ah d 0 00 qPqeo o _ E _ e EE jr Alarm Notification Typically when a process value exceeds a control limit an alarm condition exists In order to make sure that
60. 1D 0 00 00 Time The elapsed time axis is very similar to the linear axis and is subclassed from that class The main difference is the major and minor tick mark spacing calculated by the CalcAutoAxis method takes into account the base 60 of seconds per minute and minutes per hour and the base 24 of hours per day It is a continuous linear scale Polar Axes 4 polar axis consists of the x and y axis for magnitude and the outer circle for the angle PolarAxes This class has three separate axes two linear and one circular The two linear axes scaled for the magnitude of the polar scale form a cross with the center of both axes at the origin 0 0 The third axis is a circle centered on the origin with a radius equal to the magnitude of the polar QCChart2D Class Summary 73 scale This circular axis represents 360 degrees or 2 Pi radians of the polar scale and the tick marks that circle this axis are spaced at equal degree intervals 270 180 AntennaAxes This class has two axes one linear y axis and one circular axis The linear axis is scaled for the desired range of radius values This can extend from minus values to plus values The second axis is a circle centered on the origin with a radius equal to the range of the radius scale This circular axis represents 360 degrees of the antenna scale and the tick marks that circle this axis are spaced at equal degree intervals Axis Label Classes 74 QCChart2D
61. 2 sigma 4 2 2 3 2 4 4 of 5 sigma 5 1 4 5 1 HS 4 0f5 lt sigma 6 2 4 5 1 6 8 of 8 increasing 7 5 8 8 0 7 8 of 8 decreasing 8 6 8 8 0 8 8 of 8 gt center line 9 1 8 8 0 HO 8 of 8 center line 10 2 8 8 0 Duncan New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 1 of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 3 2 of 3 lt 2 sigma 4 2 2 3 2 4 4 of 5 sigma 5 1 4 5 1 HS 4 0f5 lt sigma 6 2 4 5 1 6 7 of 7 increasing 7 5 7 7 0 7 7 of 7 decreasing 8 6 7 q 0 Implementing a Named Rule Set You are able to add a named rule set to an SPC application using a single call Call the UseNamedRuleSet method passing in the appropriate rule ID SPCChartObjects UseNamedRuleSet Method Named and Custom Control Rule Sets 331 Visual Basic Declaration Public Sub UseNamedRuleSet _ ruleset As Integer _ Public Sub UseNamedRuleSet _ ruleset As Integer _ ruleflags As BoolArray C public void UseNamedRuleSet int ruleset public void UseNamedRuleSet int ruleset BoolArray ruleflags Parameters ruleset One of the SPCControlLimitRecord named rule indentifiers BASIC_RULES WECO_RULES WECOANDSUPP_RULES NELSON_RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES and DUNCAN RULES ruleflags An array of bool one for each named rule in the rule set C Use the standard 3 sigma control limits Equivalent to WECO control rules 1 and
62. 281 EA nEeD TA AATE AE E EN E EE E EAEE EE E E EE E 93 94 101 A A a dis 93 94 101 ChartView ssesssse 10 49 63 68 96 97 100 164 264 359 368 369 376 377 380 381 382 390 391 404 ChartView 10 49 63 68 96 97 100 164 264 359 368 369 376 377 380 381 382 384 386 388 390 391 404 C ntourDaltaset x5 a eere P eer tete ae ca te t e Ete er bete eee te d te Hebe bear e ad 63 64 100 Control Limit Alarms irr ER PR ERROR identidad 135 Control Limit Alarms ea acia v 18 135 138 Control Limits 187 188 192 193 194 195 196 199 200 204 206 207 282 283 287 290 292 293 Control Limits 21 25 26 36 47 48 51 104 105 111 113 116 118 119 128 131 153 154 162 164 170 171 172 181 185 186 187 188 189 190 191 192 193 194 195 196 197 199 200 201 203 204 206 207 208 209 210 213 214 215 216 217 218 220 221 222 223 251 255 262 264 2770 282 283 284 286 287 290 292 293 294 295 297 298 299 300 321 325 326 329 333 334 336 337 338 341 349 413 424 425 Cp Cpl Cpus Cpk Cpm Pp Ppl Ppu and Ppk e reote P Ele HERES OE OD EE BU 6 47 147 Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk sess nnne nne nnn innere etnies Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk ooooocoonccnnocnocacinonccconanccnnnnos 6 47 147 e c HL EO MP Hc ore 47 98 100 109 111 112 113 11
63. 29 33 42 41 47 42 42 33 45 35 41 49 34 ALARM NOTES 1 2 1 1 1 FRACT DEF 15 00 16 00 17 00 18 00 19 00 20 00 np Chart Also known as the Number Defective Parts Chart For a sample subgroup the number of defective parts is measured and plotted as a simple count Statistically in order to compare number of defective parts for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups Standard SPC Control Charts 37 Typical Number of Defects c LIorc ME me s des i Chi Title Number Defects c Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 aM c UCLP 32 6 PBAR 19 4 c Chart Also known as the Number of Defects or Number of Non Conformities Chart For a sample subgroup the number of times a defect occurs is measured and plotted as a simple count Statistically in order to compare number of defects for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups u Chart Also known as the Number of Defects per Unit or Number of Non Conformities per Unit Chart For a sample subgroup the number of times a defect occurs is measured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgroup sample size Since the p
64. 50 60 104 149 178 179 180 181 183 275 276 277 278 281 SPCTimeAttributeControlChart ssse 8 18 50 51 55 255 257 258 259 260 270 320 380 408 421 SPCTimeAttributeControlChart 8 18 50 51 55 122 123 124 125 126 127 255 257 258 259 260 266 267 268 270 279 280 312 313 320 380 408 421 SPCTimeVariableControlChart 8 9 18 50 51 53 105 116 130 138 139 153 154 157 158 159 160 182 184 185 198 201 203 204 249 250 380 408 421 438 Index SPCTimeVariableControlChart 4 5 8 9 18 50 51 53 105 116 117 130 135 138 139 153 154 157 158 159 160 182 184 185 198 201 203 204 249 250 380 407 408 410 411 416 420 421 422 423 428 Specification id co nee PUE Ne RE specification Mil rociado 47 106 111 172 210 220 295 StackedBarPlot 6o tnde A ha EA Ram AA Ww ia ada 78 83 101 StackedBarPlot i coe e ue en eee cero ete co e ter e ees 78 82 83 101 Stack died ito biete eure n d een aea Ua 78 85 101 StackedEImePlot s ud ee Saale catch dde te e OR e desde dnd 78 85 101 Standard be IUDICEM 92 101 Statidard We cen ec i rdi iii e SR ESI StandardEegend d tte A A StringAxisLabels SiringAxisL bels 5 2e cays enti i ee e POM ee ea da e ini re EY ee ed Rea tae TH OTRA StringAxisLabels UPN SADE sut eerte UP ceo te e m Este ute enteschelechesetreches StringLabel 50 60 93 94
65. 9 44 9 43 3 356 40 2 324 323 35 1 30 3 197 1 156 2 150 2 173 8 214 6 148 0 173 8 215 9 184 6 224 4 216 7 178 1 201 1 162 1 161 5 175 6 151 3 SPCGeneralizedTableDisplay The SPCGeneralizedTableDisplay manages a list of ChartText objects NumericLabel StringLabel and TimeLabel objects that encapsulate each unique table entry in the SPC chart table This class also manages the spacing between the rows and columns of the table and the alternating stripe used as a background for the table 60 Class Architecture SPC Control Alarms SPCControlLimitAlarmArgs This class passes event information to a SPCControlLimitAlarmEventDelegate alarm processing delegate SPCControlLimitAlarmEventDelegate A delegate type for hooking up control limit alarm notifications 4 QCChart2D for Silverlight Class Summary This chapter is a summary of the information in the QCChart2DSLManual PDF file It is not meant to replace that information Refer to that manual for detailed information concerning these classes QCChart2D for Silverlight Class Summary The following categories of classes realize these design considerations Chart view class Data classes Scale transform classes The chart view class is a System Windows Controls UserControl subclass that manages the graph objects placed in the graph There are data classes for simple xy and group data types There are also data classes that handle System DateTime date time data and contour d
66. AddControlRule SPCControlLimitRecord DUNCAN RULES 8 VB SpcChart PrimaryChart EnableDefaultLimits False False SpcChart PrimaryChart AddControlRule SPCControlLimitRecord WECO RULES 1 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord WECO RULES 2 spcChart PrimaryChart AddControlRule SPCControlLimitRecord NELSON RULES 3 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord NELSON RULES 4 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord JURAN RULES 5 spcChart PrimaryChart AddControlRule SPCControlLimitRecord JURAN RULES 6 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord AIAG RULES 3 spcChart PrimaryChart AddControlRule SPCControlLimitRecord AIAG RULES 4 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord HUGHES RULES 12 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord DUNCAN RULES 8 Normally there will be no reason to set custom rules for the secondary chart since all of the named rules apply to the Primary chart Nothing stops you from doing it though We can t say whether or not it makes sense statistically Creating Custom Rules Sets Based on a Template Add your own custom rule to the rule set using another version of the AddControlRuleRecord method This one specifies a template N out of M values a sigma level to attach the control rule to 340 Named and Custom Control Rule Sets and a flag on whether or not to displ
67. BMP or to a Net Image object Miscellaneous utility classes Other classes use these for data storage file I O and data processing For each of these categories see the associated description in the QCChart2D manual QCChart2DSLManual pdf The SPC Control Chart Tools for Silverlight classes are in addition to the ones above They are summarized below SPC Control Chart Tools for Silverlight Class Hierarchy The QCSPCChart classes are a super set of the QCChart2D charting software No attempt should be made to utilize the QCSPCChart classes without a good understanding of the QCChart2D classes See the QCChart2DSLManual PDF file for detailed information about the QCChart2D classes The diagram below depicts the class hierarchy of the SPC Control Chart Tools for Silverlight library without the additional QCChart2D classes Namespace com quinncurtis spcchartsl com quinn curtis ChartView FrequencyHistogramChart ParetoChart Class Architecture 49 ProbabilityChart SPCChartBase SPCBatchA ttributeControlChart SPCBatchVariableControlChart SPCTimeAttributeControlChart SPCTimeVariableControlChart com quinncurtis chart2dsl AutoScale Probability AutoScale com quinncurtis chart2dsl Axis ProbabilityAxis com quinncurtis chart2dsl LinearAxis ProbabilitySigmaAxis com quinncurtis chart2dsl PhysicalCoordinates ProbabilityCoordinates com quinncurtis chart2dsl Scale ProbabilityScale com quinncurtis chart2dsl StringLabel NotesLabel com qu
68. Below is a list of the chart types and the calculated values for each MEAN RANGE CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC RANGE CALC 2 SPCCalculatedValueRecord SPC SUM CALC MEDIAN RANGE CHART 0 SPCCalculatedValueRecord SPC MEDIAN CALC 1 SPCCalculatedValueRecord SPC RANGE CALC MEAN SIGMA CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC STD DEVIATION CALC 2 SPCCalculatedValueRecord SPC SUM CALC MEAN SIGMA CHART VSS 0 SPCCalculatedValueRecord SPC MEAN VSS CALC 1 SPCCalculatedValueRecord SPC STD DEVIATION VSS CALC 2 SPCCalculatedValueRecord SPC SUM CALC MEAN VARIANCE CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC VARIANCE CALC 2 SPCCalculatedValueRecord SPC SUM CALC INDIVIDUAL RANGE CHART 0 SPCCalculatedValueRecord SPC INDIVIDUAL COPY VALUE 1 SPCCalculatedValueRecord SPC INDIVIDUAL ABS RANGE CAL MAMR CHART 0 SPCCalculatedValueRecord SPC MA CALC 1 SPCCalculatedValueRecord SPC MR CALC MAMS CHART 0 SPCCalculatedValueRecord SPC MA CALC 1 SPCCalculatedValueRecord SPC MS CALC EWMA CHART 0 SPCCalculatedValueRecord SPC EWMA CALC 1 SPCCalculatedValueRecord SPC_ MEAN CALC 344 Named and Custom Control Rule Sets MA CHART 0 SPCCalculatedValueRecord SPC MA CALC TABCUSUM CHAR 0 SPCCalculatedValueRecord SPC CUSUM CPLUS CALC 1 SPCCalculatedValueRecord SPC CUSUM CMINUS CALC 2 SPCCalculatedValueRecord SPC MEAN CALC MEAN PE
69. C DoubleArray samples new DoubleArray 6 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 samples 5 4 TOTAL number of defective parts in the sample Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 6 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 122 SPC Control Data and Alarm Classes ll N samples 3 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 samples 5 4 Y TOTAL number of defective parts in the sample Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples Our example programs obscure this a bit because we use a special method to simulate
70. Chapter 13 is a tutorial that describes how to use the software to create charts for web pages 2 Introduction Customer Support Use our forums at http www quinn curtis com ForumFrame htm for customer support Please do not post questions on the forum unless you are familiar with this manual and have run the examples programs provided We try to answer most questions by referring to the manual or to existing example programs We will always attempt to answer any question that you may post but be prepared that we may ask you to create and send to us a simple example program The program should reproduce the problem with no or minimal interaction from the user You should strip out of any code not directly associated with reproducing the problem You can use either your own example or a modified version of one of our own examples SPC Control Chart Tools for Silverlight Background In a competitive world environment where there are many vendors selling products and services that appear to be the same quality both real and perceived is often the critical factor determining which product wins in the marketplace Products that have a reputation for higher quality command a premium resulting in greater market share and profit margins for the manufacturer Low quality products not only take a big margin hit at the time of sale but also taint the manufacturer with a reputation that will hurt future sales regardless of the quality of future
71. Chart 376 Frequency Histograms Pareto Diagrams Probability Charts EE Formi Oj xi Pareto Diagram of Defects MainTile 11 25 2005 4 18 56 PM ENERO AERE RII IR RENI E RRA 97 300 100 YAxisTitle1 YAxisTitle2 20 N o B LineMarkerPlot 3 E c z a 50 u 10 YAxisLab1 TRIER oni YAxis2 0 0 7 Holes Poor Mix Stains Not Enough Tom Others Component f XAxis Defect Category XAxisLab GraphBackground PlotBackground Once the graph is initialized using the InitParetoChart or one of the ParetoChart constructors you can modify the default characteristics of each graph using these properties For example you can change the color of y axis and the y axis labels using the LineColor property of those objects C void InitializeChart SpcChart AddCategoryItem 5 Torn spcChart AddCategoryItem 7 Not Enough nComponent spcChart AddCategoryItem 2 Others SpcChart AddCategoryItem 11 Poor Mix spcChart AddCategoryItem 27 Holes spcChart AddCategoryItem 8 Stains SpcChart LineMarkerPlot LineColor Colors Blue spcChart LineMarkerPlot SymbolAttributes PrimaryColor Colors Black spcChart YAxisl LineColor Colors Green SpcChart YAxisl LineWidth 3 SpcChart SpcChart SpcChart SpcChart VB Sub Init Frequency Histograms Pareto Diagrams Probability Charts 377 YAxis2 LineColor Colors Blue YAxis2 LineWidth 3 YAxisLabl
72. Close box is filled if the open price is greater than the close price CandlestickPlot This class is a concrete implementation of the GroupPlot class and displays stock market data in an open high low close format common in financial technical analysis 80 OCChart2D Class Summary CellPlot ErrorBarPlot FloatingBarPlot 2 N S 2 Ss Distance from Closest Walmart Miles DSP Journal PC Mag Computer Week Cell Plot of Population Density 100 150 200 Mean Family Income 1000 The Cell plot will plot rectangles of any size color and postion This class is a concrete implementation of the GroupPlot class and displays cell plots A cell plot is a collection of rectangular objects with independent positions widths and heights specified using the values of the associated group dataset This class is a concrete implementation of the GroupPlot class and displays error bars Error bars are two lines positioned about a data point that signify the statistical error associated with the data point Media Schedule Info Age 2003 Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2004 Year of 2003 Floating bars are useful for creating scheduling charts This class is a concrete implementation of the GroupPlot class and displays free floating bars in a graph The bars are free floating because each bar does not reference a fixed base value as do simple bar plots stacked bar plots and group bar plot
73. Cpl Cpu Cpk Pp PI Pu Ppk Overloaded Initializes a new instance of the SPCProcessCapabilityRecord class Set Get the calculation type for this calculation value record Use one of the SPCProcessCapabilityRecord calculation type constants Get the current calculation value for this record Get the reference to the currentValue array Get the LSL value for this record Get the USL value for this record Get the reference to the validValueFlags array Get Set the description of calculation value record Calculate the process capability value Calculate the process capability value Returns an object that is a clone of this object Overloaded Copies the source object Checks to the validValueFlags to see if a value in the calculated historical data array currentValues is valid Reset the history buffer of the SPCProcessCapabilityRecord class Calculate the process capability value Sets the currentValue property of the class to the result 148 SPC Control Data and Alarm Classes SPCGeneralizedTableDisplay This class manages a list of ChartText objects NumericLabel StringLabel and TimeLabel objects that encapsulate each unique table entry in the SPC chart table This class also manages the spacing between the rows and columns of the table and the alternating stripe used as a background for the table Public Static Shared Fields NUMERIC ROW SPACING Constant specifies that the next row to the
74. Custom Control Rule Sets Western Electric WECO Rules The normal SPC control limit rules display at the 3 sigma level both high and low In this case a simple threshold test determines if a process is in or out of control Once a process is brought under control using the simple 3 sigma level tests quality engineers often want to increase the sensitivity of the control chart detecting and correcting problems before the 3 sigma control limits are reached Other more complex tests rely on more complicated decision making criteria These rules utilize historical data and look for a non random pattern that can signify that the process is out of control before reaching the normal 3 sigma limits The most popular of these are the Western Electric Rules also know as the WECO Rules or WE Runtime Rules First implemented by the Western Electric Co in the 1920 s these quality control guidelines were codified in the 1950 s and form the basis for all of the other rule sets Different industries across the globe have have developed their own variants on the WECO Rules Other sets of rules common enough to have an identifying name 1 e named rules are listed below WECO Runtime and Supplemental Rules Western Electric Co Western Electric Company 1956 Statistical Quality Control handbook 1 ed Indianapolis Indiana Western Electric Co p v OCLC 33858387 Sometimes the Supplemental Rules are referred to as the Montgomery Rules after
75. Developer Server Ultimately your Silverlight application is going to end up on a server somewhere where you will run the application by pointing to it with a browser You only need to do a couple of additional things in order to deploy the the projects described in Chapter 12 on to a a web site First when you initially create a new Silverlight application project and are at the dialog box below New Silverlight Application Click the checkbox below to host this Silverlight application in a Web site Otherwise a test page will be generated during build Host the Silverlight application in a new Web site New Web project name SLSPCBrowserApplicationl Web New Web project type ASP NET Web Application Project Options Silverlight Version Siverlight 4 v Enable WCF RIA Services 428 Creating SPC Charts in Web Applications check off the Host the Silverlight application in a new Web site checkbox and use the default Web project type of ASP NET Web Application Project You can select Silverlight version 4 or 5 Your project will end up looking a little different because it will now include some web deployment stuff e lod Solution SLSPCBrowserApplication1 2 projects E Mz SLSPCBrowserApplication1 Sa Properties H lt j References App xaml E e anPage xaml a SLSPCBrowserApplication1 Web W a Properties Sj References Lj ClientBin 33 Silverlight js Ex SLSPCBrowserAp
76. Dim ucl3 As New SPCControlLimitRecord spcChart ChartData 296 SPC Attribute Control Charts SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCL1 UCL1 spcChart PrimaryChart AddAdditionalControlLimit 1c13 _ SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal spcChart PrimaryChart AddAdditionalControlLimit ucl3 _ SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal Special Note When you create a SPCControlLimitRecord object you can specify an actual limit level If you do not call the charts AutoCalculateControlLimits method the control limit will be displayed at that value If you do call AutoCalculateControlLimits method the auto calculated value overrides the initial value 0 0 in the examples above When you call the charts AddAdditionalControlLimits method you specify the sigma level that is used by the AutoCalculateControlLimits to calculate the control limit level If you want the control limits displayed as filled areas set the charts ControlLimitLineFillMode property True C spcChart PrimaryChart ControlLimitLineFillMode true This will fill each control limit line from the limit line to the target value of the chart In order for the fill to work properly you must set this property after you define all additional control limits In order for the algorithm to work you must add the outer most control limits SPC_UPPER CONTROL LIMIT 3 and SPC LOWER CONTROL LIMIT 3 first followed by the next outer
77. Elapsed new System Timers ElapsedEventHandler timerl Elapsed VB Friend WithEvents timerl As System Timers Timer timerl New System Timers Timer timerl Enabled True timerl Interval 300 Introduction 17 WPF CHA System Windows Threading DispatcherTimer timerl new System Windows Threading DispatcherTimer timerl IsEnabled true timerl Interval TimeSpan FromMilliseconds 2000 timerl Tick new EventHandler timeri Elapsed VB Private timerl As New System Windows Threading DispatcherTimer timerl IsEnabled True timerl Interval TimeSpan FromMilliseconds 2000 AddHandler timerl Tick New EventHandler AddressOf timerl Elapsed Silverlight CHA System Windows Threading DispatcherTimer timerl new System Windows Threading DispatcherTimer timerl Start timerl Interval TimeSpan FromMilliseconds 2000 timerl Tick new EventHandler timerl Elapsed VB Private timerl As New System Windows Threading DispatcherTimer timerl Start timerl Interval TimeSpan FromMilliseconds 2000 AddHandler timerl Tick New EventHandler AddressOf timerl Elapsed Chapter Summary The remaining chapters of this book discuss the SPC Control Chart Tools for Silverlight package designed to run on any hardware that has a Net WPF runtime installed on it Chapter 2 presents a summary of the standard SPC control charts that can be created using the software 18 Introduction Chapter 3 pr
78. GroupPlot This class is an abstract base class for all group plot classes 78 QCChart2D Class Summary Flow Analysis Stealth Project AED TE RR O RIOR ETE PRC TEEN RT EET p j eel celo cto eal eea Based 1 e Mu ee Hcc 5 1 mde ane il t M nm oe Auk ERI xm gt jc i f mj axe 0 gt A 0 2 4 6 8 10 The size position and direction of every arrow in an arrow plot is under program control ArrowPlot This class is a concrete implementation of the GroupPlot class and it displays a collection of arrows as defined by the data in a group dataset The position size and rotation of each arrow in the collection is independently controlled BubblePlot This class is a concrete implementation of the GroupPlot class and displays bubble plots The values in the dataset specify the position and size of each bubble in a bubble chart QCChart2D Class Summary 79 Box and Whisker Plots are used in Descriptive Statistics New York Houston San Francisco Boston Pittsburgh BoxWhiskerPlot This class is a concrete implementation of the GroupPlot class and displays box and whisker plots The BoxWhiskerPlot class graphically depicts groups of numerical data through their five number summaries the smallest observation lower quartile Q1 median Q2 upper quartile Q3 and largest observation Technical Analysis Uses Candlestick Plots 8 01 02 9 02 02 The Open
79. LCL S3 27 04 UCL S3 9 58 RBAR 4 20 LCL S3 0 00 d My Computer There are other ways to incorporate charts into your application You can add a UserControl to your program Add UserControl and place the chart entirely in the UserControl The SPC chart object SPCTimeVariableControlChart in this case is referenced in the Grid panel of the UserControl s xaml file and initialized in the UserControl s behind code file The UserControl derived class is then referenced in the main MainPage xaml file The UserControlSPCChartExamplel demonstrates this method Or You can add a UserControl to your program but change the inheritance from UserControl to one of the SPC chart types SPCTimeVariableControlChart in this case Since SPCTimeVariableControlChart is a subclass of UserControl this is valid In this case you want to remove the Grid section from the xaml file of the SPCTimeVariableControlChart derived class The Grid panel is opaque and the chart will not show through The SPCTimeVariableControlChart derived class is then referenced in the main MainPage xaml file See the UserControlSPCChartExample2 program for an example of this technique 13 Using SPC Control Chart Tools for Silverlight to Create Web Applications Normally Silverlight is used to create web applications It is easier to debug your project if you just skip the whole web deployment part and run your application in the default Visual Studio
80. LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT SPC SECONDARY CONTROL TARGET SPC SECONDARY LOWER CONTROL LIMIT SPC SECONDARY UPPER CONTROL LIMIT Example code extracted from the TimeVariableControlsCharts MedianRangeChart example program C double controllimitvalues 42 30 53 10 0 22 spcChart ChartData SetControlLimitValues controllimitvalues string controllimitstrings XBAR LCL UCL RBAR LCL UCL spcChart ChartData SetControlLimitStrings controllimitstrings VB Dim controllimitvalues As Double 30 24 36 10 0 22 spcChart ChartData SetControlLimitValues controllimitvalues Dim ocontrollimitstrings As String XBAR LCL UCL RBAR LCL UCL spcChart ChartData SetControllLimitStrings controllimitstrings You can also set the control limit values and control limit text one value at a time using the ChartData SetControlLimitValue and ChartData SetControlLimitString methods We also added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeVariableControlCharts MultiLimitXBarR Chart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3
81. No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 31 12 46 13 00 13 16 13 31 13 46 14 001 14 16 14 31 14 46 15 01 15 16 15 31 15 46 16 01 16 16 16 31 C SPC Control Data and Alarm Classes 129 public void InitializeChart spcChart InitSPCTimeVariableControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes SimulateData spcChart AutoCalculateControlLimits SpcChart AutoScalePrimaryChartYRange SpcChart AutoScaleSecondaryChartYRange SpcChart RebuildChartUsingCurrentData private void SimulateData String notesstring for int i50 i 200 144 ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples spcChart ChartData SimulateMeasurementRecord 30 10 Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes VB Public Sub InitializeChart Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes 130 SPC Control Data and Alarm Classes Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC c
82. Number of Defects per Unit Number Defects per Million DPMO Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects per Unit Analysis Chart Templates Frequency Histograms Probability Charts Pareto Charts SPC Support Calculations Array statistics sum mean median range standard deviation variance sorting SPC Control Limit Calculations High and low limit control calculations for X Bar R X Bar Sigma Median and Range X R p np c and u charts SPC Process Capability Calculations Variable Control Charts include Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk process capability statistics SPC Control Named Rule Sets Western Electric WECO Runtime and Supplemental Rules Nelson AIAG Juran Introduction 7 Hughes Gitlow Duncan The SPC Control Chart Tools for Silverlight is a family of templates that integrate the QCChart2D charting software with tables data structures and specialized rendering routines used for the static and dynamic display of SPC charts The SPC chart templates are pre programmed classes that create manage and display the graphs and tables corresponding to major SPC control chart types Each template can be further customized using method and properties The programmers can customize the plot objects created in the template allowing tremendous flexibility in the look of the SPC charts Like the QCChart2D software the SPC Control Chart Tools
83. Percent of Defective Parts u Chart Number of Defects per Unit Time Based and Batch Based SPC Charts We have further categorized Variable Control charts and Attribute Control Charts as either time or batch based While you may not find this distinction in SPC textbooks we didn t it makes sense to us as charting experts Quality engineers use time based SPC charts when data is collected using a subgroup interval corresponding to a specific time interval They use batch based SPC charts when the data subgroup interval is a sequential batch number that does not correspond to a uniform time interval The major difference in these two types of SPC charts is the display of the x axis Variable control 20 Standard SPC Control Charts charts that sample using a uniform time interval will generally use a time based x axis with time date axis labels Variable control charts that sample based on batches will generally use a numeric based x axis with numeric axis labels Note Starting with Revision 2 0 batch control charts can label the x axis using one of three options numeric labeling the original and default mode time stamp labeling and user defined string labeling Since this affects batch control charts time stamps to not have to be equally spaced or even sequential SPC Analysis Charts Quality engineers use other specialized charts in the analysis of SPC data We have added chart classes that implement the following SPC analysi
84. SPC chart The following properties enable sections of the chart header and table EnableInputStringsDisplay EnableCategory Values EnableCalculatedValues EnableTotalSamplesValues EnableNotes EnableTotalSamplesValues EnableTimeValues EnableProcessCapability Values ini x Simple Attribute Control Cha action Defective Pa Percent Defective Parts Number Defective Pa Number Defects Percent Defe Number Defects Per lin Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka EnablelnputStringsDisplay true 4 EnableTimeValues true 2 6 0 1 2 lime 14 44 EY Ad 44 T 4 14 2 1 3 4 EnableCategoryValues true 4 2 4 0 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 EnableCalculatedValues true EnableTotalSamplesValues true N N N N N N N N N EnableNotes true N N N 0 5 3 3 2 6 NOTES e N eb FRACT DEF e a A O AN a a LLL o0 15 00 16 00 In the program the code looks like the following code extracted from the TimeVariableControlCharts XBarRChart example program C Change the default horizontal position and width of the chart SPC Variable Control Charts 169 spcChart GraphStartPosX 0 1 start here spcChart GraphStopPosX 0 875 end here Set the strings used in the header section of the table S
85. Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData generate alarms starting now SpcChart ChartData AlarmStateEventEnable True If you have setup a method for processing alarm events the software will call the classes alarm processing method where you can take appropriate action If a time interval has multiple alarms i e more than one of the four WR Runtime rules are broken only the one with the lowest WE rule number is vectored to the alarm event processing routine C SpcChart ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate spcChart SPCControlLimitAlarm don t generate alarms in initial data simulation SpcChart ChartData AlarmStateEventEnable false spcChart PrimaryChart UseWERuntimeRules Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits epoChart AutoCalculateControlLimits throw out values used to calculate limits spcChart ChartData ResetSPCChartData generate alarms now SpcChart ChartData AlarmStateEventEnable true Must have data loaded before any of the Auto methods are called Chec
86. ValueSrc ControlLimitText ControlLimitType ControlLimitValue ControlLimitValues Hysteresis Value PrevAlarmState SPCProcessVar SymbolColor TextColor Public Instance Methods CheckAlarm Specifies the limit is not an alarm just a value Overloaded Initializes a new instance of the SPCControlLimitRecord class Get Set the alarm display flag Get Set the alarm enable flag Get Set the current alarm message Get Set the alarm state true 1f the last call to CheckAlarm show that the process variable currently in alarm Set Get a reference to the SPCCalculatedValueRecord object associated with the control limit Get Set the Normal alarm message Get Set the alarm type SPC NOTA LIMIT SPC LOWERTHAN LIMIT or SPC GREATERTHAN LIMIT Get Set the alarm limit value Get Set the controlLimitValues array Get Set the alarm hysteresis value Get Set the previous alarm state Get Set the spcDataVar object Get Set the alarm symbol color Get Set the alarm text color Overloaded Check the current value against the parameterValue Clone Copy ErrorCheck GetAlarm GetControlLimitHistoryValue SetControlLimitValue SPC Control Data and Alarm Classes 137 Returns an object that is a Clone of this SPCControlLimitRecord object Overloaded Copies the source SPCControlLimitRecord object Checks the SPCControlLimitRecord object for common errors Current error state Returns an error code Returns the current
87. YAxis 0 0 200 400 600 7 Measurements P d XAxis XAxisTitle XAxisLab GraphBackground PlotBackground A FrequencyHistogramChart object has one distinct graph with its own set of properties Once the graph is initialized using the InitFrequencyHistogram or one of the FrequencyHistogramChart constructors you can modify the default characteristics of each graph using these properties For example you can change the color of y axis and the y axis labels using the LineColor property of those objects C void InitializeChart Frequency bins double freqLimits 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues 121 349 345 322 215 162 218 134 133 476 323 367 133 354 245 360 Frequency Histograms Pareto Diagrams Probability Charts 434 476 352 185 144 165 105 461 386 263 476 304 180 557 482 337 283 539 Si 253 Initialize histogram spcChart InitFrequencyHistogram freqLimits freqValues spcChart YAxis LineColor Colors Green SpcChart YAxis LineWidth 3 spcChart YAxisLab LineColor ChartColor DarkMagenta spcchart BuildChart VB Sub InitializeChart Frequency bins Dim freqLimits As Double _ 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins Dim freqValues As Double _ 121 349 3459 322 277 162 218 134 133 476 323 367 133
88. a couple of date time formats in the list below located at the enumerated values defaultDateFormat and defaultTimeStampFormat You should change those to whatever time format you want The format specification is that used by the Net DateTime ToString method The SPChartStrings class looks like public static class SPUChartStelngs public enum SPCSEtringEnums int empty 0 chartFont highAlarmStatus Regionalization 391 lowAlarmStatus shortStringNo shortStringYes US en static String usEnglishStrings eg Microsoft Sans Serif H pu N y Static ArrayList globalStringList new ArrayList public static String currentDefaultStrings usEnglishStrings The SPCStringEnum enumeration contains an item for every default string used in the software Paired with that is the currentDefaultStringsList which has one string element for every enumerated value in the SPCStringEnum enumeration The software pulls the 392 Regionalization strings it uses from the currentDefaultStrings array It is initialize by default with the usEnglishStrings array the string values of which are listed in the tables below SPCStringEnum Default Strings Description start 0 start Marks the start of the enumeration chartFont Microsoft Sans Serif default font string highAlarmStatus H alarm status line High short string lowAlarmStatus L alarm status line Low short string shortString
89. adding test data to your application fed into the chart using the AddNewSampleRecord method and calling AutoCalculatedControlLimits This fills out the SPCControlLimit record for each control rule of the named rule set and makes control limit checking possible You will find the AutoCalculateControlLimits method used in all of SPC charts of the RulesRulesRules example program CH SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits 336 Named and Custom Control Rule Sets VB SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits Modifying Existing Named Rules Perhaps you like everything about a named rule set except for one or more rules For example you want to use the Hughes rules but want to change the N of M parameters of rules 15 and 16 You do that using the SPCControlLimitRecord method SetCustomRuleParameters SPCControlLimitRecord SetCustomRuleParameters Method Visual Basic Declaration Public Sub SetCustomRuleParameters _ valuesincalc As Integer _ nu
90. alarm state based on the passed in value Get a values for the controlLimitsValues historical buffer Set current value of the control limit and adds that value to the controlLimitValues historical array The SPCControlLimitRecord properties are documented in the QCSPCChartSLCompiledHelpFile chm documentation file located in the doc subdirectory Example of trapping SPCControlLimitRecord alarm using an event delegate The example below specifies an alarm event delegate for the control limit alarms The example was extracted from the TimeVariableControlCharts DynamicXBarR Chart example program C public void InitializeChart Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table spcChart ChartData Title Variable Control Chart X Bar amp R spcChart ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate spcChart SPCControlLimitAlarm 138 SPC Control Data and Alarm Classes don t generate alarms in initial data simulation SpcChart ChartData AlarmStateEventEnable false SimulateData generate alarms starting now SpcChart ChartData AlarmStateEventEnable true private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e SPCControlLimitRecord alarm e EventAlarm doub
91. as the Mean or Average and Range Chart 192 SPC Variable Control Charts Control Limits for the X Bar Chart UCL X Ao R Center line X LCL E X A R Control Limits for the R Chart UCL R Da R Center line R LCL R D R Where the constants A D and D are tabulated in every SPC textbook for various sample sizes X Bar Sigma Also known as the X Bar S Chart Control Limits for the X Bar Chart UCL X AF S Center line X LCL X A 8 Control Limits for the Sigma Chart UCL B S I ua Center line LCL SPC Variable Control Charts 193 B S Where the constants Az B and B are tabulated in every SPC textbook for various sample sizes Median Range Also known as the Median and Range Chart Control Limits for the Median Chart UCL Center line LCL M A R Control Limits for the R Chart UCL Center line LCL M M A R R D R R R D R The constants A D and D for median range charts are different than those for mean range charts A brief tabulation of the median range chart specific values appears below Size A2 2 2 22 3 1 26 4 0 83 5 0 71 D3 0 0 0 0 0 0 0 0 D4 3 87 2 75 2 38 2 18 Individual Range Chart Also known as the X R Chart Control Limits for the X Bar Chart UCL Center line I X gt E R 194 SPC Variable Control Charts LCL X Ez R Control Limits for the R Chart
92. bar graph combined with a line plot plotted in a chart that uses two different y axis scales The bar graph scale is a frequency scale that measures the number of times a specific problem has occurred The line plot scale is a cumulative percentage scale 44 Standard SPC Control Charts Pareto Chart HA Form1 xt Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 20 2 3 E 3 z g E ES 10 0 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category The chart is easy to interpret The tallest bar the left most one in a Pareto diagram is the problem that has the most frequent occurrence The shortest bar the right most one is the problem that has the least frequent occurrence Time spend on fixing the biggest problem will have the greatest affect on the overall problem rate This is a simplistic view of actual Pareto analysis which would usually take into account the cost effectiveness of fixing a specific problem Never less 1t is powerful communication tool that the SPC engineer can use in trying to identify and solve production problems 3 Class Architecture of the SPC Control Chart Tools for Silverlight Class Library Major Design Considerations This chapter presents an overview of the SPC Control Chart Tools for Silverlight class architecture It discusses the major design considerations of the architecture Major design consideration specific to SPC Control Chart Tools for Silverlight are Direct s
93. by Default Type Visual Basic a vi Silverlight Application Visual Basic Visual Basic A blank project For creating a rich internet Windows application using Silverlight Web Silverlight Class Library Visual Basic Office Cloud Silverlight Business Application Visual Basic Reporting SharePoint fe Silverlight Navigation Application Visual Basic Silverlight Test WCF RIA Services Class Library Visual Basic WCF Workflow Visual C Visual C Visual Fit Other Project Types E Database EE Test Projects Online Templates Name SPChpplicationi Location F Quinn Curtis DotNet QCSPCChart Visual Basic examples sh Browse Solution Create new solution Solution name SPCApplicationi v Create directory For solution add to source control After you press OK you will see the following dialog 416 Creating SPC Charts in Windows Applications New Silverlight Application Click the checkbox below to host this Silverlight application in a Web site Otherwise a test page will be generated during build C Host the Silverlight application in a new Web site New Web project name New Web project type Options Silverlight Version Silverlight 4 Uncheck the Host the Silverlight application in a new web site for the purpose of this example Under Options you can select Silverlight Version 4 of Version 5 Default Namespace Issues There is an annoying dif
94. chart display with job specific information for example Title Operator Part Number Specification Limits Machine ect Table display of SPC data Display the sampled and calculated values for a SPC chart in a table directly above the associated point in the SPC chart similar to standardized SPC worksheets e Automatic calculation of SPC control limits Automatically calculate SPC control limits using sampled data using industry standard SPC control limit algorithms unique to each chart type e Automatic y Axis scaling Automatically calculated the y axis scale for SPC charts taking into account sampled and calculated data points and any control limit lines added to the graph Alarms When monitored value exceeds a SPC control limit it can trigger an event that vectors to a user written alarm processing delegate e SPC Process Capability Calculations Variable Control Charts include Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk process capability statistics Notes The operator can view or enter notes specific to a specific sample subgroup using a special notes tooltip Data tooltips The operator can view chart data values using a simple drill down data tooltip display The Data tooltips can optionally display sample subgroup data values and statistics including process capability calculations Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk and customized using notes that have been entered for the sample
95. charts X Bar R and I R charts in particular and is most useful for detecting small shifts in the process mean It uses a moving average where the previous N 1 sample values of the process variable are averaged together along with the current value to produce the current chart value This helps to smooth the incoming data minimizing the affect of random noise on the process Unlike the EWMA chart the MA chart weights the current and previous N 1 values equally in the average While the MA chart can often detect small changes in the process mean faster than the Shewhart chart types it is generally less effective than either the EWMA chart or the CuSum chart MA charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes MAMR Chart Moving Average Moving Range The MAMR chart combines our Moving Average chart with a Moving Range chart The Moving Average chart is primary topmost chart and the Moving Range chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When calculating the Moving 154 SPC Variable Control Charts Range it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of
96. color transparency for solid objects Generalized geometry support used to create arbitrary shapes Printer and image output support Improved font support for a large number of fonts using a variety of font styles size and rotation attributes Imaging support for a large number of image formats Advanced matrix support for handling 2D transformations In addition to the retained mode rendering for the display Silverlight utilizes a new declarative user interface definition framework known as XAML for Extensible Application Markup Language This framework combines customizable rendering of user interface components with a two tier programming model analogous to the the way you program ASP Net web pages using a combination of HTML in the design mode and C or VB in the behind code section of the page In Silverlight applications the user interface layout is defined as an XAML page using a text tag format based on XML and user interface events are processed in a C or VB behind code page In a Silverlight program which uses QCSPCChart a SPC chart class SPCTimeVariableControlChart in the example below is referenced as a visual element in a windows the XAML file as below UserControl x Class SPCApplication1 MainPage xmlnsz http schemas microsoft com winfx 2006 xaml presentation xmlns xz http schemas microsoft com winfx 2006 xaml xmlns dz http schemas microsoft com expression blend 2008 xmlns mc http schemas open
97. detailed in the previous tables IC BoolArray ruleflags spcChart PrimaryChart GetInitializedRuleBoolArray SPCControlLimitRecord NELSON RULES true ruleflags 9 false 334 Named and Custom Control Rule Sets ruleflags 10 false SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord NELSON RULES ruleflags VB Dim ruleflags As BoolArray spcChart PrimaryChart GetInitializedRuleBoolArray SPCControlLimitRecord NELSON RULES True ruleflags 9 False ruleflags 10 False SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord NELSON RULES The example above disables rule 9 6 of 6 increasing or decreasing and rule 10 15 of 15 within 1 sigma from the Nelson Rules You use our rule numbering system for specifying which rule See the example program RulesRulesRules for examples of how to setup an SPC chart for a given set of control rules Once you add a set of named control rules to your SPC chart the next thing you will want to do is set the control limits You can either set the limits using known values or you can have our software calculate the limits using previously acquired sample data If you want to explicitly set the limits you must know the historical process mean also called the center line and the historical process sigma You may already know your process sigma or you may need to calculate it as 1 3 UCL process mean where UCL is your historical 3 sigma upper control limit
98. draw chart InitializeChart void InitializeChart double x1 1 2 3 4 5 6 7 8 9 double IlyL 2 Bs 13 26 58 82 93 B7 100 2 spoChart InltProbabilityChart xl yl epechart BuildChart VB Public Class ProbabilitychartInit Private spcChart As ProbabilityChart Public Sub New pc As ProbabilityChart SpcChart pc Define and draw chart InitializeChart End Sub Frequency Histograms Pareto Diagrams Probability Charts 365 Sub InitializeChart Dim x1 As Double 1 0 2 3 4 5 6 7 8 9 Dum yl As Double 2 6 13 26 58 82 93 97 100 spethart InitProbabilityChart xl yl SpcChart BuildChart End Sub InitializeChart End Class All you have to do is supply the raw data and the values of the frequency bins for which you want to accumulate values The ProbabilityChart class auto scale a coordinate system creates the proper x and y axes and draws the resulting probability plot as a scatter plot ProbabilityChart InitProbabilityChart Method Initializes the x and y values of the data points plotted in the probability plot VB Public Sub InitProbabilityChart _ ByVal xvalues As Double ByVal yvalues As Double _ public void InitProbabilityChart double xvalues double yvalues ye Parameters xvalues The x values of the data points plotted in the probability plot yvalues The y values of the data points plotted in the probability plot Publi
99. if the sample subgroup size varies from sampling interval to sampling interval In this case the control chart high and low limits vary from sample interval to sample interval depending on the number of samples in the associated sample subgroup A low number of samples in the sample subgroup make the band between the high and low limits wider than if a higher number of samples are available The X Bar Sigma chart is the only variable control chart that can be used with a variable sample size Standard SPC Control Charts 23 X Bar Sigma Chart with variable sample size S RTI lolx X Bar Sigma Chart Fraction Defective Parts p chart Percentage Defective Chart p chart Number Defects Per Unit u chart Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 20 50 PM Time 17 20 17 35 17 50 18 05 18 20 18 35 18 50 19 05 19 20 19 35 19 50 20 05 20 20 20 35 20 50 21 05 21 20 MEAN 61 8 596 64 7 63 8 67 6 62 5 63 2 61 2 622 657 61 0 62 7 63 6 667 617 61 9 62 6 SIGMA 469 5 22 6 79 5 62 5 92 6 14 6 03 7 99 7 27 6 11 662 446 694 672 672 6 70 6 73 SUM 680 238 906 766 406 937 885 367 559 460 366 502 382 600 617 805 752 NO INSP 11 4 14 12 6 15 14 6 9 q 6 8 6 9 10 13 12 NOTES N N N N N N N N N N N N N N N N N 80 60 40 20 0 EE EM MID TN 80 60 40 20 0 Median Range Also known as the Medi
100. it off if you don t want it Each sample interval has two small boxes that are labeled using one of several different characters listed below The most common are an H signifying a high alarm a L signifying a low alarm and a signifying that there is no alarm When specialized control rules are implemented either using the named rules discussed in Chapter 8 or custom rules involving trending oscillation or stratification a T O or S may also appear No alarm condition H High Measured value is above a high limit L Low Measured value falls below a low limit T Trending Measured value is trending up or down 308 SPC Attribute Control Charts O Oscillation Measured value is oscillating alternating up and down S Stratification Measured value is stuck in a narrow band C Alarm status line SpcChart EnableAlarmStatusValues false VB Alarm status line spcChart EnableAlarmStatusValues False ChartAlarmEmphasisMode Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Left Front Fender Operation Painting Spec Limits Units Operator B Cornwall Machine 11 Gage Zero Equals Date 4 17 2008 1 42 06 PM TIME 7 12 7 42 8 12 8 42 9 12 9 42 10 12 10 42 11 12 11 42 12 12 12 42 13 12 13 42 14 12 14 42 15 12 Defect 1 0 2 6 4 0 0 5 1 4 1 3 1 8 1 0 1 7 Defect 3 1 1 4 0 3 5 9 2 3 1 5 1 3 1 1 4 5 Deet 4
101. just three for RGB The WPF Color class has two different static methods used to define RGB colors Color FromArgb for the full ARGB specification and Color FromRgb for just RGB The Silverlight Color class has only one such method FromArgb which uses byte arguments for the color rgba values Since we use these routines extensively we added additional static routines for Color creation in the ChartColor class System Drawing CH Color c Color FromArgb 127 255 0 0 Color c Color FromArgb 255 0 0 VB Dim c as Color Golor FromArgb 127 255 0 0 Dim c as Color Color FromArgb 255 0 0 WPF CH Color e Color FromArgb 127 255 0 0 Color c Color FromRgb 255 0 0 VB Dim as Color Color FromArgb 127 255 0 0 Dim c as Color Color FromRgb 255 0 0 Silverlight CH Color Chartcolor fPromArgbo 127 255 04 0 Color c ChartColor FromRgb 255 0 0 VB Dim as Color ChartColor FromArgb 127 255 0 0 Dim e as Color Cha rtColor FromRgb 255 0 0 Linestyle Constants Line styles are used to specify whether a line is solid dashed dotted or some combination of dot and dash styles The line style class used in the Net Forms based version of QCChart2D QCSPCChart is derived from the System Drawing DashStyle class The WPF version of the line style class derives from the System Windows Media DashStyle class Whereas the line style enumerated constants for System Drawing line styles are found in the Introduction
102. label text can be rotated 360 degrees in one degree increments This class labels the major tick marks of the LinearAxis and LogAxis classes The class supports many predefined StringAxisLabels TimeAxis Labels ElapsedTimeAxisLabels PolarAxesLabels AntennaAxesLabels Chart Plot Classes ChartPlot ContourPlot GroupPlot PieChart PolarPlot AntennaPlot SimplePlot QCChart2D Class Summary 75 and user definable formats including numeric exponent percentage business and currency formats This class labels the major tick marks of the LinearAxis and LogAxis classes using user defined strings This class labels the major tick marks of the associated TimeAxis object The class supports many time 23 59 59 and date 5 17 2001 formats It is also possible to define custom date time formats This class labels the major tick marks of the associated ElapsedTimeAxis object The class supports HH MM SS and MM SS formats with decimal seconds out to 0 00001 i e 12 22 43 01234 It also supports a cumulative hour format 101 51 22 and a couple of day formats 4 5 51 22 4D 5 51 22 This class labels the major tick marks of the associated PolarAxes object The x axis is labeled from 0 0 to the polar scale magnitude and the circular axis is labeled counter clockwise from 0 to 360 degrees starting at 3 00 This class labels the major tick marks of the associated AntennaAxes object The y axis is labeled from the radius
103. limits spcChart AutoScalePrimaryChartYRange Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData SpcChart UpdateDraw End Sub timerl Tick Updating Chart Data The real time example above demonstrates how the SPC chart data is updated using the ChartData AddNewSampleRecord method In this case the chart data updates with each timer tick event though it could just as easily be any other type of event If you have already collected all of your data and just want to plot it all at once use a simple loop like most of our examples do to update the data C private void SimulateData for ink i0 i lt 200 154 ChartCalendar timestamp ChartCalendar startTime Clone This simulates an assignable defect for each category the last category is assigned the total number of defective parts not defects DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record SpcChart ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing startTime Add ChartObj MINUTE 30 VB Private Sub SimulateData 300 SPC Attribute Control Charts Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar This simulates an assignable defect for each category the last category is assigned the total numbe
104. low alarm and a signifying that there is no 348 Named and Custom Control Rule Sets alarm When specialized control rules are implemented using the named rules or custom rules involving trending oscillation or stratification a T O or S may also appear No alarm condition H High Measured value is above a high limit L Low Measured value falls below a low limit T Trending Measured value is trending up or down O Oscillation Measured value is oscillating alternating up and down S Stratification Measured value is stuck in a narrow band Trending Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 15314 1529 1544 15 59 16 14 16 29 1644 16 59 17 14 1729 1744 17 59 18 14 18 29 18 44 ALARM UCL 53 25 99 LCL 53 13 97 40 30 20 10 0 16 00 17 00 18 00 Oscillation Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 20 59 21 14 2129 2144 2159 2214 2229 2244 22 59 23 14 2329 2344 23 59 0 14 029 ALARM 30 25 UCL 53 25 99 3 20 Target 19 98 z 15 LCL 53 13 97 10 Named and Custom Control Rule Sets 349 Stratification Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore
105. minimum to the radius maximum The circular axis is labeled clockwise from 0 to 360 degrees starting at 12 00 Plot objects are objects that display data organized in a ChartDataset class There are six main categories simple group polar antenna contour and pie plots Simple plots graph data organized as a simple set of xy data points The most common examples of simple plots are line plots bar graphs scatter plots and line marker plots Group plots graph data organized as multiple y values for each x value The most common examples of group 76 QCChart2D Class Summary plots are stacked bar graphs open high low close plots candlestick plots floating stacked bar plots and box and whisker plots Polar charts plot data organized as a simple set of data points where each data point represents a polar magnitude and angle pair rather than xy Cartesian coordinate values The most common example of polar charts is the display of complex numbers a bi and it is used in many engineering disciplines Antenna charts plot data organized as a simple set of data points where each data point represents a radius value and angle pair rather than xy Cartesian coordinate values The most common example of antenna charts is the display of antenna performance and specification graphs The contour plot type displays the iso lines or contours of a 3D surface using either lines or regions of solid color The last plot object category is the pie chart
106. most limits SPC UPPER CONTROL LIMIT 2 and SPC LOWER CONTROL LIMIT 2 followed by the inner most control limits SPC UPPER CONTROL LIMIT 1 and SPC LOWER CONTROL LIMIT 1 This way the fill of the inner limits will partially cover the fill of the outer limits creating the familiar striped look you want to see Chart Y Scale You can set the minimum and maximum values of the two charts y scales manually using the PrimaryChart MinY PrimaryChart MaxY SecondaryChartMinY and SecondaryChartMaxY properties C Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed spoChart PrimaryChart MinY 0 SpcChart PrimaryChart MaxY 40 SPC Attribute Control Charts 297 VB Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed spcChart PrimaryChart MinY 0 spcChart PrimaryChart MaxY 40 It is easiest to just call the auto scale routines after the chart has been initialized with data and any control limits calculated C Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits SpcChart AutoScalePrimaryChartYRange VB Must have data loaded before a
107. niente ER ti ere E A AE E a Oaa EE AAE 50 58 Proba DISC hae Rene open suena ono etti en eds vaa d 50 58 Pr babihlitySiemaAXis ii ee m eee nig A ent tes 50 58 59 ProbabilitySignaA XIS osten A donk bounctsencapsbslodanenabshtcende cides erbe sete eode santana ProbabilitySigma Axis CC sese Cos xx teet E RU tp oM eoesta E edd tius 50 58 59 Process Capability eese eee nennen nente tenete nnne rne tenerent nennen 6 47 171 173 174 175 Process Capability 6 47 51 147 148 171 172 173 174 175 230 231 348 349 Process Performances d t cereo s eat oc ote d dii da a Rer a Pe E EH Process P rformance iet c 171 174 175 urumepm aS 98 99 100 Redistributable Licenses rero Eon RII DEPRECOR HUE gE hee ii Redistributable License ati e aN aE T A EE E ed a EAE Redistributable dicen se ae co ate e E c E tle oet aa gan ARENA ii Regi nalizati n persion evs hace ag ate eter pet ei Hot e Hae op cb D et i RECO II I ag ep fee ODalizatiofi aso orae ade e o rd pu ao epe p etu LN MG 1 392 ROI erae beet eb teda ee ef een ru 89 Rule Temp lates eoe secs hm e aos ca anes Minka ee hee nana tested dris ep tua Ld des Rule Templates en cect te tinct hoe etree Ste en e ta ng tous E dia 1 214 329 Scale classes esee eines Sateen ects a ee MO aa ea ree O mier d NCES At ale 64 65 66 100 SCatterPlotsz a3 ener einn EEE LAE RACER ADMIRE es 31 227 302 Scatter Plots uae co
108. number of defects are tracked u chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated Typical Time Based Attribute Control Chart p Chart lol anit Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Variable Control Limits Number Defects Per Unit Multic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 13 28 13 58 14 28 14 58 15 28 15 58 16 28 16 58 17 28 17 58 18 28 18 58 19 28 19 58 20 28 20 58 21 28 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N Y N N N N N N N N N N N N N N p e e A i i i UCL 0 28 e ee ee he AA i io i O i i d PBAR 0 14 t gt 1 t EE i i 0 0 CL 0 00 30 20 10 0 14 00 15 00 16 00 17 00 18 00 19 00 20 00 21 00 36 Standard SPC Control Charts p Chart Also known as the Percent or Fraction Defective Parts Chart For a sample subgroup the number of defective pa
109. of defects for defect category 4 samples 4 3 Number of defects for defect category 5 Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples Updating u charts Variable Sample Subgroup Size SPC Control Data and Alarm Classes 125 u chart NUMBER DEFECTS PERUNIT CHART VSS First you must read the previous section Updating u charts Fixed Sample Subgroup Size and understand it Because in the case of the u chart variable sample subgroup case filling out that array is EXACTLY the same as the fixed sample subgroup case The number of defects in each defect category go into the first N elements element 0 N 1 of the samples array Specify the size of the sample subgroup associated with a given update using the ChartData SampleSubgroupSize VSS property C DoubleArray samples new DoubleA
110. own time Answer Just use one of the many ChartCalendar constructors See the QCChart2DNetCompiledHelpFile chm compiled help file This constructor creates a new ChartCalendar object using the specified DateTime value public ChartCalendar DateTime This constructor creates a new ChartCalendar object using the specified year month and day public ChartCalendar int int int This constructor creates a new ChartCalendar object using the specified year month day hour minute and second 128 SPC Control Data and Alarm Classes public ChartCalendar int int int int int int This constructor creates a new ChartCalendar object using the specified year month day hour minute second and milliseconds public ChartCalendar int int int int int int int This constructor creates a new ChartCalendar object using the designated number of ticks public ChartCalendar long This constructor creates a new ChartCalendar object using the designated number of milliseconds or seconds public ChartCalendar long bool The sampled values initialize the chart after the InitSPC call but before the RebuildChartUsingCurrentData call The example below is from the TimeVariableControlCharts XBarR Chart example program The AddNewSampleRecord routine is called in the SimulateData method RBar Al X Bar Sigma Individual Range Multi Limit X Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part
111. parts p and np charts or the total number of defects u and c charts The major anomaly is that while the p and np charts plot the fraction or number of defective parts the table portion of the chart can display defect counts for any number of defect categories i e paint scratches dents burrs etc It is critical to understand that total number of defects 1 e the sum of the items in the defect categories for a give sample subgroup do NOT have to add up to the number of defective parts for the sample subgroup Every defective part not only can have one or more defects it can have multiple defects of the same defect category The total number of defects for a sample subgroup will always be equal to or greater than the number of defective parts When using p and np charts that display defect category counts as part of the table where N is the numcategories parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart initialization call the first N elements of the samples array holds the defect count for each category The N 1 element of the samples array holds the total defective parts count For example if you initialized the chart with a numcategories parameter to five signifying that you had five defect categories you would use a samples array sized to six as in the code below C DoubleArray samples new DoubleArray 6 ChartCalendar initialized with current time by default ChartCal
112. rules identifying each with the template and parameters used by each rule Standardized Template Parameters and Rule Cross Reference for Named Rules WECO New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 1 of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 2 of 3 lt 2 sigma 4 2 2 3 2 3 4 of 5 sigma 3 1 4 5 1 4 0f5 lt sigma 6 2 4 5 1 4 8 of 8 gt center line 7 1 8 8 0 8 of 8 center line 8 2 8 8 0 WECO Supplemental New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 2 of 3 lt 2 sigma 4 2 2 3 2 3 4 of 5 sigma 5 1 4 5 1 4 0f5 lt sigma 6 2 4 5 1 4 8 of 8 gt center line 7 1 8 8 0 8 of 8 lt center line 8 2 8 8 0 5 6 of 6 incr or dec 9 7 6 6 0 6 15 of 15 within 1 sigma 10 8 15 15 1 7 14 of 14 alternating 11 11 14 14 0 8 8 of 8 outside zoneC 12 4 8 8 1 Nelson New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 Named and Custom Control Rule Sets 329 2 2 of 3 gt 2 sigma 3 1 2 3 2 2 of 3 lt 2 sigma 4 2 2 3 2 3 4 of 5 gt sigma 3 1 4 5 1 4 0f5 lt sigma 6 2 4 5 1 4 9 of 9 gt center line 7 1 9 9 0 9 of 9 lt center line 8 2 9 9 0 5 6 of 6 incr or dec 9 7 6 6 0 6 15 of 15 within 1 sigma 10 8 15 15 1 7 14 of 14 alternating 11 11 14 14 0 8 8 points outside zone C 12 4 8 8 1 AIAG New Rule Descriptio
113. sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 188 SPC Variable Control Charts 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C initial limits replaced with auto calculated values double 11 74 hh 76 target 75 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed bool limitcheck false SpcChart PrimaryChart Add3SigmaControlLimits target ll hh limitcheck spcChart PrimaryChart ControlLimitLineFillMode true 11 0 hh 2 target 1 SpcChart SecondaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart SecondaryChart ControlLimitLineFillMode true VB initial limits replaced with auto calculated values Dim 11 As Double 74 hh As Double 76 target As Double 75 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed Dim limitcheck as boolean False SpcChart PrimaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart PrimaryChart ControlLimitLineFillMode True 11 20 hh 2 target 1 SpcChart SecondaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart S
114. spcChart ChartData SimulateMeasurementRecord 30 10 Update chart data using i as the batch number batchCounter i Add a new sample record to the chart data spcChart ChartData AddNewSampleRecord batchCounter timestamp samples Simulate passage of timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes VB Private Sub SimulateData batch number for a given sample subgroup SPC Variable Control Charts 243 Dim batchCounter As Integer 0 Dim i As Integer For i 0 To 199 Important to make a new ChartCalendar object each time Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Simulate a sample subgroup record Dim samples As DoubleArray spcChart ChartData SimulateMeasurementRecord 30 10 Update chart data using i as the batch number batchCounter i Add a new sample record to the chart data spcChart ChartData AddNewSampleRecord batchCounter timestamp samples Simulate passage of timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData Changing the Batch Control Chart X Axis Labeling Mode In revisions prior to 2 0 the x axis tick marks of a batch control chart could only be labeled with the numeric batch number of the sample subgroup While batch number labeling is still the default mode it is now possible to label the sample subgroup tick marks using the time stamp of the sample subgroup or a
115. subgroup e Data logging SPC data time stamp and or batch number sample values calculated values control limit values and notes can be logged to disk in a CSV commas separated value file format Class Architecture 47 e Scrollable view Enable the scroll bar option and scroll through the chart and table view of the SPC data for an unlimited number of sample subgroups e Other optional features There are many optional features that SPC charts often use including e Multiple SPC control limits corresponding to 7 1 2 and 3 sigma limits e Support for named control rule sets WE Nelson AIAG Juran Hughes Duncan and Gilow e Support for custom control rule sets based on our pre defined templates e Scatter plots of all sampled data values on top of calculated means and medians e Data point annotations The chapter also summarizes the classes in the SPC Control Chart Tools for Silverlight library SPC Control Chart Tools for Silverlight Class Summary The SPC Control Chart Tools for Silverlight library is a super set of the QCChart2D library The classes of the QCChart2D library are an integral part of the software A summary of the QCChart2D classes appears below QCChart2D Class Summary Chart view class The chart view class 1s a UserControl subclass that manages the graph objects placed in the graph Data classes There are data classes for simple xy and group data types There are also data classes th
116. table should user numeric row spacing TABLE NO COLOR BACKGROUND Constant specifies that the table does not use a background color TABLE SINGLE COLOR BACKGROUND Constant specifies that the table uses a single color for the background backgroundColorl TABLE SINGLE COLOR BACKGROUND GRID Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 TABLE STRIPED COLOR BACKGROUND Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 TEXT ROW SPACING Constant specifies that the next row to the table should user text row spacing Public Static Shared Properties DefaultTableFont Set Get the default font used in the table display Public Instance Constructors SPCGeneralizedTableDisplay Overloaded Initializes a new instance of the SPCGeneralizedTableDisplay class Public Instance Properties BackgroundBarXOffset Set Get the background bar left offset in normalized coordinates BackgroundColorl Set Get the first of two colors used in the alternating background colors used to delineate the table rows BackgroundColor2 Set Get the second of two colors used in the CalculatedItemTemplate CalculatedLabelFont CurrentColumnPosition CurrentRowPosition NotesItemTemplate NotesLabelFont NumericColumnSpacing NumericRowSpacing SampleItemTemplate SampleLabelFont StartC
117. the display of calculated values in the table StringLabelFont The font used in the display of header string values in the table NotesLabelFont The font used in the display of notes values in the table Extracted from the example BatchVariableControlCharts BatchIndividualRangeChart C SpcChart ChartTable SampleLabelFont new ChartFont Times 12 FontStyles Normal VB 180 SPC Variable Control Charts spcChart ChartTable SampleLabelFont new ChartFont Times 12 FontStyles Normal The ChartTable class has a static property SPCGeneralizedTableDisplay DefaultTableFont that sets the default font Use this if you want to establish a default font for all of the text in a table This static property must be set BEFORE the charts Init routine Extracted from the example Batch VariableControlCharts BatchIndividualRangeChart C SPCGeneralizedTableDisplay DefaultTableFont new ChartFont Microsoft Sans Serif 10 FontStyles Normal Initialize the SPCBatchVariableControlChart spcChart InitSPCBatchVariableControlChart charttype numsamplespersubgroup numdatapointsinview VB SPCGeneralizedTableDisplay DefaultTableFont _ new ChartFont Microsoft Sans Serif 10 FontStyles Normal Initialize the SPCBatchVariableControlChart spcChart InitSPCBatchVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview Chart Fonts There are default chart fonts that are static objects in the SPCC
118. the program user identifies an alarm you can emphasize the alarm in several different ways You can trap the alarm condition using an event delegate log the alarm to the notes log highlight the data point symbol in the chart where the alarm occurs display an alarm status line in the data table or highlight the entire column of the sample interval where the alarm occurs 32 Standard SPC Control Charts Change the color of a data point that falls outside of alarm limits 40 30 20 10 O 40 30 20 10 0 2 00 3 00 4 00 5 00 Highlight the column of the sample interval where the alarm occurs Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 1 39 ME E 2 09 2 24 2 39 E 3 09 3 24 3 39 3 54 4 09 Ml 4 39 4 54 5 09 5 24 5 39 Semper 33 mM E E Sample 1 19 24 25 37 MEN 41 30 Sempes2 33 ENN 36 23 26 20 22 MMM 28 23 19 30 29 Sample 3 32 32 34 Mi 21 21 31 o3 41 MEAN 27 8 MEN 30 4 26 7 31 0 Ml 348 258 308 269 32 1 Ml 31 2 295 284 29 2 30 4 SUM 139 1 MW 151 8 133 5 155 0 II 173 8 129 1 153 8 134 4 160 3 BIB 155 9 147 5 141 9 146 0 152 2 Standard SPC Control Charts 33 An alarm status line highlights an alarm condition and lets you know when chart the primary or secondary the alarm occurs in Tm Formi j lx Title Variable Control Chan X Bar amp R Part No 283501 Chart No 17 TIME 15 29 15 44 15 59 16 14 16 29 16 44 16 59 17 14 17 29 17 44 17 59 18 14 18 29 18 44 1
119. to be able to change from one plot type to another without deleting the instance of the old plot object and creating an instance of the new Video Game Usage by Age Group 100 t E D I ES 3 E EI a S E s 2 o FS gt 5 t 3 o E a 20 40 60 Age Group The height and width of the bars in a Histogram plot carries information HistogramPlot This class is a concrete implementation of the GroupPlot class and displays histogram plots A histogram plot is a collection of rectangular objects with independent widths and heights specified using the values of the associated group dataset The histogram bars share a common base value LineGapPlot MultiLinePlot e 2 E Collector Current mA QCChart2D Class Summary 83 Sales vs Cost Gap The Line Gap chart is useful for emphasizing the difference between two lines 3 2 e This class is a concrete implementation of the GroupPlot class A line gap chart consists of two lines plots where a contrasting color fills the area between the two lines highlighting the difference Characteristic Curves for Bipolar Transistor Kb 350uA Kb 300uA Kb 250uA Kb 200uA Kb 150uA Kb 100uA Collector Emitter Voltage The MultLinePlot will plot a multiple y vectors vs a single x vector This class is a concrete implementation of the GroupPlot class and displays group data in multi line for
120. to the tolerances inherent to the production machinery or whether or not the variations are due to some systemic assignable cause that needs to be addressed If the changes in critical variables are the result of natural variations a frequency histogram of the variations will usually follow one of the common continuous normal exponential gamma Weibull or discrete binomial Poisson hypergeometric distributions It is the job of the SPC engineer to know what distribution best models his process Periodically plotting of the variation of critical variables will give SPC engineer important information about the current state of the process A typical frequency histogram looks like Standard SPC Control Charts 41 Frequency Histogram Chart fll Formi y P lal xl File Exit Frequency Histogram of Selected Data 15 A EDS 10 3 E 2 amp 2 u 5 0 20 40 60 Measurements Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the secondary variable Range Sigma or Moving Range side by side with the SPC control chart makes it even easier to find out whether the variations are the result of natural variations or the result of some systemic change in the process 42 Standard SPC Control Charts XBar Sigma Chart with Integral Frequency Histograms ini x File Exit XBarR EWMA Chart Variable Control Limits Dynamic SPC Bar Sigma Individual Range Multi
121. to true to enable the plotting of all sampled values as a scatter plot in addition to the mean or median values Gets a reference to the charts physical coordinate system Holds a reference to an object encapsulating the plot object data associated with the main variable of the chart Get the array of the sample data Get a reference to the charts subhead Set Get the font used for the chart subhead Set Get the font used for the data table Get Set the text template for the data tooltip Get Set the increment between adjacent samples of charts that use a numeric x scale Set Get tooltip font Get a reference to the charts tooltip symbol Get a reference to the charts x axis Get a reference to the charts x axis labels Get a reference to the charts x axis grid Get Set the x value template for the data tooltip Get a reference to the charts left y axis Get a reference to the charts right y axis Get a reference to the charts left y axis labels Get a reference to the charts left y axis title Get a reference to the charts y axis grid Get Set the y value template for the data tooltip The main objects of the graph are labeled in the graph below 322 SPC Attribute Control Charts YGrid 40 YAxisTitle 25 d YAxisLab 20 GraphBackground 17 00 PlotBackground BAR 30 0 CL 24 2 Named and Custom Control Rule Sets 323 8 Named and
122. uten diode eter o 31 48 49 62 76 86 87 89 227 302 SCEOLDGE eror Ee ten bcne e RR SUN RE Pei atre de do a NER Pe esie ScrollBar 30 41 162 163 165 185 227 228 245 246 247 262 263 265 302 303 318 320 APCS A AS 94 95 102 Silverlight applicatiorns ocior ere exe dette EOU a EE e SEEE TEATS Silverlight applicatiODS oonccnnncnincnconncoonononaconccconccnonononoconcn eene 4 vi 404 431 SimpleBarPlot ord al ii A IW SERES 89 90 101 o SALE LOM sate eroi A ebd E pti ie e ies 89 90 101 SPD AS sic cyst aes oe Rae goa Siac eas dee er de eremitae p tige re e REOR dad 63 64 67 68 100 Simple DAI Ha Mater a 63 64 67 68 100 SimpleLineMarkerPlot ceescesescssseceeceseesecesecesecsceeseeeseceseeeceeseceseeesecseeeseceseceeeaeceseceeeeeeeseceaeseaeeeeeeeeaeesaes 89 90 101 SimpleLine Mark erP lote sine eee ane e A tr eee SiroplelaneMarkerPlLot 5c dite id 89 90 101 Simplemente 89 91 101 437 Simple qne LOE A n Mende e usn ae EENS 89 91 101 SimplePlot zoe estt trad ERO qUE NAAA fae 76 89 90 91 95 96 101 SIBBIGPIOL uisi ets eere Pt a irc 76 89 90 91 95 96 101 SimpleScatterPlot 4 reet e ertet lere e sales PUER Re ee ERREUR Ao CH Ee eR ne ci URS 89 91 101 lid A NU MEM 89 91 101 SitmpleVersaPloE e td le E ML ek ate b aA Ll oben ob Ee a SPCArrayStatistics SPC AXtray S tabls HOS a a nda ci 59 SPCBatchAttributeControlChart sssscee 8 1
123. value of N Y can vary from sample interval to sample interval You must have a valid sample value for each element N GetCurrentSampleSubgroupSize Y Size array exactly to a length of N Dim samples As DoubleArray New DoubleArray N ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples samples N 1 0 133 Last of the samples in the sample subgroup Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples Measured Data and Calculated Value Tables Standard worksheets used to gather and plot SPC data consist of three main parts 167 The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important information specific to the chart The second part is the measurement data recording and calculation section organized as a table where the sample data and calculated values are recorded in a neat readable fashion The third part plots the calculated SPC values for the sample group variables as a SPC chart 168 SPC Variable Control Charts The chart includes options that enable the programmer to customize and automatically include header information along with a table of the measurement and calculated data in the
124. variables section of the class This will guarantee that the strings get initialized first Since the SPCChartStrings class is static you can call it anytime It does not need instantiation public partial class Windowl Window DynamicXBarRChart dxbrc static bool initStringsComplete InitStrings public Windowl 400 Regionalization InitializeComponent InitializeCharts static bool InitStrings String oldstring SPOChartStrings BetStringi SPCChartStrings SPCStringEnum defaultMean MEAN Euro standard oldstring SPCChartStrings SetString SPCChartStrings SPCStringEnum defaultDateFormat dd M yyyy us Eng standard oldstring SPCChartStrings SetString SPCChartStrings SPCStringEnum defaultDateFormat M dd yyyy return true You can change every string used in the software line by line using the technique above Another way is to create a properly sized and initialized string array and change every string in the software with a single call to the SPCChartStrings CurrentDefaultStrings property You will find an example in the MiscBatchBasedControlCharts MainPage xaml cs file It looks like static bool initStringsFlag InitStrings Static bool InitStrings i US en String usEnglishStrings start used to mark the beginning of the array Microsoft Sans Serif default font string MRNA alarm status line High short string D alarm status lin
125. with new Enois nozzle else notesstring Add new sample record SPC Attribute Control Charts 301 SpcChart ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute passing startTime Add ChartObj MINUTE 30 VB Private Sub SimulateData Dim notesstring As String Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar This simulates an assignable defect for each category the last category 1 is assigned the total number of defective parts not defects Dim samples As DoubleArray spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART Dim r As Double ChartSupport GetRandomDouble If r lt 0 1 Then make a note on every tenth item on average notesstring Note for sample subgroup i ToString _ Spray paint nozzel clogged Replaced with new Enois nozzle Else notesstring End If Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute passing StartTime Add ChartObj MINUTE 30 Next i End Sub SimulateData Scatter Plots of the Actual Sampled Data SThis option is not applicable for attribute control charts Enable Chart ScrollBar Set the EnableScrollBar property true to enable the chart scrollbar You will then be able to window in on 8 20 sample subgroups at a time from
126. 0 1 2 4 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 200 0 180 0 100 0 060 0 220 NOTES N 0 3 0 2 FRACT DEF Scrollbar Set the EnableScrollBar property true to enable the chart scrollbar You will then be able to window in on 8 20 sample subgroups at a time from a much larger collection of measurement data representing hundreds or even thousands of subgroups and use the scrollbar to move through the data similar to paging through a spreadsheet C enable scroll bar spcChart EnableScrollBar true VB enable scroll bar spcChart EnableScrollBar True Once you have initialized the chart with data and the scrollbar has a range associated with it you can access the scrollbar using the charts HScrollBarl property SPC Chart Histograms 228 SPC Variable Control Charts 5 Formi i x Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 19 31 20 01 20 31 21 01 21 31 22 01 22 31 23 01 23 31 0 01 0 31 1 01 2 NOTES UCLP 0 28 PBAR 0 13 FRACT DEF i CLP 0 00 23 00 0 00 1 00 2 00 3 00 11 25 05 E Ej 20 15 10 5 0 20 00 21 00 22 00 Frequency Histogram Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the secondary variable Range Sigma or Moving Range side by side with the SPC control chart makes i
127. 0 10 00 11 00 12 00 13 00 14 00 C Table alarm emphasis mode spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR VB Table alarm emphasis mode spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR The entire column of the data table can be highlighted when an alarm occurs There are four modes associated with this property ALARM HIGHLIGHT NONE No alarm highlight ALARM HIGHLIGHT TEXT Text alarm highlight ALARM HIGHLIGHT OUTLINE Outline alarm highlight ALARM HIGHLIGHT BAR Bar alarm highlight The example above uses the ALARM HIGHLIGHT BAR mode 310 SPC Attribute Control Charts Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Zero Equals Defect 1 Defect 3 FRACT DEF Titl raction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 5 19 5 49 6 19 6 49 7 19 7 49 8 19 11 19 11 49 12 19 12 49 13 19 Defect 1 5 3 1 2 1 2 0 3 0 5 3 0 3 5 6 Defect 3 3 3 9 3 0 8 1 5 1 4 4 2 4 3 4 FRACT DEF 0 160 0 240 0 260 0 120 0 040 0 240 0 020 0 180 0 260 0 140 0 260 0 220 ALARM es The example above uses the ALARM HIGHLIGHT OUTLINE mode In the table above the column outlines in blue and red reflect what is actually displayed in the chart whereas in the other TableAlarmEmphasisMode examples the outline just shows where the alarm highlighting occurs The default mode is ALARM HIGHLI
128. 07 119 153 154 160 165 185 192 216 218 219 242 245 247 413 424 X Bar Sigma 6 8 9 18 19 20 21 22 23 46 60 107 119 120 153 160 165 166 167 192 193 242 440 Index X Bar Sigma 6 8 9 18 19 20 21 22 23 46 60 107 119 120 153 160 165 166 167 192 193 242 XR Level aceite dede plis ente ee ai ii 6 8 9 18 19 20 24 46 60 153 154 194 b o cC 6 8 9 18 19 20 24 46 60 153 154 194 XAxisLabelRotation 244 245 XAxisLabelRotation EA CEE TR REPE E XAxisLabelRotati0H ooooooocconcccnononanananananococonanannenonoconononanannnnnoncnnococononononaninines 244 245 X AxisstringLabelMode 2 tete ae etate ore Hd e RH e poder 245 246 247 248 317 318 319 XAxisStringLabelMode in ree t eret eerte eot on pe e eT etate etate ep te RU eget ER Hen ARS tro Lab Mod ld 245 246 247 248 317 318 319 ZOOMIN gaenen e s e E AT tada ded ds 95 96 100 TA a E E DL cM OL D o E TE 95 96 100 102 Moving Average Movine Ranger di e nd A e qe ee ER Moving Average Moving Range 1 6 8 19 20 26 27 46 52 53 111 154 161 163 242 345 Moving Average Moving Sigma nene enne nr enr enne ther enne teen enne teen e trennen enne tee treten etnies innen Moving Average Moving Sigma 1 6 8 19 20 27 28 46 52 53 111 155 161 163 242 345 ATAG ud cc JACI esp eA 1 6 9 18 48 325 327 331 333 334 33
129. 1 Bl xl Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 10096 20 9 A E S a 4 50 i z 10 0 0 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category ParetoChart The Pareto Diagram is special type of bar graph combined with a line plot plotted in a chart that uses two different y axis scales The bar graph scale is a frequency scale that measures the number of times a specific problem has occurred The line plot scale is a cumulative percentage scale The class includes all of the objects needed to draw a complete Pareto chart These objects include objects for data coordinate systems titles axes axes labels grids numeric labels and a line plot and bar plot Class Architecture 57 Cumulative Normal Probability Chart iB xd Normal Probability Plot Showing Estimated Accumulated Frequencies 99 8 99 5 96 Population Under ul e 0 5 10 Frequency Bin Probability Plots The ProbabilityChart class is a highly specialized chart template used to plot cumulative frequency data using a coordinate system that has a cumulative probability y scale The class includes all of the objects needed to draw a complete Probability chart These objects include objects for data coordinate systems titles axes axes labels grids numeric labels and scatter plot New classes were developed for the QCChart2D charting software capable of rendering of probability chart coordinate systems ProbabilityScale
130. 100 spp 400600 1000 100 Time X 10 Log Y 1 8 01 02 9 01 02 10 01 02 Logarithmic axes can be combined with linear logarithmic and time axes LogAxis This class implements a logarithmic axis with major tick marks placed on logarithmic intervals for example 1 10 100 or 30 300 3000 The minor tick marks are placed within the major tick marks using linear intervals for example 2 3 4 5 6 7 8 9 20 30 40 50 90 An important feature of the LogAxis class is that the major and minor tick marks do not have to fall on decade boundaries A logarithmic axis must have a positive range exclusive of 0 0 and the tick marks can represent any logarithmic scale Date Axes Year Year Quarter AAA AAA 1985 4920 4995 2000 1998 4990 2000 2004 2002 2003 YeauMonth QuartevMonth ra AAA 4998 1999 2000 2001 2002 2003 4 2002 4002 7 2002 10 2002 1 2003 Month Week Month Day C Day Week auau A 98402 100102 110102 420402 40103 110102 120102 10103 Month Day 5 Day Week WeeldDay Day Week ep 10103 20303 30303 40103 ASDI 1203 AND3 42503 Week Day 5 Day Week Day 8 Hour Ca UN eo TT 4 08 03 1133 1 2003 1 27 03 4 1 03 1 02 03 1103 03 1104 03 ere are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years TimeAxis QCChart2D Class Summary 71 Date Axes QuartedMonth riyy troiar r a2 os Da or 02 03 p at 2001 2002 2003 Month PER hoo i Tee
131. 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 141 165 166 168 191 205 206 207 223 224 225 226 232 233 234 242 243 244 246 248 266 267 268 286 287 291 292 293 299 300 301 302 305 306 307 315 317 318 319 337 A14 426 ATA G CA E pea ee da torte esee e Estee iur s tete ede eor ertet de er nda ATAG RUGS e cr TN vi 325 327 334 398 Alarmi Event Handlingy vitales pto Ce mda ate aot e ee Ha epe p Ote e erre bape 140 351 Alarm Event Handing so A eden eit v vi 140 351 Alarm highlighting in ee in ER Ss ee eat ane Redeem ied decks Alarm Highlighting 162 163 235 237 239 262 264 308 309 311 349 Anena A mn Oba ti ON se ERR p Tx evc 87 88 101 AMENA Xesas eese ot chats nll ee ESI OE pi ae ied oP SE Mex Met opu RCSA tan nm Chat e 69 74 76 101 AntennaAxesLabels 23 3 eei Pea rece eren ER i red Rers coire toe iir delicias odore eese ve dices ed 715 76 101 AntennaC oordinates Ses nite EE aec eia IR eO teet eso ae recen e e dte Er ree oi eic R 65 66 100 AntennaGTIdus i esce pente n Ere e e e ED ED DE E OO ER WEGE EAE ENSE 93 101 AntennaLaineMarkerPlot 2 ee ed eie ee re ves oae Eee eo Toe recae uen eh Grai CORREO E eee turae virgo 87 88 102 Antenna LineP lotic 5 eee at dente EL aeRO TEE ane c ae ee e b SBE ires 86 87 101 A miter a PG sees von onsec A AEO A EEES AB 76 86 87 88 101 AntennaSCcatterP l
132. 13 DashStyle class in WPF they are found in the DashStyles class Silverlight does not have any predefined line styles Instead line sty les are created by manipulating the Stroke characteristics of line shapes We use some predefined line style constants found as static constants in the ChartObj class to make specifying line styles simpler Note that the dash style in Net and WPF is a DashStyle type while in Silverlight it is an integer type Example System Drawing WPF CK DashStyle ls DashStyle Solid DashStyle ls DashStyles Solid VB Dim ls as DashStyle DashStyle Solid Dim ls as DashStyle DashStyles Solid Silverlight Cp int ls ChartObj LS SOLID VB Dim 1s as Integer ChartObj LS SOLID The Silverlight line style constants are public const int LS SOLID 0 public const int LS DASH84 1 public const int LS DASH4 4 2 public const int L DASH4 2 3 public const int L DASH2 2 4 public const int LS DOT 11 7 5 public const int LS_DOT_1 2 6 public const int LS DOT 14 7 public const int LS_DOT_1 8 8 public const int LS_DASH_DOT 9 Fonts It is strange but WPF and Silverlight do not encapsulate font properties into a single class like the System Drawing Font class Instead WPF Silverlight text objects which require a font specification use separate properties for the font name font size font style and the font weight We found this to be inconvenient so we created a simple ChartFont clas
133. 18 219 226 242 259 263 267 272 273 299 300 301 302 315 351 SPCControlChartDatav 50 51 104 105 106 107 109 110 111 115 116 117 118 123 124 128 132 133 134 135 136 139 140 141 158 159 161 163 175 176 177 184 185 197 198 201 203 204 218 219 226 240 241 242 258 259 263 267 272 273 299 300 301 302 312 313 315 336 351 394 411 423 SPEControlLimitAlar Ares ceteri tret Eo AR reta 50 61 104 139 140 141 142 143 217 219 226 351 SPCControlLimitAlarmArgs 50 61 104 139 140 141 142 143 217 219 226 351 SPCControlLimitRecord 50 51 104 105 135 136 137 138 139 140 141 144 145 210 213 218 219 226 284 295 296 297 SPCControlLimitRecord v 50 51 104 105 135 136 137 138 139 140 141 144 145 210 211 212 213 218 219 226 284 285 286 295 296 297 333 334 335 336 337 338 339 340 341 SPCControlParametets 3o ect sd tiet ee vr tie d cis ede dee Ee CEA RENE GE ER RES 50 59 60 SPCControlParameters cccccccccccccsssssssssccccsssssssssssssscesessesssssssseeseeeeeeecesecsseeess 50 59 60 SPCControlPlotObjectD t sic tas te atre ed eem tegeret nn edes buen m tae tae hee Navn cae ceases ele SPCControlPlotObjectData eese 344 346 347 348 349 SPCGeneralizedTableDisplay sse 50 60 104 149 178 179 180 181 183 275 276 277 278 281 SPCGeneralizedTableDisplay vi
134. 2 10 22 40 23 10 23 40 0 10 0 40 0 2 a e n PBAR 0 14 FRACT DEF i H H i i CLP 0 00 20 15 10 5 0 18 00 19 00 20 00 21 00 22 00 23 00 0 00 12 02 05 i If you are displaying the Notes line in the table portion of the chart the Notes entry for a sample subgroup displays Y if a note was recorded for that sample subgroup or N if no note was recorded Notes are recorded using one of the ChartData AddNewSampleRecord overrides that include a notes parameter See the section Updating Chart Data If you click on a Y in the Notes row for a sample subgroup the complete text of the note for that sample subgroup will display in a RichTextBox immediately above the Y You can actually edit the notes in the RichTextBox Notes Tooltip SPC Attribute Control Charts 305 Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 16 46 17 16 17 46 18 16 18 46 19 16 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 FRACT DEF PBAR 0 13 w ul a E o X a rs CLP 0 00 18 00 k 22 00 12 02 05 Je C private void SimulateData String notesstring for int i150 1 200 14 Add new sample record SpcChart ChartData AddNewSam
135. 3 2 HourHour Hout Minute AA ATA TAS AM 30 1000 1200 1400 830 1000 10103 1102003 Hour Minute 830900 1000 11 00 1200 13 00 14 00 30 9 00 10 00 11 00 4 01 03 5 Minute Minute 830 935 840 845 860 855 1 0103 Minute S Second 8 30 00 8 31 00 8 32 00 8 33 00 41 0103 Atime axis can be customize 101003 15 Minute Minute ror PI OS oL Cp d 830 8 45 9 00 9 15 930 4 01 03 Minute 1 Seconds DEET POLIS O RA PU E E SE 830 00 831400 83200 63300 83400 10103 5 Second Second TIS ALU LD E O LE 8 30 00 8 30 05 8 30 10 8 30 15 8 30 20 1001003 id for non 24 hour range This class is the most complex of the axis classes It supports time scales ranging from 1 milliseond to hundreds of years Dates and times are specified using the Net ChartCalendar class The major and minor tick marks can fall on any time base where a time base represents seconds minutes hours days weeks months or years The scale can exclude weekends for example Friday October 20 2000 is immediately followed by Monday October 23 2000 A day can also have a custom range for example a 72 QCChart2D Class Summary range of 9 30 AM to 4 00 PM The chart time axis excludes time outside of this range This makes the class very useful for the inter day display of financial market information stock bonds commodities options etc across several days months or years 0 00 00 ElapsedTimeA xis 8 00 00 16 00 00
136. 4 132 S abused o s e ended rere o Tr dad a0 47 98 100 109 111 112 113 114 132 Custom Rules 5 4 45 S emer enean atten iate e dena ide iat n e P EHE ERRORES Custom Rules aceto contio etie vi 18 214 235 308 340 341 343 350 Customer A p 2 CUSTOMS SUDDOTT cs ee oa A A EEE E E E E E 2 v CuSum chart iacent A a Ea ede id 8 9 18 20 29 154 155 202 203 cusum CHAM oet ER mde 8 9 18 20 29 153 154 155 160 202 203 242 Data logging zo nit UP D A dete ace e 47 Data logging 22 usui ii 47 108 109 131 132 133 Dita TL OIL LECT Data Tool psc nidi neni as 47 162 234 262 307 DAA SEPT lt NEA 95 96 100 Data Cursor eere ten emet m Pete b iae ee Das 95 96 100 Database De pe PIER BPO GR TR PESE ChartDataset 2 ade 63 76 77 100 Dataset classesac siue eae emend encanta diede SORE BER ov 63 76 77 100 Data TooLTIp uino treo re e te eb ere oca e ter eor en ri der p ee ea pee des DataToolTip 50 59 95 96 100 162 230 231 234 251 262 307 321 359 368 376 413 425 Developer LICONSA ER GEO TE ATi ca sk EE Nt RO TG HEREDI ESS ii Developer be A Developer UTC else A ese ihc tLe il Atene ua dA p M eR Mer ii 10 Inicio ECC 98 99 100 DPMO 2 epson emet se opere bat ptem tenete beatae ee pendiente DPMO viciosos darte ainena 1 6 8 19 39 46 121 256 260 265 266 288 289 Number Defects per Million
137. 5 339 340 341 398 AIAG Rules 1 6 9 18 48 325 327 331 333 334 335 339 340 341 398 Sor I MEM a ca E PM ER CDI se tdeniotieceee oce at ta mado ve meet 6 47 51 147 148 172 174 175 231 Duncan Rules t ce lace ia hs evita tr cie cet p Gate ete t eben nece A eed donee Duncan Rules 1 7 9 18 48 214 325 327 328 332 333 334 335 340 341 398 Gitlow Rules s 3 a he ciae Bie d e UTR EGET Rare eur aia canes Gitlow Rules 1 7 9 18 214 325 327 328 330 332 333 334 335 340 398 Hughes Rules citta aeree ae ie e eto e a te e d cach i PE D E POR TS Hughes Rules 1 7 9 18 48 214 325 327 328 329 331 333 334 335 338 339 340 341 398 Jur m Rules A ep RR RE ueniet ie Juran Rules 1 2 6 9 18 48 214 325 327 331 333 334 335 340 341 398 MAMR Chats omer ie ee pes th out wu dest cia lt iii Tet e d dd MAMR Charts 1 6 8 19 20 26 27 46 52 53 111 154 161 163 242 345 MAMS Ch tts nep A ee Here date E aeo ea ar Ee Dp eie MAMS Charts 1 6 8 19 20 27 28 46 52 53 111 155 161 163 242 345 WBGO s scie ente nodes UA DEO OR UE OO RO DYO e O O AI e s WECO Rules 6 18 214 325 326 327 329 330 333 334 335 337 338 340 341 397
138. 50 LCLR2 0 275 LCL 0 000 Control Limit Fill Option used with 1 2 and 3 sigma control limits You can also add additional control limits one at a time By default you get the 3 sigma control limits So additional control limits should be considered 2 sigma and 1 sigma control limits Do not confuse control limits with specification limits which must be added using the AddSpecLimit method There are two steps to adding additional control limits creating a SPCControlLimitRecord object for the new control limit and adding the control limit to the chart using the charts AddAdditionalControlLimit method It is critical that you add them in a specific order that order being Primary Chart SPC LOWER CONTROL LIMIT 2 2 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 2 2 sigma upper limit Primary Chart SPC LOWER CONTROL LIMIT 1 1 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 1 1 sigma upper limit Secondary Chart SPC LOWER CONTROL LIMIT 2 2 sigma upper limit Secondary Chart SPC UPPER CONTROL LIMIT 2 2 sigma upper limit Secondary Chart SPC LOWER CONTROL LIMIT 1 1 sigma upper limit Secondary Chart SPC UPPER CONTROL LIMIT 1 1 sigma upper limit C double sigma2 2 0 double sigmal 1 0 210 SPC Variable Control Charts spcChart PrimaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT LimitV alue 74 SpcChart PrimaryChart GetControlLimitData SPCChartObjects SPC UPPER CONT
139. 55 265 266 267 289 Number Defects per llo EE Number Defects Per Milton ccc a eco ty eate epe 1 6 19 289 Number Defects per Mion tit ctt Cre rre red ere e retia 1 6 19 Numeric data point labels 5 deerit etai etie rae d den nea n i Ee Enia SEEEN SE Ei en ei EEFE EE 101 NumeriG Axis Labels 2 335625 ne pcs eens ie tete i TET NER a GO ERE ORE ERIS OE GU t NT 75 101 Nu meticAxisLEabelsza ote ORENSE UD BIA Oen eo DIESE D ER NamgrecAxisDabels soe eo opt ee pui oen eoru cn oat 75 NuiericEabel4u a nen addita et oit isti et 60 93 94 101 149 182 183 281 NumericLabel rn 60 93 94 101 149 182 183 281 OHLDCPI t 2 nblinBersta T ee iere e At e prope oper e Sta Gore ere oer RR EE RETE PESE OTTER PGE Sos mulo css bases tate od ote Sa sati abe te owe ante meted 78 85 101 Open High Low Close plots eerte ee eee deeci sheen niega 78 85 101 P CHALE c nieraaenbtesta aii aids saris shed pi ete et bed c Pede Hb E NOH EE 36 37 46 54 55 255 p Chart 35 36 37 46 54 55 60 106 107 121 122 123 124 255 265 266 267 288 289 Pareto Chart esee A TEE i t et e To e eoi rr QE ed Ide ee ParetoChart 9 18 49 57 352 372 373 374 375 377 378 380 397 408 421 Parto ida 9 18 49 57 352 372 374 375 377 378 380 ParetoChart 9 18 49 57 352 372 373 374 375 377 378 380 397 408 421 PhysicalCoordinates eese eene nnne nente r enne n nnn
140. 7 the end of the samples array Each element of the samples array corresponds to the total number of defects for a given defect category If the numcategories parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart is initialized to five the total number of elements in the samples array should be five For example C DoubleArray samples new DoubleArray 5 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 Add the new sample su
141. 7 262 264 265 2779 280 287 2977 298 299 300 316 317 318 319 320 321 322 358 359 360 361 362 363 365 367 368 369 370 371 375 376 377 378 379 397 413 425 AXISTEADEIS 2c0 A A UES TEE 75 101 0 ADC A A taa A A 75 76 101 358 367 375 ARISTA aere AAA ORG RO casa RE NEA Ene EIER Nn 93 94 101 AxisTitle 93 94 101 113 181 182 251 252 279 321 322 359 360 367 369 376 377 397 Background diete tete e ET ta CERE OC EORR GU GO M ut bae e a ids 2 Background 2 3 5 49 60 62 69 102 149 150 151 157 178 179 180 240 250 251 252 257 275 276 277 320 321 322 359 368 376 406 408 419 420 B ketounds iu enitn edi A en e e e OR EE Pa ed aede er OE da edes 3 69 102 rubri UMANE e BarDatapoint E ERES tet Qu eeu ES p d dde Ret 101 BoxWhiskerPlot 78 80 101 BubblePlot 78 79 101 BubblePlotLegend 92 101 BubblePlotLegend Item EM 92 101 Butferedlinage nme ra E nu E GU PE RNV UR RES GUI ene E ayes 7 100 380 390 391 bBufferedItidge uuo tre tral 97 100 380 384 387 389 390 391 Oui T IM 6 19 38 46 255 GC Bart oo ec ene 6 19 35 36 38 40 46 60 107 122 125 255 265 266 289 Candlestick Plots a a cine octets an aam ton Pea aoe a eai ae TEE 78 80 101 Canvas nn s detener renim e me MA sU A AOI D OD Eu d RI Canvas dcs da ze oci het oae 384 386 Cartesian Coordinate
142. 7 out of 8 rules in common and only differ in the fourth rule Western Electric WECO Rules In the Western Electric Rules A process is considered out of control if any of the following criteria are met 1 The most recent point plots outside one of the 3 sigma control limits If a point lies outside either of these limits there is only a 0 396 chance that this was caused by the normal process 2 Two of the three most recent points plot outside and on the same side as one of the 2 sigma control limits The probability that any point will fall outside the warning limit is only 596 The chances that two out of three points in a row fall outside the warning limit is only about 196 3 Four of the five most recent points plot outside and on the same side as one of the 1 sigma control limits In normal processing 68 of points fall within one sigma of the mean and 32 fall outside it The probability that 4 of 5 points fall outside of one sigma is only about 396 4 Eight out of the last eight points plot on the same side of the center line or target value Sometimes you see this as 9 out of 9 or 7 out of 7 There is an equal chance that any given point will fall above or below the mean The chances that a point falls on the same side of the mean as the one before it is one in two The odds that the next point will also fall on the same side of the mean is one in four The probability of getting eight points on the same side of the mean is only a
143. 778 84 101 IiltiEmePIoto s e eet seo p etes idt pte eed M sei es 78 84 101 M l iMouseListenerz A dean uei A SOE adamtiodwas 163 263 IMMER MI OUSCIIS TENET sa curia tat Rees ie reo percent epar ande aas 95 97 100 163 263 Multiple SPC Control Litnits iei cova con eterne eee eere rre eene d lebaindue desde ai aiian e eaten eere duo d oa ead 208 220 293 Multiple SPC Control Litto ctn ee aem Ere de epa ebat seii ere ee er dera deesse Multiple SPC Control LIS iecore cre oro od vor ee a aues 48 208 293 iube cT 98 99 100 Ne IS O13 2 in seven deiecit terea aeterne Ne n A V e itte i e A EE EE FR AR ERI ONSE EE OPER RT Nelson 1 6 9 18 48 214 325 326 327 329 330 333 334 335 336 340 341 397 Nelson Rules 5 ceo codon ener ie e eee et epe gue segue o vev onte oet denda pede e reae eee Re e vaya ey ce dev den et eye NEN RR Cun e WS Nelson Ruleta vi 325 326 327 334 336 397 Nelson Rules 1 6 9 18 48 214 325 326 327 329 330 333 334 335 336 340 341 397 Notes ToOltips rite atte p dm B t HR e E t a eet a e d 230 304 Notes TOM ie 230 234 304 307 Notes abel A oh BE 50 59 183 281 Notesbabelicc ee as Vos copre etc Te et beaten 50 59 150 180 183 278 281 NotesTool TiPs cirios EE 50 59 234 235 307 308 Notes Tool Dips edes eem cus es ated 50 59 110 162 234 235 262 307 308 IPC den CR EADEM E EU Hisp He Oto e E ADI 37 255 BWpse att eoo cr actes 35 36 37 60 107 121 122 123 2
144. 8 159 165 166 167 168 218 219 222 223 224 225 226 227 240 241 243 244 258 259 266 268 299 300 301 302 312 313 315 411 414 423 426 Chart Color aerma oed Ar O ret n eH aor etr e t t et t o e TO e e eie ChartColor 11 12 98 100 178 179 250 276 320 362 364 370 371 379 AE NN ChartFont 13 14 98 100 161 180 181 182 261 278 279 280 358 367 375 392 394 Chart lina ce ad eb a ie dd ent ela e AR ello e tdo a oo hd A A A O Pe bes euer tede qubd 94 95 102 A one e T OE Be M EAE BEEN ANO NP IUD ITUR 93 94 101 151 Cdp ADE antes dte ec as be deca ola 93 94 101 151 432 Index Bing ERE ChartPlot ChartBlot ueteres ente edens 76 77 101 GhartPrinti is sca cbe rita SOIT DEO D RECTO ND BIER CE HER REG e So et ere e 380 381 382 392 ChartPHibiao eee ertt RO Ee d M e du 380 381 382 388 389 jouir gp TET 381 382 409 A eee eerte dieere le ar eR RH HEIC PERO Bho Ie CERES Salle Abed habe ONL Saou dent Eid P te eere tele eco Resa ChartScales ode tl tedesco adea tease edes iust et 64 65 66 100 Chartslape coc acr emu te E ur Max rc TE cp es Chats ape conus uo eee eode Mo tesi ad ates ect betae tas 94 95 102 GliartSynmibol itio pepe p bie at t ero e em teram ere p dd m er o Ge etit Cliatus Vin bola ook iade ba tee o dcc Ths Mic d 95 102 Chart Eextz o Rh Ioue hs d aad Y WI dea eere ies 60 104 149 183 281 Chart A e i i 60 93 94 101 104 149 183
145. 8 50 51 54 255 257 312 313 314 380 408 421 SPCBatchAttributeControlChart 8 18 50 51 54 122 125 255 257 266 268 278 312 313 314 320 380 408 421 SPCBatchVariableControlChart 8 18 50 51 52 105 153 154 157 181 239 242 278 380 408 421 SPCBatchVariableControlChart 8 18 50 51 52 105 153 154 157 181 197 201 239 240 241 242 249 278 380 408 421 SPCCalculatedValueRecord 51 104 105 113 136 137 139 140 141 145 146 147 218 219 226 227 SPCCalculatedValueRecord v 51 104 105 113 136 137 139 140 141 145 146 147 218 219 226 227 345 346 347 348 SPCChartBase 50 51 105 135 143 162 163 185 237 238 239 252 262 264 309 310 312 322 380 SPCChartBase50 51 105 135 143 162 163 164 185 237 238 239 252 262 264 309 310 312 322 380 412 424 SPCChartObjects 50 181 182 204 205 206 207 245 246 247 248 250 279 281 290 291 292 293 296 297 317 318 319 320 SPCChartObjects 50 181 182 204 205 206 207 211 212 213 220 245 246 247 248 250 279 281 285 286 290 291 292 293 296 297 317 318 319 320 332 335 337 340 342 344 345 346 347 348 349 SPCControlChartData50 51 104 105 106 107 109 110 111 115 116 123 124 128 132 133 134 135 136 139 140 141 161 163 175 176 177 184 185 197 198 201 203 204 2
146. 8 59 19 14 19 29 Sempes 3 2 4i 29 3 19 38 33 37 20 21 28 34 37 19 34 32 Sample 1 20 23 27 30 27 31 23 29 38 28 31 30 24 26 36 34 40 Sompes2 30 26 29 34 3 40 19 36 34 32 19 32 40 28 39 35 40 Sample 3 20 22 29 30 39 27 19 36 38 41 40 38 23 26 40 38 27 MEAN 25 7 244 319 304 30 2 314 24 1 33 1 335 32 5 29 1 30 1 305 27 5 33 3 324 354 SUM 128 6 122 0 159 7 152 0 150 9 157 1 120 6 165 3 167 3 162 6 145 3 150 4 152 7 137 4 166 3 162 2 177 1 ALARM 4 4 6 These alarm highlight features apply to both variable control and attribute control charts 34 Standard SPC Control Charts Scrollable Time Based XBar R Chart with Scatter Plot of Actual Sampled Data EA E Static with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 123456 Chart No 18 Operator T Moosey Machine 11 7402 ucLx 74 018 74 01 z a lt 74 00 XBAR 74 001 73 99 re LCLX 73 985 73 98 UCLR 0 042 RBAR 0 016 1 CLR 0 000 0 00 AAA AAA AAA AAA m ael Attribute Control Charts Attribute Control Charts are a set of control charts specifically designed for tracking defects also called non conformities These types of defects are binary in nature yes no where a part has one or more defects or it doesn t Examples of defects are paint scratches discolorations breaks in the weave of a textile dents cuts etc
147. ART VSS SPC Control Data and Alarm Classes 123 First you must read the previous section Updating p charts Fixed Sample Subgroup Size and understand it Because in the case of the p chart variable sample subgroup case filling out that array is EXACTLY the same as the fixed sample subgroup case The number of defects in each defect category go into the first N elements element 0 N 1 of the samples array The total number of defective parts go into last element N of the samples array Specify the size of the sample subgroup associated with a given update using the ChartData SampleSubgroupSize VSS property C DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData NUMBER DEFECTIVE PARTS CHART Randomize the sample subgroup size to some value less than the maximum value entered in the call to InitSPCTimeAttributeControlChart and set the charts ChartData SampleSubgroupSize VSS property with this value immediately prior to the AddNewSampleRecord call spcChart ChartData SampleSubgroupSize VSS numsamplespersubgroup int 25 ChartSupport GetRandomDouble Add new sample record SpcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray spcChart ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData NUMBER DEFECTIVE PARTS CHART Randomize the sample subgroup size to some value less than the maximum Y value entered
148. Args data type In WPF Silverlight programming the MouseDown and MouseUp events use the System Windows Input MouseButtonEventArgs type and the MouseMove event uses the System Windows Input MouseEventArgs type Net Forms CA protected void OnMouseDown MouseEventArgs e protected void OnMouseUp MouseEventArgs e protected void OnMouseMove MouseEventArgs e 16 Introduction VB protected void OnMouseDown ByVal e As MouseEventArgs protected void OnMouseUp ByVal e As MouseEventArgs protected void OnMouseMove ByVal e As MouseEventArgs WPF Silverlight protected void OnMouseDown MouseButtonEventArgs e protected void OnMouseUp MouseButtonEventArgs e protected void OnMouseMove MouseEventArgs e VB protected void OnMouseDown ByVal e As MouseButtonEventArgs protected void OnMouseUp ByVal e As MouseButtonEventArgs protected void OnMouseMove ByVal e As MouseEventArgs Timers It your program does any real time updates it probably uses a timer class The Net Forms timer class is System Timers Timer while the WPF Silverlight timer class is System Windows Threading DispatcherTimer They are similar in function with slightly different properties you must set The Silverlight Timer IsEnabled property is read only so you must start and stop the timer using the Timer Start and Timer Stop methods Net Forms CA System Timers Timer timerl new System Timers Timer timerl Enabled true timerl Interval 300 timerl
149. As DoubleArray spcChart ChartData SimulateMeasurementRecord 33 9 Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE sampleincrement Next i End Sub SimulateData In this example the sample data and the time stamp for each sample record is simulated In your application you will probably be reading the sample record values from some sort of database or file along with the actual time stamp for that data If you want to include a text note in the sample record use one of the ChartData AddNewSampleRecord overrides that have a notes parameter 224 SPC Variable Control Charts C private void SimulateData String not sstring for int i 0 1 lt 200 it ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples spcChart ChartData SimulateMeasurementRecord 30 10 double r ChartSupport GetRandomDouble if r 0 1 make a note on every tenth item on average notesstring Note for sample subgroup 4 i Tostring This sample is flagged as having some sort of problem else notesstring Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes StartTi
150. As Object _ ByVal e As SPCControlLimitAlarmArgs End Sub SPCControlLimitAlarm Setup and enable an alarm state event handler in an identical manner C SpcChart ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate spcChart SPCControlLimitAlarm SpcChart ChartData AlarmStateEventEnable true VB AddHandler spcChart ChartData AlarmStateEventHandler _ AddressOf spcChart SPCControlLimitAlarm SpcChart ChartData AlarmStateEventEnable True where the handler method is this SPCControlLimitAlarm 142 SPC Control Data and Alarm Classes C private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e VB Private Sub SPCControlLimitAlarm ByVal sender As Object _ ByVal e As SPCControlLimitAlarmArgs End Sub SPCControlLimitAlarm SPCSampledV alueRecord This class encapsulates a sample data value It includes a description for the item the current value of the sampled value and a history of previous values An array list of SPCSampledValueRecord objects one for each sample category is automatically created when the parent SPCChartBase object is created The programmer does not need to instantiate it Public Instance Constructors SPCSampledValueRecord Overloaded Initializes a new instance of the SPCSampledValueRecord class Public Instance Properties SampledValue Get Set the current value for this record SampledValues Get Set the historical array of the
151. AutoScaleChartY Range AutoScalePrimaryChartY Range AutoScaleSecondaryChartY Range Copy Draw InitSPCChartBase IsTimeScale Set Get whether the x axis is time based or numeric based Overloaded Add a simple annotation to a data point in the specified SPC chart Using the current sampled data values high target and low control limits are calculated for both primary and secondary charts using an algorithm appropriate to the SPC chart type Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the primary SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Overloaded Copies the source object Overrides the Draw method of the underlying ChartView class so that the scroll bar can be properly repositioned if the size of the window changes The graphics context the chart is drawn to This initialization met
152. C UPPER PC LIMIT 0 25 H Cpk new ChartAttribute Colors Yellow 3 0 Attached control limits to the second Process Capability added to the chart SpcChart PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpm new ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpm new ChartAttribute Colors Yellow 3 0 VB spcChart PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpk New ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpk New ChartAttribute Colors Yellow 3 0 spcChart PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpm New ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpm New ChartAttribute Colors Yellow 3 0 Enable Alarm Highlighting The alarm status line above is turned on off using the EnableAlarmStatusValues property We have set it on by default so you will have to turn it off if you don t want it Each sample interval has two small boxes that are labeled using one of several different characters listed below The most common are an H signifying a high alarm a L signifying a
153. CapabilityReGOtd ied nate Ord ozone ad icri borse ie reo dens 147 sPCOGeneralizedTableDisSpl y oss vere io dad as 149 6 SPC Variable Control Charts eee ioc eite ir vi DU o bee D bu ER Fue gis 153 Time Based and Batch Based SPC Charts sese 155 Creating a Batch Based Variable Control Chart sees 239 Changing the Batch Control Chart X Axis Labeling Mode ssuss 244 Changing Default Characteristics of the Chart seen 248 7 SPC Attribute Control Charts eei bteastnngsancdenss repr Da se RYE gh neces e apu 255 Time Based and Batch Based SPC Charts sse 256 Changing the Batch Control Chart X Axis Labeling Mode sess 316 8 Named and Custom Control Rule Sets seen 325 Western e WECO RU S uoce icoit eet EQ IBSSIQANI AIR ISSN E DU NTMNVE Qu n S ans 325 Western Blectric WBGO Rules occ Ree cb Rr Ore ide ooa d Oe Cv eos 326 A A Ute a tt t duds 327 ATAG RU ida 327 TULA RULES T a isa a a EE vane a EE vee a AA a pH A 327 Hughes RUlES Reis 328 CU NS 328 Dunca Rules aria 328 Control Rule Templates sirope do rt adas 329 Implementing a Named Rule ini A ini dient oer 332 Modifying Existing Named Rules econtra oet eie ex QR Foederatis 338 Creating Custom Rules Sets Based on Named Rules sss 340 Creating Custom Rules Sets Based on a Template esses 341 C
154. Chart Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Change the default horizontal position of the chart spcChart GraphStartPosX 0 125 Set the strings used in the header section of the table spcChart ChartData Title Variable Control Chart Individual Range spcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 spcChart ChartData PartName Transmission Casing Bolt spcChart ChartData Operation Threading SpcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 spcChart ChartData UnitOfMeasure 0 0001 inch spcChart ChartData ZeroEquals zero E e e c Q SpcChart ChartData SpecificationLimits e E C c s B SpcChart ChartData DateString DateTime Now ToString SPC Control Data and Alarm Classes 117 SpcChart ChartData NotesMessage Control limits prepared May 10 spcChart ChartData NotesHeader NOTES spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELS3 Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData End Sub Update the sampled data with your measured values using one of the AddNewSampleRecord methods Method AddNewSampleRecord This method adds a new sample record to the SPC chart While both variab
155. Chart Public Sub New spcchart 1 As SPCTimeVariableControlChart Define and draw chart spcChart spcchart 1 InitializeChart End Sub Public Sub InitializeChart SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of datapoints in the view Dim numdatapointsinview As Integer 19 Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI Set the strings used in the header section of the table SpcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 SpcChart ChartData ChartNumber 17 spoChart ChartData PartName Transmission Casing Bolt SpcChart ChartData Operation Threading Display the Sampled value rows of the table spcChart EnablelnputStringsDisplay True 422 Creating SPC Charts in Windows Applications Display the Sampled value rows of the table SpcChart EnableCategoryValues True Display the Calculated value rows of the table SpcChart EnableCalculatedValues True Display the total samples per subgroup value row spcChart EnableTotalSamplesValues True Display the Notes row of the table spcChart EnableNotes True Display the time stamp row of the table SpcChart EnableTimeValues
156. Chart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 If i 10 Then SpcChart ChartData SetControlLimitValues changeControlLimits End If spcChart ChartData AddNewSampleRecord timestamp samples Second you can use the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object before you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C SPC Attribute Control Charts 291 spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Nariable Control Limits re calculated every update after 10 using AutoCalculateControlLimits it QL 3 L9 spcChart AutoCalculateControlLimits SpcChart ChartData AddNewSampleRecord timestamp samples VB spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits Ifi 10 Then spcChart AutoCalculateControlLimits End If SpcChart ChartData AddNewSampleRecord timestamp samples Last you can enter the SPC control limits with every new sample subgroup record using one of the methods that include a control limits array parameter C double initialControlLimits 0 13 0 0 0 27 double changeControlLimits 0 11
157. ChartData ProcessCapabilityUSLValue 35 Use the ChartData addProcessCapability Value method to specify exactly which process capability statistics you want to see in the table Use one of the SPCProcessCapabilityRecord constants below to specify the statistics that you want displayed SPC_CP_CALC Constant value Cp calculation SPC CPL CALC Constant value Cpl calculation SPC CPU CALC Constant value Cpu calculation SPC CPK CALC Constant value Cpk calculation SPC CPM CALC Constant value Cpm calculation SPC PP CALC Constant value Pp calculation SPC PPL CALC Constant value Ppl calculation SPC PPU CALC Constant value Ppu calculation SPC PPK CALC Constant value PPK calculation The code below is from the TimeVariableControlCharts XBarR Chart example spcChart ChartData AddProcessCapabilityValue SPCProcessCapabilityRecord SPC CPK CALC spcChart ChartData AddProcessCapabilityValue SPCProcessCapabilityRecord SPC_CPM CALC spcChart ChartData AddProcessCapabilityValue SPCProcessCapabilityRecord SPC_ PPK CALC This selection will add three rows to the data table one row each for the Cpk Cpm and Ppk process capability statistics Once these steps are carried out the calculation and display of the statistics is automatic 172 SPC Variable Control Charts Bar Sigma Individual Range MultiLimit Bar R Median Range Dynamic SPC Variable Control Limits Title Variable
158. Charts 355 434 476 352 185 144 l65 105 461 385 263 476 304 180 557 482 321 293 339 318 z51 2190 472 210 199 330 109 101 137 300 119 380 410 205 122 238 VB Frequency bins Dim freqLimits As Double _ 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins Dim freqValues As Double _ 121 349 945 3222 277 102 2189 134 Tas 476 323 367 133 354 245 434 476 352 185 144 165 105 461 386 263 476 304 _ 80 557 S02 327 293 538 318 251 218 _ 472 218 199 330 1089 101 137 300 119 380 410 206 122 238 356 Frequency Histograms Pareto Diagrams Probability Charts l xi File Exit Frequency Histogram of Selected Data 15 ak o Frequency Measurements Once the Init routine is called the chart can be further customized using the properties and methods below Public Static Shared Properties DefaultAxisLabelsFont DefaultChartFontString DefaultDataValueFont DefaultFooterFont DefaultMainTitleFont DefaultSubHeadFont DefaultToolTipFont Get Set the default font used for the axes labels and axes titles Set Get the default font used in the chart This is a string specifying the name of the font Get Set the default font used for the numeric values labeling the bars Get Set the font used for the chart footer Get Set the font used for the main title Get Set t
159. Class Summary AxisLabels NumericAxis Labels StringAxisLabels PolarAxesLabels AntennaAxesLabels TimeAxisLabels ElapsedTimeAxisLabels Axis labels inform the user of the x and y scales used in the chart The labels center on the major tick marks of the associated axis Axis labels are usually numbers times dates or arbitrary strings Possible date labels for todays date July 19 2002 2002 7 2002 7 19 2002 19 07 2002 02 7 02 7 19 02 19 07 02 July Jul J Friday Fri F Axis Labels Possible numeric labels for the value 12340 Possible time labels for the current time 15 15 11 24 Hour Mode 12340 0 Decimal 15 15 24 Hour Mode 1 2340E4 Scientific 15 11 Minute Second 12 340K Business 3 15 11 12 Hour Mode 123400096 Percent 3 15 12 Hour Mode 1 2340x10 Exponent a 12340 Currency d N d Multi line and rotated 0 360 degrees oe axis labels are supported 3 se 4o rrTTTTITTTT TTTTT ITTTTT TTTT Western Eastern Southern Northern Sales Sales Sales Sales Region Region Region Region In addition to the predefined formats programmers can define custom time date and numeric formats AxisLabels NumericAxis Labels This class is the abstract base class for all axis label objects It places numeric labels date time labels or arbitrary text labels at the major tick marks of the associated axis object In addition to the standard font options type size style color etc axis
160. Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 18 44 18 59 19 14 19 29 19 44 19 59 20 14 20 29 20 44 20 59 21 14 21 29 21 44 21 59 22 14 22 29 22 44 RANGE 113 9 1 107 120 87 57 110 135 127 121 98 82 84 104 45 133 10 7 0 243 0 218 0 233 0 248 0 249 0 250 0 211 0 218 0 209 0 203 0 203 0 220 0 241 0 250 0 235 0 228 0 218 0 246 0 210 0 239 0 262 0 265 0 263 0 219 0 228 0 218 0 214 0 216 0 231 0 251 0 260 0 233 0 231 0 220 Formulas Used in Calculating the Process Capability Ratios The formulas used in calculating the process capability statistics vary We use the formulas found in the textbook Introduction to Statistical Quality Control by Douglas C Montgomery John Wiley and Sons Inc 2001 SPC Control Chart Nomenclature USL Upper Specification Limit LSL Lower Specification Limit Tau Midpoint between USL and LSL 4 LSL USL X XDoubleBar Mean of sample subgroup means also called the grand average R RBar Mean of sample subgroup ranges S Sigma sample standard deviation all samples from all subgroups are used to calculate the standard deviation S SPC Variable Control Charts 173 S SigmaBar Average of sample subgroup sigma s Each sample subgroup has a calculated standard deviation and the SigmaBar value is the mean of those subgroup standard deviations d2 a constant tabulated in every SPC t
161. ControlLine 60 0 new ChartAttribute ChartColor LightGreen 2 SpcChart AutoNormalCurve True Frequency Histograms Pareto Diagrams Probability Charts 363 Probability Plots Another important tool the SPC engineer uses to model the process variation is the probability plot The probability plot is a simple way to test whether control chart measurements fit a normal distribution Usually probability plot graphs are plotted by hand using special probability plot graph paper We have added probability scale and axis classes that enable you to plot probability plots directly on the computer Control chart measurements that follow a normal distribution curve will plot as a straight line when plotted in a normal probability plot Creating a Probability Plot Cumulative Normal Probability Chart Anl x Normal Probability Plot Showing Estimated Accumulated Frequencies 99 8 99 5 96 Population Under uo e 0 5 10 Frequency Bin The ProbabilityChart class creates a standalone probability plot It is a simple template where you need only supply data and set a few properties to create a proper frequency histogram The example below is extracted from the ProbabilityPlot ProbabilityChartInit example program 364 Frequency Histograms Pareto Diagrams Probability Charts C public class ProbabilityChartinit ProbabilityChart spcChart public ProbabilityChartInit ProbabilityChart pc spcChart pc Define and
162. DoubleArray variableControlLimits spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE y Variable Control Limits updated using AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray variableControlLimits new DoubleArray changeControlLimits spcChart ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring VB Dim initialControlLimits As Double 30 25 35 10 0 20 Dim changeControlLimits As Double 28 23 33 9 0 18 Dim variableControlLimits As DoubleArray SpcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits updated using AddNewSampleRecord If i 10 Then need to convert changeControlLimits to a DoubleArray variableControlLimits New DoubleArray changeControlLimits End If SpcChart ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring SPC Variable Control Charts 207 Multiple SPC Control Limits The normal SPC control limit displays at the 3 sigma level both high and low A common standard is that if the process variable under observation falls outside of the 3 sigma limits the process is out of control The default setup of our variable control charts have a high limit at the 3 sigma level a low limit at the 3 sigma level and a target value There are situations where the quality engineer also wants to display control limits at
163. Ea ote i ee ber ied abe een Us No Table entere etam Betas Mice TD 165 183 185 Uso TED 48 62 63 100 404 UserGonttol 4 nete ertet terere iere three erre a dde e ida 9 48 63 404 416 417 428 E E a E APAE EEEE NE ESTESE S EEEE ER E a Ee i 65 100 UserCoordimates 5 dae EEE tse rete eder A AO 65 100 Variable Control Chart 6 19 20 21 30 40 46 47 52 53 105 106 107 110 116 118 119 138 153 156 157 165 170 171 176 192 239 248 257 Variable Control Chart 1 v 6 8 9 18 19 20 21 22 30 40 46 47 51 52 53 105 106 107 110 111 114 115 116 117 118 119 120 138 153 155 156 157 158 159 160 161 165 166 167 170 171 176 184 185 192 197 198 201 203 208 215 231 239 240 241 242 248 257 293 394 403 411 423 Varlable sainpl SUD e eter eH HERES eee died e e Sede e Misses decenter tie 9 124 126 153 Variable sample SUDQfOUP E ina variable sample SUDgrOUp ocooocnoccnocononccononcnoncccnonanoconnncccnnonos 9 123 124 125 126 153 Visual BaSi ssc sevz de D orate cates ERE ER ERO frets EA teda d aient de 9 18 381 390 417 MARDCIBIDCUE CHR nt A e cra cneseven cheb utes Visual Basler erit ei aris 9 18 333 335 336 338 340 342 344 346 348 417 Visual Rosen der et enm e tbt quenquam inae aum emet tetigere 18 404 jnre c E ihe A T e eee 18 404 Visual RIDE
164. FTWARE without charge on an evaluation basis for thirty 30 days from the day that yu DOWNLOAD the trial version of the SOFTWARE The termination date of the trial SOFTWARE 1s embedded in the downloaded SOFTWARE and cannot be changed You must pay the license fee for a Developer License of the SOFTWARE to continue to use the SOFTWARE after the thirty 30 days If you continue to use the SOFTWARE after the thirty 30 days without paying the license fee you will be using the SOFTWARE on an unlicensed basis Redistribution of 30 Day Trial Copy Bear in mind that the 30 Day Trial version of the SOFTWARE becomes invalid 30 days after downloaded from our web site or one of our sponsor s web sites If you wish to redistribute the 30 day trial version of the SOFTWARE you should arrange to have it redistributed directly from our web site If you are using SOFTWARE on an evaluation basis you may make copies of the evaluation SOFTWARE as you wish give exact copies of the original evaluation SOFTWARE to anyone and distribute the evaluation SOFTWARE in its unmodified form via electronic means Internet BBS s Shareware distribution libraries CD ROMS etc You may not charge any fee for the copy or use of the evaluation SOFTWARE itself You must not represent in any way that you are selling the SOFTWARE itself You must distribute a copy of this EULA with any copy of the SOFTWARE and anyone to whom you distribute the SOFTWARE is subject to this EULA C Redis
165. GHT NONE mode AutoLogAlarmsAsNotes When an alarm occurs details of the alarm can be automatically logged as a Notes record Just set the AutoLogAlarmsAsNotes property to true C spcChart AutoLogAlarmsAsNotes true VB spcChart AutoLogAlarmsAsNotes True Creating a Batch Based Attribute Control Chart SPC Attribute Control Charts 311 Both the SPCTimeAttributeContolChart and SPCBatchAttributeControlChart derive from the SPCChartBase and as a result the two classes are very similar and share 95 of all properties in common Creating and initializing a batch based SPC chart is much the same as that of a time based SPC chart Derive your base class from SPCBatchAttributeControlChart class as seen in the BatchAttributeControlCharts SimpleA ttributeControlChart example program Add a reference to the SPCBatchAttributeControlChart to your MainPage xaml file UserControl x Class BatchAttributeControlCharts MainPage xmlnsz http schemas microsoft com winfx 2006 xaml presentation xmlns xz http schemas microsoft com winfx 2006 xaml xmlns dz http schemas microsoft com expression blend 2008 xmlns mc http schemas openxmlformats org markup compatibility 2006 mc Ignorable d xmlns my z clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL d DesignHeight 631 d DesignWidth 878 xmlns sdkz http schemas microsoft com winfx 2006 xaml pr
166. IABLE Change limits at sample subgroup 10 If i 10 Then SpcChart ChartData SetControlLimitValues changeControlLimits End If spcChart ChartData AddNewSampleRecord timestamp samples notesstring Second you can use the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object before you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits LIT 2 gt DB spcChart AutoCalculateControlLimits spcChart ChartData AddNewSampleRecord timestamp samples notesstring VB spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE 206 SPC Variable Control Charts Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits If i gt 10 Then spcChart AutoCalculateControlLimits End If spcChart ChartData AddNewSampleRecord timestamp samples notesstring Last you can enter the SPC control limits with every new sample subgroup record using one of the methods that include a control limits array parameter C double nitialControlLimits 30 25 35 10 0 20 double changeControlLimits 28 23 33 9 0 18
167. ILE PREFIX NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART PERCENT DEFECTIVE PARTS CHART SPC PRIMARY CONTROL TARGET SPC PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT SPC SECONDARY CONTROL TARGET Chart type constant Mean and Range X Bar R SPC Variable Control Chart Chart type constant Mean and Sigma X Bar Sigma SPC Variable Control Chart Chart type constant Mean and Sigma X Bar Sigma SPC Variable Control Chart with variable sample size Chart type constant Mean and Variance X Bar Variance SPC Variable Control Chart Chart type constant Median and Range Median Range SPC Variable Control Chart Datalog flag specifying that the file prefix row ist NOT to be included Using this option will make the file incompatible with the SPCControlChartData routines that read data files Chart type constant Number Defective Parts np chart Control Chart Chart type constant Number Defects c chart Control Chart Chart type constant Number Defects per Unit u chart Control Chart Chart type constant Percent Defective Parts p chart Control Chart Index of primary chart target control limit in controlLimitData array Index of primary chart lower control limit in controlLimitData array Index of primary chart upper control limit in controlLimitData array Index of secondary chart target control limit in controlLimitData array SPC SECONDARY LOWER CONTROL
168. In the SPCChartObjects CONTROL LINE FIXED case the current SPC control limit plots as a horizontal straight line for the entire width of the chart regardless if the control limit changes either explicitly or using the AutoCalculateControlLimits method If the ControlLineMode property is SPCChartObjects CONTROL LINE VARIABLE the SPC limit value plots at the value it had when the sample subgroup values updated If you change a control limit value the control limit line will no longer be a straight horizontal line instead it will be jagged or stepped depending on the changes made There are three ways to enter new SPC limit values See the example program TimeVaraibleControlCharts VariableControlLimits for an example of all three methods First you can use the method ChartData SetControlLimitValues method C double initialControlLimits 130 25 35 10 0 20 double changeControlLimits 28 23 33 9 0 18 SpcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 if i 10 spcChart ChartData SetControlLimitValues changeControlLimits SpcChart ChartData AddNewSampleRecord timestamp samples notesstring SPC Variable Control Charts 205 VB Dim initialControlLimits As Double 30 25 35 10 0 20 Dim changeControlLimits As Double 28 23 33 9 O 18 spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VAR
169. J SZ 59 25 Bi 29 394 _ 27 42 46 43 45 44 53 S7 25 38 44 36 40 36 48 56 47 40 58 45 38 32 39 43 31 45 41 Sie Bly 38 33 20 50 23 50 Bly 28 51 40 52 43 spcChart InitFrequencyHistogram freqLimits freqValues SpcChart BuildChart End Sub InitializeChart End Class All you have to do is supply the raw data and the values of the frequency bins for which you want to accumulate values The FrequencyHistogramChart class auto scale a coordinate system creates the proper x and y axes and draws the resulting frequency histogram as a bar plot FrequencyHistogramChart InitFrequencyHistogram Method Initializes the histogram frequency bin limits and the data values for the histogram VB Public Sub InitFrequencyHistogram _ ByVal frequencylimits As Double _ ByVal frequencyvalues As Double _ public void InitFrequencyHistogram double frequencylimits double frequencyvalues Parameters frequencylimits The frequency limits of the histogram bins frequencyvalues An array the values that are counted with respect to the frequency bins The image below uses the following data C Frequency bins double freqLimits 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues Vigil g 9 385 3225 277 162 218 134 133 476 323 367 133 354 245 Frequency Histograms Pareto Diagrams Probability
170. LABEL MODE DEFAULT 246 SPC Variable Control Charts Batch Control Chart X Axis User Defined String Labeling Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bot peration Threading 5000 Operator J Fenamore Machine 11 Date 2 25 2009 10 34 27 AM TIME 10 34 10 49 11 04 11 19 11 34 11 49 12 04 12 19 12 34 12 49 13 04 13 19 13 34 13 49 Sample 1 37 1 27 2 33 1 23 5 23 8 26 6 32 7 37 2 36 6 23 2 24 9 32 1 29 9 35 9 MEAN 31 8 24 7 34 2 30 4 31 8 25 8 31 3 29 6 30 9 30 4 26 9 33 6 27 3 30 0 i T i LCL 22 31 EC959 EC953 EC891 EC497 EC700 EC339 EC452 EC758 EC852 EC809 EC255 EC32 EC285 EC814 CL 18 75 w o E c RBAR 7 28 CL 0 00 EC959 EC953 EC891 EC497 EC700 EC339 EC452 EC758 EC852 EC809 EC255 EC32 EC285 EC814 mpm Ej Batch X Bar R Chart user defined string labeling of the x axis Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS LABEL MODE STRING C enable scroll bar SpcChart EnableScrollBar true spcChart EnableCategoryValues false Label the tick mark with user defined strings spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING VB enable scroll bar SpcChart EnableScrollBar True spcChart EnableCategoryValues False Label the tick mark with user defined strings spcChart XAxisStringLabelMode SPCChartObje
171. LIMIT Index of secondary chart lower control limit in controlLimitData array SPC SECONDARY UPPER CONTROL LIMIT Index of secondary chart upper Public Static Shared Properties BatchColumnHeadString DefaultAbsRangeString DefaultDataLogFilenameRoot DefaultHighAlarmMessageString DefaultLowA larmMessageString DefaultLowControlLimitString DefaultMeanString DefaultMedianString DefaultRangeString DefaultSampleValueString DefaultSigmaString DefaultSumString DefaultTargetString DefaultUpperControlLimitString DefaultVarianceString DefaultXBarString DefaultXString NotesColumString SPC Control Data and Alarm Classes 107 control limit in controlLimitData array Default string used as the batch number column head in the log file The default value is Batch Default string used to the y axis of secondary chart of I R charts Default string used as the default file name for data logging Only used if data logging turned on and the DataLoglsolatedStorageFileOpenForWrite has not been initialized with an explicit filename The current time is appended to the root to make it a unique filename Default string used as the high alarm message for a low control limit Default string used to the label the target lower control limit line of the chart Default string used to the label the target low control limit line of the chart Default string used to title the y axis of mean graphs Defa
172. Limit Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 411 Date 4 14 2008 12 57 51 PM TIME 12 57 13 12 13 27 13 42 13 57 14 12 14 27 14 42 14 57 15 12 15 27 15 42 15 57 16 12 16 27 16 42 16 57 MEAN 62 60 62 78 64 08 62 40 64 28 62 16 65 33 63 00 63 12 64 62 64 16 60 80 64 35 64 95 65 90 62 09 62 90 SIGMA 5 60 6 61 7 23 6 18 6 77 6 33 6 40 4 77 563 651 6 08 6 06 6 90 6 64 4 87 491 4 94 SUM 939 942 961 936 964 932 980 945 947 969 962 912 965 974 989 931 943 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ALARM a NOTES N N N N N N N N N N N N N N N N N Probability Plots Another important tool the SPC engineer uses to model the process variation is the probability plot The probability plot tests whether control chart measurements fit a normal distribution Usually the SPC engineer plots probability plot graphs by hand using special probability plot graph paper We added probability scale and axis classes to the QCSPCChart software that plots probability plots directly on the computer Control chart measurements that follow a normal distribution curve plot as a straight line when plotted in a normal probability plot Standard SPC Control Charts 43 Cumulative Normal Probability Chart BlFormi Pareto Diagrams The Pareto diagram is a special type of
173. LineColor ChartColor DarkMagenta BuildChart ializeChart add Pareto chart categories values and strings Spec spot Spec spo Spot Spec B spot spoe spo SpcC Spec SpOC SpcC Spo End Sub hart AddCategoryItem 5 Torn hart AddCategoryItem 7 Not Enough ControlChars Lf Component hart AddCategoryItem 2 Others hart AddCategoryItem 11 Poor Mix hart AddCategoryItem 27 Holes hart AddCategoryItem 8 Stains ild chart hart LineMarkerPlot LineColor Colors Blue hart LineMarkerPlot SymbolAttributes PrimaryColor Colors Black hart YAxisl LineColor Colors Green hart YAxisl LineWidth 3 hart YAxis2 LineColor Colors Blue hart YAxis2 LineWidth 3 hart YAxisLabl LineColor ChartColor DarkMagenta hart BuildChart InitializeChart 10 File and Printer Rendering Classes ChartPrint BufferedImage All of the chart classes described in this manual com quinn curtis chart2dnet ChartView FrequencyHistogramChart ParetoChart ProbabilityChart SPCChartBase SPCBatchAttributeControlChart SPCBatchVariableControlChart SPCTimeAttributeControlChart SPCTimeVariableControlChart are derived from the com quinncurtis chart2dsl ChartView class The chart and table information displayed in these charts can be printed and saved to image files using the techniques described in the QCChart2D manual QCChart2DSLManual pdf This chapter repeats that info
174. MEAN 29 8 29 5 33 1 304 28 8 25 5 29 2 246 26 2 29 5 31 1 28 6 31 1 27 6 34 7 RANGE 19 1 17 4 12 7 12 6 12 0 20 0 16 7 16 4 16 4 13 2 16 9 16 2 12 1 193 8 1 SUM 121 6 149 1 147 5 165 6 152 1 143 8 187 1 127 6 145 8 123 2 131 1 147 5 155 3 142 9 155 5 138 1 173 4 Cpk 0 188 0 188 0 187 0 188 0 188 0 188 D 190 0 189 0 188 0 186 0 185 0 184 0 184 0 184 0 184 0 183 0 185 Cpm D 226 0 226 0 225 0 225 0 225 0 226 D 226 0 225 0 225 0 225 0 224 0 224 0 224 0 224 0 224 0 223 0 224 Ppk 0 184 0 183 0 183 0 184 0 184 0 184 D 186 0 184 0 183 0 181 0 180 0 180 0 180 0 179 0 179 0 178 0 180 ALARM Bl 1 l I I I I I I BMPO 0 1 1 1 1 0 I I I I I I2 I NOTES INN N N NI N N N N NN N NN N NN The example above uses the ALARM HIGHLIGHT OUTLINE mode In the table above the column outlines in blue and red reflect what is actually displayed in the chart whereas in the other TableAlarmEmphasisMode examples the outline just shows where the alarm highlighting occurs The default mode is ALARM HIGHLIGHT NONE mode AutoLogAlarmsAsNotes When an alarm occurs details of the alarm can be automatically logged as a Notes record Just set the AutoLogAlarmsAsNotes property to true C spcChart AutoLogAlarmsAsNotes true VB spcChart AutoLogAlarmsAsNotes True Creating a Batch Based Variable Control Chart Both the SPCTimeVariableContolChart and SPCBatchVariableControlChart derive from the SPCChartBase and as a result
175. Machine 11 Gage 8645 Zero Equals zero TIME 1 14 1 20 144 1 59 2 14 2 29 2 44 259 314 329 344 3 59 4 14 ALARM O O O O O O S S S S S S S UCL 53 25 99 Target 19 98 LCL 53 13 97 40 30 20 10 0 2 00 3 00 4 00 Alarm status line spcChart EnableAlarmStatusValues false VB Alarm status line spcChart EnableAlarmStatusValues False Control Limit Alarm Event Handling The SPCControlChartData class can throw an alarm event based on either the current alarm state or an alarm transition from one alarm state to another The SPCControlLimitAlarmArgs passes alarm data to the event handler See Chapter 5 SPC Control Data and Alarm Classes for examples of using an alarm event handler 9 Frequency Histogram Pareto Diagram and Normal Probability Charts FrequencyHistogramChart ParetoChart ProbabilityChart Frequency Histogram Chart An SPC control chart will allow you to track the trend of critical variables in a production environment It is important that the production engineer understand whether or not changes or variation in the critical variables are natural variations due to the tolerances inherent to the production machinery or whether or not the variations are due to some systemic assignable cause that needs to be addressed If the changes in critical variables are due to the natural variations then a frequency histogram of the variations will usually follow one of the common continuous normal
176. No N No short string shortStringY es YT Yes short string dataLogUserString us default data log user string sPCControlChartDataTitle Variable Control Chart X Bar amp R Default chart title zeroEqualsZero zero table zero string timeValueRowHeader TIME TIME row header alarmStatusValueRowHeader ALARM ALARM row header numberSamplesValueRowHeader NO INSP NO INSP row header titleHeader Title Title field caption partNumberHeader Part No Part number field caption chartNumberHeader Chart No Chart number field caption partNameHeader Part Name Part name field caption operationHeader Operation Operation field caption operatorHeader Operator Operator field caption machineHeader Machine Machine field caption Regionalization 393 dateHeader Date Date field caption specificationLimitsHeader Spec Limits Spec limits field caption gageHeader Gage Chart number field caption unitOfMeasureHeader Units Chart number field caption zeroEqualsHeader Zero Equals Chart number field caption defaultMean MEAN MEAN Calculated value row header defaultMedian MEDIAN MEDIAN Calculated value row header defaultRange RANGE RANGE Calculated value row header defaultVariance VARIANCE VARIANCE Calculated value row header defaultSigma SIGMA SIGMA Calculated value row he
177. OLUMN HEADS Datalog flag specifying that the column heads should be logged to the file DATALOG FILE CONTROL LIMIT VALUES Datalog flag specifying that the control limit values should be logged to the file DATALOG FILE NOTES Datalog flag specifying that the notes should be logged to the file DATALOG FILE SAMPLED VALUES Datalog flag specifying that the sampled values should be logged to the file DATALOG FILE TIME STAMP Datalog flag specifying that the time stamp should be logged to the file C spcChart ChartData DataLogFlags SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DATALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES VB spcChart ChartData DataLogFlags SPCControlChartData DATALOG FILE TIME STAMP Or SPCControlChartData DATALOG FILE SAMPLED VALUES Or _ 134 SPC Control Data and Alarm Classes SPCControlChartData DATALOG FILE CALCULATED VALUES Or _ SPCControlChartData DATALOG FILE COLUMN HEADS Or _ SPCControlChartData DATALOG FILE NOTES It is also possible to read a previously saved datalog file from isolated storage and initialize the ChartData object with previously collected data While the data can be initialized it is still important that the originating SPCChartBase object is initialized properly for the data it is to receive Use the ChartData ReadAllValuesFromFil
178. ON RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES and DUNCAN RULES rulenum The rule number our rule number Named and Custom Control Rule Sets 339 Even if you do not call one of the Use Rules methods you still end up with four control limits These correspond to the 3 sigma control limits for both the Primary and Secondary were applicable chart So you do not need to add those to your custom set of rules Start with the rules you want to add after the standard 3 sigma rules If for some reason you cannot live with the default 3 sigma rules you can disable them with a call to EnableDefaultLimits false false Say you want to create custom rule set for the Primary chart combining rules from Nelson 3 4 Juran 5 5 AIAG 23 74 Hughes 12 and Duncan 8 Make the following calls in the setup portion of your program C SpcChart PrimaryChart AddControlRule SPCControlLimitRecord NELSON RULES 3 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord NELSON RULES 4 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord JURAN RULES 5 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord JURAN RULES 6 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord AIAG RULES 3 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord AIAG RULES 4 SpcChart PrimaryChart AddControlRule SPCControlLimitRecord HUGHES RULES 12 SpcChart PrimaryChart
179. PC calculation Constant value for a standar deviation SPC calculation Constant value for a sum SPC calculation Constant value for a total defective parts SPC calculation Constant value for a total defects SPC calculation Constant value for a variance SPC calculation Calculate the calculated value value based on the data in the source array and the specified calculation type Overloaded Initializes a new instance of the SPCCalculatedValueRecord class Get the current calculation value for this record Get the reference to the calculatedValue array Set Get the calculation type for this calculation value record Use one of the 146 SPC Control Data and Alarm Classes MostRecentSampledV alues ValidValueFlags ValueDescription Public Instance Methods Copy GetCalculatedValueStatistic IsValueValid SetCalculatedValue SPCProcessCapabilityRecord SPCCalculatedValueRecord calculation type constants Get Set an array holding the values of the most recent sampled or measured values used in calculating the records calculateValue value Get the reference to the validValueFlags array Get Set the description of calculation value record Copies the source object Returns the calculated value value based on the data in the calculated historical data array calculatedValues Excludes values that are marked invalid in the validValueFlags array Checks to the validValueFlags to see if a value in the cal
180. PC Control Charts 25 Typical EWMA Chart using Batch Sampling A EWMA Chart MA Chart CUSum Chart CUSum Chart 2 10 x Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 4 2008 3 18 25 PM Time 15 18 15 48 16 18 16 48 17 18 17 48 18 18 18 48 19 18 19 48 20 18 20 48 21 18 21 48 22 18 22 48 23 18 Sample 0 9 45 7 99 2929 11 66 12 16 10 18 8 04 1146 9 20 10 34 9 03 1147 10 51 9 40 10 08 29 37 10 62 EWMA 9 945 9 750 29 704 29 899 10 125 10 131 9 922 10 076 9 988 10 023 9 924 10 078 10 122 10 049 10 053 9 984 10 048 MEAN 9 45 7 99 929 1166 12 16 10 18 804 1146 920 1034 9 03 1147 10 51 940 10 08 29 37 10 62 x 12 EWMA Chart Exponentially Weighted Moving Average The EWMA chart is an alternative to the preceding Shewhart type control charts X Bar Wi Window File EWMA Chart j CUSum Chart CuSum Chart 2 MAMRChat MAMS Chart Title Variable Control Chart MA Part Name Transmission Casing Bolt Operator J Fenamore Date 10 6 2011 3 34 10 PM TIME 15 34 1604 Sample 0 948 9 95 MA ALARM E E gt u 16 34 10 30 10 25 10 19 9 70 9477 9 715 9909 9 994 10 033 9 978 9 874 9944 10 029 Part No 283501 Operation Threading Machine 11 17 04 17 34 1804 18 34 9 25 19 04 19 34 10 44 10 70 Chart No
181. Parts Percent Defective Parts Number Defective Parts Number Defects Per Unit AAA AT Number Defects Variable Control Limits Multiple Control Limits Dynamic P No Defects Per Million Title Number Defects per Million DPMO Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Date 9 27 2011 1 58 13 PM TIME 13 58 14 28 14 58 15 28 15 58 16 28 16 58 17 28 17 58 18 28 18 58 19 28 19 58 20 28 20 58 21 28 21 58 Scratch 2 Burr 4 Dent 4 Seam 4 Other um 9 9 1 NO DEF 14 23 1 5 18 8 22 8 3 DEF MILLION 2800 4600 0 2400 4800 1000 3600 1600 0 4400 3400 1600 6400 NO INSP 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 ALARM NOTES 3 1 1 2 0 1 5 1 3 2 5 3 5 9 24 DEF MILLION This Attribute Control chart is a combination of the u chart and the c chart The chart normalizes the defect rate expressing it as defects per million The chart displays the defect rate as defects per million The table above gives the defect count in both absolute terms and in the normalized defects per million used by the chart Defect and Defect Category Data Tables As discussed under the Variable Control Chart section standard worksheets used to gather and plot SPC data consist of three main parts The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important inform
182. Point3D GroupPoint2D DoubleArray 100 QCChart2D Class Summary DoubleArray2D BoolArray Polysurface GraphObj AntennaAnnotation TickMark Axis LinearAxis PolarAxes AntennaAxes LogAxis TimeAxis ElapsedTimeAxis ChartText ChartTitle AxisTitle ChartLabel NumericLabel BarDatapointValue TimeLabel ElapsedTimeLabel StringLabel AxisLabels NumericAxisLabels TimeAxisLabels ElapsedTimeAxisLabels StringAxisLabels PolarAxesLabels AntennaAxesLabels ChartGrid PolarGrid AntennaGrid Legendltem BubblePlotLegendItem Legend StandardLegend BubblePlotLegend ChartPlot SimplePlot SimpleLinePlot SimpleBarPlot SimpleScatterPlot SimpleLineMarkerPlot SimpleVersaPlot GroupPlot ArrowPlot BubblePlot CandlestickPlot CellPlot ErrorBarPlot FloatingBarPlot FloatingStackedBarPlot GroupBarPlot HistogramPlot LineGapPlot MultiLinePlot OHLCPlot StackedBarPlot StackedLinePlot BoxWhiskerPlot GroupVersaPlot PieChart RingChart PolarPlot PolarLinePlot PolarScatterPlot AntennaPlot AntennaLinePlot AntennaScatterPlot AntennaLineMarkerPlot Background Chartlmage ChartShape ChartSymbol Marker ChartZoom QCChart2D Class Summary 101 102 QCChart2D Class Summary 5 SPC Control Data and Alarm Classes SPCControlChartData SPCControlLimitAlarmArgs SPCControlLimitRecord SPCCalculatedValueRecrod SPCSampledValueRecord SPCGeneralizedTableDisplay The Variable and Attribute Control Chart classes share common data and alarm classes SPC co
183. Property Type TimeltemTemplate TimeLabel SampleltemTemplate NumericLabel CalculatedItemTemplate NumericLabel StringltemTemplate StringLabel NotesItemTemplate NotesLabel Description The TimeLabel object used as a template for displaying time values in the table The NumericLabel object used as a template for displaying the sample values in the table The NumericLabel object used as a template for displaying calculated values in the table The StringLabel object used as a template for displaying string values in the table The NotesLabel object used as a template for displaying string values in the table The most common use for these templates is to set the color attributes of a class of objects or decimal precision of a numeric string spcChart ChartTable SampleItemTemplate LineColor Colors Red SPC Charts without a Table If you don t want any of the items we have designated table itmes just call the UseNoTable method That method removes all of the table items and displays the primary and or secondary charts with a simple title and optional histograms This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub UseNoTable _ ByVal primarychart As Boolean _ ByVal secondarychart As Boolean _ ByVal histograms As Boolean _ ByVal title As String _ C public void UseNoTable bool primarychart bool secondarychart bool histograms Stri
184. QCSPCChart SPC Control Chart Tools for Silverlight Tale Variable Control Chan X Bar amp R Part No 283501 Chart No 17 ini Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 27 2012 12 47 23 PM i i E y E E TIME 22 32 22 47 002 017 032 047 1 02 132 1 47 202 232 MEAN 305 265 302 288 1301 301 29 1 288 317 1318 303 RANGE 112217 8 100 75 22 108 4 14 1 10 112 1 158 123 SUM 2711327 160 3 160 0 11350 1967 11511 1428 1204 1203 1 2 Cok 023 02 23 2 023 024 024 024 Com 030 31 031 031 031 Ppk 023 022 023 023 023 023 023 023 20 UCL S3 20 70 0 RBAR 3 73 o LCL S3 0 00 15 0 5 0 23 00 0 00 1 00 200 3 28 2012 Contact Information Company Web Site http www quinn curtis com Electronic mail General Information info quinn curtis com Sales sales quinn curtis com Technical Support Forum http www quinn curtis com ForumFrame htm Revision Date 1 02 2014 QCSPCC hart Silverlight Documentation and Software Copyright Quinn Curtis Inc 2014 Quinn Curtis Inc Tools for Silverlight END USER LICENSE AGREEMENT IMPORTANT READ CAREFULLY This Software End User License Agreement EULA is a legal agreement between you either an individual or a single entity and Quinn Curtis Inc for the Quinn Curti
185. RACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types 54 Class Architecture Typical Time Attribute Control Chart Fraction Defective or p Chart A Formi ini x SPCTimeAttributeControlChart An Attribute Control Chartclass that uses a TimeCoordinate system with a time based X Axis This class creates PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART PERCENT DEFECTIVE PARTS CHART VSS FRACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types Class Architecture 55 Frequency Histograms used in Combination with a SPC Control Chart Rm Formi Static Dynamic Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 16 33 16 48 17 03 17 18 17 33 17 48 60 j 300 200 100 0 15 00 150 100 50 0 FrequencyHistogramChart A Frequency Histogram checks that the variation in a process variable follows the predicted distribution function normal Poisson chi squared etc The class includes all of the objects needed to draw a complete frequency histogram chart These objects include objects for data a coordinate system titles axes axes labels grids and a bar plot 56 Class Architecture Pareto Chart DA Form
186. RCENT DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC PERCENT DEFECTIVE PARTS CALC FRACTION DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC FRACTION DEFECTIVE PARTS CALC FRACTION DEFECTIVE PARTS CHART VSS 0 SPCCalculatedValueRecord SPC FRACTION DEFECTIVE PARTS VSS CALC NUMBER DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTIVE PARTS CALC NUMBER DEFECTS CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTS CALC NUMBER DEFECTS PERUNIT CHART 0 SPCCalculatedValueRecord SPC FRACTION DEFECTS CALC NUMBER DEFECTS PERUNIT CHART VSS 0 SPCCalculatedValueRecord SPC FRACTION DEFECTS VSS CALC PERCENT DEFECTIVE PARTS CHART VSS 0 SPCCalculatedValueRecord SPC PERCENT DEFECTIVE PARTS VSS CALC NUMBER DEFECTS PER MILLION CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTS CALC 1 SPCCalculatedValueRecord SPC NUMBER DEFECTS PER MILLION CALC SPCChartObjects AddNumericControlLimit Method Visual Basic Declaration Public Function AddNumericControlLimit _ sourcevar As SPCCalculatedValueRecord _ limtype As Integer _ value As Double _ displaystring As String _ addline As Boolean _ attrib As ChartAttribute _ As SPCControlPlotObjectData Cz public SPCControlPlotObjectData AddNumericControlLimit SPCCalculatedValueRecord sourcevar int limtype double value string displaystring Named and Custom Control Rule Sets 345 bool addline ChartAttribute attrib Parameters sourcevar Th
187. ROL LIMIT LimitV alue 76 spcChart PrimaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET LimitValue 75 Create multiple limits For PrimaryChart SPCControlLimitRecord 1c12 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 33 LOLbz BEOLBZ s SPCControlLimitRecord ucl2 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT TS5 bb UCLz UCL2 s SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1c13 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 56 nCLI LGOLI SPCControlLimitRecord ucl3 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 759 33 UGLI T UCLI SpcChart PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart PrimaryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal SpcChart SecondaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT Limi tValue 2 SpcChart SecondaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT Limi tValue 0 spcChart SecondaryChart GetCo
188. STRINGS LEVELO HEADER STRINGS LEVELI HEADER STRINGS LEVEL2 or HEADER STRINGS LEVEL3 Get Set the margin in normalized coordinates between the primary and secondary charts Set Get the MultiMouseListener Get the object that holds he the chart objects needed to display the primary chart Get Set the bottom edge using normalized coordinates of the optional scroll bar Get Set the height of the scrollbar in pixels Get the object that holds he the chart objects needed to display the secondary chart Specifies the control chart type use one of the SPCControlChartData chart type constants MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART TABCUSUM CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS PER MILLION CHART Set the table alarm highlighting to one of the SPCChartBase table highlight constants SPC Variable Control Charts 163 ALARM HIGHLIGHT NONE ALARM HIGHLIGHT TEXT ALARM HIGHLIGHT OUTLINE ALARM HIGHLIGHT BAR TableStartPosY Get the top edge using normalized coordinates of the SPC chart table XScaleMode Public Instance Methods AddAnnotation AutoCalculateControlLimits AutoCalculatePrimaryControlLimits AutoCalculateSecondaryControlLimits
189. StatusValues false VB Alarm status line spcChart EnableAlarmStatusValues False 236 SPC Variable Control Charts ChartAlarmEmphasisMode WMA Chart Variable Control Limits Dynamic SPC Bar Sigma Individual Range Multi LimitX Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero pol lo l NENNEN EMEN TIME 12 34 12 49 13 04 13 19 13 34 13 49 14 04 14 19 14 34 14 49 15 04 15 19 15 34 15 49 16 04 16 19 16 34 RANGE 12 8 3 1 15 7 154 19 6 188 159 44 168 165 20 3 16 1 9 1 123 143 176 84 Cpk 0 198 0 202 0 201 0 200 0 198 0 197 0 197 0 197 0 196 0 195 0 194 0 193 0 193 0 193 0 193 0 191 0 191 Ppk 0 194 0 196 0 196 0 195 0 193 0 192 0 193 0 192 0 191 0 190 0 189 0 188 0 188 0 188 0 188 0 186 0 186 NOTES 40 30 20 10 0 13 00 14 00 15 00 16 00 C Chart alarm emphasis mode spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL VB Y Chart alarm emphasis mode spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL The scatter plot symbol used to plot a data point in the primary and secondary charts is normally a fixed color circle If you turn on the alarm highlighting for chart symbols the symbol color for a sample interval that is in an alarm condition will change to reflect the color of the associated alarm line In
190. TALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES spcChart ChartData DataLogIsolatedStorageFileOpenForWrite DatalogFilel txt datalogflags SpcChart ChartData DatalLogEnable true spcChart ChartData AddNewSampleRecord timestamp samples notesstring VB Dim datalogflags As Integer SPCControlChartData DATALOG FILE TIME STAMP Or _ SPCControlChartData DATALOG FILE SAMPLED VALUES Or _ SPCControlChartData DATALOG FILE CALCULATED VALUES Or _ SPCControlChartData DATALOG FILE COLUMN HEADS Or _ SPCControlChartData DATALOG FILE NOTES SpcChart ChartData DataLogIsolatedStorageFileOpenForWrite DatalogFilel txt datalogflags spcChart ChartData DatalLogEnable True spcChart ChartData AddNewSampleRecord timestamp samples notesstring SPC Control Data and Alarm Classes 133 Every call to the AddNewSampleRecord method will append a new SPC record to the file specified in the DataLoglIsolatedStorageFileOpenForWrite call Specify what items are logged to the datalog file using the DataLogFlag property OR the datalog flags constants together to form the final DataLogFlags value DATALOG FILE ALL Datalog flag specifying that all available items should be logged to the file DATALOG FILE BATCH NUMBER Datalog flag specifying that the batch number should be logged to the file DATALOG FILE CALCULATED VALUES Datalog flag specifying that the calculated values should be logged to the file DATALOG FILE C
191. These differences are summarized below All of these changes are the result of changes in base types used by WPF and Silverlight or conflicts between the original QCChart2D QCSPCChart software and base classes in WPF and Silverlight If you intend to translate applications from the original QCChart2D QCSPCChart for Net software to the WPF and Silverlight versions take special note of these differences It can be confusing because in WPF Silverlight many classes have the same name as their Net Forms equivalents Color Timer ChartColor FromArgb and MouseEventArgs are a few It is just that they are in different name spaces Usually the default collection of using statements at the top of WPF Silverlight classes point you to the correct name spaces Other WPF Silverlight classes have slightly different names than their Net equivalents Colors DashStyles FontStyles FontWeights Color FromArgb MouseButtons and MouseButtonEventArgs Another confusing issue for those translating to from WPF to Silverlight is that while the two run time environments share the same names spaces the actual classes in the names spaces often contain different classes Think of WPF as a massive code base and architecture from which Silverlight sprung Then consider that when creating the Silverlight run time Microsoft pared down WPF to an absolute minimum in order to make downloading of the Silverlight run time as fast as possible Many of the useful classes you find i
192. a NotesToolTips ToolTipMode property to NotesToolTip MOUSEDOWN_TOOLTIP as in the example below C Enable data and notes tooltips spcChart EnableDataToolTip true SpcChart EnableNotesToolTip true spcChart ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP spcChart ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP VB Enable data and notes tooltips spcChart EnableDataToolTip True spcChart EnableNotesToolTip True 234 SPC Variable Control Charts SpcChart ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP spcChart ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP Enable Alarm Highlighting EnableAlarmStatusValues EWMA Chart Variable Control Limits Dynamic SPC X Bar Sigma Individual Range Multi Limit lt Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 13 18 13 33 13 48 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 16 33 16 48 17 03 17 18 RANGE 176 136 149 129 168 87 218 216 179 187 120 13 8 128 198 154 100 17 1 0 252 0 249 0 250 0 247 0 245 0 244 0 242 0 241 0 241 0 240 0 241 0 242 0 241 0 239 0 242 0 246 0 246 40 30 20 10 0 14 00 15 00 16 00 17 00 There are several alarm highlighting options you can turn
193. a much larger collection of 302 SPC Attribute Control Charts measurement data representing hundreds or even thousands of subgroups and use the scrollbar to move through the data similar to paging through a spreadsheet C enable scroll bar spcChart EnableScrollBar true VB Enable scroll bar spcChart EnableScrollBar True S Formi ini Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Title Fraction Defective p Chart Part No 321 Chart No 19 x Operator S Kafka Machine 1 Time 11 14 11 44 12 14 12 44 13 14 13 44 14 14 14 44 15 14 15 44 16 14 16 44 17 14 1744 18 14 18 44 19 14 2 4 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 200 0 180 0 100 0 060 0 220 NOTES N N N N N N N UCLP 0 29 0 2 PBAR 0 14 FRACT DEF 0 0 12 00 13 00 14 00 15 00 16 00 18 00 Scrollbar SPC Chart Histograms Viewing frequency histograms of the variation in the primary variable side by side with the SPC control chart makes it even easier to find out whether the variations are the result of natural variations or the result of some systemic change in the process You can turn on integrated frequency histograms for either chart using the PrimaryChart DisplayFrequencyHistogram property of th
194. a storage file I O and data processing A summary of each category appears in the following section Chart Window Classes System Windows Controls UserControl ChartView The starting point of a chart is the ChartView class The ChartView class derives from the Net System Windows Controls UserControl class The ChartView class manages a collection of chart objects in a chart and automatically updates the chart objects whenever the control needs to redraw itself Since the ChartView class is a subclass of the UserControl class it can act as a container for other Silverlight components such as buttons and checkboxes Data Classes ChartDataset SimpleDataset TimeSimpleDataset ElapsedTimeSimpleDataset ContourDataset GroupDataset TimeGroupDataset ElapsedTimeGroupDataset The dataset classes organize the numeric data associated with a plotting object There are two major types of data supported by the ChartDataset class The first is simple xy data where for every x value there is one y value The second data type is group data where every x value can have one or more y values ChartDataset The abstract base class for the other dataset classes It contains data common to all of the dataset classes such as QCChart2D Class Summary 63 the x value array the number of x values the dataset name and the dataset type SimpleDataset Represents simple xy data where for every x value there is one y value TimeSimpleDataset A su
195. a variable number of samples per subgroup The X Bar Sigma chart also comes in a version where variable sample sizes are permitted As in the standard variable control charts there is one value in the samples array for each measurement sample in the sample subgroup interval The difference is that the length of the samples array can change from update to update It is critically import that the size of the samples array exactly matches the number of samples in the current subgroup 166 SPC Variable Control Charts X Bar Sigma Chart with variable sample size zax X Bar Sigma Chart Fraction Defective Parts p chart Percentage Defective Chart p chart Number Defects Per Unit u chart l Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 20 50 PM Time 17 20 17 35 17 50 18 05 18 20 18 35 18 50 19 05 19 20 19 35 19 50 20 05 20 20 20 35 20 50 21 05 21 20 MEAN 61 8 59 6 64 7 638 676 625 632 612 62 2 65 7 61 0 627 636 667 61 7 619 626 SIGMA 4 69 5 22 6 79 5 62 5 92 6 14 6 03 7 99 7 27 6 11 6 62 4 46 6 94 6 72 6 72 6 70 6 73 SUM 680 238 906 766 406 937 885 367 559 460 366 502 382 600 617 805 752 NO INSP 11 4 14 12 6 15 14 6 9 7 6 8 6 9 10 13 12 NOTES N N N N N N N N N N N N N N N N N Edo b di 80 60 40 20 0 80 60 40 20 0 In this case the control chart high and low limits vary from sampl
196. ader defaultSum SUM SUM Calculated value row header defaultSampleValue SAMPLE VALUE SAMPLE VALUE alculated value row header defaultAbsRange ABS RANGE ABS RANGE Calculated value row header defaultMovingA verage MA defaultCusumCPlus mor defaultCusumCMinus en defaultEWMA EWMA defaultPercentDefective 96 DEF defaultFractionDefective FRACT DEF defaultNumberDefective NO DEF defaultNumberDefects NO DEF 394 Regionalization defaultNumberDefectsPerUnit NO DEF UNIT defaultNumberDefectsPerMillion DPMO defaultPBar PBAR defaultAttributeLCL GTP defaultAttributeUCL UCLP defaultAbsMovingRange MR Moving Range Calculated value row header defaultAbsMovingSigma MS Moving Sigam Calculated value row header defaultX X Default string used to label centerline value of I R chart defaultX Bar XBAR Default string used to label centerline value for XBar chart defaultRBar RBAR Default string used to label centerline value for Range chart defaultTarget Target Default string used for target defaultLowControlLimit LCL Default string used to label low control limit line defaultLowA larmMessage Low Alarm Default string used for low alarm limit message defaultUpperControlLimit UCL Default string used to label high control limit line defaultHighA larmMessage High Alarm Default string used for high alarm limit message
197. alculated values should be logged to the file Datalog flag specifying that the column heads should be logged to the file Datalog flag specifying that the control limit values should be logged to the file Datalog flag specifying that the notes should be logged to the file Datalog flag specifying that the sampled values should be logged to the file Datalog flag specifying that the time stamp should be logged to the file Datalog flag specifying that the file prefix row ist NOT to be included Using this option will make the file incompatible with the SPCControlChartData routines that read data files Chart type constant Fraction Defective Parts p chart Control Chart SPC Chart header level constant display no header strings SPC Chart header level constant display minimal header strings title partNumber chartNumber dateString SPC Chart header level constant display most header strings title partNumber chartNumber partName operation operator machine dateString SPC Chart header level constant display all header strings title partNumber chartNumber partName operation operator machine specification limits gage unitofMeasure zeroEqulas and dateString Chart type constant Individual Range Individual X SPC Variable Control Chart 106 SPC Control Data and Alarm Classes MEAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS MEAN VARIANCE CHART MEDIAN RANGE CHART NO DATALOG F
198. ample sizes other than 1 The X part of the control chart plots the actual sampled value not a mean or median for each unit and the R part of the control chart plots a moving range that is calculated using the current value of sampled value minus the previous value Individual Range charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes EWMA Chart Exponentially Weighted Moving Average The EWMA chart is an alternative to the preceding Shewhart type control charts X Bar R and I R charts in particular and is most useful for detecting small shifts in the process mean It uses a weighted moving average of previous values to smooth the incoming data minimizing the affect of random noise on the process It weights the current and most recent values more heavily than older values allowing the control line to react faster than a simple MA Moving Average plot to changes in the process Like the Shewhart charts if the EWMA value exceeds the calculated control limits the process is considered out of control While it is usually used where the process uses 100 inspection and the sample subgroup size is 1 same is the X R chart it can also be used when sample subgroup sizes are greater than one EWMA charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes MA Chart Moving Average The MA chart is another alternative to the preceding Shewhart type control
199. an aane een mated m hte MAMS 1 6 8 19 20 27 28 46 52 53 111 153 155 161 163 200 242 345 Markers en aaxtoemretieassedoototad aiios eon aie eiie bei Tp tct ISI 94 95 96 102 Marker 76 87 88 89 90 91 94 95 96 101 102 250 320 376 378 379 Mo seListenet 3 ee e e ee eet We A GERE UM RE EUIS 50 MouseListenefz ee E Ore eet oes tr et ee diee bos 50 163 263 Mo ssListenerS rire dor qi fo ed e TR ORBE OPE RE 95 96 97 100 MoveGoordiTiates tse Ra eee eres hte e A E v e a ries Ute ds 95 97 100 hl BECHER EUM 435 MoveDatan 2 dtt bate we 95 96 100 MONY6eODb eats te e e ROM CE EE IDEE ER ER NE TIE RR YS RT RISE SEEN der ee ao uds Move M rr AT 95 96 100 Moving Average Moving Range ccccesccessssscessceseesseesecesecesessceesecesececeeseeesecesecsecseceaeceseceeeeseeeseceaessesseeeaecesecetaeeeneuaeeensaes MAMR 1 6 8 19 20 26 27 46 52 53 111 153 154 161 163 200 242 345 DURUM EP 200 Moving Average Moving Sigma erit ed iden den o eon tete osea dd de echec Re eie Cae MAMS 1 6 8 19 20 27 28 46 52 53 111 153 155 161 163 200 242 345 Movine chart data 4i eee ac oet mde e ca i erae eere ed ext db pee n eee ag bod 95 96 100 Moving graph objects e E 95 96 100 Mu ltiEinePlot vcre PR Sm otaat ot e Dlordo id eed ob oa epe oi en ED OO ERES
200. an and Range Chart Very similar to the X Bar R Chart Median Range chart replaces the Mean plot with a Median plot representing the median of the measured values within each subgroup The Median Range chart requires that the process be well behaved where the variation in measured variables are 1 known to be distributed normally 2 are not very often disturbed by assignable causes and 3 are easily adjusted 24 Standard SPC Control Charts ypical Time Based Individual Range Chart X R with data table Title Variable Control Chart XR Indivdual Range Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 1 48 2 03 2 18 2 33 2 48 3 03 3 18 3 33 3 48 4 03 4 18 4 33 4 48 5 03 5 18 5 33 5 48 ABS RANGE 34 77 08 107 24 83 61 48 56 39 54 18 38 86 81 49 21 40 30 ABS RANGE Individual Range Chart Also known as the X R Chart The Individual Range Chart is used when the sample size for a subgroup is 1 This happens frequently when the inspection and collection of data for quality control purposes is automated and 100 of the units manufactured are analyzed It also happens when the production rate is low and it is inconvenient to have sample sizes other than 1 The X part of the control chart plots the actual sampled value not a mean or median for each unit and the R part of the control chart plots a moving range calculated using the current value of sampled value minus the previous value Standard S
201. ances that two out of three points in a row fall outside the warning limit is only about 1 3 Four of the five most recent points plot outside and on the same side as one of the 1 sigma control limits In normal processing 68 of points fall within one sigma of the mean and 32 fall outside it The probability that 4 of 5 points fall outside of one sigma is only about 3 4 Eight out of the last eight points plot on the same side of the center line or target value Sometimes you see this as 9 out of 9 or 7 out of 7 There is an equal chance that any given point will fall above or below the mean The chances that a point falls on the same side of the mean as the one before it is one in two The odds that the next point will also fall on the same side of the mean is one in four The probability of getting eight points on the same side of the mean is only around 1 These rules apply to both sides of the center line at a time Therefore there are eight actual alarm conditions four for the above center line sigma levels and four for the below center line sigma levels There are also additional WE Rules for trending These are often referred to as WE Supplemental Rules Don t rely on the rule number often these are listed in a different order 5 Six points in a row increasing or decreasing The same logic is used here as for rule 4 above Sometimes this rule is changed to seven points rising or falling 6 Fifteen points in a row within o
202. and CuSum charts using the SPCTimeVariableControlChart class Introduction 9 RulesRulesRules a collection of control charts demonstrating the the use of named WE Nelson AIAG Juran Hughes Duncan and Gitlow and custom rule sets MiscBatchBasedControlCharts a collection of batch variable control charts including EWMA MA and CuSum charts using the SPCTimeVariableControlChart class ProbabilityPlot a probability chart using the ProbabilityChart class ParetoDiagram a Pareto diagram chart using the ParetoChart class SPCApplicationl A simple X Bar R example program using SPCTimeVariableControlChart used in the tutorial UserControlSPCChartExample1 Placing a SPC chart derived class in a UserControl class and reference that class in the main window UserControlSPCChartExample2 Derive a class directly from one of the SPC chart classes and reference that class in the main window WERulesVariableControlCharts a collection of using the WE rules with SPCTimeVariableControlChart charts including X Bar R X Bar Sigma Median Range and X R VariableSampleSizeControlCharts a collection of the variable control X Bar Sigma and attribute control p and u charts that support variable sample subgroup sizes SLSPCBrowserApplication1 Display a SPC Chart in a web page Visual Basic VB specific code Examples VB examples Same as the C examples above Critical Note Running the Example Programs
203. anded values for the control limits for small i lt N 1 You specify N the length of the moving average immediately after the initialization call InitSPCTimeVaraibleControlChart for a time based variable control chart or InitSPCBatchVariableControlChart for a batch based variable control chart Set the process mean and process sigma used in the control limit calculations using the ProcessMean and ProcessSigma properties See the examples MiscTimeBasedControlCharts MA Chart and MiscBatchBasedControlCharts MA Chart Specify N using the MA w property Extracted from the MiscTimeBasedControlCharts MA Chart example C SPC variable control chart type int charttype SPCControlChartData MA CHART Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Number of time periods in moving average spcChart ChartData MA w 9 VB SPC variable control chart type Private charttype As Integer SPCControlChartData MA CHART Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Number of time periods in moving average spcChart ChartData MA w 7 spcChart ChartData ProcessMean 10 0 spcChart ChartData ProcessSigma 1 0 SPC Variable Control Charts 201 CuSum Chart Tabular one sided upper and l
204. ange chart PrimaryChart Datatooltip EnableCalculatedValues true Display the process capability Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk statistics currently being calculated for the chart PrimaryChart Datatooltip EnableProcessCapabilityValues true Display the current notes string for the sample subgroup PrimaryChart Datatooltip EnableNotesString true The variable control chart below displays a tooltip with all of the enable options above set true SPC Variable Control Charts 231 Data Tooltip with optional display items lo File Exit XBarR X Bar Sigma Individual Range Multi Limit XBarR Median Range Dynamic SPC Variable Control Limits Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 23 02 23 17 23 32 23 47 0 02 0 17 0 32 0 47 1 02 1 17 1 32 1 47 2 02 2 17 2 32 2 47 3 02 RANGE 13 3 113 118 125 128 135 74 121 123 102 66 105 70 135 93 102 9 1 0 209 0 206 0 208 0 203 0 200 0 199 0 196 0 191 0 192 0 189 0 192 0 194 0 198 0 195 0 197 0 196 0 199 0 205 0 203 0 206 0 201 0 199 0 199 0 195 0 190 0 191 0 187 0 191 0 193 0 197 0 194 0 196 0 195 0 198 1 02 12 33 Sample 0 35 02 Sample 1 25 25 Sample 2 24 21 i Sample 3 33 66 ee A Sample 4 36 54 bere MEAN 30 93 RANGE 12 33 1 0 SUM 154 67 Cpk 0 19 A i i i 40 30 20 10 0
205. apointsinview Change the default horizontal position and width of the chart SpcChart GraphStartPosX 0 125 Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData SPC Variable Control Charts 241 End Sub Establish the control chart type Mean Range X Bar R Median Range X Bar Sigma Mean Sigma Individual Range EWMA MA or CuSum using the variable control charts InitSPCBatchVariableControlChart or InitSPCBatchCusumControlChart if you are creating a cusum chart initialization routine Note that the X Bar Sigma chart with a variable subgroup sample size is initialized using InitSPCBatchVariableControlChart with a charttype value of MEAN SIGMA CHART VSS X Bar Sigma charts with sub groups that use a variable sample size must be updated properly SPCBatchVariableControlChart InitS PCBatchVariableControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub InitSPCBatchVariableControlChart _ ByVal charttype As Integer ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ C public void InitSPCBatchVariableControlChart int charttype int numsamplespersubgroup int numdatapointsinview Parameters charttype The SPC chart type parameter Use one of the SPCControlChartData SPC chart types MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART
206. are decreasing trending trending Used in alarm messages to specify that values are trending within within Used in alarm messages to specify that values are within certain limits outside outside Used in alarm messages to specify that values are outside certain limits alternating alternating Used in alarm messages to specify that values are Regionalization 397 alternating about a limit value centerline center line Used in alarm messages to specify the center line of the chart sigmaShort S alarm status line sigma short string beyondAlarmStatus B alarm status line beyond short string trendingAlarmStatus T alarm status line trending short string stratificationA larmStatus S alarm status line stratification short string oscillationAlarmStatus o alarm status line oscillation short string rule Rule used in alarm messages for word Rule violation violation used in alarm messages for word violation sigma sigma used in alarm messages for word sigma target Target used in alarm messages for word Target ucl UCL used in alarm messages for to designate Upper Control Limit lcl ECE used in alarm messages for to designate Lower Control Limit defaultCp Cp used to label Cp row of table defaultCpl Cpl used to label Cpl row of table defaultCpu Cpu used to label Cpu row of table defaultCpk Cpk used to lab
207. aretoChart Public Instance Properties BarAttrib BarDataValue BarPlot BarWidth CategoryStrings Set Get default font object used for the axes labels and axes titles Set attributes before BuildChart Set Get the default font used in the chart This is a string specifying the name of the font Set Get the default footer font Set attributes before BuildChart Get Set the default chart title font Set attributes before BuildChart Get Set the default chart title font Set attributes before BuildChart Set Get the default font object used for the tooltip Overloaded Initializes a new instance of the ParetoChart class Get the default primary bar attribute object for the bars of the chart Set attributes before BuildChart Get the default numeric label template used to label the values of bar plot of the frequency histogram part of the chart Set attributes before BuildChart Get the histogram bar plot object of the frequency histogram part of the chart Get the default width value of the frequency histogram bars Set attributes before BuildChart Get the StringArray object holding the strings used to label the categories of the Pareto plot Set attributes before BuildChart 374 Frequency Histograms Pareto Diagrams Probability Charts CategoryValues CoordinateSysteml CoordinateS ystem2 CumulativeFreqDataset Datatooltip DefaultGraphBorder Footer FrequencyDataset GraphBackground LineAttri
208. art type AutoCalculateSecondaryControlLimits Using the current sampled data values high AutoScaleChartY Range AutoScalePrimaryChartY Range target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the primary SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis AutoScaleSecondaryChartY Range Auto scale the y range of the SPC chart so Copy Draw InitSPCChartBase that all of the sampled data and chart control limits are within the bounds of the y axis Overloaded Copies the source object Overrides the Draw method of the underlying ChartView class so that the scroll bar can be properly repositioned if the size of the window changes The graphics context the chart is drawn to This initialization method initializes the 264 SPC Attribute Control Charts most important values in the creation of a SPC chart IsTimeScale Returns true if the coordinate system has a time based x axis The coordinate system of the chart MakeControlLinePlot Draw a control line either a simple straight line or a variable control line for the specified chart RebuildChartUsingCurrentData Rebuild the graph taking into account the most recent data values Rescal
209. art using the current data and settings spcChart RebuildChartUsingCurrentData VB Public Sub InitializeChart SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of datapoints in the view Dim numdatapointsinview As Integer 17 Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart UseNoTable True True True Place your chart title here spcChart EnableScrollBar True spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL SPC Variable Control Charts 185 Training data to establish limits SimulateData 50 30 10 spcChart AutoCalculateControlLimits New data SimulateData 50 30 15 Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData End Sub InitializeChart Chart Position If the SPC chart does not include frequency histograms on the left they take up about 20 of the available chart width you may want to adjust the left and right edges of the chart using the GraphStartPosX and GraphStopPlotX properties to allow for more room
210. artGrid PolarGrid AntennaGrid Grid lines are perpendicular to an axis extending the major and or minor tick marks of the axis across the width or height of the plot area of the chart ChartGrid PolarGrid AntennaGrid Chart Text Classes ChartText ChartTitle AxisTitle ChartLabel This class defines the grid lines associated with an axis Grid lines are perpendicular to an axis extending the major and or minor tick marks of the axis across the width or height of the plot area of the chart This class works in conjunction with the LinearAxis LogAxis and TimeAxis classes This class defines the grid lines associated with a polar axis A polar chart grid consists of two sets of lines The first set is a group of concentric circles centered on the origin and passing through the major and or minor tick marks of the polar magnitude horizontal and vertical axes The second set is a group of radial lines starting at the origin and extending to the outermost edge of the polar plot circle passing through the major and minor tick marks of the polar angle circular axis This class works in conjunction with the PolarAxes class Analogous to the PolarGrid this class draws radial and circular grid lines for an Antenna chart NumericLabel TimeLabel StringLabel QCChart2D Class Summary 93 ElapsedTimeLabel The chart text classes draw one or more strings in the chart window Different classes support different numeric formats i
211. artsControlChart for a complete example Reset the axis labeling mode back to batch number labeling by assigning the XAxisStringLabelMode property to SPCChartObjects AXIS LABEL MODE DEFAULT Batch Control Chart X Axis User Defined String Labeling SPC Attribute Control Charts 317 Title Percent Defective Parts p Chart Part No 321 Chart No 19 _ Part Name Pre paint touchup Operation 0 Operator S Kafka Machine TIME 12 39 13 09 13 39 14 09 14 39 15 09 15 39 16 09 16 39 17 09 17 39 18 09 18 39 Burr 7 3 3 0 2 1 2 0 1 0 0 1 0 Seam 7 4 5 1 6 2 3 1 1 0 0 1 0 DEF 260 20 0 20 0 4 0 24 0 6 0 220 220 220 0 0 0 0 10 0 2 0 ALARM n E 90 CLP 29 14 PBAR 14 29 DEF 10 CLP 0 00 EC292 EC980 EC428 EC770 EC644 EC803 EC317 EC308 EC580 EC918 EC891 EC610 EC827 Eileen gt Percent Defective Parts Chart using user defined string labeling of the x axis Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS_LABEL MODE STRING C enable scroll bar SpcChart EnableScrollBar true SpcChart EnableCategoryValues false Label the tick mark with user defined strings spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING VB enable scroll bar SpcChart EnableScrollBar True spcChart EnableCategoryValues False Label the tick mark with user defined strin
212. ary and secondary graphs of the chart Attribute Control Charts only have a single graph which we refer to generically as the primary graph of the chart Creating an Attribute Control Chart First select whether you want to use a time based attribute control chart use SPCTimeAttributeControlChart or a batch based attribute control chart use SPCBatchAttributeControlChart Use that class as the base class for your chart Since the two classes are very similar and share 9596 of all properties in common only the SPCTimeAttributeControlChart is discussed in detail with the differences between the two classes discussed at the end of the chapter Add a reference to the SPCTimeAttributeControlChart to your MainPage xaml file UserControl x Class TimeAttributeControlCharts MainPage xmlnsz http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml xmlns dz http schemas microsoft com expression blend 2008 xmlns mc http schemas openxmlformats org markup compatibility 2006 xmlns myz clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL mc Ignorable d d DesignHeight 631 d DesignWidth 878 gt Grid x Name LayoutRoot Background White gt lt my2 SPCTimeAttributeControlChart Margin 18 11 16 6 Name spcChart1 Grid Row 1 EnableNotes false gt lt Grid gt lt UserControl gt C
213. as the SPCControlChartData AddNewSampleRecord method is called SPCControlLimitAlarmArgs constructors You don t really need the constructors since SPCControlLimitAlarmArgs objects are created inside the SPCControlChartData class when an alarm event needs to be generated The most commonly used SPCControlLimitAlarmArgs properties are Selected Public Instance Properties Public Instance Properties AlarmChannel Get Set the alarm channel associated with the alarm EventAlarm Get Set the SPCControlLimitRecord object SPCSource Get Set the SPCCalculatedValueRecord object associated with the alarm A complete listing of SPCControlLimitAlarmArgs properties are documented in the QCSPCChartSLCompiledHelpFile chm documentation file located in the doc subdirectory Example Setup and enable an alarm transition event handler in the following manner C spcChart ChartData AlarmTransitionEventHandlert new SPCControlLimitAlarmEventDelegate spcChart SPCControlLimitAlarm SPC Control Data and Alarm Classes 141 spcChart ChartData AlarmTransitionEventEnable true VB AddHandler spcChart ChartData AlarmTransitionEventHandler _ AddressOf spcChart SPCControlLimitAlarm spcChart ChartData AlarmTransitionEventEnable true where the handler method is spcChart SPCControlLimitAlarm C private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e VB Private Sub SPCControlLimitAlarm ByVal sender
214. at handle System DateTime date time data and contour data Scale transform classes The scale transform classes handle the conversion of physical coordinate values to working coordinate values for a single dimension Coordinate transform classes The coordinate transform classes handle the conversion of physical coordinate values to working coordinate values for a parametric 2D coordinate system 48 Class Architecture Attribute class The attribute class encapsulates the most common attributes line color fill color line style line thickness etc for a chart object Auto Scale classes The coordinate transform classes use the auto scale classes to establish the minimum and maximum values used to scale a 2D coordinate system The axis classes also use the auto scale classes to establish proper tick mark spacing values Charting object classes The chart object classes includes all objects placeable in a chart That includes axes axes labels plot objects line plots bar graphs scatter plots etc grids titles backgrounds images and arbitrary shapes Mouse interaction classes These classes directly and indirectly System EventHandler delegates that trap mouse events and permit the user to create and move data cursors move plot objects display tooltips and select data points in all types of graphs File and printer rendering These classes render the chart image to a printer to a variety of file formats including JPEG and
215. ata The scale transform classes handle the conversion of physical coordinate values to working coordinate values for a single dimension Coordinate transform classes The coordinate transform classes handle the conversion Attribute class Auto Scale classes Charting object classes Mouse interaction classes of physical coordinate values to working coordinate values for a parametric 2D coordinate system The attribute class encapsulates the most common attributes line color fill color line style line thickness etc for a chart object The coordinate transform classes use the auto scale classes to establish the minimum and maximum values used to scale a 2D coordinate system The axis classes also use the auto scale classes to establish proper tick mark spacing values The chart object classes includes all objects placeable in a chart That includes axes axes labels plot objects line plots bar graphs scatter plots etc grids titles backgrounds images and arbitrary shapes These classes permit the user to create and move data cursors move plot objects display tooltips and select data points in all types of graphs 62 OCChart2D Class Summary File and printer rendering These classes render the chart image to a printer to a variety of file formats including JPEG and BMP or to a Silverlight System Windows Media Imaging WriteableBitmap object Miscellaneous utility classes Other classes use these for dat
216. ateHeader e SpecificationLimitsHeader e GageHeader UnitOfMeasureHeader ZeroEqualsHeader SPC Variable Control Charts 177 e NotesHeader Even though the input header string properties have names like Title PartNumber ChartNumber etc those names are arbitrary They are really just placeholders for the strings that are placed at the respective position in the table You can display any combination of strings that you want rather than the ones we have selected by default based on commonly used standardized SPC Control Charts Table Background Colors The ChartTable property of the chart has some properties that can further customize the chart The default table background uses the accounting style green bar striped background You can change this using the ChartTable TableBackgroundMode property Set the value to one of the TableBackgroundMode constants in the class SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND Constant specifies that the table does not use a background color TABLE SINGLE COLOR BACKGROUND Constant specifies that the table uses a single color for the background backgroundColorl TABLE STRIPED COLOR BACKGROUND Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 TABLE SINGLE COLOR BACKGROUND GRIDCELL Constant specifies that the table uses a grid background with backgroundColorl the overall background color and backgroundColor2 the
217. ated limits the process is considered out of control Time Based and Batch Based SPC Charts The QCSPCChart software further categorizes Variable Control as either time or batch based Time based SPC charts are used when data is collected using a subgroup interval corresponding to a specific time interval Batch based SPC charts are used when the data subgroup interval is a sequential batch number that does not correspond to a uniform time interval The major difference in these two types of SPC charts is the display of the x axis Variable control charts that sample using a uniform time interval will generally use a time based x axis with time date axis labels Variable control charts that sample based on batches will generally use a numeric based x axis with numeric axis labels Note Starting with Revision 2 0 batch control charts can label the x axis using one of three options numeric labeling the original and default mode time stamp labeling and user defined string labeling Since this affects batch control charts time stamps to not have to be equally spaced or even sequential SPC Variable Control Charts 155 Time Based Variable Control Chart 14 00 15 00 16 00 17 00 Note the time based x axis for both charts Batch Based Variable Control Chart with numeric x axis LCLX 22 6 Note the numeric based x axis for both graphs Batch Based Variable Control Chart with time stamp x axis 156 SPC Variable Control Charts
218. ation specific __ to the chart The second part records the defect data organized as a table recording the defect data _ and SPC calculations in a neat readable fashion The third part plots the calculated SPC values in the actual SPC chart The Attribute Control Chart templates that we have created have options that enable the programmer to customize and automatically include header information along with a table of the defect data organized by defect category number of defective parts or total 40 Standard SPC Control Charts number of defects Enable the scrollbar and you can display the tabular defect data and SPC plots for a window of 8 20 subgroups from a much larger collection of measurement data representing hundreds or even thousands of subgroups and use the scrollbar to move through the data similar to paging through a spreadsheet Typical Number of Defects c Chart with data table e o ce Title Number Defects c Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 6 29 6 59 7 29 7 59 8 29 8 59 9 29 9 59 10 29 10 59 11 29 11 59 12 29 12 59 1329 13 59 NOTES N N N N ATT UCLP 32 3 Other Important SPC Charts Frequency Histogram Chart An SPC control chart tacks the trend of critical variables in a production environment It is important that the production engineer understand whether or not changes or variation in the critical variables are natural variations due
219. ault background color for the plot area Set to true to enable the drawing of this chart Set to true to enable the drawing of the frequency histogram attached to the chart Get a reference to the optional frequency histogram attached to the chart Get a reference to the charts graph background object Set Get increment between adjacent samples of Batch type charts that use a numeric x scale Set Get the starting numeric value of the x scale for Batch type charts that use a numeric x scale Set Get the ending numeric value of the x scale for Batch type charts that use a numeric x scale Get a reference to the charts header Set Get the font used for the chart title Set Get the left edge using normalized coordinates of the frequency histogram plotting area Set Get the offset with respect to the GraphStartPosX value using normalized coordinates of the frequency histogram plotting area Set Get the maximum value used to scale the y axis of the chart Set Get the minimum value used to scale the y axis of the chart ParentSPCChartBase PlotBackground PlotMeasurementV alues PPhysTransforml ProcessVariableData SampledDataData SubHead SubheadFont TableFont TextTemplate TimelncrementMinutes ToolTipFont ToolTipSymbol XAxis XAxisLab XGrid XValueTemplate YAxisl YAxis2 YAxisLab Y AxisTitle Y Grid Y ValueTemplate SPC Variable Control Charts 251 Set Get that parent SPCChartBase o
220. ay a limit line for the control rule If you have multiple control rules attached to a given sigma level you should only display a control line for one of them SPCChartObjects AddControlRule Method Visual Basic Declaration Public Function AddControlRule _ template As Integer _ n As Integer _ m As Integer _ sigmavalue As Double _ displaylimitline As Boolean _ As Integer Cz public int AddControlRule int template int n int m double sigmavalue bool displaylimitline Parameters template n Type System Int32 The n value for the n of m condition m Type System Int32 The m value for the n of m condition sigmavalue The sidisplaylimitlinegma value associated with the limit Named and Custom Control Rule Sets 341 True to display a limit line for the control limit In your code it would something like int template 2 N of M Greater than limit value int N 10 int M 13 double sigmavalue 2 control limit value is the 2 sigma value bool displaylimitline false no limit line spcChart PrimaryChart AddControlRule template N M sigmavalue displaylimitline VB Dim template As Integer 2 Nof M Greater than limit value Dim N As Integer 10 Dim M As Integer 13 Dim sigmavalue As Double 2 trending is not attached to a sigma value Dim displaylimitline As Boolean False T no limit line spcChart PrimaryCha
221. b LineMarkerPlot LineMarkerPlotDataValue MainTitle PlotBackground ResetOnDraw Scale2StartY Scale2StopY SymbolAttrib XAxis XAxisLab XAxisTitle YAxisl YAxis2 Get the DoubleArray object holding the category values used in building the Pareto plot Set attributes before BuildChart Get the coordinate system object of the frequency histogram part of the chart Get the coordinate system object of the cumulative frequency part of the chart Get the dataset object used to hold the cumulative frequency values of the data plot Get the data tooltip object for the chart Get Set the default graph border object for the chart Set attributes before BuildChart Get the footer of the chart Get the dataset object used to hold the frequency histogram values of the bar plot Get the graph background object Get the default primary line attribute object for the line plot of the chart Set attributes before BuildChart Get the line marker plot object displaying the cumulative frequency part of the chart Get the default numeric template object used to label the line marker plot of the cumulative frequency part of the chart Set attributes before BuildChart Get main title object of the chart Get the plot background object Set Get True the ChartView object list is cleared with each redraw Set Get the starting y value for the cumulative frequency scale Get Set the ending y value for the cumulative frequency scale
222. b SimulateData Dim i As Integer For i 0 To 199 Dim group As Double batchCounter Dim timestamp As ChartCalendar _ CType startTime Clone ChartCalendar Simulate a new sample record Dim samples As DoubleArray _ spcChart ChartData SimulateDefectBecord 50 0 134 _ SPCControlChartData PERCENT DEFECTIVE PARTS CHART add a new sample record spcChart ChartData AddNewSampleRecord group timestamp samples Simulate timeincrementminutes minute passing startTime Add ChartObj MINUTE timeincrementminutes batchCounter 1 SPC Attribute Control Charts 315 Next i End Sub SimulateData Changing the Batch Control Chart X Axis Labeling Mode In revisions prior to 2 0 the x axis tick marks of a batch control chart could only be labeled with the numeric batch number of the sample subgroup While batch number labeling is still the default mode it is now possible to label the sample subgroup tick marks using the time stamp of the sample subgroup or a user defined string unique to each sample subgroup You may find that labeling every subgroup tick mark with a time stamp or a user defined string causes the axis labels to stagger because there is not enough room to display the tick mark label without overlapping its neighbor In these cases you may wish to reduce the number of sample subgroups you show on the page using the numdatapointsinview variable found in all of the example programs Number of datapoints in the vie
223. bar graph combined with a line plot plotted in a chart that uses two different y axis scales The bar graph scale is a frequency scale that measures the number of times a specific problem has occurred The line plot scale is a cumulative percentage scale 370 Frequency Histograms Pareto Diagrams Probability Charts Pareto Chart iBi x Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 20 o o 3 c ec 3 z S E x 10 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category The chart is easy to interpret The tallest bar the left most one in a Pareto diagram is the problem that has the most frequent occurrence The shortest bar the right most one is the problem that has the least frequent occurrence Time spend on fixing the biggest problem will have the greatest affect on the overall problem rate This is a simplistic view of actual Pareto analysis which would usually take into account the cost effectiveness of fixing a specific problem Never less it is powerful communication tool that the SPC engineer can use in trying to identify and solve production problems Creating a Pareto Diagram The ParetoChart class creates a standalone Pareto Diagram chart It is a simple template where you need only supply data and set a few properties to create a proper frequency histogram The example below is from the ParetoPlot file of the ParetoDiagram example program C public class ParetoPlot ParetoChar
224. based data elements This class encapsulates an xyz set of double values used to specify 3D data values This is a utility class for returning data that results from nearest point calculations The axis classes use this class to to organize the location of the individual tick marks of an axis This is a utility class that defines complex 3D shapes as a list of simple 3 sided polygons The contour plotting routines use it This is a utility class that extends the RectangleF class using doubles as internal storage QCChart2D Class Summary 99 A diagram depicts the class hierarchy of the QCChart2D for Silverlight library ChartObj Arrow ChartCalendar CSV Dimension Point3D NearestPointData Polysurface ChartScale LinearScale LogScale TimeScale ElapsedTimeScale UserCoordinates WorldCoordinates WorkingCoordinates PhysicalCoordinates CartesianCoordinates PolarCoordinates AntennaCoordinates TimeCoordinates ElapsedTimeCoordinates ChartDataset SimpleDataset TimeSimpleDataset ElapsedTimeSimpleDataset ContourDataset GroupDataset TimeGroupDataset ElapsedTimeGroupDataset AutoScale LinearAutoScale LogAutoScale TimeAutoScale ElapsedTimeAutoScale MouseListener MoveObj FindObj DataToolTip ChartZoom MagniView MoveCoordinates MultiMouseListener DataCursor MoveData ChartAttribute ChartFont ChartColor ChartGradient ChartPrint BufferedImage System Windows Controls UserControl ChartView Rectangle2D Point2D
225. bclass of SimpleDataset it is initialized using ChartCalendar dates a wrapper around the System DateTime value class in place of the x or y values ElapsedTimeSimpleDataset A subclass of SimpleDataset it is initialized with TimeSpan objects or milliseconds in place of the x or y values ContourDataset A subclass of SimpleDataset it adds a third dimension z values to the x and y values of the simple dataset GroupDataset Represents group data where every x value can have one or more y values TimeGroupDataset A subclass of GroupDataset it uses ChartCalendar dates a wrapper around the System DateTime value class as the x values and floating point numbers as the y values ElapsedTimeGroupDataset A subclass of GroupDataset it uses TimeSpan objects or milliseconds as the x values and floating point numbers as the y values Scale Classes ChartScale LinearScale LogScale TimeScale ElapsedTimeScale The ChartScale abstract base class defines coordinate transformation functions for a single dimension It is useful to be able to mix and match different scale transform functions for x and y dimensions of the PhysicalCoordinates class The job of a ChartScale derived object is to convert a dimension from the current physical coordinate system into the current working coordinate system 64 OCChart2D Class Summary LinearScale A concrete implementation of the ChartScale class It converts a linear physical coordinat
226. bgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples While the table portion of the display can display defect data broken down into categories only the sum of the defects for a given sample subgroup is used in creating the actual SPC chart Note that the code below extracted from the TimeAttributeControlCharts NumberDefectsControlChart example uses a different ChartData SimulateDefectRecord method to simulate the defect data Chart Header Information Measured Data and Calculated Value Table 268 SPC Attribute Control Charts Standard worksheets used to gather and plot SPC data consist of three main parts The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important information specific to the chart The second part is the measurement data recording and calculation section organized as a table recording the sample data and calculated values in a neat readable fashion The third part plots the calculated SPC values as a SPC chart The chart includes options that enable the programmer to customize and automatically include header information along with a table of the measurement and calculated data in the SPC chart The following properties enable sections of the chart header and table EnableInputStringsDisplay EnableCategory Values EnableCalculatedValues EnableTotalSamplesValues EnableNotes EnableTimeValues
227. bility y axis labels object of the chart Get the y axis title object of the of the chart Get the y axis title object of the of the chart Get the DoubleArray of the y values of the data points plotted in the probability plot Get the default y value object template for the data tooltip Overloaded Builds the probability chart using the base objects ChartView Overloaded Copies the source ProbabilityChart object Initializes the x and y values of the data points plotted in the probability plot Builds the histogram dataset histogramDataset using the values in frequency Values and frequencyLimits Changing Default Characteristics of the Chart 368 Frequency Histograms Pareto Diagrams Probability Charts HE Formi Mi xl MainTitle Normal Probability Plot Showing Estimated Accumulated Frequencies YAxisLab1 Grid veia YAxisLab2 99 8 DEC 99 5 98 2c 95 90 3 80 lo 5 70 c SigmaAxi Lab 2 50 50 x a 30 70 SigmaAxis a 2 lo 1 YAxisTitle 5 0 2 0 20 0 5 99 5 0 2 99 8 _3 0 2 4 6 8 10 YAxis1 LC iio aid Bin YAxis2 XAxisLab i XAxisTitle KANS GraphBackground PlotBackground Once the graph is initialized using the InitProbabilityChart or one of the ProbabilityChart constructors you can modify the default characteristics of each graph using these properties For example you can change the color of y axis and the y axis labels using the LineColor property of those objects C
228. bject Get a reference to the charts plot background object Set to true to enable the plotting of all sampled values as a scatter plot in addition to the mean or median values Gets a reference to the charts physical coordinate system Holds a reference to an object encapsulating the plot object data associated with the main variable of the chart Get the array of the sample data Get a reference to the charts subhead Set Get the font used for the chart subhead Set Get the font used for the data table Get Set the text template for the data tooltip Get Set the increment between adjacent samples of charts that use a numeric x scale Set Get tooltip font Get a reference to the charts tooltip symbol Get a reference to the charts x axis Get a reference to the charts x axis labels Get a reference to the charts x axis grid Get Set the x value template for the data tooltip Get a reference to the charts left y axis Get a reference to the charts right y axis Get a reference to the charts left y axis labels Get a reference to the charts left y axis title Get a reference to the charts y axis grid Get Set the y value template for the data tooltip The main objects of the graph are labeled in the graph below 252 SPC Variable Control Charts AA YAxisTitle 25 w a BAR 30 0 4 LCL 24 2 YAxisLab 2o 1 16 00 17 00 PlotBackground 7 SPC A
229. bjects There is an instance of SPCControlChartData in the SPCChartBase class Since the SPCChartBase class is the base class for the four major SPC Control Charts SPCBatchAttributeConrolChart SPCBatchVariableControlChart SPCTimeAttributeConrolChart SPCTimeVariableControlChart it is accessible from those classes The data elements of the SPCControlChartData class are accessible to the programmer SPCControlChartData Methods The SPCControlChartData object is automatically created when the parent SPCChartBase object is created The programmer does not need to instantiate it Public Static Shared Fields CUSTOM ATTRIBUTE CONTROL CHART Chart type constant Custom SPC Attribute Control Chart unused CUSTOM VARIABLE CONTROL CHART Chart type constant Custom SPC Variable Control Chart not used DATALOG FILE ALL Datalog flag specifying that all available items should be logged to the file DATALOG FILE BATCH NUMBER Datalog flag specifying that the batch number should be logged to the file DATALOG FILE CALCULATED VALUES Datalog flag specifying that the SPC Control Data and Alarm Classes 105 DATALOG FILE COLUMN HEADS DATALOG FILE CONTROL LIMIT VALUES DATALOG FILE NOTES DATALOG FILE SAMPLED VALUES DATALOG FILE TIME STAMP DATALOG USER STRING FRACTION DEFECTIVE PARTS CHART HEADER STRINGS LEVELO HEADER STRINGS LEVELI HEADER STRINGS LEVEL2 HEADER STRINGS LEVEL3 INDIVIDUAL RANGE CHART c
230. bleDataToolTip true spcChart EnableNotesToolTip true spcChart ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE_TOOLTIP spcChart ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP VB Enable data and notes tooltips spcChart EnableDataToolTip True SPC Attribute Control Charts 307 SpcChart EnableNotesToolTip True SpcChart ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP spcChart ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP Enable Alarm Highlighting EnableAlarmStatusValues Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Left Front Fender Operation Painting Spec Limits Units Operator B Cornwall Machine 11 Gage Zero Equals TIME 11 38 12 08 12 38 13 08 13 38 14 08 14 38 15 08 15 38 16 08 16 38 17 08 17 38 18 08 18 38 19 08 19 38 Defect 1 2 6 3 3 2 1 2 4 3 3 1 0 0 1 1 0 7 Defect 3 2 5 5 3 0 8 0 5 3 5 1 0 1 3 1 1 2 FRACT DEF 0 120 0 200 0 180 0 200 0 140 0 300 0 080 0 240 0 140 0 280 0 060 0 000 0 020 0 140 0 060 0 020 0 280 FRACT DEF m 0 0 CL 0 00 14 00 16 00 17 00 18 00 15 00 There are several alarm highlighting options you can turn on and off The alarm status line above is turned on off using the EnableAlarmStatusValues property We have set it on by default so you will have to turn
231. build and draw the chart using the current data and settings SpcChart RebuildChartUsingCurrentData Simulate timeincrementminutes minute passing StartTime Add ChartObj MINUTE timeincrementminutes End Sub Updating Chart Data SPC Variable Control Charts 223 The real time example above demonstrates how the SPC chart data is updated using the ChartData AddNewSampleRecord method In this case the chart data updates with each timer tick event though it could just as easily be any other type of event If you have already collected all of your data and just want to plot it all at once use a simple loop like most of our examples do to update the data C private void SimulateData for int i50 i lt 200 i ChartCalendar timestamp ChartCalendar startTime Clone use this for time row not graphs Use the ChartData sample simulator to make an array of sample data DoubleArray samples spcChart ChartData SimulateMeasurementRecord 33 9 Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE sampleincrement VB Private Sub SimulateData Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar use this for time row not graphs Use the ChartData sample simulator to make an array of sample data Dim samples
232. c Static Shared Properties DefaultAxisLabelsFont Set Get default font object used for the axes labels DefaultAxisTitleFont Set Get the default font object used for the axes titles Set this properties BuildGraph DefaultChartFontString Set Get the default font used in the chart This is a string specifying the name of the 366 Frequency Histograms Pareto Diagrams Probability Charts DefaultFooterFont DefaultMainTitleFont DefaultSigmaFont DefaultSubHeadFont DefaultToolTipFont Public Instance Constructors ProbabilityChart Public Instance Properties CoordinateSystem Datatooltip DefaultGraphBorder Footer GraphBackground MainTitle PlotAttrib PlotBackground ProbabilityDataset ProbabilityPlot ResetOnDraw SigmaAxis SigmaAxisLab SubHead SymbolSize TextTemplate ToolTipSymbol font Set Get the default font object used for the chart footer Set Get the default font object used for the main chart title Set Get the default font object used for the axis labels sigma character Set Get the default font object used for the subhead title Set Get the default font object used for the tooltip Overloaded Initializes a new instance of the ProbabilityChart class Get the probability coordinate system for the chart Get the chart data tooltip Get Set the default graph border object for the chart Get the chart footer object Get the graph background object Get the chart title
233. cChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 spcChart ChartData PartName Transmission Casing Bolt spcChart ChartData Operation Threading spcChart ChartData SpecificationLimits spcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 spcChart ChartData UnitOfMeasure 0 0001 inch spcChart ChartData ZeroEquals zero spcChart ChartData DateString DateTime Now ToString spcChart ChartData NotesMessage Control limits prepared May 10 spcChart ChartData NotesHeader NOTES row header spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL1 Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData 116 SPC Control Data and Alarm Classes VB Public Class IndividualRangeChart Private startTime As New ChartCalendar SPC variable control chart type Private charttype As Integer SPCControlChartData INDIVIDUAL RANGE CHART Number of samples per sub group Private numsamplespersubgroup As Integer 1 Number of datapoints in the view Private numdatapointsinview As Integer 17 The time increment between adjacent subgroups Private sampleincrement As Integer 30 Private spcChart As SPCTimeVariableControlChart Public Sub New tvc As SPCTimeVariableControlChart SpcChart tvc Define and draw chart InitializeChart End Sub Public Sub Initialize
234. ch in our organization of the rules is 1 to 8 SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Use the complete set of Duncan rules SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord DUNCAN RULES The named rule setup methods also come in variants which allow you to selectively enable diasble one or more rules from the named rule set You do that by building a BoolArray object containing true or false for each named rule in the rule set and calling UseNamedRuleSet method The Named and Custom Control Rule Sets 333 GetInitializedRuleBoolArray is just a simple utility method which creates and fills out an appropriately sized BoolArray array with a default true or false value SPCChartObjects GetInitializedRuleBoolArray Method Visual Basic Declaration Public Function GetInitializedRuleBoolArray _ ruleset As Integer _ initialvalue As Boolean _ As BoolArray C public BoolArray GetInitializedRuleBoolArray int ruleset bool initialvalue Parameters ruleset One of the SPCControlLimitRecord named rule identifiers BASIC_RULES WECO RULES WECOANDSUPP RULES NELSON RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES and DUNCAN RULES initialvalue Ture or False all values of the returned BoolArray are initialized to this value All rule numbering is based on our rule numbering which separates greater than and less than tests into separate rules as
235. chart namespace SPCApplicationl lt summary gt Interaction logic for Windowl xaml lt summary gt public partial class Windowl Window t TimeVariableControlChart ucc public Windowl InitializeComponent ucc new TimeVariableControlChart spcChartl spcChartl PreferredSize new Size 800 600 Quinn Curtis SPC Statistical Process Control Software We have created a library of SPC routines that represents an intermediate solution Our SPC software still requires an intermediate level programmer but it does not require advanced 6 Introduction knowledge of SPC or of charting Built on top our QCChart2D it implements templates and support classes for the following SPC charts and control limit calculations Variable Control Charts Templates Fixed sample size subgroup control charts X Bar R Mean and Range Chart X Bar Sigma Mean and Sigma Chart Median and Range Median and Range Chart X R Individual Range Chart EWMA Exponentially Weighted Moving Average Chart MA Moving Average Chart MAMR Moving Average Moving Range Chart MAMS Moving Average Moving Sigma Chart CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Sigma Mean and Sigma Chart Attribute Control Charts Templates Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts np Chart Number of Defective Parts c Chart Number of Defects u Chart
236. chart data to that file in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Uses the dataLogFlags property as the guide to reading the values of the file so that property must be properly initialized for the data file being read Determines whether the specified Object is equal to the current Object Throws an exception if an error exists in the error chain ExcludeRecordFromControlLimitCalculations Exclude the specified record from the SOC GetBatchNumberValue GetCalculatedValue GetCalculatedValueRecord GetChartObjIDCntr inherited from ChartObj control limit calculations Get the group number value at the specified index Get a calcualted value at a specific row index and column time Get the calculated value record at the specified index Returns the current value of the chartObjIDCntr static counter GetChartObjType inherited from ChartObj Returns the chart object type GetControlLimit GetControlLimitRecord GetControlLimitString GetControlLimitText GetControlLimitValue Get the value of a specific SPC chart limit Get the control limit record at the specified index Get the text for a specific SPC chart limit Get the control limit text at the specified index Get a control limit value for charts w
237. chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange spcChart RebuildChartUsingCurrentData public void SPCDataToolTipEventHandler object sender SPCDataToolTipEventArgs e SPCSampledValueRecord sv e SampleValues Retrieve current sample values at click index int clickindex e SampleIndex int numsamplespersubgroup sv Length double sampleValuesAtIndex new double numsamplespersubgroup for int i 0 i lt numsamplespersubgroup i sampleValuesAtIndex i sv i SampledValues clickindex DateTime timestamp e TimeStamp Modify sample values at click index for int i 0 i lt numsamplespersubgroup i new value is just old value plus 1 double newvalue sampleValuesAtIndex i 1 412 Creating SPC Charts in Windows Applications need to rebuild in order to make changes visible spcChart RebuildChartUsingCurrentData private void SimulateData int count double mean double std for int 1 07 1 count i ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples spcChart ChartData SimulateMeasurementRecord mean std In a non simulated application you would define samples to have a size equal to your sample sub group size then assign individual elements of the array dif false DoubleArra
238. ck of variance 8 N of M within X sigma from center line either side 9 N ofr M within X sigma of each other no reference to center line Oscillation 10 N of M alternating about X sigma from center line 11 N of M alternating no reference to center line For example rule 1 for all of the named rules a single point plots outside of 3 sigma is implemented as one instance of template 1 N of M above X sigma where N 1 M 1 and X 3 and one instance of template 2 N of M below X sigma where N 1 M 1 and X 3 Rule 2 for WECO and Nelson two of three point plots outside of 2 sigma is implemented as one instance of template 1 N of M above X sigma where N 2 M 3 and X 2 and one instance of template 2 N of M below X sigma where N 2 M 3 and X 2 Rule 4 and 5 for Hughes three of seven points above below 2 sigma control limit is implemented as one instance of template 1 N of M above X sigma where N 3 M 7 and X 2 and one instance of template 2 N of M below X sigma where N 3 M 7 and X 2 328 Named and Custom Control Rule Sets Rule 6 for Gitlow eight points in a row increasing is implemented as one instance of template 5 N of M trending up where N 8 and M 8 The templates are important because using them you can modify any existing named rule changing the M N or X parameter Or you can create completely new rules Taking these factors into account we have redefined and renumbered the
239. cord or SPCSampledValueRecord record Returns true if the control limit record at the index is initiated Overloaded This methods will create a text file and output all of the current SPC data records to that file in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Overloaded This methods will read a text file of SPC data records organized in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and Word processing programs Some ResetSPCChartData Save SetControlLimitString SetControlLimitStrings SetControlLimitValue SetControlLimitValues SetSampleRowHeaderString SimulateDefectRecord SimulateMeasurementRecord SortAlarmObjectsByValue ToString inherited from Object TransitionEventCondition Public Instance Events AlarmStateEventHandler AlarmTransitionEventHandler SPC Control Data and Alarm Classes 113 localization for different operating systems and locales can be handled by the modifying the default csv CSV object Reset the history buffers of all of the SPC data objects Overloaded This methods will create a text file and output the SPC chart data to that file in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs
240. ct to technical information you provide to Quinn Curtis Inc as part of the Support Services Quinn Curtis Inc may use such information for its business purposes including for product support and development Quinn Curtis Inc will not utilize such technical information in a form that personally identifies you 5 TERMINATION Without prejudice to any other rights Quinn Curtis Inc may terminate this EULA if you fail to comply with the terms and conditions of this EULA In such event you must destroy all copies of the SOFTWARE 6 COPYRIGHT The SOFTWARE is protected by United States copyright law and international treaty provisions You acknowledge that no title to the intellectual property in the SOFTWARE is transferred to you You further acknowledge that title and full ownership rights to the SOFTWARE will remain the exclusive property of Quinn Curtis Inc and you will not acquire any rights to the SOFTWARE except as expressly set forth in this license You agree that any copies of the SOFTWARE will contain the same proprietary notices which appear on and in the SOFTWARE 7 EXPORT RESTRICTIONS You agree that you will not export or re export the SOFTWARE to any country person entity or end user subject to U S A export restrictions Restricted countries currently include but are not necessarily limited to Cuba Iran Iraq Libya North Korea Sudan and Syria You warrant and represent that neither the U S A Bureau of Export Administra
241. cts AXIS LABEL MODE STRING SPC Variable Control Charts 247 Use the AddAxisUserDefinedString method to supply a new string for every new sample subgroup It must be called every time the AddNewSampleRecord method is called or the user defined strings will get out of sync with their respective sample subgroup Reset the axis labeling mode back to batch number labeling by assigning the XAxisStringLabelMode property to SPCChartObjects AXIS LABEL MODE DEFAULT spcChart ChartData AddNewSampleRecord batchCounter timestamp samples variableControlLimits Make a random string to simulate some sort of batch sample group ID int randomnum int 1000 ChartSupport GetRandomDouble String batchidstring EC randomnum ToString spcChart ChartData AddAxisUserDefinedString batchidstring VB SpcChart ChartData AddNewSampleRecord batchCounter timestamp samples variableControlLimits Dim randomnum As Integer CInt 1000 ChartSupport GetRandomDouble Dim batchidstring As String EC amp randomnum ToString spcChart ChartData AddAxisUserDefinedString batchidstring See the example program BatchVariableControlCharts VariableControlLimits for a complete example Changing Default Characteristics of the Chart All Variable Control Charts have two distinct graphs each with its own set of properties The top graph is the Primary Chart and the bottom graph is the Secondary Chart 248 SPC Variable Control Charts
242. culated historical data array calculatedValues is valid Overloaded Calculate the calculated value value based on the data in the source array Sets the calculatedValue property of the class to the result This is the record class for calculating and storing SPC process capability statistics It supports calculating the Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk statistics Public Static Shared Fields SPC CP CALC SPC CPK CALC SPC CPL CALC SPC CPM CALC SPC CPU CALC SPC CUSTOM PC CALC SPC PP CALC SPC PPK CALC SPC PPL CALC Constant value CP calculation Constant value CPK calculation Constant value CPL calculation Constant value CPM calculation Constant value CPU calculation Constant value for a custom SPC calculation unused Constant value for a sum SPC calculation Constant value PPK calculation Constant value PPL calculation SPC PPU CALC Public Static Shared Properties DefaultProcessCapabilityStrings Public Instance Constructors SPCProcessCapabilityRecord Public Instance Properties CalculationType CurrentValue CurrentValues LSLValue USLValue ValidValueFlags ValueDescription Public Instance Methods CalculateProcessCapabilityValue CalculateProcessCapabilityValues Clone Copy IsValueValid Reset SetProcessCapabilityValue SPC Control Data and Alarm Classes 147 Constant value PPU calculation Default descriptors for the process capability strings Cp
243. d Grid is a panel class used everywhere in WPF Silverlight programs for the layout of visual objects Rather than force programmers to fully qualify the QCChart2D QCSPCChart Grid class which does something entirely different than the WPF Grid class we changed the name of Introduction 15 our grid to ChartGrid Otherwise the parameters remain the same as our original QCChart2D QCSPCChart Grid class WPF Silverlight C ChartAttribute attrib3 new ChartAttribute Colors Gray 1 ChartObj LS DOT 1 4 ChartGrid ygrid new ChartGrid xAxis yAxis ChartObj Y AXIS ChartObj GRID MAJOR ygrid SetChartObjAttributes attrib3 chartVu AddChartObject ygrid VB Dim attrib3 As New ChartAttribute Colors Gray 1 ChartObj LS DOT 1 4 Dim ygrid As New ChartGrid xAxis yAxis ChartObj Y AXIS ChartObj GRID MAJOR ygrid SetChartObjAttributes attrib3 chartVu AddChartObject ygrid Mouse Button Constants WPF events use different mouse button constants than Net Forms based programming The Net Forms mouse event constants are found in System Windows Forms MouseButtons while the WPF mouse constants are found in System Windows Input MouseButton Silverlight does not have any mouse button constants So we added integer Left Right and Middle constants to a MouseButton class we include with the library Mouse Event Arguments In Net Forms programming the MouseDown MouseUp and MouseMove events use the System Windows Forms MouseEvent
244. d to position and draw objects that can be used as standalone objects in a graph or as elements of other plot objects Marker This class displays one of five marker types in a graph The marker is used to create data cursors or to mark data points ChartImage This class encapsulates a System Windows Control Image class defining a rectangle in chart coordinates that the image is placed in JPEG and other image files can be imported using the Image class and displayed in a chart ChartShape This class encapsulates a System Windows Media PathGeometry class placing the shape in a chart using a position defined in chart coordinates A chart can display any object that can be defined using PathGeometry class ChartSymbol This class defines symbols used by the SimplePlot scatter plot functions Pre defined symbols include square triangle diamond cross plus star line horizontal bar vertical bar 3D bar and circle Mouse Interaction Classes MouseListener MoveObj FindObj DataToolTip DataCursor MoveData MagniView MoveCoordinates MultiMouseListener ChartZoom Several classes implement delegates for mouse events The MouseListener class implements a generic interface for managing mouse events in a graph window The DataCursor MoveData MoveObj ChartZoom MagniView and MoveCoordinates QCChart2D Class Summary 95 classes also implement mouse event delegates that use the mouse to mark move and zoom chart objects and data
245. dLabelFont The font used in the display of calculated values in the table StringLabelFont The font used in the display of header string values in the table NotesLabelFont The font used in the display of notes values in the table Extracted from the example BatchAttributeControlCharts PercentDefectivePartsControlChart spcChart ChartTable SampleLabelFont new ChartFont Times 12 FontStyles Normal VB SpcChart ChartTable SampleLabelFont new ChartFont Times 12 FontStyles Normal The ChartTable class has a static property SPCGeneralizedTableDisplay DefaultTableFont that sets the default font Use this if you want to establish a default font for all of the text in a table This static property must be set BEFORE the charts Init routine Extracted from the example BatchAttributeControlCharts PercentDefectivePartsControlChart C SPCGeneralizedTableDisplay DefaultTableFont new ChartFont Microsoft Sans Serif 11 FontStyles Normal Initialize the SPCBatchVariableControlChart spcChart InitSPCBatchAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview VB SPCGeneralizedTableDisplay DefaultTableFont _ new ChartFont Microsoft Sans Serif 11 FontStyles Normal Initialize the SPCBatchAttrbiuteControlChart spcChart InitSPCBatchAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview 278 SPC Attribute Control Charts Chart Fo
246. dValueRecord e SPCSource Dim calculatedvaluestring As String spcSource CalculatedValue ToString Dim message As String alarm AlarmMessage Dim timestamp As ChartCalendar spcData TimeStamp Dim timestampstring As String timestamp ToString If alarm AlarmState Then Console Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring End If End Sub SPCControlLimitAlarm Control Limit Alarm Event Handling Class SPCControlLimitAlarmArgs ChartObj SPCControlLimitAlarmArgs 140 SPC Control Data and Alarm Classes The SPCControlChartData class can throw an alarm event based on either the current alarm state or an alarm transition from one alarm state to another The SPCControlLimitAlarmArgs passes alarm data to the event handler If you want the alarm event triggered only on the initial transition from the no alarm state to the alarm state set the SPCControlChartData AlarmTransitionEventEnable to true and the SPCControlChartData AlarmStateEventEnable to false In this case you will get one event when the process variable goes into alarm and one when it comes out of alarm If you want a continuous stream of alarm events as long as the SPCControlLimitRecord object is in alarm set the SPCControlChartData AlarmTransitionEventEnable to false and the SPCControlChartData AlarmStateEventEnable to true The alarm events will be generated at the same rate
247. dard deviation of the measured values within each subgroup This is a more accurate way of establishing control limits if the sample size of the subgroup is moderately large 10 Though computationally more complicated the use of a computer makes this a non issue The X Bar Sigma chart comes in fixed sample subgroup size and variable sample subgroup size versions X Bar Sigma charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes Median Range Also known as the Median and Range Chart Very similar to the X Bar R Chart Median Range chart replaces the Mean plot with a Median plot representing the median of the measured values within each subgroup In order to use a Median Range chart the process needs to be well behaved where the variation in measured variables are 1 known to be distributed normally 2 are not very often disturbed by assignable causes and 3 are easily adjusted Median Range charts SPC Variable Control Charts 153 are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes Individual Range Chart Also known as the X R Chart The Individual Range Chart is used when the sample size for a subgroup is 1 This happens frequently when the inspection and collection of data for quality control purposes is automated and 100 of the units manufactured are analyzed It also happens when the production rate is low and it is inconvenient to have s
248. dd3SigmaControlLimits target 11 hh limitcheck spcChart PrimaryChart ControlLimitLineFillMode True UCLP 0 279 UCL2 0 231 UCL1 0 183 PBAR 0 134 LCL1 0 086 12 00 13 00 14 00 15 00 16 00 17 00 18 00 Control Limit Fill Option used with 1 2 and 3 sigma control limits A more complicated way to set the control limits explicitly is to first grab a reference to the SPCControlLimitRecord for a given control limit and then change the value of that control limit and the control limit text 1f desired The example below sets the control limit values and text for the three control limits target value upper control limit and 284 SPC Attribute Control Charts lower control limit of the primary chart and the three control limit values for the secondary chart C double sigma2 2 0 double sigmal 1 0 Create multiple limits For PrimaryChart SPCControlLimitRecord 1c12 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC_LOWERTHAN LIMIT DTULCLZ TLEL SPCControlLimitRecord ucl2 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC_GREATERTHAN LIMIT D 28 UCL2 UCL SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit uc12 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1c13 new SPCControlLimitRecord spcChart C
249. ded in a file with a name similar to SLSPCDEV1UR2x2x561x1 zip The developer version does not time out and you can use it to create application programs that you can distribute royalty free You can download free updates for a period of 2 years When you placed your order you were e mailed download link s that will download the software Those download links will remain active for at least 2 years and should be used to download current versions of the software After 2 years you may have to purchase an upgrade to continue to download current versions of the software Source Code The commented source code to the QCSPCChart software also available The source code is written entirely in C It can be compiled using Visual Studio 2008 and higher Net C compilers It can be ordered using the model WPF SPC SRC Purchasers of the QCSPCChart source code must also own a valid Developer License since all example programs user manuals and licenses are installed as part of the Developer Version of the software Some programmers seem to think they can make do with just the source code without the Developer Version Purchasing the source without a Developer License does not give a license to use the software so don t do it Introduction 11 Source Code Differences between the Net versions of QCChart2D QCSPCChart Net WPF and Silverlight There are some minor difference in the names of classes between the Net versions of QCChart2D QCSPCChart
250. defect category 5 Randomize the sample subgroup size to some value less than the maximum Y value entered in the call to InitSPCTimeAttributeControlChart and set the charts ChartData SampleSubgroupSize VSS property with this value immediately prior to the AddNewSampleRecord call spcChart ChartData SampleSubgroupSize VSS numsamplespersubgroup 25 ChartSupport GetRandomDouble Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples While the table portion of the display can display defect data broken down into categories only the sum of the defects for a given sample subgroup is used in creating the actual SPC chart Note that the code below extracted from the TimeAttributeControlCharts NumberDefectsControlChart example uses a different ChartData SimulateDefectRecord method to simulate the defect data C Simulate sample record DoubleArray samples spcChart ChartData SimulateDefectRecord 19 85 5 Add a sample record spcChart ChartData AddNewSampleRecord timestamp samples VB Simulate sample record Dim samples As DoubleArray spcChart ChartData SimulateDefectRecord 19 85 5 Add a sample record spcChart ChartData AddNewSampleRecord timestamp samples Other AddNewSampleRecord Methods Add a new sample record to a time based SPC chart public void AddNewSampleRecord ChartCalendar DoubleAr ray Add a new sample record with notes t
251. defect data for n and np charts The code below is extracted from our TimeAttributeControlCharts NumberDefectivePartsControlChart example program C DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record SpcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray spcChart ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples This particular overload for ChartData SimulateDefectRecord knows that since it is a NUMBER DEFECTIVE PARTS CHART chart np chart and since the ChartData object was setup with five categories in the InitSPCTimeAttributeControlChart call that is should return a DoubleArray with 5 1 6 elements The first five elements representing simulated defect counts for the five defect categories and the sixth element the simulated defective parts count The defect category count data of the samples array is only used in the table part of the display the defect category counts play NO role in the actual SPC chart The only value plotted in the SPC chart is the last element in the samples array the defective parts count for the sample subgroup Updating p charts Variable Sample Subgroup Size p chart FRACTION DEFECTIVE PARTS CHART VSS PERCENT DEFECTIVE PARTS CH
252. detect You specify H aud Ki in the initialization call InitSPCTimeCusumControlChart for a time based variable control chart or InitSPCBatchCusumControlChart for a batch based variable control chart See the examples MiscTimeBasedControlCharts CUSumChart MiscTimeBasedControlCharts CUSumChart2 MiscBatchBasedControlCharts CUSumChart and MiscBatchBasedControlCharts CUSumChart2 Extracted from MiscTimeBasedControlCharts CUSumChart C int charttype SPCControlChartData TABCUSUM CHART double processMean 10 double kValue 0 5 double hValue 5 Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeCusumControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement processMean kValue hValue VB Private charttype As Integer SPCControlChartData TABCUSUM CHART Private processMean As Double 10 Private kValue As Double 0 5 Private hValue As Double 5 Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeCusumControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes processMean kValue hValue Or you can call the InitSPCTimeCusumControlChart method and specify H and K using immediately afterwards using simple property calls Extracted from MiscTimeBasedControlCharts CUSumChart2 SPC Variable Control Charts 203 C int charttype SPCControlChartData TABCUSUM CHART double processMean 10 double kValue 0 5
253. e probabilityChartX AxisTitle Frequency Bin Probability chart x axis title probabilityChartY AxisTitle Population Probability chart y axis title Under probabilityChartMainTitle Normal Probability Probability chart main title Plot basic Basic Basic rules string weco WECO WECO rules string wecowsupp WECO SUPPLEMENTAL WECO and Supplemental Rules string nelson Nelson Nelson rules string 396 Regionalization aiag AIAG AIAG rules string juran Juran Juran rules string hughes Hughes Hughes rules string gitlow Gitlow Gitlow rules string duncan Duncan Duncan rules string primarychart Primary chart Used in alarm messages to specify the Primary Chart variable chart is in alarm secondarychart Secondary chart Used in alarm messages to specify the Secondary Chart variable chart is in alarm greaterthan greater than Used in alarm messages to specify that a greater than alarm limit has been violated lessthan less than Used in alarm messages to specify that a less than alarm limit has been violated above above Used in alarm messages to specify that values above a limit below below Used in alarm messages to specify that values below a limit increasing increasing Used in alarm messages to specify that values are increasing decreasing decreasing Used in alarm messages to specify that values
254. e Low short string WR No short string a Yes short string aa default data log user string Variable Control Chart X Bar amp R Default chart title zero table zero string TIME TIME row header ALARM ALARM row header NO INSP NO INSP row header Tieles Title field caption Part No Part number field caption Chart No Chart number field caption end used to mark the end of the array Iz SPCChartStrings CurrentDefaultStrings usEnglishStrings return true Regionalization 401 12 Using SPC Control Chart Tools for Silverlight to Create Silverlight Applications Critical Note Running the Example Programs The example programs for SPC Control Chart Tools for Silverlight software are supplied in complete source In order to save space they have not been pre compiled which means that many of the intermediate object files needed to view the main form are not present This means that the charts will not be visible on the main Window if you attempt to view the main form before the project has been compiled The default state for all of the example projects should be the Start Page Before you do view any other file or form do a build of the project This will cause the intermediate files to be built If you attempt to view the main Window before building the project Visual Studio sometimes decides that the control placed on the main form does not exis
255. e method to read previously saved values VB spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes If System IO IsolatedStorage IsolatedStorageFile GetUserStoreForApplication FileEx ists DatalogFilel txt Then SpcChart ChartData ReadAllValuesFromFile DatalogFilel txt C SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Xf System IO IsolatedStorage IsolatedStorageFile GetUserStoreForApplication FileEx ists Datalogrilel txt spcChart ChartData ReadAllValuesFromFile DatalogFilel txt It is important that the charttype parameter matches the chart type used to save the original data and that the numberofsamplepersubgroup value matches the number of samples in the original data Control Limit Alarms Class SPCControlLimitRecord SPC Control Data and Alarm Classes 135 ChartObj SPCControlLimitRecord The SPCControlLimitRecord stores control limit alarm information for the SPCControlChartData class The SPCControlLimitRecord class specifies the type of the alarm the alarm limit value alarm text messages and alarm hysteresis value The SPCControlChartData classes store the SPCControlLimitRecord objects in the SPCControlChartData ControlLimitValues array list SPCControlLimitRecord constructors This constructor creates a new instance of a SPCControlLi
256. e Control Charts SpcChart ChartData SetSampleRowHeaderString 3 Seam SpcChart ChartData SetSampleRowHeaderString 4 Other The ChartTable property of the chart has properties that further customize the chart The default table background uses the accounting style green bar striped background You can change this using the ChartTable TableBackgroundMode property Set the value to one of the TableBackgroundMode constants TABLE NO COLOR BACKGROUND Constant specifies that the table does not use a background color TABLE SINGLE COLOR BACKGROUND Constant specifies that the table uses a single color for the background backgroundColor1 TABLE STRIPED COLOR BACKGROUND Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 TABLE SINGLE COLOR BACKGROUND GRIDCELL Constant specifies that the table uses a grid background with backgroundColorl the overall background color and backgroundColor2 the color of the grid lines Extracted from the TimeAttributeControlCharts PercentDefectivePartsControlChart example program Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator S Kafka Machine Date 12 21 2005 2 55 24 PM Time 14 55 15 25 15 55 16 25 16 55 17 25 17 55 18 25 18 55 19 25 19 55 20 25 20 55 21 25 21 55 22 25 22 55 Scratch E 6 1 0 1 1 1 0 3 1 0 0 5 Burr 3 7 2 1 3 2 1 6 5 6 2 2 2 0 1 1 2 Dent 2 2 0
257. e SOFTWARE in the United States this EULA is governed by the laws of the state of Massachusetts If you acquired the SOFTWARE outside of the United States then local laws may apply Should you have any questions concerning this EULA or if you desire to contact Quinn Curtis Inc for any reason please contact Quinn Curtis Inc by mail at Quinn Curtis Inc 18 Hearthstone Dr Medfield MA 02052 USA or by telephone at 508 359 6639 or by electronic mail at support Quinn Curtis com iv QCSPCChart SPC Control Chart Tools for Silverlight T TntroductioN Ge Lco decas ee o 1 Whats Newin Rev 2 2s nae ia a Dot ia 1 TU is oa DE epa lee 1 CUS ETNA SES UN i A Rae A ee firth ote sre aute 2 SPC Control Chart Tools for Silverlight Background sss 2 WPF and Silverlight Backeroutnd saei rt des 3 Quinn Curtis SPC Statistical Process Control Software 5 SPC Control Chart Tools for Silverlight Dependencies sess 7 Directory Structure of QCSPCChart for Silverlight esses 7 Critical Note Running the Example Programs esee 9 Source Code Differences between the Net versions of QCChart2D QCSPCChart Net WPF and SIIverlehty os usce un dri ete to uineis ice put cru NE 11 Chapter i Urt eoo to ta E LAE suat tte A E M Mo EIE 17 standard SPC Control Chats 19 Variable Control Charts oobis ed tts ta 20 Attribute Contra cR 35 Attribute Control CO aetas e
258. e SPCCalculatedValue source of the item to test limtype Specifiy either SPCChartObjects SPC LOWERTHAN LIMIT or SPCChartObjects SPC GREATERTHAN LIMIT value Specifies the value of the control limit displaystring The optional display string displayed to the right of the limit line addline The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the numeric limit CH spcChart ChartData GetCalculatedValueRecord 0 returns the calcuated value which calculates the subgroup mean SPCCalculatedValueRecord cvr spcChart ChartData GetCalculatedValueRecord 0 SpcChart PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC LOWER SPEC LIMIT 22 3 L CV 0 true new ChartAttribute Colors Green 3 0 SpcChart PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC UPPER SPEC LIMIT 32 1 H CV 0 true new Cha rtAttribute Colors Yellow 3 0 VB 346 Named and Custom Control Rule Sets spcChart ChartData GetCalculatedValueRecord 0 returns the calcuated value which calculates the subgroup mean Dim cvr As SPCCalculatedValueRecord spcChart ChartData GetCalculatedValueRecord 0 SpcChart PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC LOWER SPEC LIMIT 22 3 L CV 0 True New ChartAttribute Colors Green 3 0 SpcChart PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC UPPER SPEC LIMIT 32 1 H CV 0 True New ChartAttribute C
259. e Silverlight retained graphics framework But we have maintained the simple to use flexible programming style found in our QCSPCChart for Net software In general you place one or more of our SPC chart objects as visual elements in the XAML window of your application The chart itself is customized in the behind code of the XAML form What s New in Rev 2 2 Three new control charts Moving Average Moving Range MAMR Moving Average Moving Sigma MAMS and the Number Defects per Million DPMO See Chapter 6 SPC Variable Control Charts and Chapter 7 SPC Attribute Control Charts Direct support for additional control rule sets Nelson AIAG Juran Hughes Gitlow and Duncan in addition to the WE Western Electric and Supplemental Rules See Chapter 8 Named and Custom Control Rule Sets Create custom sets of control rules using any rule from any of the standard named control rule sets See Chapter 8 Named and Custom Control Rule Sets Define custom control rules based any of our predefined control rule templates See Chapter 8 Named and Custom Control Rule Sets Regionalization All strings used in the software have been moved to a static class which can be initialized at runtime with country specific strings See Chapter 11 Regionalization for non USA English Markets Tutorials Chapter 12 is a tutorial that describes how to get started with the SPC Control Chart Tools for Silverlight charting software
260. e SimplePlot class and it displays simple datasets in a line plot format where scatter plot symbols highlight individual data points 90 OCChart2D Class Summary Sales Volume is Rising Faster than Forecast 1999 2000 2001 2002 2003 2004 2005 2006 Presentation quality graphs with background gradients semi transparent colors legends and titles SimpleLinePlot Measurable work output SimpleScatterPlot SimpleVersaPlot This class is a concrete implementation of the SimplePlot class it displays simple datasets in a line plot format Adjacent data points are connected using a straight or a step line Theoretical vs Experimental Data 20 40 60 80 100 MBAs 1000 employees Energy Companies e Software Companies Predicted Scatter plots usually display some form of sampled data This class is a concrete implementation of the SimplePlot class and it displays simple datasets in a scatter plot format where each data point is represented using a symbol The SimpleVersaPlot is a plot type that can be any of the four simple plot types LINE MARKER PLOT LINE PLOT BAR PLOT SCATTER PLOT It is used when you want to be able to change from one plot type to QCChart2D Class Summary 91 another without deleting the instance of the old plot object and creating an instance of the new Legend Classes LegendItem BubblePlotLegendItem Legend StandardLegend BubblePlotLegend Legends provide a key for interpreting th
261. e WERulesVariableControlChart X BarRCharts example program If you want to include the WE Trending Supplemental rules in addition to the regular WE Runtime rules call UseWERuntimeAndSupplementalRules in place of UseWERuntimeRules C spcChart ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate spcChart SPCControlLimitAlarm don t generate alarms in initial data simulation spcChart ChartData AlarmStateEventEnable false spcChart PrimaryChart UseWERuntimeRules Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits for both graphs of the current SPC chart X Bar R SpcChart AutoCalculateControlLimits throw out values used to calculate limits spcChart ChartData ResetSPCChartData generate alarms now SpcChart ChartData AlarmStateEventEnable true Must have data loaded before any of the Auto methods are called Check this data against rules SimulateData 100 23 VB AddHandler spcChart ChartData AlarmStateEventHandler AddressOf spcChart SPCControlLimitAlarm don t generate alarms in initial data simulation spcChart ChartData AlarmStateEventEnable False spcChart PrimaryChart UseWERuntimeRules SimulateData Calculate the SPC control limits for the X Bar part of the current SPC chart X Bar R 216 SPC Variable Control Charts SpcChart AutoCalculateControlLimits
262. e chart SPC Attribute Control Charts 303 C frequency histogram for both charts SpcChart PrimaryChart DisplayFrequencyHistogram true VB frequency histogram for both charts spcChart PrimaryChart DisplayFrequencyHistogram True IBForm1 Me x Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 19 31 20 01 20 31 21 01 21 31 22 01 22 31 23 01 23 31 0 01 0 31 1 01 2 NOTES UCLP 0 28 PBAR 0 13 FRACT DEF i CLP 0 00 20 15 10 5 0 20 00 21 00 23 00 0 00 11 25 05 Frequency Histogram SPC Chart Data and Notes Tooltips You can invoke two types of tooltips using the mouse The first is a data tooltip When you hold the mouse button down over one of the data points in the primary chart the x and y values for that data point display in a popup tooltip Data Tooltip 304 SPC Attribute Control Charts E Formi lal x Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 16 40 17 10 17 40 18 10 18 40 19 10 19 40 20 10 20 40 21 10 21 40 2
263. e interval to sample interval depending on the number of samples in the associated sample subgroup You can read the sample sizes along the NO INSP row in the data table above the chart A low number of samples in the sample subgroup make the band between the high and low limits wider than if a higher number of samples are available The X Bar Sigma chart is the only variable control chart that can be used with a variable sample size C GetCurrentSampleSubgroupSize is a fictional method that gets the current number of samples in the sample subgroup The value of N can vary from sample interval to sample interval You must have a valid sample value for each element N GetCurrentSampleSubgroupSize Size array exactly to a length of N DoubleArray samples new DoubleArray N ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array You must have a valid sample value for each element of the array size 0 N 1 samples 0 0 121 First of five samples SPC Variable Control Charts samples 1 0 212 Second of five samples samples N 1 0 133 Last of the samples in the sample subgroup Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples VB Y GetCurrentSampleSubgroupSize is a fictional method that gets the Y current number of samples in the sample subgroup The
264. e more common polar coordinate system in that the radius can have plus minus values the angular values are in degrees and the angular values increase in the clockwise direction 66 OCChart2D Class Summary This class consolidates the common line and fill attributes as a single class Most of the graph objects have a property of this class that controls the color line thickness and fill attributes of the object The ChartGradient class expands the number of color options available in the ChartAttribute class ChartAttribute This class consolidates the common line and fill attributes associated with a GraphObj object into a single class ChartGradient A ChartGradient can be added to a ChartAttribute object defining a multicolor gradient that is applied wherever the color fill attribute is normally used Auto Scaling Classes AutoScale LinearAutoScale LogAutoScale TimeAutoScale ElapsedTimeAutoScale Usually programmers do not know in advance the scale for a chart Normally the program needs to analyze the current data for minimum and maximum values and create a chart scale based on those values Auto scaling and the creation of appropriate axes with endpoints at even values and well rounded major and minor tick mark spacing is quite complicated The AutoScale classes provide tools that make automatic generation of charts easier AutoScale This class is the abstract base class for the auto scale classes LinearAutoScale This class
265. e nennen 50 59 64 65 66 68 69 100 Physical oordimadtessos d o rr ci 50 59 64 65 66 68 69 100 436 Index IM Sp M E 76 88 101 Plot object classes ioco eee ebat e DRE pei dede Eee GEGEBEN ERE 76 77 101 POD cee TTL 98 99 100 Polar AKESE S EE EEEE EE U ange dor a OE UE RTT 69 73 76 93 101 PolarAxesEabels 4 decet trees e Pe Eare aaa EAS EE SEDE dais 75 76 101 PolarCoordinates o coves cte dta bot ac De EO TE a Ama Gb mi aere Y d PRT e SEES 65 66 100 Polat Grid s net ad tas stan tole eot aden ende nt od Ce ete tee ceo llo Aone do con am ds ade AD La Marsa ida 93 101 Polaris A POSU E E O ne PTE 86 101 PolarPlot 76 86 101 PolarScatterPlot 2 ecd tii aa a E e ND E o eov Lv Poe ARR 86 101 Polysurfaces class i2 traer Hor em EE Eae blo e ep eade e d ere eb c a tees 98 99 100 101 PEATE EUM ht da Ml dl 97 100 381 382 Probability Ch rt neret cement E a ce base cate GR ERR E UHR e seh teet e edge he ProbabilityChart 9 18 50 58 352 365 366 367 368 369 370 371 380 397 408 421 Probabilito Charta uoo dots tud eda be OSEE 9 18 50 58 352 365 367 368 369 370 380 408 421 ProbabilityChart 9 18 50 58 352 365 366 367 368 369 370 371 380 397 408 421 ProbabilityCoordinates intor ttc et EGER ERREUR IS HERR EXISTER XY cae eee eee koe ce veto 50 58 59 ProbabilityCoordi ates rer reont es cri 50 58 59 ProbabilitySCale noie
266. e proper image encoders not included with the Silverlight runtime at this time you can convert the image to standard file formats JPEG TIFF PNG BMP etc There are third party encoders you can use such as ImageTools http imagetools codeplex com Under Silverlight you cannot save image files to arbitrary locations on the client file system Image files can only be saved to Silverlight Isolated Storage Read about Silverlight Isolated Storage here Google Silverlight Isolated Storage If you want to save a single ChartView to a bitmap image use the constructor which passes in a ChartView If you want to save multiple ChartView objects to a single image use the constructor which passes in a Panel object BufferedImage constructor Visual Basic Visual Basic Overloads Public Sub New _ ByVal component As ChartView _ Visual Basic Overloads Public Sub New _ ByVal component As Panel _ Cf public BufferedImage ChartView component public BufferedImage Panel component File and Printer Rendering 389 component The ChartView or Silverlight Panel object that is the source for the chart image The BufferedImage GetRenderedBitmap method converts the chart to a WriteableBitmap object returns a reference to the resulting bitmap You must use an external image encoder ImageTools for example to convert the WriteableBitmap to a specific image file format See the previous section for an examp
267. e specification limits string Set Get the header for the specificationLimits field Set Get data table operator string Set Get the time stamp for the most recent sample data added to the class The data table time value row header Set Get data table title string Set Get the header for the title field Set Get data table unit of measure string Set Get the header for the unit of measure field Set Get data table zero equals string Set Get the header for the zeroEqulas field Overloaded Add a new sample record with notes to a time based SPC chart that plots variable control limits AppendCurrentRecordValuesToDataLog This methods will create a text file and append the current SPC data record to that file in a CSV Comma Separated Value format A CSV file can be read by popular SPC Control Data and Alarm Classes 111 Clone ControlLimitInitialized Copy Copy inherited from ChartObj DataLoglIsolatedStorageFileOpenForWrite Equals inherited from Object ErrorCheck inherited from ChartObj spreadsheet and word processing programs Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Returns an object that is a clone of this object Returns true if the control limit record at the index is initiated Overloaded Copies the source object Overloaded Copies the source object Overloaded This methods will create a text file and output the SPC
268. e system into the working coordinate system LogScale A concrete implementation of the ChartScale class It converts a logarithmic physical coordinate system into the working coordinate system TimeScale A concrete implementation of the ChartScale class converts a date time physical coordinate system into the working coordinate system ElapsedTimeScale A concrete implementation of the ChartScale class converts an elapsed time coordinate system into the working coordinate system Coordinate Transform Classes UserCoordinates WorldCoordinates WorkingCoordinates PhysicalCoordinates CartesianCoordinates ElapsedTimeCoordinates PolarCoordinates AntennaCoordinates TimeCoordinates The coordinate transform classes maintain a 2D coordinate system Many different coordinate systems are used to position and draw objects in a graph Examples of some of the coordinate systems include the device coordinates of the current window normalized coordinates for the current window and plotting area and scaled physical coordinates of the plotting area UserCoordinates This contains routines for drawing lines rectangles and text using Silverlight device coordinates WorldCoordinates This class derives from the UserCoordinates class and maps a device independent world coordinate system on top of the Silverlight device coordinate system WorkingCoordinates PhysicalCoordinates Cartesian Coordinates TimeCoordinates ElapsedTimeCoordinates
269. e various plot objects in a graph It organizes a collection of legend items one for each plot objects in the graph and displays them in a rectangular frame Legend This class is the abstract base class for chart legends LegendItem This class is the legend item class for all plot objects except for bubble plots Each legend item manages one symbol and descriptive text for that symbol The StandardLegend class uses objects of this type as legend items BubblePlotLegendItem This class is the legend item class for bubble plots Each legend item manages a circle and descriptive text specifying the value of a bubble of this size The BubblePlotLegend class uses objects of this type as legend items StandardLegend This class is a concrete implementation of the Legend class and it is the legend class for all plot objects except for bubble plots The legend item objects display in a row or column format Each legend item contains a symbol and a descriptive string The symbol normally associates the legend item to a particular plot object and the descriptive string describes what the plot object represents BubblePlotLegend This class is a concrete implementation of the Legend class and it is a legend class used exclusively with bubble plots The legend item objects display as offset concentric circles with descriptive text giving the key for the value associated with a bubble of this size 92 OCChart2D Class Summary ChartGrid Classes Ch
270. eGraphsToScrollbar Rescale primary and secondary charts based on the position of the value of the scroll bar The thumb position of the scroll bar ResetSPCChartData Reset the history buffers of all of the SPC data objects UpdateControlLimitLabel Creates a numeric label of the control limit and adds the numeric label to the spc chart Special Note for DPMO Charts The NUMBER DEFECTS PER MILLION CHART has an important parameter you may need to set DPMO charts use an important parameter known is the defect opportunites per unit The default value for the parameter is 1 So if you are using 1 as the the value of defect opportunites per unit in your chart you don t need to do anything If your value is greater than 1 you need to specify that using code similar to below C4 this ChartData DefectOpportunitiesPerUnit 5 VB Me ChartData DefectOpportunitiesPerUnit 5 Adding New Sample Records for Attribute Control Charts Attribute Control Chart Cross Reference p chart FRACTION DEFECTIVE PARTS CHART PERCENT DEFECTIVE PARTS CHART np chart NUMBER DEFECTIVE PARTS CHART c chart NUMBER DEFECTS CHART u chart NUMBER DEFECTS PERUNIT CHART DPMO NUMBER DEFECTS PER MILLION CHART SPC Attribute Control Charts 265 Updating p np and DPMO charts In attribute control charts the meaning of the data in the samples array varies depending on whether the attribute control chart measures the number of defective
271. econdaryChart ControlLimitLineFillMode True SPC Variable Control Charts 189 UCL 75 877 UCL2 75 596 UCL1 75 314 XBAR 75 033 LCL1 74 752 LCL2 74 470 LCL 74 189 UCL 2 123 UCLR2 1 691 UCLR1 1 258 RBAR 0 825 LCLR1 0 550 LCLR2 0 275 LCL 0 000 Control Limit Fill Option used with 1 2 and 3 sigma control limits The second way to set the control limits is to call the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object before you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C Mast have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC spcChart AutoCalculateControlLimits VB Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC spcChart AutoCalculateControlLimits You can add data to the ChartData object auto calculate the control limits to establish the SPC control limits and continue to add new data values Alternatively you can set the SPC control limits explicitly as the result of previous runs using the previously described ChartData SetControlLimitValues method add new sampled data values
272. economy Twenty to thirty years after Japan embraced his methods Deming found a new audience for his ideas at US companies that wanted to learn Japanese methods of quality control All quality systems use Statistical Process Control SPC to one degree or another SPC is a family of statistical techniques used to track and adjust the manufacturing process in order to produce gradual improvements in quality While it is based on sophisticated mathematical analysis involving sampling theory probability distributions and statistical inferences SPC results can usually be summarized using simple charts that even management can understand SPC charts can show how product quality varies with respect to critical factors that include things like batch number time of day work shift personal production machine and input Introduction 3 materials These charts have odd names like X Bar R Median Range Individual Range Fraction Number Non Conforming and NP The charts plot some critical process variable that is a measurement of product quality and compares it to predetermined limits that signify whether or not the process is working properly Initially quality control engineers create all SPC charts by hand Data points were painstakingly gathered massaged summed averaged and plotted by hand on graph paper It is still done this way in many cases Often times it is done by the same factory floor personal who control the process being measured allow
273. ee ee ee ee ee eee 17 16 17 37 17 45 18 07 18 21 18 27 18 43 19 08 19 16 19 35 19 43 19 57 20 24 20 39 20 41 21 08 21 17 RANGE RBAR 7 56 17 16 17 37 17 45 18 07 18 21 18 27 18 43 19 08 19 16 19 35 19 43 19 57 20 24 20 39 20 41 21 08 21 17 gom Batch X Bar R Chart using time stamp labeling of the x axis Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS LABEL MODE TIME C enable scroll bar spcChart EnableScrollBar true spcChart EnableCategoryValues false SPC Variable Control Charts 245 Label the tick mark with time stamp of sample group spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME VB enable scroll bar spcChart EnableScrollBar True spcChart EnableCategoryValues False Y Label the tick mark with time stamp of sample group spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME When updating the chart with sample data use AddNewSampleRecord overload that has batch number and a time stamp parameters C SpcChart ChartData AddNewSampleRecord batchCounter timestamp samples VB spcChart ChartData AddNewSampleRecord batchCounter timestamp samples See the example program BatchVariableControlCharts Batch XBarRChart for a complete example Reset the axis labeling mode back to batch number labeling by assigning the XAxisStringLabelMode property to SPCChartObjects AXIS
274. ee veu e itu dato sies E aia 36 Other Important SPC Charts aras 41 Class Architecture of the SPC Control Chart Tools for Silverlight Class Library 46 Major Design Constderabltofs uos esr tege s Sd 46 SPC Control Chart Tools for Silverlight Class Summary sees 48 SPC Control Chart Tools for Silverlight Class Hierarchy 49 OCSPCCHhatt Tasse doces eati dt end ati telo petet titi 50 QCChart2D for Silverlight Class Summary sess 62 QEChart2D for Silverlight Class Summary A Reges 62 Chart Windowd4 l38868 uan earesn eed at 63 Data Class s seca assesses abe robo 63 Scale GC T3886 ia 64 Coordinate Transform 13886 8 afe coi i out e sr metu sd tie tou t f PR 65 AMO cal Class s a aeo stabs retta deg een EEE E A EEE E AXE NGA RR VER 67 Chart Object Classes T 68 Mouse Interaction C ASSES 5 oec reiner ios 95 File and Printer Rendering C asse3 ees O io b panda des 97 Miscellaneous Utility C 4886831 aieo airs reia rera a 98 SPC Control Data and Alarm CIasses a oce etottpbend uude Pe oup eue arden tudo uU 104 Class SPCControlChartData ote ette Deere ino AA A Cte us 104 Control a AOS RR CL 135 Control Limit Alarm Event Handling eese 140 SPCSamnpledValueRecotd vta eir erected ete e nre vaste crt ee CHORUS 143 SPCLCOonttolE A Pee P NE d d 144 SPCCalculatedValueRecotds uua une E tec e edet ipee tete exo deis 145 SPCProcess
275. el Cpk row of table defaultCpm Cpm used to label Cpm row of table defaultPp PPp used to label Pp row of table defaultPl Ppl used to label Pl row of table 398 Regionalization defaultPu Ppu used to label Pu row of table defaultPpk Ppk used to label Ppk row of table end end Marks the end of the enumeration Regionalization 399 The enumerated values can be used to access and modify any specific string String oldstring SPCChartStrings SetString SPCChartStrings SPCStringEnum defaultMean AVERAGE oldstring SPCChartStrings SetString SPCChartStrings SPCStringEnum defaultDateFormat dd M yyyy Where the static SetString method returns the previous value for the string The SPCChartStrings module is used to define default and static strings for the various QCSPCChart classes when those classes are initialized Trying to set the SPCChartStrings strings using SetString after any of the SPC charts have been instantiated will not have the desired effect Since the SPC charts classes are normally instantiated in the main MainPage xaml file you must change any strings before that intialization takes place The best way to do that 1s to initialize the string in a static method in the main MainPage xaml cs file You will find an example in the TimeVariableControlCharts MainPage xaml cs file Call the static method using an initialization of a static variable in the global
276. elow further clarifies how these parameters affect the attribute control chart IBlFormi 10 x Simple Attibute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 timeincrementminutes 30 Operator S Kafka Machine 1 Time 12 31 13 01 13 31 14 01 14 31 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 NO DEFECTIVE 12 _FRAGT DEF 02400000 042001200100 0 200 0200 0 160 0 140 0240 0 180 0240 00400000 0 120 0060 0280 NO INSP UCLP 0 29 FRACT DEF e gt Once the Init routine is called the chart can be further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties DefaultChartFontString Set Get the default font used in the table display Public Instance Constructors SPCChartBase Public Instance Properties AutoLogAlarmsAsNotes BottomLabelMargin ChartData ChartAlarmEmphasisMode ChartTable DefaultControlLimitSigma EnableAlarmStatus Values EnableCalculatedValues EnableCategoryValues EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableScrollBar EnableTimeValues EnableTotalSamplesValues GraphBottomPos SPC Attribute Control Charts 261 Overloaded Initializes a new instance
277. encyHistogramPlot that will set all of the bars of the histogram plot at once C spcChart BarFillColor Colors Blue spcChart BarLineColor Colors Black VB spcChart BarFillColor Colors Blue spcChart BarLineColor Colors Black Adding Control Lines and Normal Curve to Histogram Plot Revision 1 7 adds a couple of new features to the histogram plot First you can add control limit alarm lines to the histogram plot The control limit lines will be parallel to the frequency axis Second a normal distribution curve can be overlaid on top of the histogram data The parameters are selected to give the normal distribution curve the same mean standard deviation and area as the underlying histogram data If the underlying data is normal then there should be a relatively close fit between the normal curve and the underlying frequency data 362 Frequency Histograms Pareto Diagrams Probability Charts Histogram Control Limit Lines and Normal Curve fit HE Form1 Efe o x File Exit Frequency Histogram of Selected Data Frequency 40 Measurements SpcChart AddFrequencyHistogramControlLine 20 0 new ChartAttribute ChartColor LightGreen 2 SpcChart AddFrequencyHistogramControlLine 60 0 new ChartAttribute ChartColor LightGreen 2 spcChart AutoNormalCurve true VB SpcChart AddFrequencyHistogramControlLine 20 0 new ChartAttribute ChartColor LightGreen 2 SpcChart AddFrequencyHistogram
278. endar timestamp new ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 samples 5 4 TOTAL number of defective parts in the sample Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 6 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 266 SPC Attribute Control Charts samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 samples 5 4 TOTAL number of defective parts in the sample Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples This is obscured in our example programs a bit because we use a special method to simulate defect data for n and np charts The code below is extracted from our TimeAttributeControlCharts NumberDefectivePartsControlChart exa
279. es 1 2 and 3 for WECO and Nelson rules In other cases similar rules only contain one test case N out of M above or below a given sigma control limit Example of this are the Juran rules 2 45 Hughes Rules 2 49 Gitlow Rules 2 45 and Duncan Rules 2 5 While the list of named rules below follow what is presented in the literature the actual rule numbering should be ignored That is because in the software we implement all rules as simple single condition rules The first rule in all of the named rule sets is implemented as two rules a single point greater than 3 sigma and a single point less than 3 sigma And WECO and Nelson rules 2 and 3 are implemented as four rules two N out of M greater than x sigma condition limits and two N out of M less than x sigma condition limits A complete cross reference to the named rules listed below and our own rule number system is found in Table 1 This is important because when you try to access a particular named rule within the software you must use our rule number system Nelson Rules The Nelson rules are almost identical to the combination of the WECO Runtime and Supplemental Rules The only difference is in Rule 4 4 Nine out of the last nine points plot on the same side of the center line or target value AIAG Rules 1 One of one point is outside of 3 sigma control limit 2 Seven out of seven are above or below center line 3 Seven points in a row increasing 4 Seven poin
280. es of the frequency bins for which you want to accumulate values The ParetoChart class auto scale a coordinate system creates the proper x and y axes and draws the resulting probability plot as a scatter plot ParetoChart InitParetoChart Method Initializes the x and y values of the data points plotted in the probability plot VB Public Sub InitParetoChart _ ByVal categoryitems As Double _ ByVal stringitems As Strinq _ public void InitParetoChart double categoryitems string stringitems Parameters categoryitems The values for each category in the Pareto chart stringitems The strings identifying each category in the Pareto chart You can add the category item values and string item strings one by one using the AddCategoryItem method ParetoChart AddCategoryltem Method Add an item to the categoryValues and categoryStrings arrays VB Public Sub AddCategoryItem _ ByVal itemfreq As Double _ ByVal itemstring As String _ public void AddCategoryItem double itemfreq string itemstring Frequency Histograms Pareto Diagrams Probability Charts 373 Parameters itemfreq The count of how many times this category has occurred itemstring The string identifying the category item Public Static Shared Properties DefaultAxisLabelsFont DefaultChartFontString DefaultFooterFont DefaultMainTitleFont DefaultSubHeadFont DefaultToolTipFont Public Instance Constructors P
281. esentation sdk Grid lt my2 SPCBatchAttributeControlChart Margin 18 11 16 6 Name spcChartl gt lt Grid gt lt UserControl gt Create a class to initialize the chart SimpleAttributeControlChart in our example C public class SimpleAttributeControlChart ChartCalendar startTime new ChartCalendar SPC attribute control chart type int charttype SPCControlChartData FRACTION DEFECTIVE PARTS CHART Number of samples per sub group int numsamplespersubgroup 50 Number of defect categories int numcategories 5 Number of datapoints in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 30 SPCTimeAttributeControlChart spcChart public SimpleAttributeControlChart SPCTimeAttributeControlChart tac SpcChart tac 312 SPC Attribute Control Charts Define and draw chart InitializeChart void InitializeChart Initialize the SPCBatchAttributeControlChart spcChart InitSPCBatchAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview VB Public Class SimpleAttributeControlChart Private startTime As New ChartCalendar SPC attribute control chart type Private charttype As Integer SPCControlChartData FRACTION DEFECTIVE PARTS CHART Number of samples per sub group Private numsamplespersubgroup As Integer 50 Number of defect categories Private numcateg
282. esents the overall class architecture of the SPC Control Chart Tools for Silverlight and summarizes all of the classes found in the software Chapter 4 summarizes the important QCChart2D classes that you must be familiar with in order to customize advanced features of the SPC Control Chart Tools for Silverlight software Chapter 5 describes the classes that hold SPC control chart data and control limit alarms Chapter 6 describes how the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes create common variable control charts X Bar R Median and Range X Bar Sigma X R EWMA MA and CuSum charts Chapter 7 describes how the SPCTimeAttributeControlChart and SPCBatchAttributeControlChart classes create common attribute control charts p np c and u charts Chapter 8 describes how to implement the named control rules WECO Nelson AIAG Juran Hughes Gitlow and Duncan control rules It also describes how to implement custom rules sets and how to define your own rules using our standardized templates Chapter 9 describes how the FrequencyHistogramChart ParetoChart and ProbabilityChart classes create ancillary SPC charts Chapter 10 describes how to print the SPC charts and save them to image files Chapter 11 describes how to regionalize the software for non USA English markets Chapter 12 is a tutorial that describes how to use SPC Control Chart Tools for Silverlight to create Windows applications using Visual Studi
283. evels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeAttributeControlCharts MultiControlLimitsChart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions SPC Attribute Control Charts 283 C initial limits replaced with auto calculated values double 11 0 hh 0 28 target 0 14 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed bool limitcheck false spoChart PrimaryChart Add3SigmaControlLimits target 11 hh limitcheck spcChart PrimaryChart ControlLimitLineFillMode true VB initial limits replaced with auto calculated values Dim 11 As Double 0 hh As Double 0 28 target As Double 0 14 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed Dim limitcheck As Boolean False spcChart PrimaryChart A
284. exponential gamma Weibull or discrete binomial Poisson hypergeometric distributions It is the job of the SPC engineer to know what distribution best models his process Periodically plotting of the variation of critical variables will give SPC engineer important information about the current state of the process A typical frequency histogram looks like Frequency Histograms Pareto Diagrams Probability Charts 351 Frequency Histogram Chart HA Formi Oj x Frequency Histogram of Selected Data Frequency 40 Measurements Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the secondary variable Range Sigma or Moving Range side by side with the SPC control chart makes it even easier to find out whether the variations are the result of natural variations or the result of some systemic change in the process 352 Frequency Histograms Pareto Diagrams Probability Charts XBar R Chart with Integral Frequency Histograms ams Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No Chart No Operator John Smith Machine 1 Time 10 28 10 43 10 58 11 13 11 28 11 43 11 58 12 13 12 28 12 43 12 58 13 13 13 28 13 43 13 58 14 13 Creating an Independent not part of a SPC chart Frequency Histogram The FrequencyHistogram Chart class creates a standalone frequency histogram It is a simple
285. extbook for various sample sizes By convention the quantity RBar d2 is used to estimate the process sigma for the Cp Cpl and Cpu calculations MINIMUM a function that returns the lesser of two arguments SQRT a function returning the square root of the argument Process Capability Ratios Cp Cpl Cpu Cpk and Cpm Cp Cpl Cpu Cpk Cpm where USL LSL 6 RBar d2 XDoubleBar LSL 3 RBar d2 USL XDoubleBar 3 RBar d2 MINIMUM Cpl Cpu Cp SORT 1 V2 V XDoubleBar Tau S Process Performance Indices Pp Ppl Ppu Ppk Pp Ppl USL LSL 6 S XDoubleBar LSL 3 S 174 SPC Variable Control Charts Ppu USL XDoubleBar 3 S Ppk MINIMUM Ppl Ppu The major difference between the Process Capability Ratios Cp Cpl Cpu Cpk and the Process Performance Indices Pp Ppl Ppu Ppk is the estimate used for the process sigma The Process Capability Ratios use the estimate RBar d2 and the Process Performance Indices uses the sample standard deviation S If the process is in control then Cp vs Pp and Cpk vs Ppk should returns approximately the same values since both RBar d2 and the sample sigma S will be good estimates of the overall process sigma If the process is NOT in control then ANSI American National Standards Institute recommends that the Process Performance Indices Pp Ppl Ppu Ppk be used Table Strings The inpu
286. ference in the default files generated by the VB project wizard versus the C project wizard In C whenever you create a new class the wizard adds a reference to the default name space which is almost always the name of the project You can always see the explicit reference to the name space But in Visual Basic the name space is implied along with the default selection of Import references If you add an explicit reference to a name space in a VB file it messes up the name spaces and you may not be able to properly access classes that yo create The XAML portion of the project looks like lt UserControl x Class SPCApplicationl MainPage xmlns http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml xmlns d http schemas microsoft com expression blend 2008 xmlns mc http schemas openxmlformats org markup compatibility 2006 mc Ignorable d Creating SPC Charts in Windows Applications 417 d DesignHeight 300 d DesignWidth 400 gt Grid x Name LayoutRoot Background White gt Grid UserControl The window does not yet have any content First define a default size for the window and add references to the QCChart2D and QCSPCChart namespaces In this case the namespaces are com quinncurtis chart2dsl and com quinncurtis spcchartsl and are located in the assemblies DLL with the names QCChart2DSL and QCSPCChartSL So replace the Title line the fo
287. for Silverlight uses Silverlight features including e Resolution independence Silverlight s emphasis on vector graphics means that programs can be more easily designed to be independent of the resolution of the output device e Arbitrary line thickness and line styles for all lines Gradients fill patterns and color transparency for solid objects Generalized geometry support used to create arbitrary shapes Printer and image output support Improved font support for a large number of fonts using a variety of font styles size and rotation attributes Imaging support for a large number of image formats e Advanced matrix support for handling 2D transformations SPC Control Chart Tools for Silverlight Dependencies The QCChart2D for Silverlight class library is self contained It uses only standard classes that ship with the Microsoft Net API The software uses the major Net WPF namespaces listed below Directory Structure of QCSPCChart for Silverlight The SPC Control Chart Tools for Silverlight class library uses the standard directory structure also used by the QCChart2D and QCRTGraphics software It adds the QCSPCChart directory structure under the Quinn Curtis DotNet folder For a list of the folders specific to QCChart2D see the manual for QCChart2D QCChart2DSLManual pdf Drive Introduction Quinn Curtis Root directory DotNet Quinn Curtis Net based products directory Docs Quinn Curtis Net related d
288. g the sample values in the table CalculatedItemTemplate NumericLabel The NumericLabel object used as a template for displaying calculated values in the table StringltemTemplate StringLabel The StringLabel object used as a template for displaying string values in the table NotesItemTemplate NotesLabel The NotesLabel object used as a template for displaying string values in the table The most common use for these templates is to set the color attributes of a class of objects or the decimal precision of a numeric string spcChart ChartTable SampleItemTemplate LineColor Colors Red Chart Position If the SPC chart does not include frequency histograms on the left they take up about 20 of the available chart width you can adjust the left and right edges of the chart using the GraphStartPosX and GraphStopPlotX properties to allow for more room in the display of the data This also affects the table layout because the table columns must line up with the chart data points Ci spcChart GraphStartPosX 0 1 start here spcChart GraphStopPosX 0 875 end here SPC Attribute Control Charts 281 VB spcChart GraphStartPosX 0 1 start here spcChart GraphStopPosX 0 875 end here There is not much flexibility positioning the top and bottom of the chart Depending on the table items enabled the table starts at the position defined by the TableStartPosY property and continues until all of the table items are displa
289. ge lt Bar Sigma MultiLimit X Bar R Dynamic X Bar Title Variable Control Chart XR Indivdual Range Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 13 22 13 37 13 52 14 07 14 22 14 37 14 52 15 07 15 22 15 37 15 52 16 07 16 22 16 37 16 52 17 07 17 22 COPY VALUE 32 6 28 1 37 1 329 34 1 310 29 7 319 274 37 1 336 36 3 36 7 339 35 0 393 384 UCLX 45 5 COPY VALUE ABS RANGE SPCTimeVariableControlChart A Variable Control Chart class that uses a TimeCoordinate system with a time based X Axis This class creates MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS EWMA CHART TABCUSUM MA CHART MAMR CHART and MAMS CHART chart types Typical SPCBatchCusumControlChart with alarm limits Class Architecture 53 Typical Batch Attribute Control Chart Fraction Defective or p Chart EBlFormi x Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 DW 9 PUS FRACT DEF SPCBatchAttributeControlChart A Batch Attribute Control Chart class that uses a CartesianCoordinate system with a numeric X Axis This class creates PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART SPC NUMBER DEFECTS PER MILLION CHART PERCENT DEFECTIVE PARTS CHART VSS F
290. gma control limit Four of five points is above 1 sigma control limit Four of five points is below 1 sigma control limit Eight points in a row increasing Eight points in a row decreasing Eight out of Eight are above center line Eight out of Eight are below center line Duncan Rules oY Ore AS One of one point is outside of 3 sigma control limit Two of three points above 2 sigma control limit Two of three points below 2 sigma control limit Four of five points is above 1 sigma control limit Four of five points is below 1 sigma control limit Seven points in a row increasing Seven points in a row decreasing Named and Custom Control Rule Sets 327 Control Rule Templates All of the named rules fall into one of our standard rule categories Each rule category is a flexible template which can be used to evaluate a test condition across a wide range of parameters A list of the template categories appears below Standardized Templates for Control Rule Evaluation Template Standard Control Limit tests 1 N of M above X sigma from center line used for UCL tests 2 N of M below X sigma from center line used for LCL tests 3 Reserved 4 N of M beyond X sigma from center line either side or control limits points beyond the limit values don t have to all be on one side Trending 5 N of M trending up increasing 6 N of M trending down decreasing 7 N of M trending up increasing or down decreasing Hugging la
291. gs spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING Use the AddAxisUserDefinedString method to supply a new string for every new sample subgroup It must be called every time the AddNewSampleRecord method is called or the user defined strings will get out of sync with their respective sample subgroup Reset 318 SPC Attribute Control Charts the axis labeling mode back to batch number labeling by assigning the XAxisStringLabelMode property to SPCChartObjects AXIS LABEL MODE DEFAULT spcChart ChartData AddNewSampleRecord batchCounter timestamp samples variableControlLimits Make a random string to simulate some sort of batch sample group ID int randomnum int 1000 ChartSupport GetRandomDouble String batchidstring EC randomnum ToString SpcChart ChartData AddAxisUserDefinedString batchidstring VB Add a new sample record spcChart ChartData AddNewSampleRecord batchnumber timestamp samples Dim randomnum As Integer CInt 1000 ChartSupport GetRandomDouble Dim batchidstring As String EC randomnum ToString spcChart ChartData AddAxisUserDefinedString batchidstring See the example program BatchAttributeControlCharts PercentDefectivePartsControlChart for a complete example Changing Default Characteristics of the Chart All Attribute Control Charts have one distinct graph with its own set of properties This graph is the Primary Chart YGrid Gra
292. h five items in the samples array C DoubleArray samples new DoubleArray 5 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples samples 2 0 322 Third of five samples samples 3 0 021 Fourth of five samples samples 4 0 133 Fifth of five samples Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples SPC Variable Control Charts 165 VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples samples 2 0 322 Third of five samples samples 3 0 021 Fourth of five samples samples 4 0 133 Fifth of five samples Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples In an Individual Range chart and EWMA and MA charts that uses rational subgroup sizes of 1 the samples array would only have one value for each update If the production level is sixty items per hour with 10096 sampling the graph would be updated once a minute with a single value in the samples array Updating MEAN SIGMA CHART VSS with
293. hared Fields SPC CUSTOM CALC Constant value for a custom SPC calculation unused SPC FRACTION DEFECTIVE PARTS CALC Constant value for a percent defective SPC FRACTION DEFECTS CALC SPC INDIVIDUAL ABS RANGE CALC SPC INDIVIDUAL COPY VALUE SPC INDIVIDUAL RANGE CALC parts SPC calculation Constant value for a fraction defects SPC calculation Constant value for a ABS individual range SPC calculation Constant value for INDIVIDUAL RANGE Constant value for a individual range SPC MAX CALC SPC MEAN CALC SPC MEAN N MINUS 1 CALC SPC MEDIAN CALC SPC MIN CALC SPC Control Data and Alarm Classes 145 SPC calculation Constant value for a maximum SPC calculation Constant value for a mean SPC calculation Constant value for a mean SPC calculation using N 1 rather than N Constant value for a median SPC calculation Constant value for a minimum SPC calculation SPC PERCENT DEFECTIVE PARTS CALC Constant value for a percent defective SPC PERCENT DEFECTS CALC SPC RANGE CALC SPC STD DEVIATION CALC SPC SUM CALC SPC TOTAL DEFECTIVE PARTS CALC SPC TOTAL DEFECTS CALC SPC VARIANCE CALC Public Static Shared Methods CalculateHistoryStatistic Public Instance Constructors SPCCalculatedValueRecord Public Instance Properties Calculated Value CalculatedValues CalculationType parts calculation Constant value for a percent defects SPC calculation Constant value for a range S
294. hart ChartData TheOperator B Cornwall SpcChart ChartData PartName Left Front Fender spcChart ChartData Operation Painting spcChart ChartData Machine 11 spcChart ChartData Gage spcChart ChartData UnitOfMeasure spcChart ChartData ZeroEquals E pin spcChart ChartData SpecificationLimits e iin C SpcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 The identifying string displayed in front of the input header string can be any string that you want including non English language string For example if you want the input header string for the Title to represent a project name Project Name Project XKYZ for PerQuet Set the properties SpcChart ChartData Title Project XKYZ for PerQuet spcChart ChartData TitleHeader Project Name VB SpcChart ChartData Title Project XKYZ for PerQuet spcChart ChartData TitleHeader Project Name Change other headers using the ChartData properties listed below TitleHeader GPartNumberHeader GChartNumberHeader PartNameHeader OperationHeader SPC Attribute Control Charts 273 SOperatorHeader GMachineHeader 5DateHeader 5SpecificationLimitsHeader SGageHeader SUnitOfMeasureHeader 5ZeroEqualsHeader GNotesHeader Even though the input header string properties have names like Title PartNumber ChartNumber etc t
295. hart plots data in a modified pie chart format known as a ring chartt It uses data organized as arrays of x and y values where an x value represents the numeric value of a ring segment and a y value specifies the offset or explosion of a ring segment with respect to the origin of the ring Simple Plot Classes SimplePlot SimpleBarPlot SimpleLineMarkerPlot SimpleLinePlot SimpleScatterPlot SimpleVeraPlot Simple plots use data organized as a simple array of xy points where there is one y for every x Simple plot types include line plots scatter plots bar graphs and line marker plots SimplePlot This class is an abstract base class for all simple plot classes QCChart2D Class Summary 89 Production of Green Bars is Up P 4 E A A a n A Uo Tp PLA 1998 1999 2000 2001 2002 2003 2004 2005 Bar plots can have the values of the bars displayed above or inside each bar This class is a concrete implementation of the SimplePlot class and displays data in a bar format Individual bars the maximum value of which corresponds to the y values of the dataset are justified with respect to the x values SimpleBarPlot History Test Results 100 parece eee ee IH Hh Hh IH HH HH HI HH III HI HII IIl 23 Y ir 90 nn D 2 4 5 a a A Bene i AE S E cL EE ES ti 5 15 20 0 5 10 Student Individual data points can be automatically labeled SimpleLineMarkerPlot This class is a concrete implementation of th
296. hartData SPCControlLimitRecord SPC LOWERTHAN LIMIT U O0T nOLI TEHOLIV SPCControlLimitRecord ucl3 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC_GREATERTHAN LIMIT O2021 UGE UELI 4 SpcChart PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart PrimaryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal VB Dim sigma2 As Double 2 0 Dim sigmal As Double 1 0 Create multiple limits For PrimaryChart Dim 1c12 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT D Lele LOLZW Dim ucl2 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT D 28 UCL2Z UELZ SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim 1c13 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT U 07 LOLI LOLI SPC Attribute Control Charts 285 Dim ucl3 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT D 21 UCL MELLT spcChart PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart Pri
297. hartObjects class They establish the default fonts for related chart objects and if you change them they need to be set before the first charts Init call Since these properties are static any changes to them will apply to the program as a whole not just the immediate class AxisLabelFont The font used to label the x and y axes AxisTitleFont The font used for the axes titles HeaderFont The font used for the chart title SubheadFont The font used for the chart subhead ToolTipFont The tool tip font AnnotationFont The annotation font ControlLimitLabelFont The font used to label the control limits SPC Variable Control Charts 181 Extracted from the example TimeVariableControlCharts DynamicXBarR Chart C SPCChartObjects AxisTitleFont new ChartFont Times 12 FontStyles Normal SPCChartObjects ControlLimitLabelFont new ChartFont Times 10 FontStyles Normal SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCChartObjects AxisTitleFont new ChartFont Times 12 FontStyles Normal SPCChartObjects ControlLimitLabelFont new ChartFont Times 10 FontStyles Normal spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes The chart class has a static property DefaultTableFont that sets the default font string Since the chart fonts all default to different sizes the defa
298. he same limits In general the limits of the coordinate system should be greater than or equal to the limits of the axes The coordinate system may have limits of 0 to 15 while you may want the axes to extend from 0 to 10 Widget Tolerances by Worker 7 600 1500 13 0K 60 4 gt s J A 4 d ad s 4 400 1000 12 0K 40 E 6 J d 4 J 200 500 11 0K 20 4 y E 1 4 2 4 J d c 0 0 10 0K 0 Event Partition Graphs can have an UNLIMITED number of x and y axes QCChart2D Class Summary 69 Axis This class is the abstract base class for the other axis classes It contains data and drawing routines common to all axis classes Linear Axes 100 0 00004 0 00002 0 00000 0 01 0 02 0 03 0 04 0 05 000002 50 50 0 00004 100 0 4 0 2 0 0 0 2 0 4 cotiiitiiitiirirtiii tis 0 10000 20000 30000 40000 10 131534 p ca E34 ag dg asa 80 80 2800 15 20 40 40 2400 25 0 UE CSA D E E D PORS RES E L B A E 0 2000 0 20 40 60 80 100 0 5 10 15 The positioning of axes is very flexible Axes can have an inverted scale LinearAxis This class implements a linear axis with major and minor tick marks placed at equally spaced intervals 70 QCChart2D Class Summary Logarithmic Axes 1000 50000 100 i 400 5000 Linear X Log X Log X 10 Log Y 200 Linear Y 500 Log Y 1 0 50 0 1 0 5 O 20 40 60 80 100 0 02 02 2 20 200 1 10 100 1000 40 Log X 20 Linear Y 0 02 0406 1 gt 4 6 10 p 40 60
299. he subgroup X Bar Sigma Chart Very similar to the X Bar R Chart the X Bar Sigma chart replaces the Range plot with a Sigma plot based on the standard deviation of the measured values within each subgroup This is a more accurate way of establishing control limits if the sample size of the subgroup is moderately large gt 10 Though computationally more complicated the use of a computer makes this a non issue 22 Standard SPC Control Charts Fixed sample size X Bar Sigma Control chart with header information Anix File Exit XBarR XBar Sigma Individual Range MuliiLimit Bar R Median Range Dynamic SPC Variable Control Limits Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 33 43 PM Time 17 33 17 48 18 03 18 18 18 33 18 48 19 03 19 18 19 33 19 48 20 03 20 18 20 33 20 48 21 03 21 18 21 33 MEAN 65 37 63 49 63 02 65 47 63 62 64 36 65 03 63 39 62 37 63 57 65 21 63 78 64 04 62 31 64 48 65 62 64 43 SIGMA 6 62 5 51 6 84 6 67 6 98 6 37 6 92 5 93 5 83 6 84 6 84 6 16 5 36 5 41 6 56 6 62 7 59 SUM 980 952 945 982 954 965 975 951 936 953 978 957 961 935 967 984 967 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 NOTES N N N N N N N N N N N N N N N N N Pod od UCL 68 8 BAR 64 1 CL 59 4 e AO NN 40 30 20 10 0 18 00 19 00 20 00 21 00 The X Bar Sigma chart can also be used
300. he font used for the main title Set Get the default font object used for the tooltip Frequency Histograms Pareto Diagrams Probability Charts 357 Public Instance Constructors FrequencyHistogramChart Public Instance Properties AutoNormalCurve BarAttrib BarDataValue BarFillColor BarLineColor BarLineWidth ChartOrientation CoordinateSystem Datatoolti Footer FrequencyHistogramPlot FrequencyLimits Frequency Values GraphBackground GraphBorder HistogramDataset MainTitle PlotBackground ResetOnDraw SubHead XAxis XAxisLab XAxisTitle XGrid YAxis YAxisLab Overloaded Initializes a new instance of the FrequencyHistogramChart class Set to true and a normal curve with the same area as the histogram is plotted in the chart Get the primary bar attribute object for the bars of the histogram Get the numeric label template object used to place numeric values on the bars Sets the fill color for the chart object Sets the line color for the chart object Sets the line width for the chart object Get Set the orientation of the histogram bars in the chart Get the coordinate system object for the histogram Get the data tooltip object for the chart Get the footer object for the chart Get the histogram plot object Get the DoubleArray object that holds the limit values for the frequency bins of the histogram Get the DoubleArray object that holds the values that are counted with respec
301. hich by definition samples 100 of the production level the samples array would only have one value for each update If the production level is sixty items per hour with 10096 sampling the graph would be updated once a minute with a single value in the samples array Adding New Sample Records to a X Bar Sigma Chart Variable Subgroup Sample Size Applies to variable control charts of type MEAN SIGMA CHART VSS The X Bar Sigma chart also comes in a version where variable sample sizes are permitted As in the standard variable control charts there is one value in the samples array for each measurement sample in the sample subgroup interval The difference is that the length of the samples array can change from update to update It is critically import that the size of the samples array exactly matches the number of samples in the current subgroup C GetCurrentSampleSubgroupSize is a fictional method that gets the current number of samples in the sample subgroup The value of N can vary from sample interval to sample interval You must have a valid sample value for each element N GetCurrentSampleSubgroupSize Size array exactly to a length of N DoubleArray samples new DoubleArray N ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array You must have a valid sample value for each element of the array size 0 N 1 samples 0
302. high low close values for a given point in a chart ChartZoom This class implements mouse controlled zooming for one or more simultaneous axes The user starts zooming by holding down a mouse button with the mouse cursor in the plot area of a graph The mouse is dragged and then released The rectangle established by mouse start and stop points defines the new zoomed scale of the associated axes Zooming has many different modes Some of the combinations are 96 OCChart2D Class Summary 8 MagniView MoveCoordinates MultiMouseListener One x or one y axis One x and one y axes One x and multiple y axes One y and multiple x axes Multiple x and y axes This class implements mouse controlled magnification for one or more simultaneous axes This class implements a chart magnify class based on the MouseListener class It uses two charts the source chart and the target chart The source chart displays the chart in its unmagnified state The target chart displays the chart in the magnified state The mouse positions a MagniView rectangle within the source chart and the target chart is re scaled and redrawn to match the extents of the MagniView rectangle from the source chart This class extends the MouseListener class and it can move the coordinate system of the underlying chart analogous to moving chaging the coordinates of an internet map by grabbing it with the mouse and dragging it This class is used by the ChartV
303. his chart Set to true to enable the drawing of the frequency histogram attached to the chart Get a reference to the optional frequency histogram attached to the chart Get a reference to the charts graph background object Set Get increment between adjacent samples of Batch type charts that use a numeric x scale Set Get the starting numeric value of the x scale for Batch type charts that use a numeric x scale Set Get the ending numeric value of the x scale for Batch type charts that use a numeric x scale Get a reference to the charts header Set Get the font used for the chart title Set Get the left edge using normalized coordinates of the frequency histogram plotting area Set Get the offset of the histogram with respect to the GraphStartPosX position using normalized coordinates of the frequency histogram plotting area Set Get the maximum value used to scale the y axis of the chart Set Get the minimum value used to scale the ParentSPCChartBase PlotBackground PlotMeasurement Values PPhysTransforml Process VariableData SampledDataData SubHead SubheadFont TableFont TextTemplate TimelncrementMinutes Tool TipFont Tool TipSymbol XAxis XAxisLab XGrid XValueTemplate YAxisl YAxis2 Y AxisLab Y AxisTitle Y Grid Y ValueTemplate SPC Attribute Control Charts 321 y axis of the chart Set Get that parent SPCChartBase object Get a reference to the charts plot background object Set
304. hod initializes the most important values in the creation of a SPC chart Returns true if the coordinate system has a 164 SPC Variable Control Charts time based x axis The coordinate system of the chart MakeControlLinePlot Draw a control line either a simple straight line or a variable control line for the specified chart RebuildChartUsingCurrentData Rebuild the graph taking into account the most recent data values RescaleGraphsToScrollbar Rescale primary and secondary charts based on the position of the value of the scroll bar The thumb position of the scroll bar ResetSPCChartData Reset the history buffers of all of the SPC data objects UpdateControlLimitLabel Creates a numeric label of the control limit and adds the numeric label to the spe chart UseNoTable Specifies to create the primary and secondary charts without a table Just the charts chart title and optional histograms Adding New Sample Records for Variable Control Charts In variable control charts each data value in the samples array represents a specific sample in the sample subgroup In X Bar R X Bar Sigma and Median Range charts where the sample subgroup size is some fraction of the total production level there is one value in the samples array for each measurement sample in the sample subgroup interval If the production level is sixty items per hour and the sample size is five items per hour then the graph would be updated once an hour wit
305. hose names are arbitrary They are really just placeholders for the strings that are placed at the respective position in the table You can display any combination of strings that you want rather than the ones we have selected by default based on commonly used standardized SPC Control Charts Depending on the control chart type you may want to customize the category header strings In most of our examples we use the category header strings Scratch Burr Dent Seam and Other to represent common defect categories You can change these strings to anything that you want using the ChartData SetSampleRowHeaderString method See the example program TimeAttributeControlCharts NumberDefectsControlChart Title Number Defective per Unit u Chart Part Operator S Kafka Mac Time 12 01 12 31 13 01 13 31 14 01 14 31 Burr 3 2 1 0 3 2 Seam 3 1 2 2 4 2 C Set the table row headers strings for defect categories spcChart ChartData SetSampleRowHeaderString 0 Scratch spcChart ChartData SetSampleRowHeaderString 1 Burr spcChart ChartData SetSampleRowHeaderString 2 Dent spcChart ChartData SetSampleRowHeaderString 3 Seam spcChart ChartData SetSampleRowHeaderString 4 Other VB Set the table row headers strings for defect categories SpcChart ChartData SetSampleRowHeaderString 0 Scratch spcChart ChartData SetSampleRowHeaderString 1 Burr SpcChart ChartData SetSampleRowHeaderString 2 Dent 274 SPC Attribut
306. iableControlChart ucc public MainPage InitializeComponent ucc new TimeVariableControlChart spcChartl spcChartl PreferredSize new Size 800 600 414 Creating SPC Charts in Windows Applications The reference to PreferredSize tells the software that the font sizes specified in the graph are with respect to a chart window of size 600 400 If the chart is sized larger than this the fonts will be larger if it is sized smaller the fonts will be smaller Build the Solution Build Build Solution If the project fails to compile you need to go back and check the errors and the previous steps When it runs properly it the TimeVariableControlChart chart looks like SPCApplicationt Windows Internet Explorer E F Quinn Curtis DotNet QCsPCChart visual CSharplexamples sISPCApplication1 SPCApplication 1 Bin Debug SPCApplication1 TestPage html sss x 8 File Edt View Favorites Tools Help oi Favorites 3 E Free Hotmal f sPCApplicationt 0 00 0 15 0 30 0 45 1 00 115 130 145 2 00 2 15 2 30 2 45 3 00 3 15 3 30 3 45 4 00 4 15 4 RANGE NO INSP There are other ways to incorporate charts into your application You can add a UserControl to your program Add UserControl and place the chart entirely in the UserControl The SPC chart object SPCTimeVariableControlChart in this case is referenced in the Grid panel of the UserControl s xaml file and initialized in the U
307. ializeComponent ucc New TimeVariableControlChart spcChart1 spcChartl PreferredSize New Size 800 600 End Sub End Class End Namespace The reference to PreferredSize tells the software that the font sizes specified in the graph are with respect to a chart window of size 600 400 If the chart is sized larger than this the fonts will be larger if it is sized smaller the fonts will be smaller Build the Solution Build Build Solution If the project fails to compile you need to go back and check the errors and the previous steps When it runs properly it the TimeVariableControlChart chart looks like 426 Creating SPC Charts in Windows Applications F Quinn Curtis_WPF3_Cleaned WotNet QCSPCChartWisual CSharplexamples wpf W pfSPCBrowserApplicat Windows Internet Exp DER 8 F Quinn Curtis_WPF3_Cleaned DotNet QCSPCChart visual CSharp examples wpfiWpfSE Y X lol Fie Edit View GoTo Favorites Help jy Favorites 5 E Free Hotmail A E wpfsPCErowserApplicationt xbap tz E 3 geh Page gt Safety Tools e Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 0 00 0 15 0 30 045 1 00 1 15 1 30 1 45 2 00 2 15 2 30 245 3 00 3 15 3 30 3 45 4 00 415 4 30 Sample 1 303 315 317 296 272 319 268 304 303 337 312 298 295 335 328 301 336 278 313 Sample 3 304 305 296 276 269 336 288 287 328 319 324 303 289 279 269 307 278 310 318 NO INSP UCL S3 33 17 XBAR 30 11
308. iew class to support multiple mouse listeners at the same time File and Printer Rendering Classes ChartPrint BufferedImage ChartPrint BufferedImage This class implements printing using the Silverlight System Windows Printing PrintDocument print related services It can select setup and output a chart to a printer Printing from a Silverlight application running in a web browser requires special security considerations In general it can only be initiated by the user not the program This class will convert a ChartView object to a System Windows Media Imaging WriteableBitmap QCChart2D Class Summary 97 object Silverlight does not yet have any image transformation encoders as do regular Net and WPF a bizarre omission So you can t easily transform your WriteableBitmap to a JPEG TIFF GIF or BMP file Instead you must use encoders available from a third party Imagetools for example to save a WriteableBitmap image to a file There are special security issues associated with saving files to the computer when running an Internet application Though it is possible to save files to isolated storage a web server via a web service or to the users own machine Miscellaneous Utility Classes ChartCalendar ChartFont ChartColor CSV Dimension Point2D GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D ChartCalendar ChartFont ChartColor CSV This c
309. ification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeAttributeControlCharts MultiControlLimitsChart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C initial limits replaced with auto calculated values double 11 10 hh 30 target 20 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed bool limitcheck false SpcChart PrimaryChart Add3SigmaControlLimits target 11 hh limitcheck spcChart PrimaryChart ControlLimitLineFillMode true VB 294 SPC Attribute Control Charts initial limits replaced with auto calculated values Dim 11 As Double 10 hh 30 target 20 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed Dim limitcheck As Boolean False SpcChart PrimaryChart Add3SigmaControlLimits target 11 hh limitcheck
310. ilverlight Windows Silverlight Class Library Visual C Web Office Silverlight Business Application Visual C Cloud Reporting Silverlight Navigation Application Visual C SharePoint Silverlight WCF RIA Services Class Library Visual C Test WCF Workflow Visual C Visual F Other Project Types Database Test Projects Online Templates Name SPChpplicationt Location F Quinn Curtis DotNet QCsPCChart visual CSharplexamples sli Solution name SPCApplicationi v Create directory For solution Add to source control After you press OK you will see the following dialog 404 Creating SPC Charts in Windows Applications New Silverlight Application Click the checkbox below to host this Silverlight application in a Web site Otherwise a test page will be generated during build C Host the Silverlight application in a new Web site New Web project name New Web project type Options Silverlight Version ETT y Uncheck the Host the Silverlight application in a new web site for the purpose of this example Under Options you can select Silverlight Version 4 of Version 5 The XAML portion of the project looks like lt UserControl x Class SPCApplicationl MainPage xmlns http schemas microsoft com winfx 2006 xaml presentation xmlns x http schemas microsoft com winfx 2006 xaml xmlns d http schemas microsoft com expression blend 2008 xmlns mc http
311. im fileext As String JPG Dim imageencoder As IImageEncoder If fileext BMP Then imageencoder New BmpEncoder ElseIf fileext JPG OrElse fileext JPEG Then imageencoder New JpegEncoder ElseIf fileext PNG Then imageencoder New PngEncoder Else imageencoder New JpegEncoder End If Dim bufimage As New BufferedImage spcChartl Dim wbitmapimage As WriteableBitmap bufimage GetRenderedBitmap Dim exImage As ExtendedImage ImageExtensions ToImage wbitmapimage Using store IsolatedStorageFile GetUserStoreForApplication Create a directory at the root of the store If Not store DirectoryExists Images Then store CreateDirectory Images End If Get the stream of an existing file or create a file and get its stream Using isoStream store OpenFile Images amp filename FileMode OpenOrCreate imageencoder Encode exImage isoStream isoStream Close End Using End Using End If 386 File and Printer Rendering End Sub Private Sub buttonl Click l sender As Object e As RoutedEventArgs PrintGraph sender e End Sub Private Sub button2 Click sender As Object e As RoutedEventArgs SaveAsFile sender e End Sub End Class If you want to print multiple charts laid out in some sort of WPF Panel Grid WrapPanel DockPanel UniformGrid or StackPanel pass in the parent Panel a Grid instance variable most likely grid1 object to the ChartP
312. in the call to InitSPCTimeAttributeControlChart and set the charts ChartData SampleSubgroupSize VSS property with this value immediately prior to the AddNewSampleRecord call spcChart ChartData SampleSubgroupSize VSS numsamplespersubgroup 25 ChartSupport GetRandomDouble Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples 124 SPC Control Data and Alarm Classes Updating c and u charts Fixed Sample Subgroup Size c chart NUMBER DEFECTS CHART u chart NUMBER DEFECTS PERUNIT CHART In c and u charts the number of defective parts is of no consequence The only thing tracked is the number of defects Therefore there is no extra array element tacked onto the end of the samples array Each element of the samples array represents the total number of defects for a given defect category If the numcategories parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart is initialized to five the total number of elements in the samples array should be five For example C DoubleArray samples new DoubleArray 5 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number
313. in the display of the data This also affects the table layout because the table columns must line up with the chart data points C spcChart GraphStartPosx 0 1 start here spcChart GraphStopPosX 0 875 end here VB spcChart GraphStartPosX 0 1 start here spcChart GraphStopPosX 0 875 end here There is not much flexibility positioning the top and bottom of the chart Depending on the table items enabled the table starts at the position defined the TableStartPosY property and continues until all of the table items are displayed It then offsets the top of the primary chart with respect to the bottom of the table by the value of the property GraphTopTableOffset The top of the secondary chart offsets from the bottom of the primary chart by the amount of the property InterGraphMargin The value of the property GraphBottomPos defines the bottom of the graph The default values for these properties are Ci spcChart TableStartPosY 0 00 186 SPC Variable Control Charts spcChart GraphTopTableOffset 0 02 spcChart InterGraphMargin 0 075 spcChart GraphBottomPos 0 925 VB SpcChart TableStartPosY 0 00 spcChart GraphTopTableOffset 0 02 spcChart InterGraphMargin 0 075 spcChart GraphBottomPos 0 925 The picture below uses different values for these properties in order to emphasize the affect that these properties have on the resulting chart JM Form1 iB x TableStartPosY 0 1 7
314. ined PRT RECT Print the view to the specified rectangle specified using the SetPrintRect method and normalized coordinates Regardless of the print rectangle the aspect ratio of the chart is maintained Call the ChartPrint DoPrintPage method after creating the ChartPrint object That will invoke the Printer dialog then print the page There is no way with Silverlight to have a program automatically print without showing the Printer dialog Also there is no way to print more than one page at a time Using All of the Paper When Printing The PRT MAX mode prints the chart as large as possible while maintaining the same aspect ratio as the original ChartView If the width is the limiting factor the bottom of the printed page will always be blank The same is true of the PRT RECT mode While the PRT RECT mode can control the size and position of the chart on the printed page it cannot change the aspect ratio of the chart The only way to fill the printed page in portrait or landscape mode is establish the screen ChartView size with the same aspect ratio as the 8 1 2 x 11 printed page printable area about 6 5 x 9 assuming the 1 inch default margins Assuming portrait mode a ChartView sized to 650W x 900H will fill the page as will other ChartView sizes with the same proportions 500W x 692H 400W x 554H 300W x 415 etc If you are printing in landscape mode then the chart width and height values would be swapped ChartPrint example ex
315. ing them to close the loop as quickly as possible correcting potential problems in the process before it goes out of control Just as important SPC charts tell the operator when to leave the process alone Trying to micro adjust a process when the process is just exhibiting normal random fluctuations in quality will often drive the process out of control faster than leaving it alone The modern tendency is to automate as much of the SPC chart creation process as possible Electronic measuring devices can often measure quality in real time as items are coming off the line Usually some form of sampling will be used where one of every N items is measured The sampled values form the raw the data used in the SPC chart making process The values can be entered by hand into a SPC chart making program or they can be entered directly from a file or database connection removing the potential for transcription errors The program displays the sampled data in a SPC chart and table where the operator or quality engineer can make a judgment about whether or not the process is operating in or out of control Usually the SPC engineer tasked with automating an existing SPC charting application has to make a decision about the amount of programming he wants to do Does he purchase an application package that implements standard SPC charts and then go about defining the charts using some sort of menu driven interface or wizard This is probably the most expensi
316. inncurtis chart2dsl MouseListener NotesToolTip com quinncurtis chart2dsl DataToolTip SPCDataToolTip QCSPCChart Classes SPCControlChartData SPCControlLimitAlarmArgs SPCControlLimitRecord SPCCalculatedValueRecrod SPCProcessCapabilityRecord SPCSampledValueRecord SPCControlParameters SPCGeneralizedTableDisplay SPCControlPlotObjects SPCChartObjects SPC Control Chart Data 50 Class Architecture SPCControlChartData SPC control chart data is stored in the SPCControlChartData class It holds the header information used to customize the chart table the raw sample data used to prepare the chart the calculated chart values used in the chart and the SPC control limits It contains array lists of SPCSampledValueRecord SPCControlLimitRecord and SPCCalculatedValueRecord objects SPCSampledValueRecord This class encapsulates a sample data value It includes a description for the item the current value of the sampled value and a history of previous values SPCControlLimitRecord This class holds information specific to a SPC control limit including the current value of the control limit a history of control limit values description and the hysteresis value for alarm checking SPCCalculatedValueRecord The record class for a calculated SPC statistic It holds the calculated value type mean median sum variance standard deviation etc value description and historical data SPCProcessCapabilityRecord The record cla
317. is possible that a time period has WE1 WE2 WE3 and WE4 alarms set the SPCControlChartData property to SPCControlChartData REPORT ALL ALARMS spcChart ChartData AlarmReportMode SPCControlChartData REPORT ALL ALARMS The resulting X Bar R SPC Chart with WE Runtime Rules looks something like this In this example the WR Rules violations are processed by the SPCControlLimitAlarm method where the alarm condition is added to the Notes record for the appropriate sample interval The Y in the Notes line indicates that an alarm record has been saved for that time interval and you can click on the Y to see the note describing the alarm condition SPC Variable Control Charts 219 XBar A x82 Sigma Individual Range Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 16 15 16 30 16 45 17 00 17 15 17 30 17 45 18 00 18 15 18 30 18 45 19 00 19 15 19 30 19 45 20 00 20 15 NOTES 30 20 10 0 RANGE 17 00 18 00 19 00 20 00 Specification Limits Specification limits are not to be confused with the SPC Control Limits discussed in the previous sections Specification limits are imposed externally and are not calculated based on the manufacturing process under control They represent the maximum deviation allowable for the process variable being measured They are calculated based on input from customers and or e
318. is a concrete implementation of the AutoScale class It calculates scaling values based on the numeric values in SimpleDataset and GroupDataset objects Linear scales and axes use it for auto scale calculations LogAutoScale This class is a concrete implementation of the AutoScale class It calculates scaling values based on the numeric QCChart2D Class Summary 67 values in SimpleDataset and GroupDataset objects Logarithmic scales and axes use it for auto scale calculations TimeAutoScale This class is a concrete implementation of the AutoScale class It calculates scaling values based on the ChartCalendar values in TimeSimpleDataset and TimeGroupDataset objects Date time scales and axes use it for auto scale calculations ElapsedTimeAutoScale This class is a concrete implementation of the AutoScale class It calculates scaling values based on the numeric values in ElapsedTimeSimpleDataset and ElapsedTimeGroupDataset objects The elapsed time classes use it for auto scale calculations Chart Object Classes Chart objects are graph objects that can be rendered in the current graph window This is in comparison to other classes that are purely calculation classes such as the coordinate conversion classes All chart objects have certain information in common This includes instances of ChartAttribute and PhysicalCoordinates classes The ChartAttribute class contains basic color line style and gradient information for the object while
319. it TET TET inal JFMAMJJASOND JFMAMJJSASONDJFMAMJJASOND J 2000 2001 2002 2003 Month Ir s abe eor de ule ue eile Ld sl Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep 2004 2003 Day 5 Day Week f T T T T T T T F T M 13 03 T T T T T T T 1 T wo T T Day 7 Day Week T T T T T T Wed Thu Fi Sat Sun Mon 4 05 03 Tue Wed Thu Fri T T T T T T T l Sat Sun Mon Tue Wed Thu 42 03 There are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years Date Axes Day 4 Hour 8 HourHour AA 110103 10203 1103 09 10403 000 s00 1600 000 8 00 10109 1102003 4 HourHour Hours Minute morea Hirti i e 000 400 s00 1200 16 00 0 00 4 00 2 00 3 00 400 1001009 10109 Hous Minute 15 Minute Minute mmy Erri reer 0 00 1 00 2 00 3 00 0 00 0 15 0 30 0 25 4 00 101003 10109 5 Minute Minute Minute 15 Seconds AAA O a O00 005 040 045 020 025 00000 00100 00200 00300 00400 1101003 110103 Minute Second 0 00 00 0 01 00 0 02 00 0 03 00 41 0103 5 Second Second OS O OS SU 0 0000 0 00 05 0 00 10 0 00 18 0 00 20 4 04 03 There are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years Time Date Axes with Custom Hour Range 8 30 AM to 4 00 PM Dayf2 Hour 4 HouriHour TIERE Kg ERI FE EE HRS UA EA T TT E a 4 01 03 4 02 03 1 03 03 1109003 830 12 00 8 30 12 00 101103 1020
320. itV alue 74 SpcChart PrimaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT LimitV alue 76 SpcChart PrimaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET LimitValue 75 Dim 1c12 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC_LOWERTHAN LIMIT 74 23 LOL LCD Dim ucl2 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT J5 bb UCBZ UCLZ SpcChart PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim 1c13 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 56 LELI LCLI Dim ucl3 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT Ti UCLI UCLI SpcChart PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart PrimaryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal SpcChart SecondaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT Limi tValue 2 SpcChart SecondaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT Limi tValue 0 spcChart SecondaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET Lim
321. itValu e 1 212 SPC Variable Control Charts Dim 1c14 As New SPCControlLimit SPCControlLimitRecord SPC LOWERTHAN LIMIT Dim ucl4 As New SPCControlLimit SPCControlLimitRecord SPC GREAT spcChart SecondaryChart AddAddi Record spcChart ChartData D 33 LOLRZ LOLR2S Record spcChart ChartData ERTHAN LIMIT 1 66 UCLR2 UCLR2 tionalControlLimit 1c14 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 spcChart SecondaryChart AddAddi tionalControlLimit ucl4 SPCChartObjects S8PC UPPER CONTROL LIMIT 2 sigma2 Dim 1c15 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 66 LCLR1 LCLR1 Dim ucl5 As New SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 1 33 UCLRI UCLRI spcChart SecondaryChart AddAdditionalControlLimit 1c15 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal spcChart SecondaryChart AddAdditionalControlLimit ucl5 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal spcChart PrimaryChart ControlLimitLineFillMode True spcChart SecondaryChart ControlLimitLineFillMode True Special Note When you create a SPCControlLimitRecord object you can specify an actual limit level If you do not call the charts AutoCalculateControlLimits method the control limit will be displayed at that value If you do call AutoCalculateControlLimits method the auto calculated value overrides the initia
322. ith 112 SPC Control Data and Alarm Classes GetHashCode inherited from Object GetNotesString GetNumberOfSamplesPerSubgroup GetPrimaryControlLimits GetSampledValue GetSampleRowHeaderString GetSecondaryControlLimits GetThisChartOb jID inherited from ChartObj GetTimeValue GetType inherited from Object GetY AxisTitle IsControlLimit OutputAllValuesToDataLog ReadAllValuesFromFile variable control limits at a specific row index and column time Serves as a hash function for a particular type suitable for use in hashing algorithms and data structures like a hash table Get the notes string at the specified index Get the number of samples per subgroup value at the specified index Overloaded Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Get a sampled value at a specific row index and column time Get data table row header for the sampled or category item Overloaded Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Returns the chartObjID value for this specific object Get the time stamp value at the specified index Gets the Type of the current instance Get the y axis title or a specific index based description of the item in the SPCCalculatedValueRe
323. itle Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator S Kafka Machine Date 12 21 2005 3 01 47 PM Time 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 21 01 21 31 22 01 22 31 23 01 Scratch 1 4 0 0 0 0 1 0 1 0 0 2 1 0 1 2 3 Burr 2 3 0 0 0 0 4 0 1 1 0 3 2 0 0 4 5 Dent 4 5 0 3 1 0 0 0 1 1 0 4 2 1 1 0 4 Seam 4 5 0 2 1 0 2 0 1 1 0 1 2 1 1 0 2 Other 1 1 1 2 1 0 5 1 1 1 1 1 0 0 2 4 2 NO DEFECTIVE 12 12 1 6 3 0 12 1 2 4 1 9 6 2 4 10 11 96 DEF 240 240 20 120 60 00 240 20 40 80 20 180 120 40 80 200 220 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND Title Variable Control Chart X Bar amp R i Part No 283501 Chart No 17 i Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 4 15 2008 4 53 41 PM TIME 16 53 17 08 17 23 17 38 17 53 18 08 18 23 18 38 18 53 19 08 19 23 19 38 19 53 20 08 20 23 20 38 20 53 MEAN 29 7 30 6 31 5 30 3 31 1 28 6 28 8 29 4 28 9 31 0 29 0 28 1 32 8 30 2 29 5 30 3 32 5 RANGE 10 8 11 4 7 2 10 1 11 4 10 0 99 76 115 9 7 113 108 9 5 118 126 9 6 85 SUM
324. its or AutoCalculateSecondaryControlLimits method Need to exclude records from the control limit calculation Call the ChartData ExcludeRecordFromControlLimitCalculations method passing in true to exclude the record C for int 1 0 1 lt 107 itt spcChart ChartData ExcludeRecordFromControlLimitCalculations i true VB SPC Variable Control Charts 191 Dim i As Integer For i 0 To 9 spcChart ChartData ExcludeRecordFromControlLimitCalculations i True Next i Formulas Used in Calculating Control Limits for Variable Control Charts The SPC control limit formulas used by AutoCalculateControlLimits in the software derive from the following sources X Bar R X Bar Sigma EWMA MA and CuSum Introduction to Statistical Quality Control by Douglas C Montgomery John Wiley and Sons Inc 2001 Median Range Individual Range SPC Simplified Practical Steps to Quality by Robert T Amsden Productivity Inc 1998 SPC Control Chart Nomenclature UCL Upper Control Limit LCL Lower Control Limit Center line The target value for the process X X double bar Mean of sample subgroup means also called the grand average R R bar Mean of sample subgroup ranges R R Median Median of sample subgroup ranges S Sigma sample standard deviation S Sigma bar Average of sample subgroup sigma s M sample Median M Median of sample subgroup medians X Bar R Chart Also known
325. k this data against rules SimulateData 100 23 private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e SPC Variable Control Charts 217 SPCControlLimitRecord alarm e EventAlarm double alarmlimitvalue alarm ControlLimitValue String alarmlimitvaluestring alarmlimitvalue ToString SPCControlChartData spcData alarm SPCProcessVar SPCCalculatedValueRecord spcSource e SPCSource String calculatedvaluestring spcSource CalculatedValue ToString n tring message alarm AlarmMessage ChartCalendar timestamp spcData TimeStamp String timestampstring timestamp ToString String notesstring An timestampstring message An alarmlimitvaluestring Current Value calculatedvaluestring if alarm AlarmState ff Console Out WriteLine notesstring spcChart ChartData AppendNotesString notesstring true VB AddHandler spcChart ChartData AlarmStateEventHandler AddressOf epcoChart SPOControlLimitalatm don t generate alarms in initial data simulation SpcChart ChartData AlarmStateEventEnable False spcChart PrimaryChart UseWERuntimeRules SimulateData Calculate the SPC control limits for the X Bar part of the current SPC chart X Bar R SpcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to dis
326. l value 0 0 in the examples above When you call the charts AddAdditionalControlLimits method you specify the sigma level that is used by the AutoCalculateControlLimits to calculate the control limit level If you want the control limits displayed as filled areas set the charts ControlLimitLineFillMode property True C spcChart PrimaryChart ControlLimitLineFillMode true This will fill each control limit line from the limit line to the target value of the chart In order for the fill to work properly you must set this property after you define all additional control limits In order for the algorithm to work you must add the outer most control limits SPC UPPER CONTROL LIMIT 3 and SPC LOWER CONTROL LIMIT 3 first followed by the next outer most limits SPC UPPER CONTROL LIMIT 2 and SPC LOWER CONTROL LIMIT 2 followed by the inner most control limits SPC UPPER CONTROL LIMIT 1 and SPC LOWER CONTROL LIMIT 1 This way the fill of the inner limits will partially cover the fill of the outer limits creating the familiar striped look you want to see SPC Variable Control Charts 213 Target 64 05 LCL S3 59 29 50 40 30 20 10 0 17 00 18 00 19 00 20 00 UCL 9 50 LCL 2 59 If you are using Western Electric Runtime Rules call it after you call UseWERuntimeRules See the example program WERulesVariableControlCharts XBarSigmaChart VB spcChart PrimaryChart UseWERuntimeRules SpcChart PrimaryChart Contr
327. lass contains utility routines used to process ChartCalendar date objects This class encapsulates Font properties into a class similar to the Net Font class This class includes a list of named colors which are accessed as static constants ChartColor AliceBlue for example This is a utility class for reading and writing CSV Comma Separated Values files 98 OCChart2D Class Summary Dimension Point2D GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D This is a utility class for handling dimension height and width information using doubles rather than the integers used by the Size class This class encapsulates an xy pair of values as doubles more useful in this software than the Net Point and PointF classes This class encapsulates an x value and an array of y values representing the x and y values of one column of a group data set This class is used as an alternative to the standard Net Array class adding routines for resizing of the array and the insertion and deletion of double based data elements This class is used as an alternative to the standard Net 2D Array class adding routines for resizing of the array and the insertion and deletion of double based data elements This class is used as an alternative to the standard Net Array class adding routines for resizing of the array and the insertion and deletion of bool
328. le 390 Regionalization 11 Regionalization for non USA English Markets SPCChartStrings Starting with Revision 3 0 we provide a much improved structure for adjusting the software for different cultures and languages All of the pre defined strings in the software have been moved to the static class SPCChartStrings which can be modified at run time or if you have the source code at compile time You can create multiple sets of strings one for each unique region you sell to and initialize the software to that set at run time While something similar is often done using resource files in the final WPF application program it was not possible to add a user customizable resource file to a pre compiled library like our QCSPCChartSL dll Apart from the strings there are a couple other areas which benefit from regionalization First is the use of the comma in some locales as the decimal separator in place of the period Our software uses the standard numeric conversion routines found in Net for converting numeric values to strings and these automatically take into account the proper format for the region recognized by the computer So you shouldn t have to do anything there Also date time values are subject to regional differences specifically the order of the month day year in short form strings of the form 10 1 2011 M dd yyyy US English format compared to 1 10 2011 dd M yyyy European format There
329. le Variable Control Chart EWMA Part No 283501 Chart No 17 Date 3 4 2008 3 36 58 PM EWMA Chart MA Chart CUSum Chart CuSum Chart Tabular one sided upper and lower cumulative sum The CuSum chart is a specialized control chart which like the EWMA and MA charts is considered to be more efficient that the Shewhart charts at detecting small shifts in the process mean particularly if the mean shift is less than 2 sigma There are several types of CuSum charts but the easiest to use and the most accurate 1s considered the tabular CuSum chart and that is the one implemented in this software The tabular cusum works by accumulating deviations that are above the process mean in one statistic C and accumulating deviations below the process mean in a second statistic C If either statistic C or C falls outside of the calculated limits the process is considered out of control Measured Data and Calculated Value Tables Standard worksheets used to gather and plot SPC data consist of three main parts The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important information specific to the chart Standard SPC Control Charts 29 The second part is the measurement data recording and calculation section organized as a table recording the sampled and calculated data in a neat readable fashion The third part
330. le alarmlimitvalue alarm ControlLimitValue String alarmlimitvaluestring alarmlimitvalue ToString SPCControlChartData spcData alarm SPCProcessVar SPCCalculatedValueRecord spcSource e SPCSource String calculatedvaluestring spcSource CalculatedValue ToString String message alarm AlarmMessage ChartCalendar timestamp spcData TimeStamp String timestampstring timestamp ToString if alarm AlarmState Console Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring VB Public Sub InitializeChart Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes SPC Control Data and Alarm Classes 139 AddHandler spcChart ChartData AlarmStateEventHandler AddressOf spcChart SPCControlLimitAlarm don t generate alarms in initial data simulation spcChart ChartData AlarmStateEventEnable False SimulateData SpcChart RebuildChartUsingCurrentData End Sub InitializeChart Private Sub SPCControlLimitAlarm ByVal sender As Object ByVal e As SPCControlLimitAlarmArgs Dim alarm As SPCControlLimitRecord e EventAlarm Dim alarmlimitvalue As Double alarm ControlLimitValue Dim alarmlimitvaluestring As String alarmlimitvalue ToString Dim spcData As SPCControlChartData alarm SPCProcessVar Dim spcSource As SPCCalculate
331. le control charts and attribute control charts share the same ChartData AddNewSampleRecord methods the meaning of the data in the samples array varies depending on the chart type See the sections below Adding New Sample Records for Variable Control Charts and Adding New Sample Records for Attribute Control Charts VB Overloads Public Sub AddNewSampleRecord _ ByVal timestamp As ChartCalendar ByVal samples As DoubleArray _ ByVal notes As String _ C public void AddNewSampleRecord ChartCalendar timestamp DoubleArray samples string notes Parameters timestamp Time stamp for the current sample record samples Array of new sample values notes A string specifying any notes associated with this sample subgroup 118 SPC Control Data and Alarm Classes controllimits Array of control limits one for each control limits low target and high There are many other overloaded versions of AddNewSampleRecord Use the one most appropriate to your application Adding New Sample Records for Variable Control Charts Fixed Subgroup Sample Size Applies to variable control charts of type MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART INDIVIDUAL RANGE CHART EWMA CHART MA CHART TABCUSUM CHART In variable control charts each data value in the samples array represents a specific sample in the sample subgroup In X Bar R X Bar Sigma and Median Range charts where the sample
332. limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C initial limits replaced with auto calculated values double 11 74 hh 76 target 75 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed bool limitcheck false SpcChart PrimaryChart Add3SigmaControlLimits target ll hh limitcheck spcChart PrimaryChart ControlLimitLineFillMode true 11 0 hh 2 target 1 SpcChart SecondaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart SecondaryChart ControlLimitLineFillMode true VB initial limits replaced with auto calculated values Dim 11 As Double 74 hh As Double 76 target As Double 75 limitcheck false means to only check alarms at 3 sigma limits not other limits even though they are displayed Dim limitcheck as boolean False SpcChart PrimaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart PrimaryChart ControlLimitLineFillMode True ll e Y hh 2 target 1 SpcChart SecondaryChart Add3SigmaControlLimits target ll hh limitcheck SpcChart SecondaryChart ControlLimitLineFillMode True SPC Variable Control Charts 209 UCL 75 877 UCL2 75 596 UCL1 75 314 XBAR 75 033 LCL1 74 752 LCL2 74 470 LCL 74 189 UCL 2 123 UCLR2 1 691 UCLR1 1 258 RBAR 0 825 LCLR1 0 5
333. limits using the algorithms supplied in this software The quick way to set the limit values and limit strings is to use the charts ChartData SetControlLimitValues and ChartData SetControlLimitStrings methods This method only works for the default 3 sigma level control limits and not any others you may have added using the charts AddAdditionalControlLimit method discussed in the Multiple Control Limits section The data values in the controllimitvalues and controllimitstrings arrays used to pass the control limit information must be sorted in the following order SPC PRIMARY CONTROL TARGET SPC PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT C double controllimitvalues 0 13 0 0 0 25 spcChart ChartData SetControlLimitValues controllimitvalues string controllimitstrings PBAR LCL WCL F speChart ChartData SetControlLimitStrings controllimitstrings VB Dim controllimitvalues As Double 0 13 0 0 0 25 spcChart ChartData SetControlLimitValues controllimitvalues Dim controllimitstrings As String PBAR TOL UCL SpcChart ChartData SetControlLimitStrings controllimitstrings You can also set the control limit values and control limit text one value at a time using the ChartData SetControlLimitValue and ChartData SetControlLimitString methods We also added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma l
334. llowing lines under the other xmlns namespace tags xmlns my clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL These lines need to be resolved by adding a references to the QCChart2DSL and QCSPCChartSL libraries to the project Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select QCChart2DSL DLL and QCSPCChartSL DLL files 418 Creating SPC Charts in Windows Applications Add Reference NET Projects Browse Recent Look in lib s 4 ESSENT S QCRTGraphsL dll OCSPCChartSL dll File name QCSPCChartSL dll QCChart2DSL dll Files of type Executable Files S View the MainPage xaml code and add the reference to SPCTimeVariableControlChart in the Grid layout panel The MainPage xaml file now looks like lt UserControl x Class SPCApplicationl MainPage xmi xmi xmi xmi mc xmi xmi Ins http schemas microsoft com winfx 2006 xaml presentation Ins x http schemas microsoft com winfx 2006 xaml Ins d http schemas microsoft com expression blend 2008 Ins mc http schemas openxmlformats org markup compatibility 2006 Ignorable d Ins my clr namespace com quinncurtis chart2dsl assembly QCChart2DSL Ins my2 clr namespace com quinncurtis spcchartsl assemb
335. lotted value is a fraction or percent of the sample subgroup size the size of the sample group can vary without rendering the chart useless The u Chart chart can also be used if the sample subgroup size varies from sampling interval to sampling interval In this case the control chart high and low limits vary from sample interval to sample interval depending on the number of samples in the associated sample subgroup A low number of samples in the sample subgroup make the band between the high and low limits wider than if a higher number of samples are available 38 Standard SPC Control Charts Number of Defects per Unit Chart with variable sample size u chart ES Form1 Percentage Defective Chart p chart X Bar Sigma Chart Fraction Defective Parts p chart Batch X Bar Sigma Title Number Defective per Unit u Chart Part No 321 Chart No 19 Operator K Peterson Machine TIME 13 05 13 35 14 05 14 35 15 05 15 35 16 05 16 35 17 05 17 35 18 05 18 35 19 05 19 35 20 05 20 35 21 05 Burr Seam NO DEF UNIT 0 172 0 250 0 313 0 342 0 371 0 227 0 103 0 227 0 267 0 303 0 355 0 467 0 412 0 323 0 324 0 213 0 385 ALARM E gt s UCLP 0 462 PBAR 0 250 NO DEF UNIT LCLP 0 038 14 00 15 00 16 00 17 00 18 00 19 00 20 00 DPMO Chart Also known as the Number of Defects per Million Chart Standard SPC Control Charts 39 Wi Window1 File _ Simple Attribute Control Chart Fraction Defective
336. ly Information File Bitmap File Windows Forms ct Class 2 Class Diagram WPF amp amp Code File E Component Class Reporting Cursor File A Custom Control Workfiow Custom Control WPF gulDataSet F Debugger Visualizer B Dynamic Data Field 12 Flow Document WPF 9 HTML Page if Icon File di Installer Class cg Interface Script File 2 LINQ to SQL Classes 4 Local Database Local Database Cache E MDI Parent Form An empty dass definition Name TimeVariableControlChart cs The resulting TimeVariableControlChart cs file will contain namespace SPCApplicationl public partial class TimeVariableControlChart public TimeVariableControlChart Modify the TimeVariableControlChart file to create the desired chart Most all of our examples are structured the same way The constructor is changed to pass in a SPCTimeVariableControlChart object Then a chart initialization routine is called which customized the chart See the Time VariableControlChart cs file of the SPCApplicationl example using com quinncurtis chart2ds1 using com quinncurtis sSpcchartsl Creating SPC Charts in Windows Applications 409 namespace SPCApplicationl public partial class TimeVariableControlChart ChartCalendar startTime new ChartCalendar 2009 5 1 0 0 0 The time increment between adjacent subgroups int timeincrementminutes 15 Number of samples per sub group int numsample
337. ly QCSPCChartSL d DesignHeight 631 d DesignWidth 878 xmlns sdk http schemas microsoft com winfx 2006 xaml presentation sdk gt Grid x Name LayoutRoot Background White gt Creating SPC Charts in Windows Applications 419 my2 SPCTimeVariableControlChart Margin 18 11 16 6 Name spcChartl Grid Row 1 EnableNotes false Grid lt UserControl gt You could have referenced any of the SPC charts found in the com quinncurtis spccharts namespace These are SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart O Display the MainPage asml vb behind code file It will look something like this Partial Public Class MainPage Inherits UserControl Public Sub New InitializeComponent End Sub End Class e Adda reference to the QCChart2DSL and QCSPCChartSL namespaces com quinncurtis chart2dsl and com quinncurtis spcchartsl in the using section of the program Imports c m quinncurtis chart2dsl Imports com quinnourtis spochartsl e Add a new simple class file named TimeVariableControlChart to the project Alternatively select Add Existing Item and select the file TimeVariableControlChart vb from our SPCApplicationl example folder If you do that make sure you change the declared namespace at the top of the file namespace SPCApplicationl to the o
338. m edge using normalized coordinates of the optional scroll bar Get Set the height of the scrollbar in pixels Get the object that holds he the chart objects needed to display the secondary chart Specifies the control chart type use one of the SPCControlChartData chart type constants MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART TableAlarmEmphasisMode XScaleMode Public Instance Methods AddAnnotation AutoCalculateControlLimits SPC Attribute Control Charts 263 NUMBER DEFECTS PER MILLION CHART Set the table alarm highlighting to one of the SPCChartBase table highlight constants ALARM HIGHLIGHT NONE ALARM HIGHLIGHT TEXT ALARM HIGHLIGHT OUTLINE ALARM HIGHLIGHT BAR Set Get whether the x axis is time based or numeric based Overloaded Add a simple annotation to a data point in the specified SPC chart Using the current sampled data values high target and low control limits are calculated for both primary and secondary charts using an algorithm appropriate to the SPC chart type AutoCalculatePrimaryControlLimits Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC ch
339. maryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal The second way to set the control limits is to call the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object before you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC spoChart AutoCalculateControlLimits VB Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC spcChart AutoCalculateControlLimits You can add data to the ChartData object auto calculate the control limits to establish the SPC control limits and then continue to add new data values Alternatively you can set the SPC control limits explicitly as the result of previous runs using the previously described ChartData SetControlLimitValues method and add new sampled data values to the ChartData object and after a certain number of updates call the AutoCalculateControlLimits method to establish new control limits C updateCount spcChart ChartData AddNewSampleRecord timestamp samples if updateCount gt 50 After 50 sa
340. mat A group dataset with four groups will display four separate line plots The y values for each line of the line plot represent the y values for each group of the group dataset Each line plot share the same x values of the group dataset 84 QCChart2D Class Summary Daily Stock Price Price Volume NASDAQ Scroll Week 7 22 02 7 29 02 8 05 02 8 12 02 8 19 02 The classic stock price chart combines a open high low close plot line plot and bar plot Press and hold left mouse button over a stock value to get details for that date OHLCPlot This class is a concrete implementation of the GroupPlot class and displays stock market data in an open high low close format common in financial technical analysis Every item of the plot is a vertical line representing High and Low values with two small horizontal flags one left and one right extending from the vertical High Low line and representing the Open and Close values Cumulative Plot of Noise vs Time from 7 Sources 0 5 10 15 20 Time The Stacked Line Plot will plot the cumulative sum of multiple y vectors vs a single x vector StackedLinePlot This class is a concrete implementation of the GroupPlot class and displays data in a stacked line format In a stacked line plot each group is stacked on top of one another each group line a cumulative sum of the related group items before it Polar Plot Classes PolarPlot PolarLinePlot PolarScatterPlot QCCha
341. me SaveFileDialog imagefilechooser new SaveFileDialog imagefilechooser Filter Image Files BMP QPGI TIEF PNGO BMP JPO TIFF PNG All Tiles ee ees Show save file dialog box Nullable lt bool gt result imagefilechooser ShowDialog if result true filename imagefilechooser SafeFileName String fileext JPG IImageEncoder imageencoder if fileext BMP imageencoder new BmpEncoder else if fileext JPG fileext JPEG imageencoder new JpegEncoder else if fileext PNG imageencoder new PngEncoder else imageencoder new JpegEncoder BufferedImage bufimage new BufferedImage LayoutRoot WriteableBitmap wbitmapimage bufimage GetRenderedBitmap ExtendedImage exImage ImageExtensions ToImage wbitmapimage using var store IsolatedStorageFile GetUserStoreForApplication Create a directory at the root of the store if store DirectoryExists Images File and Printer Rendering 383 store CreateDirectory Images Get the stream of an existing file or create a file and get its stream using var isoStream store OpenFile Images filename FileMode OpenOrCreate imageencoder Encode exImage isoStream isoStream Close private void buttonl Click 1 object sender RoutedEventArgs PrintGraph sender e private void button2 Click object sender RoutedEve
342. me LayoutRoot Background White gt my2 SPCTimeVariableControlChart Margin 18 11 16 6 Name spcChart1 Grid Row 1 EnableNotes false gt lt Grid gt lt UserControl gt Create a class to initialize the chart XBarRChart in our example SPC Variable Control Charts 157 C using System using com quinbcurtis chart2dsl using com quinneurtis spcochartsl namespace TimeVariableControlCharts lt summary gt Summary description for XBarRChart lt summary gt public class XBarRChart ChartCalendar startTime new ChartCalendar SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of samples per sub group int numsamplespersubgroup 5 Number of datapoints in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 15 SPCTimeVariableControlChart spcChart public XBarRChart SPCTimeVariableControlChart tvc spcChart tvc Define and draw chart InitializeChart public void InitializeChart Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes 158 SPC Variable Control Charts spcChart RebuildChartUsingCurrentData VB Imports co m quinncurtis chart2dsl Imports com quinncurtis spcchartsl Namespace TimeVariableControlCharts
343. me Add ChartObj MINUTE timeincrementminutes VB Private Sub SimulateData Dim notesstring As String Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples As DoubleArray spcChart ChartData SimulateMeasurementRecord 30 10 Dim r As Double ChartSupport GetRandomDouble If r lt 0 1 Then make a note on every tenth item on average notesstring Note for sample subgroup i ToString _ This sample is flagged as having some sort of problem Else notesstring End If Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData SPC Variable Control Charts 225 There are situations where you might want to add change modify or append a note for a sample subgroup after the AddNewSampleRecord method has already been called for the sample subgroup This can happen if the AddNewSampleRecord method call generates an alarm event In the alarm event processing routine you can add code that adds a special note to the sample subgroup that generated the alarm Use the ChartData SetNotesString or ChartData AppendNotesString methods to add notes to the current record separate from the AddNewSampleRec
344. me interval 1 the smoothing value the permissible range of 0 lt eek and the starting value required with the first sample at i 0 is the process target value Ff Control Limits for the EWMA Chart UCL L C sge mB 1 1 Y Centerline F LCL FL 9 sgr ER 1 1 Y 196 SPC Variable Control Charts Gis the process mean f amp the process standard deviation also known as sigma Coote user specified smoothing value A typical value for Cate OS 0 1 or 0 2 L is the width of the control limits The typical value for L is in the range of 2 7 to 3 0 corresponding to the usual three sigma control limits The software does not calculate optimal Costi L values that is up to you the programmer to supply based on your experience with EWMA charts Note that the term 1 1 approaches unity as i increases The implies that the control limits of an EWMA chart will reach approximate steady state values defined by UCL L sgr Copgter Cay ock LCL L ShitSqrt Caner Cay ock It is best if you use the exact equations that take into account the sample period so that an out of control process can be detected using the tighter control limits that are calculated for small i If the EWMA chart is used with subgroup sample sizes greater than 1 the value of Xi is replace by the mean of the corresponding sample subgroup and the value of f amp replaced by the value Sri whe
345. mitRecord object using the specified spc data object calculated value object alarm type alarm limit value and alarm message VB Overloads Public Sub New _ ByVal processvar As SPCControlChartData _ ByVal clr As SPCCalculatedValueRecord ByVal parametertype As Integer _ ByVal alarmlimitvalue As Double _ ByVal normalmessage As String _ ByVal alarmmessage As String _ C public SPCControlLimitRecord SPUControlChartData processvar SPCCalculatedValueRecord clr int parametertype double alarmlimitvalue string normalmessage String alarmmessage Parameters processvar Specifies the process variable that the alarm is attached to clr Specifies the calculated value record the alarm is attached to parametertype Specifies the alarm type SPC_NOTA_LIMIT SPC_LOWERTHAN LIMIT or SPC_GREATERTHAN LIMIT alarmlimitvalue Specifies the alarm limit value normalmessage Specifies display message when no alarm present 136 SPC Control Data and Alarm Classes alarmmessage Specifies the alarm message The most commonly used SPCControlLimitRecord properties are Public Static Shared Fields SPC GREATERTHAN LIMIT SPC LOWERTHAN LIMIT Specifies the alarm is a greater than alarm Specifies the alarm is a lower than alarm SPC NOTA LIMIT Public Instance Constructors SPCControlLimitRecord Public Instance Properties AlarmDisplay AlarmEnable AlarmMessage AlarmState Calculated
346. moving average and moving range statistics MAMS Chart Moving Average Moving Sigma The MAMS chart combines our Moving Average chart with a Moving Sigma chart The Moving Average chart is primary topmost chart and the Moving Sigma chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EEWMA and Moving Average charts When calculating the Moving Sigma it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving sigma statistics CuSum Chart Tabular one sided upper and lower cumulative sum The CuSum chart is a specialized control chart which like the EWMA and MA charts is considered to be more efficient that the Shewhart charts at detecting small shifts in the process mean particularly if the mean shift is less than 2 sigma There are several types of CuSum charts but the easiest to use and the most accurate is considered the tabular CuSum chart and that is the one implemented in this software The tabular cusum works by accumulating deviations that are above the process mean in one statistic C and accumulating deviations below the process mean in a second statistic C If either statistic C or C falls outside of the calcul
347. mple groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart 286 SPC Attribute Control Charts spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange VB updateCount 1 SpcChart ChartData AddNewSampleRecord timestamp samples If updateCount 50 Then After 50 sample groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart SpcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange End If Need to exclude records from the control limit calculation Call the ChartData ExcludeRecordFromControlLimitCalculations method passing in true to exclude the record C for int 1 07 i 107 lt spcChart ChartData ExcludeRecordFromControlLimitCalculations i true VB Dim i As Integer For i 0 To 9 spcChart ChartData ExcludeRecordFromControlLimitCalculations i True Next i Formulas Used in Calculating Control Limits for Attribute Control Charts The SPC control limit formulas used in the software derive from the following source Fraction Defective Parts Number Defective Parts Number Defects Number Defects Per Unit Introduction to Statistical Quality Control by Douglas C Montgomery J
348. mple program C DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray spcChart ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples This particular overload for ChartData SimulateDefectRecord knows that since it is a NUMBER DEFECTIVE PARTS CHART chart np chart and that since the ChartData object was setup with five categories in the InitSPCTimeAttributeControlChart call that is should return a DoubleArray with 5 1 76 elements the first five elements representing simulated defect counts for the five defect categories and the sixth element the simulated defective parts count The defect category count data of the samples array is only used in the table part of the display the defect category counts play NO role in the actual SPC chart The only value that is used in plotting the SPC chart is the last element in the samples array the defective parts count for the sample subgroup Updating c and u charts In c and u charts the number of defective parts is of no consequence The only thing that is tracked is the number of defects Therefore there is no extra array element tacked onto SPC Attribute Control Charts 26
349. mvaluesforruleviolation As Integer _ CH public void SetCustomRuleParameters int valuesincalc int numvaluesforruleviolation CH public void SetCustomRuleParameters int valuesincalc int numvaluesforruleviolation Parameters valuesincalc Specifies the number of values to use in calculation Named and Custom Control Rule Sets 337 numvaluesforruleviolation Specifies the number of values that must be outside alarm limit for rule violation The example below changes the N of M parameters of Hughes rules 15 and 16 from their default N of M value 12 of 14 to the values 15 of 18 CH SpcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord HUGHES RULES int M 18 int N 15 SPCControlLimitRecord clr SpcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 15 clr SetCustomRuleParameters M N clr spcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 16 clr SetCustomRuleParameters M N VB spcChart PrimaryChart UseNamedRuleSet SPCControlLimitRecord HUGHES RULES Dim M As Integer 18 Dim N As Integer 15 Dim clr As SPCControlLimitRecord SpcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 15 clr SetCustomRuleParameters M N clr spcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 16 clr SetCustomRuleParameters M N When trying to access
350. n Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 2 7 of 7 gt center line 3 1 7 7 0 3 7 of 7 lt center line 4 2 7 7 0 4 7 of 7 increasing 5 5 7 7 0 5 7 of 7 decreasing 6 6 7 7 0 Juran New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 3 2 of 3 lt 2 sigma 4 2 2 3 2 4 4 of 5 sigma 5 1 4 5 1 HS 4 0f5 lt sigma 6 2 4 5 1 6 6 of 6 increasing 7 5 6 6 0 7 6 of 6 decreasing 8 6 6 6 0 8 9 of 9 gt center line 9 1 9 9 0 HO 9 of 9 center line 10 2 9 9 0 10 8 of 8 outside zone C 11 4 8 8 1 Hughes New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 3 2 of 3 lt 2 sigma 4 2 2 3 2 4 3 of 7 gt 2 sigma 5 1 3 7 2 5 3 of 7 lt 2 sigma 6 2 3 7 2 6 4 of 10 gt 2 sigma 7 1 4 10 2 7 4 of 10 lt 2 sigma 8 2 4 10 2 330 Named and Custom Control Rule Sets 8 4 of 5 gt sigma 9 1 4 5 1 9 4 of 5 lt sigma 10 2 4 5 1 6 7 of 7 increasing 11 5 7 7 0 10 7 of 7 decreasing 12 6 7 7 0 11 10 0f11 gt centerline 13 1 10 ll 0 12 10 of 11 lt centerline 14 2 10 ll 0 13 12 of 14 gt centerline 15 1 12 14 0 14 12 of 14 centerline 16 2 12 14 0 Gitlow New Rule Description Rule Template Nof M X 1 1 of 1 gt 3 sigma 1 1 1 1 3 l of 1 lt 3 sigma 2 2 1 1 3 2 2 of 3 gt 2 sigma 3 1 2 3 2 3 2 of 3 lt
351. n WPF are not found in Silverlight Also you will also find that many of the classes WPF and Silverlight have in common have had their methods and properties pared down to an absolute minimum in the Silverlight version of the class Color The color class used in the Net Forms based version of QCChart2D QCSPCChart is derived from the System Drawing Color class The WPF Silverlight version of the Color class derives from the System Windows Media Color class Whereas the color enumerated constants for System Drawing colors are found in the Color class in WPF they are found in the Colors class The Silverlight version of the Color class only includes a minimal set of predefined colors We were forced to create an auxiliary class ChartColor which includes static constants you can reference for the missing named colors Example System Drawing WPF Silverlight C Color c Color Red Color c Colors Red Color c Colors Red VB Dim c as Color Color Red Dim c as Color Colors Red Dim c as Color Colors Red 12 Introduction Access additional colors in the Silverlight version using the static color constants in the ChartColor class C Color c ChartColor Aqua VB Dim c as Color ChartColor Aqua ChartColor FromArgb and Color Rgb Custom RGB colors were defined in Net using the Color FromArgb static method It had a couple of overrides one with four arguments for a full ARGB color with alpha blending specification and one with
352. naLinePlot This class is a concrete implementation of the AntennaPlot class and displays data in a simple line plot format The AntennaScatterPlot AntennaLineMarkerPlot AntennaAnnotation QCChart2D Class Summary 87 lines drawn between adjacent data points use antenna coordinate interpolation This class is a concrete implementation of the AntennaPlot class and displays data in a simple scatter plot format This class is a concrete implementation of the AntennaPlot class and displays data in a simple line markder plot format This class is used to highlight or mark a specific attribute of the chart It can mark a constant radial value using a circle or it can mark a constant angular value using a radial line from the origin to the outer edge of the scale Pie and Ring Chart Classes It uses data organized as arrays of x and y values where an x value represents the numeric value of a pie wedge and a y value specifies the offset or explosion of a pie wedge with respect to the center of the pie Click on any pie wedge to see a detail Click again on the pie wedge to remove detail PieChart The pie chart plots data in a simple pie chart format It uses data organized as arrays of x and y values where an x value represents the numeric value of a pie wedge and a y value specifies the offset or explosion of a pie wedge with respect to the center of the pie 88 OCChart2D Class Summary RingChart The ring c
353. ncluding floating point numbers date time values and multi line text strings International formats for floating point numbers and date time values are also supported ChartText ChartTitle AxisTitle ChartLabel NumericLabel TimeLabel ElapsedTimeLabel StringLabel This class draws a string in the current chart window It is the base class for the ChartTitle AxisTitle and ChartLabel classes The ChartText class also creates independent text objects Other classes that display text also use it internally This class displays a text string as the title or footer of the chart This class displays a text string as the title for an axis The axis title position is outside of the axis label area Axis titles for y axes are rotated 90 degrees This class is the abstract base class of labels that require special formatting This class is a concrete implementation of the ChartLabel class and it displays formatted numeric values This class is a concrete implementation of the ChartLabel class and it displays formatted ChartCalendar dates This class is a concrete implementation of the ChartLabel class and it displays numeric values formatted as elapsed time strings 12 32 21 This class is a concrete implementation of the ChartLabel class that formats string values for use as axis labels Miscellaneous Chart Classes Marker ChartImage ChartShape 94 OCChart2D Class Summary ChartSymbol Various classes are use
354. ne sigma In normal operation 68 of points will fall within one sigma of the mean The probability that 15 points in a row will do so is less than 1 7 Fourteen points in a row alternating direction The chances that the second point is always higher than or always lower than the preceding point for all seven pairs is only about 1 8 Eight points in a row outside one sigma Since 68 of points lie within one sigma of the mean the probability that eight points in a row fall outside of the one sigma line is less than 1 While the techniques in the previous section can be used to draw multiple SPC control limit lines on the graph at the 1 2 3 sigma levels for example they do not provide for the x out of y control criteria used in evaluating the WE rules The software can be explicitly flagged to evaluate out of control alarm conditions according to the WE Rules instead of the default 3 sigma control criteria It will create alarm lines at the 1 2 and 3 sigma control limits and the center line It will also automatically establish the eight alarm conditions associated with the WE rules Set the WE rules flag using the PrimaryChart or SecondaryChart UseWERuntimeRules method When the variable control charts AutoCalculatedControlLimits method is called the SPC Variable Control Charts 215 software automatically calculates all of the appropriated control limits based on the current data The example below is extracted from th
355. ne your project uses probably namespace 420 Creating SPC Charts in Windows Applications SilverlightApplicationl If you aren t using a project namespace remove the project namespace references at the top and bottom of the source file Add New Item SPCApplication1 Installed Templates Default 2 Visual Basic Code Class Data General Module Web Silverlight Type Visual Basic Visual Basic T An empty class definition Visual Basic Code File Visual Basic Online Templates TimeVariableControlChart vb Te The resulting TimeVariableControlChart vb file will contain Public Class TimeVariableControlChart End Class Modify the TimeVariableControlChart file to create the desired chart Most all of our examples are structured the same way The constructor is changed to pass in a SPCTimeVariableControlChart object Then a chart initialization routine is called which customized the chart See the TimeVariableControlChart vb file of the SPCApplicationl example Imports com quinncurtis chart2dsl Imports com quinncurtis spcochartsl Creating SPC Charts in Windows Applications 421 Partial Public Class TimeVariableControlChart Private startTime As New ChartCalendar 2009 5 1 0 O0 0 The time increment between adjacent subgroups Private timeincrementminutes As Integer 15 Number of samples per sub group Private numsamplespersubgroup As Integer 4 Private spcChart As SPCTimeVariableControl
356. ng Since the chart fonts all default to different sizes the default font is defined using a string specifying the name of the font This static property must be set BEFORE the charts Init routine Extracted from the example Extracted from the example TimeAttributeControlCharts PercentDefectiveChart SPC Attribute Control Charts 279 C PercentDefectivePartsControlChart DefaultChartFontString Times SpcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes VB PercentDefectivePartsControlChart DefaultChartFontString Times spcChart InitSPCTimeAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview timeincrementminutes These static properties establish the default fonts for a group of objects as a whole For example all charts will have the same x and y axis label fonts You can still change the individual fonts for an individual object in a specific chart For example if in the Primary Chart you want the x axis label font to be size 10 and the y axis label font to be size 14 you can set them individually after the charts Init method has been called C spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart PrimaryChart XAxisLab TextFont new ChartFont Times 10 FontStyles Normal spcChart Prima
357. ng title 22 Parameters primarychart SPC Variable Control Charts 183 Set to true to display primary chart secondarychart Set to true to display secondary chart histograms Set to true to display chart histograms title Specifies the title for the charts 014 Place your chart title here UCL 20 6 Extracted from the exaple program SPCApplication1 C public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 17 Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup 184 SPC Variable Control Charts numdatapointsinview timeincrementminutes SpcChart UseNoTable true true true Place your chart title here SpcChart EnableScrollBar true spcChart ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL training data SimulateData 50 30 10 Calculate the SPC control limits for both graphs of the current SPC chart X Bar R SpcChart AutoCalculateControlLimits New data added after limits calculated SimulateData 150 30 15 Scale the y axis of the X Bar chart to display all data and control limits SpcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits SpcChart AutoScaleSecondaryChartYRange Rebuild the ch
358. ngCurrentData End Sub 1 Public Sub SPCDataToolTipEventHandler sender As Object e As SPCDataToolTipEventArgs Dim sv As SPCSampledValueRecord e SampleValues Retrieve current sample values at click index Dim clickindex As Integer e SampleIndex Dim numsamplespersubgroup As Integer sv Length Dim sampleValuesAtIndex As Double New Double numsamplespersubgroup For i As Integer 0 To numsamplespersubgroup 1 sampleValuesAtIndex i sv i SampledValues clickindex Next Dim timestamp As DateTime e TimeStamp Modify sample values at click index For i As Integer 0 To numsamplespersubgroup 1 new value is just old value plus 1 Dim newvalue As Double sampleValuesAtIndex i 1 Next need to rebuild in order to make changes visible SpcChart RebuildChartUsingCurrentData End Sub 424 Creating SPC Charts in Windows Applications Private Sub SimulateData count As Integer mean As Double std As Double For i As Integer 0 To count 1 Dim timestamp As ChartCalendar DirectCast startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples As DoubleArray SpcChart ChartData SimulateMeasurementRecord mean std In a non simulated application you would define samples to have a Size equal to your sample sub group size then assign individual elements of the array If False Then Dim samples As New DoubleArray numsamplespersubg
359. ngineering Usually specification limits are going to be wider than the SPC 3 sigma limits because you want the SPC control limits to trip before you get to the specification limits The SPC control limits give you advance notice that the process is going south before you start rejecting parts based on specification limits You can display specification limits in the same chart as SPC control limits Use the AddSpecLimit method of the PrimaryChart or SecondaryChart spcChart PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC new ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC new ChartAttribute Colors Yellow 3 0 VB spcChart PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC New ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC New ChartAttribute Colors Yellow 3 0 220 SPC Variable Control Charts Chart Y Scale You can set the minimum and maximum values of the two charts y scales manually using the PrimaryChart MinY PrimaryChart MaxY SecondaryChartMinY and SecondaryChartMaxY properties C Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed spoChart PrimaryChart MinY 0 SpcChart PrimaryChart MaxY 40 Set initial scale of the y a
360. ntArgs e SaveAsFile sender e VB Imports com quinnouftis chart2dsl e 384 File and Printer Rendering Imports System IO Imports System Windows Media Imaging Imports System IO IsolatedStorage Imports ImageTools Imports ImageTools IO Imports ImageTools IO Jpeg Imports ImageTools IO Bmp Imports ImageTools IO Gif Imports ImageTools IO Png Partial Public Class MainPage Inherits UserControl Private fhp As FrequencyHistogramPlot Public Sub New InitializeComponent fhp New FrequencyHistogramPlot spcChart1 spcChartl PreferredSize New Size 600 400 End Sub Private Sub PrintGraph sender As Object e As RoutedEventArgs If spcChartl IsNot Nothing Then Dim cp As New ChartPrint spcChartl ChartObj PRT MAX cp DoPrintPage End If End Sub This make use of the ImageTools encoders for Silverlight Download your own copy of the libraries at http imagetools codeplex com Public Sub SaveAsFile sender As Object e As RoutedEventArgs Canvas printObj chartview DrawingSurface Dim filename As String Me Name Dim imagefilechooser As New SaveFileDialog imagefilechooser Filter Image Files BMP JPG TIFF PNG BMPI SUIPOIT TIFEI PNG AIL files W File and Printer Rendering 385 Show save file dialog box Dim result As Nullable Of Boolean imagefilechooser ShowDialog If result True Then filename imagefilechooser SafeFileName D
361. ntrol chart data is stored in the SPCControlChartData class It holds the header information used to customize the chart table the raw sample data used to prepare the chart the calculated chart values used in the chart and the SPC control limits It contains array lists of SPCSampledValueRecord SPCControlLimitRecord and SPCCalculatedValueRecord objects The SPCGeneralizedTableDisplay class manages ChartText objects used to display data in the table portion of the SPC chart Class SPCControlChartData ChartObj SPCControlChartData The SPCControlChartData class is the core data storage object for all of SPC Control Chart classes It holds all of the data plotted in the SPC chart That includes the header information used to customize the chart table Header Information Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 the raw sample data used in the SPC calculations Raw Sample Data 104 SPC Control Data and Alarm Classes the calculated chart values used in the chart and the SPC control limits Calculated Values MEAN 295 275 297 280 322 260 303 303 305 318 299 262 320 29 0 UM 147 7 137 4 148 5 140 2 161 2 130 1 151 3 151 6 152 7 159 1 149 5 130 8 159 8 145 1 and any notes you might want to place in the record Notes NOTES N N N N N N N N N N N N N N It contains array lists of SPCSampledValueRecord SPCControlLimitRecord and SPCCalculatedValueRecord o
362. ntrolLimitData SPCChartObjects SPC CONTROL TARGET LimitValu e 13 SPCControlLimitRecord lcl4 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 223 DOLRZ InOLBRZ s SPCControlLimitRecord ucl4 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 1 66 UCLR2 UCTRZ s SpcChart SecondaryChart AddAdditionalControlLimit 1c14 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 SpcChart SecondaryChart AddAdditionalControlLimit ucl SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 ws SPCControlLimitRecord 1c15 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 66 LOLRI LOLRI SPCControlLimitRecord ucl5 new SPCControlLimitRecord spcChart ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 1 33 UCLEI DUCLERIT jZ SPC Variable Control Charts 211 SpcChart SecondaryChart AddAdditionalControlLimit 1c15 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal SpcChart SecondaryChart AddAdditionalControlLimit ucl5 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal spcChart PrimaryChart ControlLimitLineFillMode true SpcChart SecondaryChart ControlLimitLineFillMode true VB Dim sigma2 As Double 2 0 Dim sigmal As Double 1 0 Create multiple limits For PrimaryChart SpcChart PrimaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT Lim
363. ntrolLimitT ype Get Set the alarm type SPC NOTA LIMIT SPC LOWERTHAN LIMIT or SPC GREATERTHAN LIMIT ControlLimitValue Get Set the alarm limit value ControlLimitValues Get Set the controlLimitValues array Hysteresis Value Get Set the alarm hysteresis value PrevAlarmState Get Set the previous alarm state 144 SPC Control Data and Alarm Classes SPCProcessVar SymbolColor TextColor Public Instance Methods CheckAlarm Clone Copy Copy inherited from ChartObj ErrorCheck GetAlarm GetControlLimitHistoryValue SetControlLimitValue SPCCalculated ValueRecord Get Set the spcDataVar object Get Set the alarm symbol color Get Set the alarm text color Check the current value against the parameterValue Returns an object that is a Clone of this SPCControlLimitRecord object Overloaded Copies the source SPCControlLimitRecord object Overloaded Copies the source object Checks the SPCControlLimitRecord object for common errors Current error state Returns an error code Returns the current alarm state based on the passed in value Get a values for the controlLimits Values historical buffer Set current value of the control limit and adds that value to the controlLimitValues historical array This is the record class for a calculated SPC statistic It holds the calculated value type mean median sum variance standard deviation etc value description and historical data Public Static S
364. nts There are default chart fonts that are static objects in the SPCChartObjects class They establish the default fonts for related chart objects and if you change them they need to be set before the first charts Init call Since these properties are static any changes to them will apply to the program as a whole not just the immediate class AxisLabelFont The font used to label the x and y axes AxisTitleFont The font used for the axes titles HeaderFont The font used for the chart title SubheadFont The font used for the chart subhead ToolTipFont The tool tip font AnnotationFont The annotation font ControlLimitLabelFont The font used to label the control limits Extracted from the example TimeAttributeControlCharts PercentDefectiveChart C SPCChartObjects AxisTitleFont new ChartFont Times 12 FontStyles Normal SPCChartObjects ControlLimitLabelFont new ChartFont Times 10 FontStyles Normal spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCChartObjects AxisTitleFont new ChartFont Times 12 FontStyles Normal SPCChartObjects ControlLimitLabelFont new ChartFont Times 10 FontStyles Normal spcChart InitSPCTimeAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview timeincrementminutes The chart class static property DefaultTableFont sets the default font stri
365. ny of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC chart SpcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Once all of the graph parameters are set call the method RebuildChartUsingCurrentData C Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData VB Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData 298 SPC Attribute Control Charts If at any future time you change any of the chart properties you will need to call RebuildChartUsingCurrentData to force a rebuild of the chart taking into account the current properties RebuildChartUsingCurrentData invalidates the chart and forces a redraw Our examples that update dynamically demonstrate this technique The chart is setup with some initial settings and data values As data is added in real time to the graph the chart SPC limits and y scales are constantly recalculated to take into account new data values The code below is extracted from the TimeAttributeControlCharts DynamicAttributeControlChart example program C private void timerl Tick object sender System EventArgs e ChartCalendar timestamp ChartCalendar startTime Clone This simulates an assignable defect for each category
366. o Net Visual C and Visual Basic Chapter 13 is a tutorial that describes how to use SPC Control Chart Tools for Silverlight to create SPC charts for web pages 2 Standard SPC Control Charts There are many different types SPC control charts Normally they fall into one of two major classifications Variable Control Charts and Attribute Control Charts Within each classification there are many sub variants Often times the same SPC chart type has two or even three different names depending on the software package and or the industry the chart is used in We have provided templates for the following SPC control charts Variable Control Charts Templates Fixed sample size subgroup control charts X Bar R Mean and Range Chart X Bar Sigma Mean and Sigma Chart Median and Range Median and Range Chart X R Individual Range Chart EWMA Exponentially Weighted Moving Average Chart MA Moving Average Chart MAMR Moving Average Moving Range Chart MAMS Moving Average Moving Sigma Chart CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Sigma Mean and Sigma Chart Attribute Control Charts Templates Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts np Chart Number of Defective Parts c Chart Number of Defects u Chart Number of Defects per Unit Number Defects per Million DPMO Variable sample size subgroup control charts p Chart Fraction or
367. o a time based SPC chart public void AddNewSampleRecord ChartCalendar DoubleA rray string Add a new sample record to a batch based SPC chart public void AddNewSampleRecord DoubleAr ray SPC Control Data and Alarm Classes 127 Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord DoubleA rray string Add a new sample record to a numeric based SPC chart public void AddNewSampleRecord double ChartCalenda r DoubleArray DoubleAr rray string Add a new sample record with notes to a numeric based SPC chart public void AddNewSampleRecord double ChartCalendar DoubleA rray string Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord double DoubleA ray Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord double DoubleArray string In addition to these there are versions that pass in an additional DoubleArray that pass in the current value of variable control limits if used See the QCSPCChartSLCompiledHelpFile chm compiled help file under com quinncurtis spcchartsl SPCControlChartData AddNewSampleRecord If the AddNewSampleRecord overload does not have an explicit ChartCalendar time stamp parameter as in the case several of the overloaded methods the current time as stored in the system clock is used as the time stamp Question How do you initialize the ChartCalendar object with your
368. ob ca env dia at on ep a e er e EUG 87 88 102 ATrOWPIOE asc eerte te ie E EE 78 79 101 AT WS decine Np DIDI UO IER an te itte mre E de p api eh te de E AER OH e ltd 100 Attribute Control Chart 6 19 35 36 40 46 54 55 60 104 105 118 255 256 257 261 265 287 311 314 319 Attribute Control Chart 1 v 6 8 18 19 34 35 36 40 46 51 54 55 60 104 105 110 114 118 122 255 256 257 258 259 260 261 265 266 287 293 302 311 312 313 314 319 INNATA ON 67 68 100 AutoLogA larmsASNOtes ccccescssseessceseeeseeeceseesecsaeesceesecaeesceesecesecesecseceseceseceaeceeeseseseseaeeeeeeeeeeaaeess 162 239 262 311 AutoLogA larmsASNOteS i d esee eterne eee eee nane he eo eie anne eae enean aeree danas dia dedicada dede dada diosa di AutoLogAlarmsAsNotes esses enne enne eene 162 239 262 311 AXutoScale i tee RR OW A ete toph A eee eee D E Ee 50 AutoScale 50 58 59 67 68 100 130 131 164 170 171 185 186 191 217 218 221 222 223 264 287 297 298 299 300 413 425 Ae e LUE n de tam ren 47 50 52 53 54 55 69 70 74 75 94 101 244 245 247 316 317 Axis vi 15 19 20 43 44 47 49 50 52 53 54 55 57 58 59 62 68 69 70 71 72 73 74 75 76 93 94 96 97 99 101 108 113 131 155 156 162 164 165 170 171 181 182 185 186 191 217 218 221 222 223 230 244 245 246 247 248 431 249 250 251 252 256 25
369. object Get the default primary plot attribute object for the plot of the chart Set attributes before BuildChart Get the plot background object Get the dataset holding the data values of the plot Get probability plot scatter plot object Set Get True the ChartView object list is cleared with each redraw Get the sigma y axis object of the chart Get the sigma y axis labels object of the chart Get the chart subhead object Get Set the default symbol size Set attributes before BuildChart Get the default text object template for the data tooltip Get the tooltip symbol object for the data tooltip Frequency Histograms Pareto Diagrams Probability Charts 367 XAxis XAxisLab XAxisTitle XGrid XValues XValueTemplate Y Axis Y Axis2 Y AxisLabl Y AxisLab2 Y AxisTitle Y Grid Y Values Y ValueTemplate Public Instance Methods BuildChart Copy InitProbabilityChart InitProbabilityDatasets Get the x axis object of the chart Get the x axis labels object of the chart Get the x axis title object of the of the chart Get the x axis grid object of the of the chart Get the DoubleArray of the x values of the data points plotted in the probability plot Get the default x value object template for the data tooltip Get the left probability y axis object of the chart Get the right probability y axis object of the chart Get the left probability y axis labels object of the chart Get the right proba
370. ocumentation directory Lib Quinn Curtis Net related compiled libraries and components directory QCChart2D QCChart2D examples for C and VB This directory contains many example programs for C and VB specific to the QCChart2D charting software but not specific to the QCSPCChart software QCSPCChart QCSPCChart examples for C and VB Visual CSharp C specific directory QCSPCChartSL contains the source code to the QCSPCChartSL dll library installed only if the source code has been purchased Examples C examples directory FrequencyHistogram a simple frequency histogram example using the FrequencyHistogramChart class BatchAttributeControlCharts a collection of batch attribute control charts including n np c u and DPMO charts using the SPCBatchAttributeControlChart class BatchVariableControlCharts a collection of batch variable control charts including X Bar R X Bar Sigma Median Range X R MAMR and MAMS charts using the SPCBatchVariableControlChart class TimeAttributeControlCharts a collection of time attribute control charts including n np c u and DPMO charts using the SPCTimeAttributeControlChart class TimeVariableControlCharts a collection of time variable control charts including X Bar R X Bar Sigma Median Range X R MAMR and MAMS charts using the SPCTimeVariableControlChart class MiscTimeBasedControlCharts a collection of time variable control charts including EWMA MA
371. of the SPCChartBase class Set to true to automatically log alarm details in the sample interval Notes record Get Set an additional margin in normalized coordinates if only the primary graphs is displayed allowing for the x axis labels Get the object that holds the descriptive text sampled and calculated values associated with the control chart Set to SPCChartBaseALARM HIGHLIGHT SYMBOL to highlight the process variable symbol if an alarm condition exists Set to Set to SPCChartBas e ALARM NO HIGHLIGHT SYMBOL to turn off alarm highlighting Get the object that holds the data table information needed to display the data table along with the chart Set Get that SPC control limits are to be calculated using the 3 sigma level standard If set true enables the alarm status row of the chart table If set true enables the calculated values rows of the data table If set true enables the category or sample values rows of the data table If set true enables data tooltips If set true enables the input string rows of the data table If set true enables the notes row of the data table If set true enables data tooltips If set true the scroll bar is added to the bottom of the chart If set true enables the time row of the data table If set true enables the total of sampled values row of the data table Get Set the bottom edge using normalized coordinates 262 SPC Attribute Control Charts GraphStartPosX GraphStartPosY 1
372. ohn Wiley and Sons Inc 2001 Percent Defective Parts SPC Simplified Practical Steps to Quality by Robert T Amsden Productivity Inc 1998 SPC Control Chart Nomenclature UCL Upper Control Limit SPC Attribute Control Charts 287 LCL Lower Control Limit Center line The target value for the process p estimate or average of the fraction defective or non conforming parts P estimate or average of the percent defective or non conforming parts c estimate or average of the number of defects or nonconformities u estimate or average of the number of defects or nonconformities per unit n number of samples per subgroup dopu defect opportunities per unit applies only the DPMO chart dpmo defects per million opportunities applies only the DPMO chart calculated as dpmo 1 000 000 numberOfDefects sampleSize dopu up estimate or average of the dpmo values Fraction Defective Parts Also known as Fraction Non Conforming or p chart UCL I p 3 Sqr p 1 p n Center line I so LCL p 3 Sqt p 1 p n Percent Defective Parts Also known as Percent Non Conforming or p chart UCL p 3 Sqt pP 100 p n Centerline p 288 SPC Attribute Control Charts LCL p 3 Sqrt p 100 p n Number of Defective Parts Also known as the Number Nonconforming or np chart UCL n p 3 Sqrt n p 1 p n Center line n
373. olChartData SPC chart types MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART and TABCUSUM CHART numsamplespersubgroup Specifies the number of samples that make up a sample subgroup numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time timeincrementminutes Specifies the normal time increment between adjacent subgroup samples The image below further clarifies how these parameters affect the variable control chart Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 timeincrementminutes 30 Operator S Kafka Machine 1 Time 12 31 13 01 13 31 14 01 14 31 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 NO DEFECTIVE NO INSP FRACT DEF Once the Init routine is called the chart can be further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties DefaultChartFontString Set Get the default font used in the table display Public Instance Constructors SPCChartBase Public Instance Properties AutoLogAlarmsAsNotes BottomLabelMargin ChartAlarmEmphasisMode ChartData ChartInitialized ChartTable
374. olLimitLineFillMode True Western Electric WECO Runtime Rules The normal SPC control limit rules display at the 3 sigma level both high and low In this case a simple threshold test determines if a process is in or out of control Other more complex tests rely on more complicated decision making criteria The most popular of these are the Western Electric Rules also know as the WE Rules or WE Runtime Rules These rules utilize historical data for the eight most recent sample intervals and look for a non random pattern that can signify that the process is out of control before reaching the normal 3 sigma limits Starting with Revision 3 0 we have added additional industry standard rules to the software Nelson AAIG Juran Hughes Gitlow and Duncan In addition you can mix and match rules from the different rule sets and you can create your own custom rules using our standardize rule templates See Chapter 8 for more information A processed is considered out of control if any of the following criteria are met 1 The most recent point plots outside one of the 3 sigma control limits If a point lies outside either of these limits there is only a 0 3 chance that this was caused by the normal process 214 SPC Variable Control Charts 2 Two of the three most recent points plot outside and on the same side as one of the 2 sigma control limits The probability that any point will fall outside the warning limit is only 5 The ch
375. olors Red SpcChart SecondaryChart YAxisl LineWidth 3 spcChart SecondaryChart YAxis2 LineWidth 3 SpcC speg Char speg Char SpcC spog hart PrimaryC hart PrimaryC hart PrimaryC tColor Beige hart PrimaryC hart PrimaryC VB SPC Variable Control Charts 249 hart ProcessVariableData LineMarkerPlot LineColor Colors Black hart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor tColor BlueViolet hart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor hart GraphBackground FillColor ChartColor LightGray hart PlotBackground FillColor ChartColor LightGoldenrodYellow Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes spec SpcC SpcC SpcC speg spec speg spcc Char SpcC Char spec tColor Beige hart PrimaryChart XAxis LineColor Colors Blue hart PrimaryChart XAxis LineWidth 3 hart SecondaryChart YAxisl LineColor Colors Green hart SecondaryChart YAxis2 LineColor Colors Red hart SecondaryChart YAxisl LineWidth 3 hart SecondaryChart YAxis2 LineWidth 3 hart PrimaryChart ProcessVariableData LineMarkerPlot LineColor Colors Black hart PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor tColor BlueViolet hart PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttribu
376. olors Yellow 3 0 The third AddProcessCapability Limit creates a limit which monitors the value of one of the charts SPCProcessCapabilityRecord object values SPCChartObjects AddProcessCapability ControlLimit Method Visual Basic Declaration Public Function AddProcessCapabilityControlLimit _ pcindex As Integer limtype As Integer value As Double _ displaystring As String _ attrib As ChartAttribute _ As SPCControlPlotObjectData C public SPCControlPlotObjectData AddProcessCapabilityControlLimit int pcindex int limtype double value string displaystring ChartAttribute attrib Parameters pcindex Specify the process capability limit index based on the order the process capabilities were added to the chart starting at 0 limtype Specifiy either SPCChartObjects SPC LOWER PC LIMIT or SPCChartObjects SPC UPPER PC LIMIT Named and Custom Control Rule Sets 347 value Specifies the value of the limit displaystring Text included with the alarm if it is triggered attrib The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the specification limit Attached control limits to the first Process Capability added to the chart SpcChart PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpk new ChartAttribute Colors Green 3 0 spcChart PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SP
377. olumnPosition StartRowPosition StringltemTemplate StringLabelFont TableBackgroundMode TextColumnSpacing TextRowOffset TextRowSpacing TimeColumnSpacing TimeltemTemplate SPC Control Data and Alarm Classes 149 alternating background colors used to delineate the table rows Get Set the CalculatedItemTemplate object used as a template for displaying calculated numeric values in the table Get Set the font used in the display of calculated numeric values in the table Get Set the current column position Get Set the current column position Get Set the StringltemTemplate object used as a template for displaying string values in the table Get Set the font used in the display of string values in the table Get Set the numeric column spacing Get Set the numeric row spacing Get Set the SampleItemTemplate object used as a template for displaying numeric values in the table Get Set the font used in the display of sample numeric values in the table Get Set the starting x position in normalized coordinates of the left most column of the table Get Set the starting y position in normalized coordinates of the first row of the table Get Set the StringltemTemplate object used as a template for displaying string values in the table Get Set the font used in the display of string values in the table Set Get the first of two colors used in the alternating background colors used to delineate the table rows
378. on and off The alarm status line above is turned on off using the EnableAlarmStatus Values property We have set it on by default so you will have to turn it off if you don t want it Each sample interval has two small boxes that are labeled using one of several different characters listed below The most common are an H signifying a high alarm a L signifying a low alarm and a signifying that there is no alarm When specialized control rules are implemented either using the named rules discussed in Chapter 8 or custom rules involving trending oscillation or stratification a T O or S may also appear No alarm condition H High Measured value is above a high limit L Low Measured value falls below a low limit T Trending Measured value is trending up or down O Oscillation Measured value is oscillating alternating up and down SPC Variable Control Charts 235 S Stratification Measured value is stuck in a narrow band Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 1514 15 29 1544 15 59 16 14 1629 16 44 1659 1714 1729 1744 17 59 18 14 1829 18 44 ALARM To 0 0 2 0 2 2 T T T H H H H UCL 53 25 99 Target 19 98 LCL S3 13 97 40 30 20 10 0 16 00 17 00 18 00 C Alarm status line spcChart EnableAlarm
379. ontrol Charts Set Get data table operation string Set Get the header for the operation field Set Get the header for the theOperator field Set Get data table part name string Set Get the header for the partName field Set Get data table part number string Set Get the header for the partNumber field 110 SPC Control Data and Alarm Classes PrimaryCalculatedVariableIndex SampleSubgroupSize SecondaryCalculatedVariableIndex SPCChartType SpecificationLimits SpecificationLimitsHeader TheOperator TimeStamp TimeValueRowHeader Title TitleHeader UnitOfMeasure UnitOfMeasureHeader ZeroEquals ZeroEqualsHeader Public Instance Methods AddNewSampleRecord Set Get index in the calculatedValues array for the primary calculated value data Set Get the number of samples in a sample sub group for a Variable Control chart Set Get index in the calculatedValues array for the secondary calculated value data Set Get the control chart type use one of the SPCControlChartData chart type constants MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS MEAN VARIANCE CHART INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART TABCUSUM CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS PER MILLION CHART Set Get data tabl
380. ontrol limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits SpcChart AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData End Sub InitializeChart Private Sub SimulateData Dim notesstring As String Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples As DoubleArray spcChart ChartData SimulateMeasurementRecord 30 10 SpcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData Logging SPC Data to a File Using Isolated Storage Under Silverlight you cannot write to arbitrary locations on the client file system Data logging files can only be saved to Silverlight Isolated Storage Read about Silverlight Isolated Storage here Google Silverlight Isolated Storage While we left the original file I O routines in the software we added additional routines to save and restore from isolated storage When you turn on the data log it will au
381. or the class SPC Control Data and Alarm Classes 151 6 SPC Variable Control Charts SPCTimeVariableControlChart SPCBatchVariableControlChart Variable Control Charts are used with sampled quality data that can be assigned a specific numeric value other than just 0 or 1 This includes but is not limited to the measurement of a critical dimension height length width radius etc the weight a specific component or the measurement of an important voltage The variable control charts supported by this software include X Bar R Mean and Range X Bar Sigma Median and Range X R Individual Range MA Move Average MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma EWMA Exponentially Weighted Moving Average and CUSum charts X Bar R Chart Also known as the Mean or Average and Range Chart The X Bar R chart monitors the trend of a critical process variable over time using a statistical sampling method that results in a subgroup of values at each sample interval The X Bar part of the chart plots the mean of each sample subgroup and the Range part of the chart monitors the difference between the minimum and maximum value in the subgroup X Bar R charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes X Bar Sigma Also known as the X Bar S Chart Very similar to the X Bar R chart the X Bar Sigma chart replaces the Range plot with a Sigma plot based on the stan
382. ord method Extracted from the VariableControlCharts DynamicXBarR Chart example program C private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e SPCControlLimitRecord alarm e EventAlarm double alarmlimitvalue alarm ControlLimitValue String alarmlimitvaluestring alarmlimitvalue ToString SPCControlChartData spcData alarm SPCProcessVar SPCCalculatedValueRecord spcSource e SPCSource String calculatedvaluestring spcSource CalculatedValue ToString String message alarm AlarmMessage ChartCalendar timestamp spcData TimeStamp String timestampstring timestamp ToString String notesstring An timestampstring message n alarmlimitvaluestring Current Value calculatedvaluestring Append a notes string to the current record if alarm AlarmState spcChart ChartData AppnedNotesString notesstring true VB Private Sub SPCControlLimitAlarm ByVal sender As Object ByVal e As SPCControlLimitAlarmArgs Dim alarm As SPCControlLimitRecord e EventAlarm Dim alarmlimitvalue As Double alarm ControlLimitValue Dim alarmlimitvaluestring As String alarmlimitvalue ToString Dim spcData As SPCControlChartData alarm SPCProcessVar 226 SPC Variable Control Charts Dim spcSource As SPCCalculatedValueRecord e SPCSource Dim calculatedvaluestring As String spcSource CalculatedValue ToString Dim message As String alarm Ala
383. ories As Integer 5 Number of datapoints in the view Private numdatapointsinview As Integer 17 The time increment between adjacent subgroups Private timeincrementminutes As Integer 30 Private spcChart As SPCTimeAttributeControlChart Public Sub New tac As SPCTimeAttributeControlChart SpcChart tac Define and draw chart InitializeChart End Sub Sub InitializeChart Y Initialize the SPCBatchAttributeControlChart spcChart InitSPCBatchAttributeControlChart charttype numcategories SPC Attribute Control Charts 313 numsamplespersubgroup numdatapointsinview End Sub DrawChart Establish the control chart type p np c or u chart using the attribute control charts InitSPCBatchAttributeControlChart initialization routine SPCBatchAttributeControlChart InitSPCBatchAttributeControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB LVB uas Public Sub InitSPCBatchAttributeControlChart _ ByVal charttype As Integer _ ByVal numcategories As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ public void InitSPCBatchAttributeControlChart int charttype int numcategories int numsamplespersubgroup int numdatapointsinview Parameters charttype Specifies the chart type Use one of the SPC Attribute Control chart types PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART
384. ots as a horizontal straight line for the entire width of the chart regardless if the control limit changes either explicitly or using the AutoCalculateControlLimits method If the ControlLineMode property is SPCChartObjects CONTROL LINE VARIABLE the SPC limit value plots at the value it had when the sample subgroup values updated If you change a control limit value the control limit line will no longer be a straight horizontal line instead it will be jagged or stepped depending on the changes made ae UCLP 0 25 s 0 2 1 4 w uj E o lt c w 0 1 4 f 0 0 TT TT m j mi LCLP 0 00 18 00 T 1 T 19 00 20 00 21 00 22 00 23 00 0 00 1 00 12 28 05 290 SPC Attribute Control Charts There are three ways to enter new SPC limit values See the example program TimeAttributeControlCharts VariableControlLimits for an example of all three methods First you can use the method ChartData SetControlLimitValues method C double tnitialtontirollimits 0 13 0 0 0 27 double changeControlLimits 0 11 0 0 0 25 spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 if i 10 spcChart ChartData SetControlLimitValues changeControlLimits SpcChart ChartData AddNewSampleRecord timestamp samples VB Dim initialControlLimits As Double 0 13 0 0 0 27 Dim changeControlLimits As Double 0 11 0 0 0 25 spc
385. oup sample size Since the plotted value is a fraction or percent of the sample subgroup size the size of the sample group can vary without rendering the chart useless np Chart Also known as the Number Defective Parts Chart For a sample subgroup the number of defective parts is measured and plotted as a simple count Statistically in order to compare number of defective parts for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups c Chart Also known as the Number of Defects or Number of Non Conformities Chart For a sample subgroup the number of times a defect occurs is measured and plotted as a simple count Statistically in order to compare number of defects for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups SPC Attribute Control Charts 255 u Chart Also known as the Number of Defects per Unit or Number of Non Conformities per Unit Chart For a sample subgroup the number of times a defect occurs is measured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgroup sample size Since the plotted value is a fraction or percent of the sample subgroup size the size of the sample group can vary without rendering the chart useless DPMO Chart Also known as the Number of Defects per Million Chart For a sample subgroup the n
386. ower cumulative sum A batch CuSum chart exceeding the H value iB xd EWMA Chart MA Chart CUSum Char Title Variable Control Chart E Date 3 5 2008 4 54 56 PM Part No 283501 Chart No 17 C C The tabular cusum works by accumulating deviations from the process mean Fh Positive deviations are accumulated in the one sided upper cusum statistic C and negative deviations are accumulated in the one sided lower cusum statistic C The statistics are calculated using the following equations max O0 xi K C ia Ci max 0 Fb K eX C i1 where the starting values are C o7 Co 0 Fois the process mean K is the reference or slack value that is usually selected to be one half the magnitude of the difference between the target value Fl and the out of control process mean value F that you are trying to detect K ABS F7 F2 202 SPC Variable Control Charts The control limits used by the chart are H If the value of either C or C exceed H the process is considered out of control The software does not calculate an optimal H or K value that is up to you the programmer to supply based on your past experience with CuSum charts Typically H is set equal to 5 times the process standard deviation Typically K is selected to be one half the magnitude of the difference between the target value 5 and the out of control process mean value Fl that you are trying to
387. p LCL n p 3 Sqrt n p I p n In this case the value n p represents the average number of defective parts per sample subgroup Since p is the estimate or average of the fraction defective per sample subgroup n p is the average number of defective per sample subgroup Or you can add up all the number defective parts in all subgroups and divide by the number of subgroups that to will reduce to the average number of defective per sample subgroup Number Defects Per Million Also known as DPMO UCL up 3000 Sqrt up dopu n Centerline up LCL up 3000 Sqrt up dopu n Number of Defects Control Chart Also known as Number Nonconformities or c chart UCL c 3 Sqrt c Center line Il Q LCL c 3 Sqrt c SPC Attribute Control Charts 289 Number of Defects per Unit Control Chart Also known as Number Nonconformities per Unit or u chart UCL u 3 Sqrt u n Center line u LCL u 3 Sqrt u n Variable SPC Control Limits There can be situations where the SPC control limit changes in a chart If your control limits change you need to set the following ControlLineMode property to SPCChartObjects CONTROL LINE VARIABLE as in the example below The default value is SPCChartObjects CONTROL LINE FIXED spcChart PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE In the SPCChartObjects CONTROL LINE FIXED case the current SPC control limit pl
388. pcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 SpcChart ChartData PartName Transmission Casing Bolt SpcChart ChartData Operation Threading spcChart ChartData SpecificationLimits spcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 SpcChart ChartData UnitOfMeasure 0 0001 inch SpcChart ChartData ZeroEquals zero SpcChart ChartData DateString DateTime Now ToString spcChart ChartData NotesMessage Control limits prepared May 10 spcChart ChartData NotesHeader NOTES row header Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed SpcChart PrimaryChart MinY 0 SpcChart PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed SpcChart SecondaryChart MinY 0 SpcChart SecondaryChart MaxY 40 Display the Sampled value rows of the table spcChart EnableInputStringsDisplay true Display the Sampled value rows of the table spcChart EnableCategoryValues true Display the Calculated value rows of the table spcChart EnableCalculatedValues true Display the total samples per subgroup value row spcChart EnableTotalSamplesValues true Display the Notes row of the
389. pcChart EnableNotes true Display the time stamp row of the table SpcChart EnableTimeValues true spcChart RebuildChartUsingCurrentData VB Sub InitializeChart Initialize the SPCTimeAttributeControlChart spcChart InitSPCTimeAttributeControlChart charttype numcategories 270 SPC Attribute Control Charts numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table spcChart ChartData Title Fraction Defective p Chart spcChart ChartData PartNumber 321 SpcChart ChartData ChartNumber 19 spcChart ChartData PartName Pre paint touchup spcChart ChartData TheOperator S Kafka Display the Sampled value rows of the table spcChart EnableInputStringsDisplay True Display the Sampled value rows of the table spcChart EnableCategoryValues True Display the Calculated value rows of the table spcChart EnableCalculatedValues True Display the total samples per subgroup value row spcChart EnableTotalSamplesValues True Display the Notes row of the table spcChart EnableNotes True Display the time stamp row of the table spcChart EnableTimeValues True spcChart RebuildChartUsingCurrentData End Sub InitializeChart The input header strings display has four sub levels that display increasing levels of information The input header strings display level is set using the charts HeaderSt
390. phBackground YAxisTitle YAxisLab l 20 L i 17 00 PlotBackground SPC Attribute Control Charts 319 Logically enough the properties of the objects that make up each of these graphs are stored in a property named PrimaryChart Once the graph is initialized using the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart method you can modify the default characteristics of each graph using these properties Initialize the SPCTimeAttributeControlChart spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart GraphStartPosX 0 2 Enable scroll bar spcChart EnableScrollBar true spcChart PrimaryChart DisplayFrequencyHistogram true spcChart PrimaryChart XAxis LineColor Colors Blue spcChart PrimaryChart XAxis LineWidth 3 SpcChart PrimaryChart ProcessVariableData LineMarkerPlot LineColor Colors Black spcChart PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryC olor ChartColor BlueViolet spcChart PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColo r ChartColor Beige SpcChart PrimaryChart GraphBackground FillColor ChartColor LightGray spcChart PrimaryChart PlotBackground FillColor ChartColor LightGoldenrodYellow SpcChart PrimaryChart FrequencyHistogramChart PlotBackground FillColor ChartColor LightGoldenrodYellow
391. play all data and control limits spcChart AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings SpcChart RebuildChartUsingCurrentData generate alarms starting now SpcChart ChartData AlarmStateEventEnable True End Sub SPCControlLimitAlarm 218 SPC Variable Control Charts Private Sub SPCControlLimitAlarm ByVal sender As Object ByVal e As SPCControlLimitAlarmArgs Dim alarm As SPCControlLimitRecord e EventAlarm Dim alarmlimitvalue As Double alarm ControlLimitValue Dim alarmlimitvaluestring As String alarmlimitvalue ToString Dim spcData As SPCControlChartData alarm SPCProcessVar Dim spcSource As SPCCalculatedValueRecord e SPCSource Dim calculatedvaluestring As String spcSource CalculatedValue ToString Dim message As String alarm AlarmMessage Dim timestamp As ChartCalendar spcData TimeStamp Dim timestampstring As String timestamp ToString Dim notesstring As String un Timestampstring message gn _ alarmlimitvaluestring Current Value calculatedvaluestring If alarm AlarmState Then Console Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring spcChart ChartData AppendNotesString notesstring True End If End Sub SPCControlLimitAlarm If you want multiple alarms for a time interval vectored to the alarm processing routine i e it
392. pleRecord timestamp samples notesstring Simulate 30 minute passing StartTime Add ChartObj MINUTE 30 VB Private Sub SimulateData Dim notesstring As String Dim i As Integer For i D To 199 306 SPC Attribute Control Charts Add new sample record SpcChart ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute passing startTime Add ChartObj MINUTE 30 Next i End Sub SimulateData Both kinds of tooltips are on by default Turn the tooltips on or off in the program using the EnableDataToolTip and EnableNotesToolTip flags C Enable data and notes tooltips SpcChart EnableDataToolTip true spcChart EnableNotesToolTip true VB Enable data and notes tooltips spcChart EnableDataToolTip True spcChart EnableNotesToolTip True The notes tooltip has an additional option In order to make the notes tooltip editable the tooltip which is Net RichEditBox displays on the first click and goes away on the second click You can click inside the RichTextBox and not worry the tooltip suddenly disappearing The notes tooltip works this way by default If you wish to explicitly set it or change it so that the tooltip only displays while the mouse button is held down as the data tooltips do set the ChartData NotesToolTips ToolTipMode property to NotesToolTip MOUSEDOWN_TOOLTIP as in the example below C Enable data and notes tooltips spcChart Ena
393. plication1 TestPage aspx 9 SLSPCBrowserApplicationi TestPage html E web config Fr UM Properties MainPage xaml File Properties X Looking at the Solution Explorer the top part of the project contains the program specific files They are all the same as the SPCApplication1 except that the namespaces have been changed to reflect the new SLSPCBrowswerApplicationl namespace Creating SPC Charts in Web Applications 429 References to the QCChart2DSL and QCSPCChartSL libraries are added Also the class TimeVariableControlChart is added as described in Chapter 12 The MainPage xaml and MainPage xaml cs vb files are also modified as in Chapter 12 The bottom part of the project contains a web deployment specifics After you sucessfully compile the project you will find a XAP file with the same name as the project in the ClientBin folder The XAP file is a zip file containing all of the files need to run the application There are also aspx and html test pages which can be used to run the program The defaults created for the project do not specify anything about the actual web site the application is to be published to This looks to be a complicated topic involving many options and security settings in the project settings You have probably already solved all of these issues for deployment of Silverlight applications to your web site so adjust the project in line with your other Silverlight projects Everything associated wi
394. products Users have a short memory A company s quality reputation is only as good as the quality of its most recent product The measurement control and gradual improvement of quality is the goal of all quality systems no matter what the name Some of the more common systems are known as SCC Statistical Quality Control Quality Engineering Six Sigma TQM Total Quality Management TQC Total Quality Control TQA Total Quality Assurance and CWQC Company Wide Quality Control These systems work on the principle that management must integrate quality into the basic structure of the company and not relegate it to a Quality Control group within the company Historically most of the innovations in quality systems took place in the 20 century with pioneering work carried out by Frederick W Taylor Principles of Scientific Management Henry Ford Ford Motor W A Shewhart Bell Labs W E Deming Department of Agriculture War department Census Bureau Dr Joseph M Juran Bell Labs and Dr Armand V Feigenbaum among others Most quality control engineers are familiar with the story of how the statistical quality control pioneer W E Deming frustrated that US manufactures only gave lip service to quality took the quality system he developed to Japan where it was embraced with almost religious zeal Japanese industry considers Deming a national hero where his quality system played a major role in the postwar expansion of the Japanese
395. r of defective parts not defects Dim samples As DoubleArray _ spcChart ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record SpcChart ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing startTime Add ChartObj MINUTE 30 Next i End Sub SimulateData In this example the sample data and the time stamp for each sample record is simulated In your application you will probably be reading the sample record values from some sort of database or file along with the actual time stamp for that data If you want to append a text note to a sample record use one of the ChartData AddNewSampleRecord overrides that have a notes parameter The code below is extracted from the TimeAttributeControlCharts SimpleAttributeControlChart example C private void SimulateData String notesstring for int i90 i lt 200 w ChartCalendar timestamp ChartCalendar startTime Clone This simulates an assignable defect for each category the last category is assigned the total number of defective parts not defects DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART double r ChartSupport GetRandomDouble if r 0 1 make a note on every tenth item on average notesstring Note for sample subgroup i ToString Spray paint nozzel clogged Replaced
396. re in is the sample subgroup size You specify Caos L immediately after the initialization call InitSPCTimeVaraibleControlChart for a time based variable control chart or InitSPCBatchVariableControlChart for a batch based variable control chart See the examples MiscTimeBasedControlCharts EWMA Chart and MiscBatchBasedControlCharts EWMA Chart Specify L using the DefaultControlLimitSigma property and isih o the EWMA Lambda property You can optionally set the EWMA starting value EWMA StartingValue normally set to the process mean value and whether or not to use the steady state EWMA control limits UseSSLimits Extracted from the MiscTimeBasedControlCharts EWMAChart example C SPC variable control chart type int charttype SPCControlChartData EWMA CHART SPC Variable Control Charts Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement spcChart ChartData EWMA StartingValue 10 Set to estimate of mean of process variable spcChart ChartData EWMA Lambda 0 1 spcChart DefaultControlLimitSigma 2 7 Specifies L value spcChart ChartData EWMA UseSSLimits false VB SPC variable control chart type Private charttype As Integer SPCControlChartData EWMA CHART Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup n
397. reating Custom Rules Not Associated With Sigma Levels ssssse 343 Control Limit Alarm Event atid ling dt 351 9 Frequency Histogram Pareto Diagram and Normal Probability Charts 352 Frequeney iste cram Chats oe qe n oU a dac ee ipa ope a deque a 352 Probability Plots o b epulae ns aditu et dua Mt i DM nsu Mavic qur 365 Pare ED A A A e SRI E A 371 10 File and Printer Rendering Classe ia 380 Printing Bri rH M Y 381 Capturing the Chart as a Buffered Image 390 11 Regionalization for non USA English Markets eee 392 12 Using SPC Control Chart Tools for Silverlight to Create Silverlight Applications 404 Critical Note Running the Example Programs ccccecceesseesseeeereeeeeeee 404 Visual C for Oily ert OM tes eri A M doen Rut Mel SS 404 Visual Basic for SYIVerig bon Strap dat etm a endet eMe tastiera 417 13 Using SPC Control Chart Tools for Silverlight to Create Web Applications 429 SPC Control Chart Tools for Silverlight 1 Introduction The QCSPCChart for Silverlight software represents an adaptation of the QCSPCChart library to the Silverlight user interface framework We have removed 100 of the GDI based graphics found in the Net System Drawing System Drawing Drawing2D and System Windows Forms namesspaces and replaced them with Silverlight equivalents We have redesigned the chart rendering scheme to work with th
398. ring notesstring for int i 0 i 200 i spcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes VB Private Sub SimulateData Dim notesstring As String Dim i As Integer For i e 0 To l99 SPC Variable Control Charts 233 spcChart ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData Both kinds of tooltips are on by default Turn the tooltips on or off in the program using the EnableDataToolTip and EnableNotesToolTip flags C Enable data and notes tooltips spcChart EnableDataToolTip true spcChart EnableNotesToolTip true VB Enable data and notes tooltips spcChart EnableDataToolTip True spcChart EnableNotesToolTip True The notes tooltip has an additional option In order to make the notes tooltip editable the tooltip which is Net RichEditBox displays on the first click and goes away on the second click You can click inside the RichTextBox and not worry the tooltip suddenly disappearing The notes tooltip works this way by default If you wish to explicitly set it or change it so that the tooltip only displays while the mouse button is held down as the data tooltips do set the ChartDat
399. ringsLevel property Strings that can be displayed are Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString The four levels and the information displayed is listed below HEADER STRINGS LEVELO Display no header information HEADER STRINGS LEVEL Display minimal header information Title PartNumber ChartNumber DateString HEADER STRINGS LEVEL2 Display most header strings Title PartNumber ChartNumber PartName Operation Operator Machine DateString HEADER STRINGS LEVEL3 Display all header strings Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString SPC Attribute Control Charts 271 The example program TimeAttributeControlCharts SimpleA ttributeControlChart demonstrates the use of the HeaderStringsLevel property The example below displays a minimum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI Title Fraction Defective p Chart Part No 321 Chart No 19 C Set the strings used in the header section of the table spcChart ChartData Title Fraction Defective p Chart SpcChart ChartData PartNumber 321 spcChart ChartData ChartNumber 19 spcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER_STRINGS_LEVEL1 VB Set the strings
400. rint The ChartPrint class uses uses the System Windows Printing PrintDocument component to implement printing The class selects setups and outputs a chart to a printer There are two constructors you can use depending on whether you want to print one or multiple charts In the case of the first constructor a ChartView object is passed in and the chart defined in that chart view will be printed In the second constructor a Panel object is passed in this allows multiple ChartView objects positioned using a Panel layout object Grid WrapPanel DockPanel UniformGrid or StackPanel to be printed ChartPrint constructor Visual Basic Overloads Public Sub New _ ByVal component As ChartView _ ByVal nsizemode As Integer _ Overloads Public Sub New _ ByVal component As Panel _ ByVal nsizemode As Integer _ C4 public ChartPrint ChartView component int nsizemode public ChartPrint Panel component int nsizemode component Specifies the ChartView or WPF Panel object to be printed nsizemode Specifies the printer mapping mode Use one of the mapping mode constants 380 File and Printer Rendering PRT MAX Print the view so that paper is used maximally Text prints proportional to other objects aspect ratio is maintained PRT EXACT Print the view at the same size as the screen at least as far as Net maintains a one to one coordespondence in the printing engine The aspect ratio of the view is mainta
401. rint constructor instead of the SPCChart ChartView derived object See the ParetoDiagram example program C private void PrinterDialog object sender RoutedEventArgs e if gridl null cp new ChartPrint gridl ep DoPrintDIlaslog 0 private void PrintGraph object sender RoutedEventArgs e if gridl null if cp null cp new ChartPrint gridl cp DoPrintDialog else cp DoPrintPage File and Printer Rendering 387 public void SaveAsFile object sender RoutedEventArgs e BufferedImage bufimage new BufferedImage gridl imageencoder bufimage Savelmage filename VB Private Sub PrinterDialog sender As Object e As RoutedEventArgs If gridl IsNot Nothing Then cp New ChartPrint gridl cp DoPrintDbialeg End If End Sub Private Sub PrintGraph sender As Object e As RoutedEventArgs If gridl IsNot Nothing Then If ep Is Nothing Then cp New ChartPrint gridl Gp DoPrintDialog t Else cp DoPrintPage End If End If End Sub Public Sub SaveAsFile ByVal sender As Object ByVal e As RoutedEventArgs Dim bufimage As New BufferedImage gridl imageencoder bufimage Savelmage filename End If End Sub 388 File and Printer Rendering Capturing the Chart as a Buffered Image Class BufferedImage ChartObj t BufferedImage The BufferedImage class converts a ChartView or Panel object into a System Media Imaging WriteableBitmap object If you have th
402. rmMessage Dim timestamp As ChartCalendar spcData TimeStamp Dim timestampstring As String timestamp ToString Dim notesstring As String An timestampstring message _ p Ag alarmlimitvaluestring Current Value calculatedvaluestring If alarm AlarmState Then SpcChart ChartData AppendNotesString notesstring True End If End Sub SPCControlLimitAlarm Scatter Plots of the Actual Sampled Data MIA A EE EA UCLX 74 018 3 7400 A MM esc BAR 74 001 73 88 oie uen er nate eee eee LCLX 73 983 73 98 aaa TT If you want the actual sample data plotted along with the mean or median of the sample data set the PrimaryChart PlotMeasurementValues to true C Plot individual sampled values as a scatter plot SpcChart PrimaryChart PlotMeasurementValues true VB Y Plot individual sampled values as a scatter plot SpcChart PrimaryChart PlotMeasurementValues True Enable the Chart ScrollBar SPC Variable Control Charts 227 Form1 inl x Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 14 11 44 12 14 12 44 13 14 13 44 14 14 14 44 15 14 15 44 16 14 16 44 17 14 17 44 18 14 18 44 19 14 2 1 3 4 6 1 4 4 2 2 2 1 0 2 6
403. rmation substituting examples extracted from the for SPC Control Chart Tools for Silverlight examples High quality B amp W and color printing is an important feature of the charting library The resulting graph renders on the printer using the resolution of the output device for both text and graphical elements of the chart and does not transfer a grainy image from the computer to the printer The QCChart2D for Silverlight software implements printing using the System Windows Printing PrintDocument print related services It can select setup and output a chart to a printer Printing from a Silverlight application running in a web browser requires special security considerations In general it can only be initiated by the user not the program The BufferedImage class converts a chart into a System Media Imaging WriteableBitmap object If you have the proper image encoders not included with the Silverlight runtime at this time you can convert the image to standard file formats JPEG TIFF PNG BMP etc There are third party File and Printer Rendering 379 encoders you can use such as ImageTools http imagetools codeplex com Under Silverlight you cannot save image files to arbitrary locations on the client file system Image files can only be saved to Silverlight Isolated Storage Read about Silverlight Isolated Storage here Google Silverlight Isolated Storage Printing a Chart Class ChartPrint ChartObj ChartP
404. rocess standard deviation also known as sigma SPC Variable Control Charts 199 N is the length of the moving average used to calculate the current chart value The software does not calculate an optimal N value that is up to you the programmer to supply based on your past experience with MA charts For the values of Zi where i lt N 1 the weighted average and control limits are calculated using the actual number of samples used in the average rather than N This results in expanded values for the control limits for small 1 lt N 1 Control Limits for the MR part of the MAMR Moving Average Moving Range Chart Control Limits for the R Chart UCL R Da R Center line R LCL 0 R in this case is the average of the moving ranges Where the constant D is tabulated in every SPC textbook for various sample sizes Control Limits for the MS part of the MAMS Moving Average Moving Sigma Chart UCL B S Center line S LCL B S S in this case is the average of the moving sigmas Where the constant B is tabulated in every SPC textbook for various sample sizes 200 SPC Variable Control Charts The software does not calculate an optimal N value that is up to you the programmer to supply based on your past experience with MA charts For the values of zi where i lt N 1 the weighted average and control limits are calculated using the actual number of samples used in the average rather than N This results in exp
405. rolChartData class Set to True to signify that any alarm should invoke the AlarmStateEventHandler Set to True to signify that any change in an alarm state should invoke the AlarmTransitionEventHandler Set Get data table chart number string Set Get the header for the chartNumber field Get the current number of records for the chart Set to true to enable data logging If a data log file has not been previously opened with DataLoglsolatedStorageFileOpenForWrite a new data log file is created using the default name combined with a time stamp The CSV Comma Separated Value specifyier for the logging data SPC data to a file The string used as the file name for data logging Set when the DataLoglsolatedStorageFileOpenForWrite is called Set Get the flags that control what items are logged to the data log file The default has all of the optional items logged to the file OR together individual data log file flags to specify the items you want logger to the file For example DatalogFlags DATALOG_FILE_TIME STAMP DATALOG FILE SAMPLED VALUES DATALOG FILE CALCULATED VALUES DATALOG FILE COLUMN HEADS Use one DataLogUserString DateHeader DateString DefaultDefectRowHeaderPrefix DefaultSampleRowHeaderPrefix DefectiveDecimalPrecision Gage GageHeader Machine MachineHeader NotesHeader NotesMessage NotesToolTips NumberSamples ValueRowHeader NumCalculatedValues NumRecordsPerChart N
406. round 196 These rules apply to both sides of the center line at a time Therefore there are eight actual alarm conditions four for the above center line sigma levels and four for the below center line sigma levels There are also additional WE Rules for trending These are often referred to as WE Supplemental Rules Don t rely on the rule number often these are listed in a different order 5 Six points in a row increasing or decreasing The same logic is used here as for rule 4 above Sometimes this rule is changed to seven points rising or falling 6 Fifteen points in a row within one sigma In normal operation 6896 of points will fall within one sigma of the mean The probability that 15 points in a row will do so is less than 196 7 Fourteen points in a row alternating direction The chances that the second point is always higher than or always lower than the preceding point for all seven pairs is only about 1 8 Eight points in a row outside one sigma Since 68 of points lie within one sigma of the mean the probability that eight points in a row fall outside of the one sigma line is less than 1 Named and Custom Control Rule Sets 325 The rules are described as they appear in the literature In many cases a given rule actually specifies two test conditions the first being a value N out of M above a plus sigma control limit and the second being a value N out of M below a minus sigma control limit Examples of this are rul
407. roup where numsamplespersubgroup 5 samples 0 samplevalueO the samplevalue values come from your process samples 1 samplevaluel the samplevalue values come from your process samples 2 samplevalue2 the samplevalue values come from your process samples 3 samplevalue3 the samplevalue values come from your process samples 4 samplevalue4 the samplevalue values come from your process End If Dim datetime 1 As DateTime DateTime Now Dim datetimestring As String datetime 1 ToShortDateString amp datetime 1 ToLongTimeString Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Next End Sub End Class Creating SPC Charts in Windows Applications 425 Reference and initialize the newly created TimeVariableControlChart class in the MainPage xaml vb behind code file The SPCApplicationlexample program also includes printer and image routines in to support the printer and image menus items defined in the MainPage xaml file You may or may not want to include those in your program Namespace SPCApplicationl lt summary gt Interaction logic for MainPage xaml vr lt summary gt Partial Public Class Window Inherits Window Private ucc As TimeVariableControlChart Public Sub New Init
408. rray 5 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect category 5 Randomize the sample subgroup size to some value less than the maximum value entered in the call to InitSPCTimeAttributeControlChart and set the charts ChartData SampleSubgroupSize VSS property with this value immediately prior to the AddNewSampleRecord call spcChart ChartData SampleSubgroupSize VSS numsamplespersubgroup int 25 ChartSupport GetRandomDouble Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 0 Number of defects for defect category 2 samples 2 4 Number of defects for defect category 3 samples 3 2 Number of defects for defect category 4 126 SPC Control Data and Alarm Classes samples 4 3 Number of defects for
409. rt AddControlRule template N M sigmavalue displaylimitline Creating Custom Rules Not Associated With Sigma Levels Most of the preceding control rules are based on the mean and sigma of the current control chart The trending rules N of M increasing decreasing are an exception because they don t use the mean or sigma value anywhere in their evaluation Regardless since many of the named rules include trending rules they are included with the previous section There are a couple of other control rules not directly related to the mean and sigma value of the chart The first is a simple numeric limit The limit is meant to be independent of the mean and sigma level of the chart It can also be considered a specification limit We have three routines you can use to add a numeric control limit to a chart The first AddSpecLimit creates a specification limit which monitors the main variable of the chart and compares its value to the specified numeric threshold It will display in the chart as a line with a limit string to the right of the plot area 342 Named and Custom Control Rule Sets SPCChartObjects AddSpecLimit Method Visual Basic Declaration Public Function AddSpecLimit _ speclimittype As Integer _ value As Double _ displaystring As String _ attrib As ChartAttribute _ y As SPCControlPlotObjectData Cz public SPCControlPlotObjectData AddSpecLimit int speclimittype double value string displaystring Char
410. rt2D Class Summary 85 Polar plots that use data organized as arrays of x and y values where an x value represents the magnitude of a point in polar coordinates and the y value represents the angle in radians of a point in polar coordinates Polar plot types include line plots and scatter plots PolarPlot This class is an abstract base class for the polar plot classes Polar Line and Scatter Plots The polar line charts use true polar not linear interpolation between data points PolarLinePlot PolarScatterPlot Antenna Plot Classes AntennaPlot AntennaLinePlot This class is a concrete implementation of the PolarPlot class and displays data in a simple line plot format The lines drawn between adjacent data points use polar coordinate interpolation This class is a concrete implementation of the PolarPlot class and displays data in a simple scatter plot format 86 OCChart2D Class Summary AntennaScatterPlot AntennaLineMarkerPlot GraphObj AntennaAnnotation Antenna plots that use data organized as arrays of x and y values where an x value represents the radial value of a point in antenna coordinates and the y value represents the angle in degrees of a point in antenna coordinates Antenna plot types include line plots scatter plots line marker plots and an annotation class AntennaPlot This class is an abstract base class for the polar plot classes 270 180 AntennaLineMarkerPlot Anten
411. rtColor LightGray VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND spcChart ChartTable BackgroundColorl ChartColor LightGray Extracted from the TimeVariableControlCharts XBarSigma example program Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 12 21 2005 1 36 55 PM C spcChart ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB spcChart ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND SPC Variable Control Charts 179 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 4 15 2008 4 53 41 PM TIME 16 53 17 08 17 23 17 38 17 53 18 08 18 23 18 38 18 53 19 08 19 23 19 38 19 53 20 08 20 23 20 38 20 53 MEAN 29 7 30 6 31 5 30 3 31 1 28 6 28 8 29 4 28 9 31 0 29 0 28 1 32 8 30 2 29 5 30 3 32 5 RANGE 10 8 11 4 7 2 10 1 114 10 0 99 76 11 5 9 7 11 3 10 8 9 5 118 126 9 6 85 SUM 148 71152 9 157 5 151 7 155 6 142 9 143 9 147 1 144 3 154 8 144 9 140 4 163 8 151 2 147 3 151 4
412. rts is measured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgroup sample size Since the plotted value is a fraction or percent of the sample subgroup size the size of the sample group can vary without rendering the chart useless The p Chart chart can also be used if the sample subgroup size varies from sampling interval to sampling interval In this case the control chart high and low limits vary from sample interval to sample interval depending on the number of samples in the associated sample subgroup A low number of samples in the sample subgroup make the band between the high and low limits wider than if a higher number of samples are available Both the Fraction Defective Parts and Percent Defective Parts control charts come in versions that support variable sample sized for a subgroup Fraction Defective Parts p Chart with variable sample size i Number Defects Per Unit u chart Batch X Bar Sigma Title Fraction Defective p Chart 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Date 3 20 2009 1 05 12 PM TIME 13 05 13 35 14 05 14 35 15 05 15 35 16 05 16 35 17 05 17 35 18 05 18 35 19 05 19 35 20 05 20 35 21 05 Scratch 0 Burr 1 Dent 2 Seam 1 Other 6 1 6 NO DEFECTIVE 13 5 4 1 13 2 11 5 10 10 1 13 6 5 FRACT DEF 0 243 0 265 0 143 0 089 0 379 0 000 0 310 0 049 0 234 0 119 0 238 0 303 0 200 0 029 0 317 0 122 0 147 NO INSP 37 49 35 45
413. ryChart YAxisLab TextFont new ChartFont Times 14 FontStyles Normal VB SpcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes spcChart PrimaryChart XAxisLab TextFont new ChartFont Times 10 FontStyles Normal SpcChart PrimaryChart YAxisLab TextFont new ChartFont Times 14 FontStyles Normal Table and Chart Templates 280 SPC Attribute Control Charts All of the strings displayed in the table and charts use a template unique to the string type Numeric strings use a NumericLabel template time date strings use a time TimeLabel template and so on These templates permit the programmer to customize the display of the strings The various templates are listed below SPCChartObjects Accessed in the charts PrimaryChart and SecondaryChart properties Property Type Description XValueTemplate NumericLabel The x value template for the data tooltip Y ValueTemplate NumericLabel The y value template for the data tooltip XTimeValueTemplate TimeLabel x value template for the data tooltip TextTemplate ChartText The text template for the data tooltip SPCGeneralizedTableDisplay Accessed in the charts ChartTable property Property Type Description TimeltemTemplate TimeLabel The TimeLabel object used as a template for displaying time values in the table SampleltemTemplate NumericLabel The NumericLabel object used as a template for displayin
414. s ccccccccccessccessceeseccesseceseccesseceseseseccssecesseecsseecesscceseceesecesseecsseecsseceesesesseeeeetsaeeeeeeeees 58 65 66 100 Cartesian C oOrdimales AA seis eee 58 65 66 100 GellPlot 31 2 psit a ot o POP e e eoo eter eco noni tea d tet de ey 78 81 101 Chart Fontana tt eU e E DATED de RR MEE UTE TE PRU ode EUER eb rtc Add 180 181 277 279 A RES 180 181 182 277 279 Chart object attributes oie eode dera dotadas 62 66 Chatt POSITIONS ROO 186 281 SHAT CPSU Rigs aro seme Fenana tt er oes praes te ene il cep E pedea picti fud 186 281 ChartAlarmEmphasisMode eese eene enne ener tenente nent nne tnn inen ena 162 185 237 262 309 ChartAlarmEmphasisMode cccccsccsssessecsscesseesecesecceesecesecssecseessecesecnesseeesecaecsceeseceaeceseceecseceseceseceeeseeeseseeesensaeeeeaeees ChartAlarmEmphasisMode cccccescceeseeeseceeeeeeeeeseeenseeeseeees 162 185 237 262 309 Mart A thr LOIDE AE TET ET or o Rt eq a eo ri s p Su S cat GL FTES Hage 66 67 68 100 364 ChartAttribute 15 66 67 68 100 220 344 345 346 347 348 349 364 ChartCalendar 64 68 72 94 98 100 118 119 120 121 122 125 126 127 128 129 130 131 139 140 165 166 167 168 218 219 222 223 224 225 226 227 243 244 259 266 268 299 300 301 302 315 ChartCalendar 64 68 72 94 98 100 117 118 119 120 121 122 125 126 127 128 129 130 131 139 140 15
415. s Price 35 30 25 NASDAQ QCChart2D Class Summary 81 Daily Stock Price a ERI i T 1 05 09 FloatingStackedBarPlot T T T T T T T 1 12 09 1 19 09 1 26 09 2 02 09 This class is a concrete implementation of the GroupPlot class and displays free floating stacked bars The bars are free floating because each bar does not reference a fixed base value as do simple bar plots stacked bar plots and group bar plots Drug Sales The Group bar graph and the Stacked bar graph represent two different ways of displaying the same data GroupBarPlot This class is a concrete implementation of the GroupPlot class and displays group data in a group bar format Individual bars the height of which corresponds to the group y values of the dataset display side by side as a group justified with respect to the x position value for each group The group bars share a common base value 82 QCChart2D Class Summary StackedBarPlot This class is a concrete implementation of the GroupPlot class and displays data as stacked bars In a stacked bar plot each group is stacked on top of one another each group bar a cumulative sum of the related group items before it GroupVersaPlot The GroupVersaPlot is a plot type that can be any of the eight group plot types GROUPBAR STACKEDBAR CANDLESTICK OHLC MULTILINE STACKEDLINE FLOATINGBAR and FLOATING STACKED BAR Use it when you want
416. s Inc SOFTWARE identified above which includes all Quinn Curtis Inc Net software on any media and related documentation on any media By installing copying or otherwise using the SOFTWARE you agree to be bound by the terms of this EULA If you do not agree to the terms of this EULA do not install or use the SOFTWARE If the SOFTWARE was mailed to you return the media envelope UNOPENED along with the rest of the package to the location where you obtained it within 30 days from purchase 1 The SOFTWARE is licensed not sold 2 GRANT OF LICENSE A Developer License After you have purchased the license for SOFTWARE and have received the file containing the licensed copy you are licensed to copy the SOFTWARE only into the memory of the number of computers corresponding to the number of licenses purchased The primary user of the computer on which each licensed copy of the SOFTWARE is installed may make a second copy for his or her exclusive use on a portable computer Under no other circumstances may the SOFTWARE be operated at the same time on more than the number of computers for which you have paid a separate license fee You may not duplicate the SOFTWARE in whole or in part except that you may make one copy of the SOFTWARE for backup or archival purposes You may terminate this license at any time by destroying the original and all copies of the SOFTWARE in whatever form B 30 Day Trial License You may download and use the SO
417. s charts Frequency Histograms Probability Charts Pareto Charts OO Variable Control Charts Variable Control Charts are for use with sampled quality data that can be assigned a specific numeric value other than just 0 or 1 This might include but is not limited to the measurement of a critical dimension height length width radius etc the weight a specific component or the measurement of an important voltage Common types of Variable Control Charts include X Bar R Mean and Range X Bar Sigma Median and Range X R Individual Range EWMA MA MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma and CuSum charts Standard SPC Control Charts 21 Typical Time Base Variable Control Chart X Bar R with header information f Sisic with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 123456 Chart No 18 Operator T Moosey Machine 11 UCLX 74 015 XBAR 74 001 LCLX 73 988 RBAR 0 023 X Bar R Chart Also known as the Mean or Average and Range Chart The X Bar R chart monitors the trend of a critical process variable over time using a statistical sampling method that results in a subgroup of values at each subgroup interval The X Bar part of the chart plots the mean of each sample subgroup and the Range part of the chart monitors the difference between the minimum and maximum value in t
418. s in the SPC table SPCDataToolTip The SPCDataTooTip displays the data tooltip for SPC Charts SPC Calculations SPCArrayStatistics SPC involves many statistical calculations The SPCArrayStatistics class includes routines for the calculation of sums means medians ranges minimum values maximum values variances and standard deviations It also includes routines for array sorting and calculating frequency bins for frequency histograms It also includes functions that compute cumulative probability values for normal Poisson and chi squared distributions SPCControlParameters Class Architecture 59 The SPCControlParameters class contains the factors and formulas for calculating SPC control chart limits for Variable and Attribute Control Charts It includes calculations for the most common SPC charts X Bar R Median and Range X Bar Sigma X R u chart p chart np chart and c chart Tabular Display Table Display of Sampled and Calculated SPC Control Chart Value Static Dynamic with Freq Histograms with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 16 33 16 48 17 03 17 18 17 33 17 48 18 03 2 39 23 41 43 41 22 39 48 140 33 51 47 51 43 20 44 27 4 27 46 28 19 40 24 24 26 38 51 48 37 29 27 19 39 33 39 4 31 2 30 0 348 42 9 29 6 34 8 43 2 36
419. s then the x value is displayed as a time stamp otherwise it is displayed as a simple numeric value as is the y value You can optionally display subgroup information sample values calculated values process capability values and notes in the data tooltip window under the x y value using enable flags in the primary charts tooltip property Extracted from the TimeVariableControlCharts X BarRChart example C spcChart PrimaryChart Datatooltip EnableCategoryValues true spcChart PrimaryChart Datatooltip EnableProcessCapabilityValues true spcChart PrimaryChart Datatooltip EnableCalculatedValues true spcChart PrimaryChart Datatooltip EnableNotesString true 230 SPC Variable Control Charts VB spcChart PrimaryChart Datatooltip EnableCategoryValues True spcChart PrimaryChart Datatooltip EnableProcessCapabilityValues True spcChart PrimaryChart Datatooltip EnableCalculatedValues True spcChart PrimaryChart Datatooltip EnableNotesString True where The following properties enable sections of the chart header and table PrimaryChart Datatooltip EnableCategory Values PrimaryChart Datatooltip EnableProcessCapability Values PrimaryChart Datatooltip EnableCalculated Values PrimaryChart Datatooltip EnableNotesStrings Display the category subgroup sample values in the data tooltip PrimaryChart Datatooltip EnableCategoryValues true Display the calculated values used in the chart Mean range and sum for an Mean R
420. s which superficially looks like the old System Drawing Font class That way we could keep source codes consistent System Drawing C Font theFont new Font Microsoft Sans Serif 10 FontStyle Regular VB Dim theFont As New Font Microsoft Sans Serif 10 FontStyle Regular 14 Introduction WPF Silverlight References to Font are replaced with the QCChart2D QCSPCChart class ChartFont Since the WPF Silverlight FontStyle type does not include bold options an additional constructor is added which has a FontWeight parameter Specify the font weight using one of the FontWeights enumerated constants CA ChartFont theFont new ChartFont Microsoft Sans Serif 10 FontStyles Normal ChartFont theFont new ChartFont Microsoft Sans Serif 10 FontStyles Normal FontWeights Bold VB Dim theFont As New ChartFont Microsoft Sans Serif 10 FontStyles Normal Dim theFont As New ChartFont Microsoft Sans Serif 10 FontStyles Normal FontWeights Bold Font Style Constants The System Drawing FontStyle enumerated constants are different than the WPF Silverlight FontStyles constants Net Forms WPF Silverlight Bold Italic Oblique Italic Regular Normal Normal Strikeout Underline Font Weight Constants The WPF Silverlight FontWeights enumerated constants include Bold DemiBold ExtraBlack ExtraBold ExtraLight Heavy Light Medium Normal Regular SemiBold Thin UltraBlack UltraThin and UltraBold Gri
421. sampled value record ValueDescription Get Set the description of sampled value record Public Instance Methods SPC Control Data and Alarm Classes 143 Copy Copies the source object GetCalculatedV alueStatistic Calculate a statistic for the historical data associated with the sample item SetSampledValue Set the current value of the record and adds the value to the historical array of the sampled value record SPCControlLimitRecord This class holds information specific to a SPC control limit including the current value of the control limit a history of control limit values description and the hysteresis value for alarm checking Public Static Shared Fields SPC GREATERTHAN LIMIT Specifies the alarm is a greater than alarm SPC LOWERTHAN LIMIT Specifies the alarm is a lower than alarm SPC NOTA LIMIT Specifies the limit is not an alarm just a value Public Instance Constructors SPCControlLimitRecord Overloaded Initializes a new instance of the SPCControlLimitRecord class Public Instance Fields controlLimitValues A historical record of the control limit values Public Instance Properties AlarmDisplay Get Set the alarm display flag AlarmEnable Get Set the alarm enable flag AlarmMessage Get Set the current alarm message AlarmState Get Set the alarm state true if the last call to CheckAlarm show that the process variable currently in alarm ControlLimitText Get Set the Normal alarm message Co
422. serControl s behind code file The UserControl derived class is then referenced in the main MainPage xaml file The UserControlSPCChartExamplel demonstrates this method Or You can add a UserControl to your program but change the inheritance from UserControl to one of the SPC chart types SPCTimeVariableControlChart in this case Since SPCTimeVariableControlChart is a subclass of UserControl this is valid In this case you want to remove the Grid section from the xaml file of the SPCTimeVariableControlChart derived class The Grid panel is opaque and the chart will not show through The SPCTimeVariableControlChart derived class is Creating SPC Charts in Windows Applications 415 then referenced in the main MainPage xaml file See the UserControlSPCChartExample2 program for an example of this technique Visual Basic for Silverlight e Ifyou do not already have an application program project create one using the Visual Studio project wizard File New Project Visual Basic Silverlight On the right select a project type of Silverlight Application Give the project a unique name In our examples slfolder this example is the SPCApplication1 so give your example a different name such as SilverlightApplicationl You will end with a basic Silverlight based application For purposes of this example the chart will placed in the initial default window New Project Recent Templates Installed Templates NET Framework 4 y Sort
423. sigma and 2 sigma level The operator might receive some sort of preliminary warning if the process variable exceeds a 2 sigma limit You are able to add additional control limit lines to an attribute control chart as in the example program TimeAttributeControlCharts MultipleControlLimitsChart SPC Attribute Control Charts 293 Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator S Kafka Machine Date 12 28 2005 1 21 14 PM Time 13 21 13 51 14 21 14 51 15 21 15 51 16 21 16 51 17 21 17 51 18 21 18 51 19 21 19 51 20 21 20 51 21 21 Scratch 2 1 4 0 1 0 4 0 2 0 2 0 5 1 0 5 6 Burr 2 1 4 0 0 2 0 0 2 1 2 5 0 1 5 0 4 Dent 2 1 4 0 1 2 1 0 1 1 1 3 0 1 a 4 5 Seam 2 1 1 1 1 0 1 0 1 4 0 6 1 0 5 4 4 Other 2 1 4 1 1 1 5 1 1 5 4 3 5 1 1 5 3 NO DEFECTIVE 4 3 10 2 2 5 11 1 5 11 9 12 11 2 12 13 13 FRACT DEF 0 080 0 060 0 200 0 040 0 040 0 100 0 220 0 020 0 100 0 220 0 180 0 240 0 220 0 040 0 240 0 260 0 260 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N UCLP 0 28 UCLR2 0 23 20 2 L1 J r UCLR1 0 18 Q b x o PBAR 0 13 L x w 0 1 4 m LCLR1 0 09 LCLR2 0 04 0 0 r i TT I a E SS AAA LCLP 0 00 14 00 15 00 16 00 17 00 18 00 19 00 20 00 21 00 mim w We added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial spec
424. spersubgroup 4 SPCTimeVariableControlChart spcChart public TimeVariableControlChart SPCTimeVariableControlChart spcchart Define and draw chart SpcChart spcchart InitializeChart public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 19 Initialize the SPCTimeVariableControlChart SpcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes SpcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL1 Set the strings used in the header section of the table SpcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 SpcChart ChartData ChartNumber 17 410 Creating SPC Charts in Windows Applications Mean SpcChart ChartData PartName Transmission Casing Bolt SpcChart ChartData Operation Threading Display the Sampled value rows of the table SpcChart EnableInputStringsDisplay true Display the Sampled value rows of the table SpcChart EnableCategoryValues true Display the Calculated value rows of the table SpcChart EnableCalculatedValues true Display the total samples per subgroup value row SpcChart EnableTotalSamplesValues true Display the Notes row of the table SpcChart EnableNotes true
425. splay all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange Once all of the graph parameters are set call the method RebuildChartUsingCurrentData C Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData VB Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData If at any future time you change any of the chart properties you will need to call RebuildChartUsingCurrentData to force a rebuild of the chart taking into account the current properties RebuildChartUsingCurrentData also invalidates the chart and forces a redraw Our examples that update dynamically demonstrate this technique The chart is setup with some initial settings and data values As data is added in real time to the graph the chart SPC limits and y scales are constantly recalculated to take into account new data values The following code is extracted from the TimeVariableControlCharts DynamicXBarRChart example C private void timerl Tick object sender System EventArgs e ChartCalendar timestamp ChartCalendar startTime Clone 222 SPC Variable Control Charts Use the ChartData sample simulator to make an array of sample data DoubleArray samples spcChart ChartData SimulateMeasurementRecord 30 Add the new sample s
426. ss for storing and calculating process capability statistics Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk SPC Charts and Related Chart Objects SPCChartBase The SPCChartBase forms the base object for all SPC control charts The variable control chart templates SPCBatchVariableControlChart and SPCTimeVariableControlChart and attribute control charts SPCBatchAttributeControlChart and SPCTimeAttributeControlChart are derived from the SPCChartBase class Class Architecture 51 Typical Batch Variable Control Chart Mean and Range or X Bar R Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 11 40 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 19 40 2 31 24 33 29 27 35 23 29 26 27 33 34 32 36 29 33 29 30 0 279 324 313 282 352 29 1 302 275 322 316 294 273 308 286 347 30 0 90 0 83 7 97 1 938 845 1055 874 906 824 966 948 882 82 0 925 85 7 104 0 89 9 SPCBatchVariableControlChart A Batch Variable Control Chart class that uses a CartesianCoordinate system with a numeric based X Axis This class creates MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS EWMA CHART TABCUSUM MA CHART MAMR CHART and MAMS CHART chart types 52 Class Architecture Typical Time Variable Control Chart Individual Range or XR Chart XBarR Individual Range Individual Ran
427. st de SE TG 64 65 100 Lina cala ce ee blat esas Te Pet ed S ae 64 65 100 LineGapPlot erecta eant ce retard e e ata oret prae ona e e oe eerte inst 78 84 101 Meier 78 84 101 LO GAUOS Cale ie E 67 100 DEOBAXIS t otaot m ao DH EE IE OE idas 69 71 75 76 93 101 OLAS P E REDEEM E EA TY 69 71 75 76 93 LO gS ale seve eene d at RH OTRO RIPE IR Tee geared ag hh OTHO THEO El e d ies 64 65 100 MSS CAG dud mee eon re dete nite pia ura i lac d e 64 65 100 MA chatte ertet aree e ta als 26 29 154 155 166 199 200 201 ma chart 6 19 22 25 26 28 29 43 46 153 154 155 160 166 195 196 197 199 200 201 242 MAME CAE esiti ert ip id 154 MR part of the MAMR Moving Average Moving Range Chart ss 200 MS part of the MAMS Moving Average Moving Sigma Chart sse 200 MINI TA esee cer eet e ree replete ee E E RI cba Eee rene RA HU Dro det e capahetescant lect ses 95 97 100 MAMR Chata EROR HBST GNO SU ENTRE ET IOTER wem MAMR Cda di EU e bs 26 27 154 MAMR Ch rts 5 a5 xara estas Sa ca Ur E a A ENT PU A I I SERES NEUE MAMR 1 6 8 19 20 26 27 46 52 53 111 153 154 161 163 200 242 345 MAMI da o Fac Eo re Rear AT 200 M AMS Charts obe dateien etae eive A a tectis bati ARES MAM S DAT ss ies eco iiti eise eU reir vet itu apte eno ien ede eR S 8 27 28 155 MAMS Ch its t nint ene
428. subgroup size is some fraction of the total production level there is one value in the samples array for each measurement sample in the sample subgroup interval If the production level is sixty items per hour and the sample size is five items per hour then the graph would be updated once an hour with five items in the samples array C DoubleArray samples new DoubleArray 5 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples samples 2 0 322 Third of five samples samples 3 0 021 Fourth of five samples samples 4 0 133 Fifth of five samples Add the new sample subgroup to the chart spcChart ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 0 121 First of five samples samples 1 0 212 Second of five samples SPC Control Data and Alarm Classes 119 samples 2 0 322 Third of five samples samples 3 0 021 Fourth of five samples samples 4 0 133 Fifth of five samples Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples In an Individual Range chart w
429. t and deletes it from the project The primary view class of the QCSPCChart library is the ChartView class The ChartView class derives from the Net System Windows Controls UserControl class It has the properties and methods of the underlying UserControl class Follow the following steps in order to incorporate the QCSPCChart classes into your program This is not the only way to add charts to an application In general any technique that works with UserControl derived classes will work We found the technique described below to be the most flexible Visual C for Silverlight Ifyou do not already have an application program project create one using the Visual Studio project wizard File New Project Visual C Silverlight On the right select a project type of Silverlight Application Give the project a unique name In our examples slfolder this example is the SPCApplication1 so give your example a different name such as SilverlightApplicationl You will end with a basic Silverlight based application For purposes of this example the chart will placed in the initial default window Creating SPC Charts in Windows Applications 403 New Project Recent Templates Installed Templates Visual Basic a NET Framework 4 v Sort by Default search Installed Temple JO Type Visual C c Silverlight Application Visual C ua zi 4 blank project For creating a rich internet Visual C application using S
430. t even easier to find out whether the variations are the result of natural variations or the result of some systemic change in the process You can turn on integrated frequency histograms for either chart using the PrimaryChart DisplayFrequencyHistogram and SecondaryChart DisplayFrequencyHistogram properties of the chart C frequency histogram for both charts SpcChart PrimaryChart DisplayFrequencyHistogram true spcChart SecondaryChart DisplayFrequencyHistogram true VB Y frequency histogram for both charts spcChart PrimaryChart DisplayFrequencyHistogram True spcChart SecondaryChart DisplayFrequencyHistogram True SPC Variable Control Charts 229 SPC Chart Data and Notes Tooltips You can invoke two types of tooltips using the mouse The first is a data tooltip When you hold the mouse button down over one of the data points in the primary or secondary chart the x and y values for that data point display in a popup tooltip Data Tooltip S Formi Oj x Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 2 FRACT DEF 23 00 0 00 12 02 05 In the default mode the data tooltip displays the x y value of the data point nearest the mouse click If the x axis is a time axi
431. t for the complex graphics required in game 4 Introduction programming One of the strong selling points of DirectX is that the Windows operating system can offload time intensive graphics calculations to specialized GPU Graphics Processing Unit chips found in high and medium end computers Starting early in the last decade Microsoft wrote an alternative graphics rendering and user interface framework around DirectX This framework is known as the Windows Presentation Framework or WPF for short At the same time Microsoft was developing WPF it also developed another related product now known as Silverlight Silverlight is an application framework for writing and running rich Internet applications Programs written using Silverlight can run on a large number of browsers running on a great variety of hardware platforms many more than either regular Net or WPF Since WPF and Silverlight both are Net based products they share much of the same code base Silverlight uses a retained mode graphics system very similar to WPF though much more streamlined in order to minimize the Silverlight download footprint critical for web applications It includes many of the same overall features as WPF Resolution independence An emphasis on vector graphics means that programs can be more easily designed to be independent of the resolution of the output device GArbitrary line thickness and line styles for all lines GGradients fill patterns and
432. t header strings display has four sub levels that display increasing levels of information The input header strings display level is set using the charts HeaderStringsLevel property Strings that can be displayed are Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString The four levels and the information displayed is listed below HEADER STRINGS LEVELO Display no header information HEADER STRINGS LEVEL Display minimal header information Title PartNumber ChartNumber DateString HEADER STRINGS LEVEL2 Display most header strings Title PartNumber ChartNumber PartName Operation Operator Machine DateString HEADER STRINGS LEVEL3 Display all header strings Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString The example program TimeVariableControlCharts X BarRChart demonstrates the use of the HeaderStringsLevel property The example below displays a minimum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 C Set the strings used in the header section of the table SPC Variable Control Charts 175 spcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber
433. t spcChart public ParetoPlot ParetoChart pc SpcChart Frequency Histograms Pareto Diagrams Probability Charts 371 pc Define and draw chart InitializeChart void InitializeChart add Pareto SpcC SpcC SpcC SpcC spec speg tegoryItem 5 tegoryItem 7 tegoryItem 2 tegoryItem 11 tegoryItem 27 tegoryItem 8 hart AddCa hart AddCa hart AddCa hart AddCa hart AddCa hart AddCa f f Build chart hart Buildchart i SpcC VB Public Class ParetoPlot Private spcChart As ParetoChart chart categories values and strings Torn Not Enough nComponent Others Poor Mix Holes Stains s Public Sub New pc As ParetoChart SpcChart pe Define and draw chart InitializeChart End Sub Sub InitializeChar add Pareto c SpcC speg SpcC spot spa SpcC nart nart NACT nart nart AddCa AddCa AddCa AddCa AddCa Mart AddCa Build chart t0 hart ca tegoryl tegoryl tegoryl tegoryl tegoryl tegoryl tegories tem 5 To tem 7 No tem 2 Ot tem 11 P tem 27 H tem 8 St values and strings rn t Enough ControlChars Lf Component hers oor Mix oles alins 372 Frequency Histograms Pareto Diagrams Probability Charts spcChart BuildChart End Sub InitializeChart End Class All you have to do is supply the raw data and the valu
434. t to the frequency bins Get the graph background object Get the default graph border for the chart Get the GroupDatset object that holds the data used to plot the histogram Get the main title object for the chart Get the plot background object Set Get True the ChartView object list is cleared with each redraw Get the subhead title object for the chart Get the x axis object Get the x axis labels object Get the x axis title object Get the x axis grid object Get the y axis object Get the y axis labels object Accessible only 358 Frequency Histograms Pareto Diagrams Probability Charts Y AxisTitle Y Grid Public Instance Methods AddFrequencyHistogramControlLine Copy InitFrequencyHistogram InitFrequencyHistogramDataset after BuildGraph Get the y axis title object Get the y axis grid object Add a control limit line to the frequency histogram Overloaded Copies the source FrequencyHistogramChart object Initializes the histogram frequency bin limits and the data values to be analyzed for the histogram Builds the histogram dataset histogramDataset using the values in frequency Values and frequencyLimits Changing Default Characteristics of the Chart Frequency Histograms Pareto Diagrams Probability Charts 359 M Formi O x Frequency Histogram of Selected Data MainTitle YAxisLab AAA AAA A prone FrequencyHistogramPlot 10 he e S S 2 Lu 5 econ Lc YAxisTitle
435. tAttribute attrib Parameters speclimittype Specifiy either SPCChartObjects SPC LOWER SPEC LIMIT or SPCChartObjects SPC UPPER SPEC LIMIT value Specifies the value of the specification limit displaystring The optional display string displayed to the right of the spec limit line attrib The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the specification limit CH SpcChart PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC new ChartAttribute Colors Green 3 0 SpcChart PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC new ChartAttribute Colors Yellow 3 0 Named and Custom Control Rule Sets 343 VB SpcChart PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC new ChartAttribute Colors Green 3 0 SpcChart PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC new ChartAttribute Colors Yellow 3 0 The second AddNumericControlLimit creates a limit which monitors the value of one of the charts SPCCalculatedValueRecord object values This is what you would use if you wanted to monitor a subgroup mean range sigma against some arbitrary control limit since in the appropriate charts the subgroup mean range and sigma are SPCCalculatedValueRecord objects The type and ordering of the SPCCalculatedValueRecord records is unique to each chart type
436. table spcChart EnableNotes true Display the time stamp row of the table spcChart EnableTimeValues true VB 170 SPC Variable Control Charts Change the default horizontal position and width of the chart SpcChart GraphStartPosX 0 1 start here SpcChart GraphStopPosX 0 875 end here Set the strings used in the header section of the table SpcChart ChartData Title Variable Control Chart X Bar amp R SpcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 SpcChart ChartData PartName Transmission Casing Bolt SpcChart ChartData Operation Threading spcChart ChartData SpecificationLimits SpcChart ChartData TheOperator J Fenamore spcChart ChartData Machine 11 spcChart ChartData Gage 8645 SpcChart ChartData UnitOfMeasure 0 0001 inch spcChart ChartData ZeroEquals zero SpcChart ChartData DateString DateTime Now ToString spcChart ChartData NotesMessage Control limits prepared May 10 SpcChart ChartData NotesHeader NOTES row header Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed SpcChart PrimaryChart MinY 0 spcChart PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed SpcChart SecondaryChart MinY 0 SpcChart SecondaryChart MaxY 40 Displa
437. template where you need only supply data and set a few properties to create a proper frequency histogram The example below extracted from the FrequencyHistogram FrequencyHistogramPlot example program C public class FrequencyHistogramPlot FrequencyHistogramChart spcChart public FrequencyHistogramPlot FrequencyHistogramChart fc espeChart fe InitializeChart Frequency Histograms Pareto Diagrams Probability Charts 353 void InitializeChart Frequency bins double freqgLimits 119 5 24 5 29 5 34 5 39 5 44 5 49 5 54 5 59 5 data to be sorted into frequency bins double freqValues 32 44 44 42 57 26 51 23 3327 42 46 43 45 44 53 37 25 38 44 36 40 36 48 56 47 40 58 45 38 32 39 43 31 45 41 37 31539 334 20 920 520 5T 28 51 40 52 43 Initialize histogram spcChart InitFrequencyHistogram freqLimits freqValues Set bar orientation spcChart chartOrientation ChartObj VERT DIR Build chart speChart BuildChart VB Public Class FrequencyHistogramPlot Private spcChart As FrequencyHistogramChart Public Sub New fc As FrequencyHistogramChart SpcChart fc InitializeChart End Sub Sub InitializeChart Frequency bins Dim freqLimits As Double _ 19 5 24 5 29 5 34 5 39 5 44 5 49 5 54 5 55 5 data to be sorted into frequency bins 354 Frequency Histograms Pareto Diagrams Probability Charts Dim freqValues As Double _ 33 44 S
438. tes FillColor hart PrimaryChart GraphBackground FillColor ChartColor LightGray The PrimaryChart and SecondaryChart objects are both instances of the SPCChartObjects class The SPCChartObjects class contains the objects needed to display a single graph Below you will find a summary of the class properties Public Instance Properties AnnotationArray Get the array of TextObject objects representing the annotations of the chart AnnotationFont Set Get annotation font AnnotationNudge Set Get the x and y values use to offset a data points annotation with respect to the actual data point AxisLabelFont Set Get the font used to label the x and y 250 SPC Variable Control Charts AxisTitleFont ControlLabelPosition ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart GraphBackground BatchIncrement BatchStartValue BatchStop Value Header HeaderFont HistogramStartPos HistogramOffset MaxY MinY axes Set Get the font used for the axes titles Set Get that numeric label for a control limit is placed inside or outside the plot area INSIDE PLOTAREA Get the array of the plot objects associated with control limits Get a reference to the charts tooltip Get Set the default background color for the graph area Set Get the number of control limits in the chart Get Set the def
439. th the Quinn Curtis software should automatically transfer to the web site when you deploy it since all referenced files are bundled into the deployment zip files One simple way to deploy the application as is without any changes to the project defaults is to just copy the projects Web folder to your server web site Then on your server using the IIS Management Tool create a new application pool if needed for your Silverlight applications Silverlight Applications for example Then using the IIS Manager go to the application folder SLSPCBrowswerApplicationl Web in our examples in your web site and select Properties for the folder Add it to the Silverlight Applications pool you already created Then in the Properties Asp Net tab select Asp Net 4 0 or higher You would then be able to run the project from a browser like this TestPage aspx http quinn curtis com SLSPCBrowserApplication Web SLSPCBrowserA pplication TestPage aspx and TestPage html http quinn curtis com SLSPCBrowserApplication Web SLSPCBrowserA pplication TestPage html Index Adding new new data using AddNewSampleRecord 111 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 141 165 166 168 191 205 206 207 223 224 225 226 232 233 234 242 243 244 246 248 266 267 268 286 287 291 292 293 299 300 301 302 305 306 307 315 317 318 319 AddNewSampleRecord 111 118
440. the PhysicalCoordinates maintains the coordinate system used by object The majority of classes in the library derive from the GraphObj class each class a specific charting object such as an axis an axis label a simple plot or a group plot Add GraphObj derived objects axes plots labels title etc to a graph using the ChartView AddChartObject method GraphObj This class is the abstract base class for all drawable graph objects It contains information common to all chart objects This class includes references to instances of the ChartAttribute and PhysicalCoordinates classes The ChartAttribute class contains basic color line style and gradient information for the object while the PhysicalCoordinates maintains the coordinate system used by object The majority of classes in the library derive from the GraphObj class each class a specific charting object such as an axis an axis label a simple plot or a group plot 68 QCChart2D Class Summary Background This class fills the background of the entire chart or the plot area of the chart using a solid color a color gradient or a texture Axis Classes Axis LinearAxis PolarAxes AntennaAxes ElapsedTimeA xis LogAxis TimeAxis Creating a PhysicalCoordinates coordinate system does not automatically create a pair of x and y axes Axes are separate charting objects drawn with respect to a specific PhysicalCoordinates object The coordinate system and the axes do not need to have t
441. the 1 sigma and 2 sigma level The operator might receive some sort of preliminary warning if the process variable exceeds a 2 sigma limit You are able to add additional control limit lines to a variable control chart as in the example program TimeVariableControlCharts MultiLimitX BarR Chart Title Variable Control Chart Multi Limit Part No 123456 Chart No 18 Operator T Moosey Machine 11 24 09 aa e reme UCL 74 019 UCLR2 74 013 74 01 se L UCLR1 74 007 3 74 00 XBAR 74 001 LCLR1 73 995 73 99 LCLR2 73 989 Fct 73 989 73 98 0 05 penn UCL 0 045 0 04 UCLR2 0 036 uj 0 03 J g UCLR1 0 027 0 02 RBAR 0 017 0 01 0 00 CL 0 000 12 00 13 00 14 00 15 00 A a We also added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeVariableControlCharts MultiLimitXBarRChart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 208 SPC Variable Control Charts 2 sigma
442. the SPCControlLimitRecord for a given control rule it is very important that you use the GetNamedControlRuleRecord method not the GetControlLimitRecord method This is because the array indexing of the ControlLimitRecords does not match the named control rule numbering i e GetNamedControlRuleRecord 15 and GetControlLimitRecord 15 return different SPCControlLimitRecords If you want to enable disable a specific rule after they have all been created CH SPCControlLimitRecord clr spcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord AIAG RULES 3 338 Named and Custom Control Rule Sets clr AlarmEnable false VB SPCControlLimitRecord clr SpcChart ChartData GetNamedControlRuleRecord SPCControlLimitRecord AIAG RULES 3 clr AlarmEnable false Creating Custom Rules Sets Based on Named Rules You can create your own custom set of rules mixing and matching rules from the standard named rule sets using the the AddControlRule method Also you can invent your own rules based on one of our standard templates and add those rules to your custom rule set SPCChartObjects AddControlRule Method Visual Basic Declaration Public Function AddControlRule _ ruleset As Integer _ rulenum As Integer _ As Integer Cz public int AddControlRule int ruleset int rulenum Parameters ruleset One of the SPCControlLimitRecord named rule indentifiers BASIC RULES WECO RULES WECOANDSUPP RULES NELS
443. the example above a low alarm blue circle occurs at the beginning of the chart and a high alarm red circle occurs at the end of the chart Alarm symbol highlighting is turned on by default To turn it off use the SPCChartBase ALARM NO HIGHLIGHT SYMBOL constants SPC Variable Control Charts 237 TableAlarmEmphasisMode EWMA Chart Variable Control Limits Dynamic SPC X Bar Sigma Individual Range MultiLimit X Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero 6 01 6 16 6 31 6 46 7 01 7 16 7 31 1 17 5 13 8 17 1 99 144 19 0 16 9 0 202 0 201 0 201 0 203 0 201 0 200 0 198 q 0 192 0 191 0 192 0 193 0 191 0 190 0 189 q 40 30 20 RANGE 40 30 20 10 O 7 00 8 00 9 00 10 00 CH Table alarm emphasis mode spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR VB Table alarm emphasis mode spcChart TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR The entire column of the data table can be highlighted when an alarm occurs There are four modes associated with this property ALARM HIGHLIGHT NONE No alarm highlight ALARM HIGHLIGHT TEXT Text alarm highlight ALARM HIGHLIGHT OUTLINE Outline alarm highlight ALARM HIGHLIGHT BAR Bar alarm highlight The example above uses the ALARM HIGHLIGHT BAR mode 238 SPC Variable Control Charts Title
444. the last category is assigned the total number of defective parts not defects DoubleArray samples spcChart ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record spcChart ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing startTime Add ChartObj MINUTE 30 Calculate the SPC control limits spcChart AutoCalculatePrimaryControlLimits Scale the y axis of the SPC chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData VB Private Sub Timerl Tick ByVal sender As System Object ByVal e As System EventArgs Handles Timerl Tick Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar This simulates an assignable defect for each category the last category is assigned the total number of defective parts not defects Dim samples As DoubleArray _ spcChart ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record SPC Attribute Control Charts 299 SpcChart ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing StartTime Add ChartObj MINUTE 30 Calculate the SPC control limits SpcChart AutoCalculatePrimaryControlLimits Scale the y axis of the SPC chart to display all data and control
445. the width and length of the data file are truncated appears below File prefix 62 5 3 0 Column Heads Time Stamp Sample 0 Sample 1 Sample 2 Record 1 1 24 2006 12 03 40 22 946081345643 30 6379105980219 Record 42 1 24 2006 12 18 40 23 8902424375481 33 7523682840412 Record 43 1 24 2006 12 33 40 33 1602680593078 28 2172109399537 The values in the file prefix have the following meaning 63 Data log options SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DATALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES 5 There are five sampled values per record 132 SPC Control Data and Alarm Classes 3 There are three calculated values per record MEAN RANGE SUM for example 6 There are six control limit values per record XBAR LCL UCL RBAR LCL UCL for example If you want to view a complete datalog file run the TimeVariableControlCharts example program and after you terminate the program view the Datalogfilel text file in isolated storage The following steps extracted from the TimeVariableControlChart VariableControlLimitsCharts example program turn on data logging C int datalogflags SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DA
446. tion nor any other federal agency has suspended revoked or denied your export privileges 8 NOWARRANTIES Quinn Curtis Inc expressly disclaims any warranty for the SOFTWARE THE SOFTWARE AND ANY RELATED DOCUMENTATION IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESS OR IMPLIED INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OR MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT THE ENTIRE RISK ARISING OUT OF USE OR PERFORMANCE OF THE SOFTWARE REMAINS WITH YOU 9 LIMITATION OF LIABILITY IN NO EVENT SHALL QUINN CURTIS INC OR ITS SUPPLIERS BE LIABLE TO YOU FOR ANY CONSEQUENTIAL SPECIAL INCIDENTAL OR INDIRECT DAMAGES OF ANY KIND ARISING OUT OF THE DELIVERY PERFORMANCE OR USE OF THE SUCH DAMAGES IN ANY EVENT QUINN CURTIS S LIABILITY FOR ANY CLAIM WHETHER IN CONTRACT TORT OR ANY OTHER THEORY OF LIABILITY WILL NOT EXCEED THE GREATER OF U S 1 00 OR LICENSE FEE PAID BY YOU 10 U S GOVERNMENT RESTRICTED RIGHTS The SOFTWARE is provided with RESTRICTED RIGHTS Use duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph c 1 11 of The Rights in Technical Data and Computer SOFTWARE clause of DFARS 252 227 7013 or subparagraphs c 1 and 2 of the Commercial Computer SOFTWARE Restricted Rights at 48 CFR 52 227 19 as applicable Manufacturer is Quinn Curtis Inc 18 Hearthstone Dr Medfield MA 02052 USA 11 MISCELLANEOUS If you acquired th
447. to the ChartData 190 SPC Variable Control Charts object and after a certain number of updates call the AutoCalculateControlLimits method to establish new control limits C updateCount spcChart ChartData AddNewSampleRecord timestamp samples if updateCount gt 50 After 50 sample groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange VB updateCount 1 spcChart ChartData AddNewSampleRecord timestamp samples If updateCount gt 50 Then After 50 sample groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange End If The AutoCalculateControlLimits method calculates the control limits for both the primary and secondary charts If you want to auto calculate the control limits for just one of the charts call the AutoCalculatePrimaryControlLim
448. tomatically locate the IsolatedStorage location on the client computer and save to the specified file name in that location Isolated storage is meant to be a secret location on the client computer and is purposely hard to find Default locations for Windows XP Vista and Windows 7 are SPC Control Data and Alarm Classes 131 Vista and Windows 7 userprofile AppData LocalLow Microsoft Silverlight is Windows XP userprofile Local Settings Application Data Microsoft SilverlightNs You can determine the UserProfile folder by entering UserProfile at the Run prompt from the Windows Start Menu It should then open that folder When you specify the data log file name you do not make any reference to the isolated storage location You just specify a simple short filename The isolated storage part is automatic Enable Data Logging The SPCControlChartData method contains routines that log SPC data to a file in a CSV comma separated value format The first row of the file is a prefix of data that defines options and the number of columns associated with sample data calculated data and control limit data The second row of data are the column heads for each item in the data log Starting with the third row SPC data is output record by record If the data logging feature is turned on every call to the AddNewSampleRecord method will result in the output of that record and calculated values to the data log A typical datalog file both
449. tooltips If set true the scroll bar is added to the bottom of the chart If set true enables the time row of the data table If set true enables the total of sampled values row of the data table Get Set the bottom edge using normalized coordinates of the plotting area for the secondary chart Get Set the left edge using normalized coordinates of the plotting area for both primary and secondary charts Get the top edge using normalized coordinates of the plotting area for the primary chart 162 SPC Variable Control Charts GraphStartPosY2 GraphStopPosX GraphStopPosY1 GraphStopPosY2 GraphTopTableOffset HeaderStringsLevel InterGraphMargin MultipleMouseListener PrimaryChart ScrollBarBottomPosition ScrollBarPixelHeight SecondaryChart SPCChartType TableAlarmEmphasisMode Get the top edge using normalized coordinates of the plotting area for the secondary chart Get Set the right edge using normalized coordinates of the plotting area for both primary and secondary charts Get the bottom edge using normalized coordinates of the plotting area for the primary chart Get the bottom edge using normalized coordinates of the plotting area for the secondary chart Get Set the offset of the top of the primary chart from the bottom of the data table using normalized coordinates Set Get the level of header strings to include in the chart Use one of the SPCControlChartData header strings constants HEADER
450. tracted from the example program FrequencyHistogram MainPage C using System using System IO using System Collections Generic using System Ling using System Net using System Windows using System Windows Controls using System Windows Documents using System Windows Input using System IO IsolatedStorage using System Windows Media using System Windows Media Imaging using System Windows Media Animation using System Windows Shapes using com quinhcurtis chartzdsl using ImageTools using ImageTools IO using ImageTools IO Jpeg using ImageTools IO Bmp using ImageTools IO Gif using ImageTools IO Png namespace FrequencyHistogram public partial class MainPage UserControl FrequencyHistogramPlot fhp public MainPage InitializeComponent fhp new FrequencyHistogramPlot spcChart1 SpcChartl PreferredSize private void PrintGraph object sender if spcChartl null new Size 600 File and Printer Rendering 381 400 RoutedEventArgs e ChartPrint cp new ChartPrint spcChartl Histogram Document cp DoPrintPage 382 File and Printer Rendering This make use of the ImageTools encoders for Silverlight Download your own copy of the libraries at http imagetools codeplex com public void SaveAsFile object sender RoutedEventArgs e Canvas printObj chartview DrawingSurface String filename this Na
451. tributable License The standard Developer License permits the programmer to deploy and or distribute applications that use the Quinn Curtis SOFTWARE royalty free We cannot allow developers to use this SOFTWARE to create a graphics toolkit a library or any type of graphics component that will be used in combination with a program development environment for resale to other developers If you utilize the SOFTWARE in an application program or in a web site deployment should we ask you must supply Quinn Curtis Inc with the name of the application program and or the URL where the SOFTWARE is installed and being used 11 3 RESTRICTIONS You may not reverse engineer de compile or disassemble the SOFTWARE except and only to the extent that such activity is expressly permitted by applicable law notwithstanding this limitation You may not rent lease or lend the SOFTWARE You may not use the SOFTWARE to perform any illegal purpose 4 SUPPORT SERVICES Quinn Curtis Inc may provide you with support services related to the SOFTWARE Use of Support Services is governed by the Quinn Curtis Inc polices and programs described in the user manual in online documentation and or other Quinn Curtis Inc provided materials as they may be modified from time to time Any supplemental SOFTWARE code provided to you as part of the Support Services shall be considered part of the SOFTWARE and subject to the terms and conditions of this EULA With respe
452. trolChartData to handle the sampled data The table strings used to customize the first section of the chart should be set after the chart InitSPC call but before the RebuildChartUsingCurrentData call The example below is from the TimeVariableControlCharts XBarR Chart example program Bar A X Bar Sigma Individual Range Multi Limit X BarR Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 31 12 46 13 001 13 16 13 31 13 46 14 01 14 16 14 31 14 46 15 01 15 16 15 31 15 46 16 01 16 16 16 31 C SPC variable control chart type int charttype SPCControlChartData INDIVIDUAL RANGE CHART Number of samples per sub group SPC Control Data and Alarm Classes 115 int numsamplespersubgroup 1 Number of data points in the view int numdatapointsinview 17 The time increment between adjacent subgroups int sampleincrement 30 SPCTimeVariableControlChart spcChart public IndividualRangeChart SPCTimeVariableControlChart tvc spcChart tvc Define and draw chart InitializeChart public void InitializeChart Initialize the SPCTimeVariableControlChart spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Set the strings used in the header section of the table spcChart ChartData Title Variable Control Chart X Bar amp R sp
453. ts in a row decreasing Juran Rules One of one point is outside of 3 sigma control limit Two of three points above 2 sigma control limit Two of three points below 2 sigma control limit Four of five points is above 1 sigma control limit Four of five points is below 1 sigma control limit Six points in a row increasing Six points in a row decreasing Nine out of nine are above or below center line Eight points in a row on both sides of center line none in zone C PO OV pa Rare 326 Named and Custom Control Rule Sets Hughes Rules 39 99 n2 Q o m ON Ria a a a hb UND ro One of one point is outside of 3 sigma control limit Two of three points above 2 sigma control limit Two of three points below 2 sigma control limit Three of seven points above 2 sigma control limit Three of seven points below 2 sigma control limit Four of ten points above 2 sigma control limit Four of ten points below 2 sigma control limit Four of five points is above 1 sigma control limit Four of five points is below 1 sigma control limit Seven points in a row increasing Seven points in a row decreasing Ten of eleven are above center line Ten of eleven are below center line Twelve of fourteen are above center line Twelve of fourteen are below center line Gitlow Rules SO Go sI v Un OS One of one point is outside of 3 sigma control limit Two of three points above 2 sigma control limit Two of three points below 2 si
454. ttribute Control Charts SPCTimeAttributeControlChart SPCBatchAttributeControlChart Attribute Control Charts are a set of control charts specifically designed for tracking product defects also called non conformities These types of defects are binary in nature yes no where a part has one or more defects or it doesn t Examples of defects are paint scratches discolorations breaks in the weave of a textile dents cuts etc Think of the last car that you bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the number of defects are tracked u chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated p Chart Also known as the Percent or Fraction Defective Parts Chart For a sample subgroup the number of defective parts is measured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgr
455. tween adjacent subgroups Private timeincrementminutes As Integer 30 Private spcChart As SPCTimeAttributeControlChart Public Sub New tac As SPCTimeAttributeControlChart SpcChart tac Define and draw chart InitializeChart End Sub Dim startTime As New ChartCalendar SPC attribute control chart type Dim charttype As Integer SPCControlChartData FRACTION DEFECTIVE PARTS CHART Number of samples per sub group Dim numsamplespersubgroup As Integer 50 Number of defect categories Dim numcategories As Integer 5 Number of data points in the view Dim numdatapointsinview As Integer 17 1 The time increment between adjacent subgroups Dim timeincrementminutes As Integer 30 Sub InitializeChart Initialize the SPCTimeAttributeControlChart spcChart InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes SpcChart RebuildChartUsingCurrentData End Sub DrawChart SPC Attribute Control Charts 259 End Class SPCTimeAttributeControlChart Members SPCTimeAttributeControlChart overview Public Instance Constructors SPCTimeAttributeControlChart Overloaded Initializes a new instance of the SPCTimeAttributeControlChart class Public Instance Methods InitSPCTimeAttributeControlChart Overloaded Initialize the class for a specific SPC chart type The control chart type p np c u DPMO charts is established in the attribute
456. ubgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples Calculate the SPC control limits for the X Bar part of the current SPC chart SpcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits SpcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits SpcChart AutoScaleSecondaryChartYRange Rebuild and draw the chart using the current data and settings spcChart RebuildChartUsingCurrentData Simulate timeincrementminutes minute passing StartTime Add ChartObj MINUTE timeincrementminutes VB Private Sub Timerl Tick ByVal sender As System Object ByVal e As System EventArgs Handles Timerl Tick Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples As DoubleArray spcChart ChartData SimulateMeasurementRecord 30 Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples Caleulate the SPC control limits for the X Bar part of the current SPC chart SpcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange Re
457. ue estet tiv e Bt sema eap uou cal 69 72 73 75 76 93 T1meAxisL b els a oi 75 76 101 ame Axis Eabels 8 ocean rd op an toutes su Od O A Doa tanda Time AISLADA etm re C Ea ede eue 75 76 TameCoordmates eee RR a reti aetenio eia ai EE OEE EBS tO REIHE 65 66 100 TameCootrdinat es ueteres ie 65 66 100 TimeGroupDataset 5 eror einn ete o erra ep ed e e beet ebd label 63 64 68 100 imeGroupBataset s atte ell cuoi oe eter Metro ds ro oce debo ete ar he iiit EA lao TatmeCcmoupD ataset s dtes a ee ect tio St RU Qu ed M TIO 63 64 68 A A A O RN EN 60 93 94 101 149 150 182 183 281 TimeLabel 60 93 94 101 149 150 151 180 182 183 278 281 TIMES CA esee Me e sie EGO CLIT ESE RL PREECE E Gd Nas 64 65 100 WIGS CAS eaa adi da 64 65 100 164 265 TimeSimpleDat set 4 reete des eoe e eet dense loge ines sexta ce eso de ena eet edes teen etae nee desea doe puedes 63 64 68 100 TameSitpleDataset 5s ite cot op Ot te dede ene pide adh iet tee e Ea n EO EE sesescete tbe ee des Tine Simp Matias 63 64 68 TOO TIPS ER c 50 95 96 100 439 Datatooltip 50 59 162 230 231 234 251 262 307 321 359 368 376 Trial Lacense AAA CU ear naa aUe e de AA ii ate IE EIUS I te a ILU 11 O RR 6 19 38 39 46 256 u Chart 6 9 18 19 35 36 38 39 40 46 60 107 125 126 255 256 265 267 290 314 UseNoOTable ii A lia 165 183 185 USENO Tablero idea
458. ult font is defined using a string specifying the name of the font This static property must be set BEFORE the charts Init routine Extracted from the example Extracted from the example TimeVariableControlCharts DynamicXBarR Chart C SPCTimeVariableControlChart DefaultChartFontString Times spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCTimeVariableControlChart DefaultChartFontString Times spcChart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Table and Chart Templates All of the strings displayed in the table and charts use a template unique to the string type Numeric strings use a NumericLabel template time date strings use a time TimeLabel template and so on These templates permit the programmer to customize the display of the strings Listed below are the various templates SPCChartObjects Accessed in the charts PrimaryChart and SecondaryChart properties Property Type Description 182 SPC Variable Control Charts XValueTemplate NumericLabel Y ValueTemplate NumericLabel XTimeValueTemplate TimeLabel TextTemplate ChartText The x value template for the data tooltip The y value template for the data tooltip x value template for the data tooltip The text template for the data tooltip SPCGeneralizedTableDisplay Accessed in the charts ChartTable property
459. ult string used to title the y axis of median graphs Default string used to title the y axis of range graphs Default string used to the y axis of primary chart of I R charts Default string used to title the y axis of sigma graphs Default string used to title the sum table row Default string used to the label the target control limit line of the chart Default string used to the label the target upper control limit line of the chart Default string used to title the y axis of variance graphs Default string used to title primary chart Default string used to the primary chart of I R charts Default string used as the notes column head 108 SPC Control Data and Alarm Classes Sample ValueColumnString TimeStampColumnString Public Static Shared Methods CalcRangeBasedDecimalPos Public Instance Constructors SPCControlChartData Public Instance Properties AlarmStateEventEnable AlarmTransitionEventEnable ChartNumber ChartNumberHeader CurrentNumberRecords DatalLogEnable DataLogCSV DataLogFilename DataLogFlags in the log file The default value is Notes Default string used as the sample value column head in the log file The default value is Sample Default string used as the time stamp column head in the log file The default value is Time Stamp Calculate the decimal precision used to display calculated values in the data table Overloaded Initializes a new instance of the SPCCont
460. umSampleCategories Operation OperationHeader OperatorHeader PartName PartNameHeader PartNumber PartNumberHeader SPC Control Data and Alarm Classes 109 of the SPCControlChartData datalog DATALOG FILE BATCH NUMBER DATALOG FILE TIME STAMP DATALOG FILE SAMPLED VALUES DATALOG FILE CALCULATED VALUES DATALOG FILE CONTROL LIMIT VALUES DATALOG FILE NOTES DATALOG FILE COLUMN HEADS The dataLogUserString is output as the second line in a datalog file if the DATALOG USER STRING flag is set in dataLogFlags Set Get the header for the dateString field Set Get data table date string Set Get the default symbol used for the row headers of the sample data items Set Get the default symbol used for the row headers of the sample data items Set Get the default value to use for the decimal precision used to display defective item counts 1 auto Set Get data table gage string Set Get the header for the gage field Set Get data table machine string Set Get the header for the machine field Set Get the data table notes header string Set Get data table notes message string Set Get the notes tool tip Get Set the data table number of samples row header Set Get number of calculated values for each record in the chart Set Get the maximum number of records displayable at one time in the chart Set Get the number of categories in an Attribute Control chart numSampleCategories sampleSubgroupSize for Variable C
461. umber of times a defect occurs is measured and plotted as a value normalized to defects per million Since the plotted value is normalized to a fixed sample subgroup size the size of the sample group can vary without rendering the chart useless Time Based and Batch Based SPC Charts Attribute Control Charts are further categorized as either time or batch based Use time based SPC charts when data is collected using a subgroup interval corresponding to a specific time interval Use batch based SPC charts when the data subgroup interval is a sequential batch number that does not correspond to a uniform time interval The major difference in these two types of SPC charts is the display of the x axis Control charts that sample using a uniform time interval will generally use a time based x axis with time date axis labels Control charts that sample based on batches will generally use a numeric based x axis with numeric axis labels Time Based Attribute Control Chart UCLP 0 28 E M NNUS LN A Lu wo a E E o PBAR 0 14 lt q lt jJ i4 LL 0 0 CLP 0 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 Note the time based x axis Batch Based Attribute Control Chart 256 SPC Attribute Control Charts FRACT DEF 0 5 10 15 Note the numeric based x axis Attribute Control Charts Consist of Only One Graph Whereas the Variable Control Charts contain two different graphs which we refer to generically as the prim
462. umdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 15 SPCBatchVariableControlChart spcChart public BatchXBarRChart SPCBatchVariableControlChart tvc 1 spcChart tye Define and draw chart InitializeChart public void InitializeChart Initialize the SPCBatchVariableControlChart spcChart InitSPCBatchVariableControlChart charttype 240 SPC Variable Control Charts numsamplespersubgroup numdatapointsinview Change the default horizontal position and width of the chart SpcChart GraphStartPosX 0 125 Rebuild the chart using the current data and settings spcChart RebuildChartUsingCurrentData VB Public Class BatchXBarRChart Private startTime As New ChartCalendar SPC variable control chart type Private charttype As Integer SPCControlChartData MEAN RANGE CHART Number of samples per sub group Private numsamplespersubgroup As Integer 3 Number of datapoints in the view Private numdatapointsinview As Integer 17 The time increment between adjacent subgroups Private timeincrementminutes As Integer 15 Private spcChart As SPCBatchVariableControlChart Public Sub New tvc As SPCBatchVariableControlChart spcChart tvc Define and draw chart InitializeChart End Sub Public Sub InitializecChart Initialize the SPCBatchVariableControlChart spcChart InitSPCBatchVariableControlChart charttype numsamplespersubgroup numdat
463. umdatapointsinview timeincrementminutes spcChart ChartData EWMA StartingValue 10 Set to estimate of mean of process variable spcChart ChartData EWMA Lambda 0 1 spcChart DefaultControlLimitSigma 2 7 spcChart ChartData EWMA UseSSLimits False 197 198 SPC Variable Control Charts MA Chart Moving Average A MA chart showing the variable control limits actual values and moving average values i x EWMA Chart E CUSum Chart CUSum Chart 2 Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 5 2008 5 06 19 PM Time 17 06 17 36 18 06 18 36 19 06 19 36 20 06 20 36 21 06 21 36 22 06 22 36 23 06 23 36 0 06 0 36 1 06 Sample 0 956 992 10 43 9 71 1005 10 03 952 999 1068 934 1052 980 1064 10 32 10 60 10 01 10 07 MA 9 560 9 742 9 972 9 906 9 935 10 029 9 949 9 861 10 055 9 913 10 010 10 066 10 195 10 124 10 377 10 275 10 328 r 19 00 20 00 0 00 3 06 08 The current value z for a MA chart is calculated as a weighted moving average of the N most recent samples Zi Xit Xin Xig t Xinu N where Xi is the sample value for time interval 1 and N is the length of the moving average Control Limits for the MA Chart UCL 3 SMigrt N Centerline j LCL 3 L f qr N Fis the process mean the p
464. upport for the following SPC chart types Variable Control Charts Fixed sample size subgroup control charts X Bar R Mean and Range chart X Bar Sigma Mean and Sigma chart Median and Range Median and Range chart X R Individual Range Chart chart EWMA Exponentially Weighted Moving Average Chart MA Moving Average Chart MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Sigma Mean and Sigma Chart Attribute Control Charts Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts Fraction or Percent Non Conforming np Chart Number of Defective Parts Number of Non Conforming c Chart Number of Defects Number of Non Conformities u Chart Number of Defects per Unit Number of Non Conformities Per Unit DPMO Number of Defects per Million Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects per Unit 46 Class Architecture SPC Analysis Charts Frequency Histograms Probability Charts Pareto Charts Minimal programming required create SPC charts with a few lines of code using our SPC chart templates Integrated frequency histograms support Display frequency histograms of sampled data displayed side by side sharing the same y axis with the SPC chart e Charts Header Information Customize the
465. used in the header section of the table spcChart ChartData Title Fraction Defective p Chart SpcChart ChartData PartNumber 321 spcChart ChartData ChartNumber 19 spcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI The example below displays a maximum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals C Set the strings used in the header section of the table spcChart ChartData Title Fraction Defective p Chart spcChart ChartData PartNumber 283501 spcChart ChartData ChartNumber 17 SpcChart ChartData TheOperator B Cornwall spcChart ChartData PartName Left Front Fender spcChart ChartData Operation Painting sSpcChart ChartData SpecificationLimits spcChart ChartData Machine 11 spcChart ChartData Gage spcChart ChartData UnitOfMeasure spcChart ChartData ZeroEquals 272 SPC Attribute Control Charts SpcChart ChartData DateString DateTime Now ToString spcChart HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 VB Set the strings used in the header section of the table spcChart ChartData Title Fraction Defective p Chart spcChart ChartData PartNumber 283501 SpcChart ChartData ChartNumber 17 spcC
466. user defined string unique to each sample subgroup You may find that labeling every subgroup tick mark with a time stamp or a user defined string causes the axis labels to stagger because there is not enough room to display the tick mark label without overlapping its neighbor In these cases you may wish to reduce the number of sample subgroups you show on the page using the numdatapointsinview variable found in all of the example programs Number of datapoints in the view int numdatapointsinview 13 You can rotate the x axis labels using the charts XAxisLabelRotation property CH spcChart XAxisLabelRotation 90 VB spcChart XAxisLabelRotation 90 If you rotate the x axis labels you may need to leave more room between the primary and secondary graphs and at the bottom to allow for the increased height of the labels 244 SPC Variable Control Charts C spcChart XAxisLabelRotation 90 spcChart InterGraphMargin 0 1 spcChart GraphBottomPos 0 85 VB SpcChart XAxisLabelRotation 90 SpcChart InterGraphMargin 0 1 SpcChart GraphBottomPos 0 85 Batch Control Chart X Axis Time Stamp Labeling Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 TIME 17 16 17 37 17 45 18 07 18 21 18 27 18 43 19 08 19 16 19 35 19 43 19 57 20 24 20 39 20 41 21 08 21 17 RANGE 106 101 118 32 6 9 6 0 7 8 9 1 4 5 8 5 136 7 1 6 1 8 0 122 10 1 3 2 ALARM TW ee NUR ee
467. using System Windows Controls using System Windows Documents using System Windows Input using System Windows Media using System Windows Media Animation using System Windows Shapes Creating SPC Charts in Windows Applications 407 namespace SPCApplicationl public partial class MainPage UserControl public MainPage InitializeComponent e Adda reference to the QCChart2DSL and QCSPCChartSL namespaces com quinncurtis chart2dsl and com quinncurtis spcchartsl in the using section of the program using com quinncurtis chartZdsl using Gcom quinnourtis spochartsl Insome of our other examples FrequencyHistogram and ParetoDiagram we also add references to some other Net and ImageTool libraries in support of printing and Image files Add a new simple class file named TimeVariableControlChart to the project Alternatively select Add Existing Item and select the file TimeVariableControlChart cs from our SPCApplicationl example folder If you do that make sure you change the declared namespace at the top of the file namespace SPCApplicationl to the one your project uses probably namespace SilverlightApplicationl 408 Creating SPC Charts in Windows Applications Add New Item WpfApplication1 Categories Templates E Visual C Visual Studio installed templates Code Data E About Box dy ADO NET Entity Data Model General a Application Configuration File E Application Manifest File Web e Assemb
468. ve in terms of up front costs and the least flexible but the cheapest in development costs since a programmer does not have to get involved creating the displays Another choice is to use a general purpose spreadsheet package with charting capability to record calculate and display the charts This is probably a good choice if your charting needs are simple and you are prepared to write complicated formulas as spreadsheet entries and your data input is not automated Another choice is writing the software from scratch using a charting toolkit like our QCChart2D software as the base and creating custom SPC charts using the primitives in the toolkit This is cheaper up front but may be expensive in terms of development costs Often times the third option is the only one available because the end user has some unique requirement that the pre packaged software can t handle hence everything needs to programmed from scratch WPF and Silverlight Background Initially the primary graphics text rendering and user interface framework for programmers using the Net languages was GDI an evolutionary adaptation of the older Windows GDI programming model in place since Windows 1 0 GDI under Net is extremely successful and there are no indications Microsoft plans to end support for it in subsequent releases of Visual Studio But Microsoft has long had an alternative graphics framework for game programmers DirectX which programmers found a better fi
469. w int numdatapointsinview 13 Batch Control Chart X Axis Time Stamp Labeling Title Fraction Defective Parts p Chart Part No 321 Chart No 19 Operator S Kafka Machine TIME 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 19 40 20 10 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N gt hh sw UCLP 0 279 PBAR 0 134 FRACT DEF 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 19 40 20 10 E j Fraction Defective Parts Chart using time stamp labeling of the x axis 316 SPC Attribute Control Charts Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS LABEL MODE TIME C Label the tick mark with time stamp of sample group spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME VB Label the tick mark with time stamp of sample group spcChart XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME When updating the chart with sample data use AddNewSampleRecord overload that has batch number and a time stamp parameters C spcChart ChartData AddNewSampleRecord batchCounter timestamp samples VB spcChart ChartData AddNewSampleRecord batchCounter timestamp samples See the example program BatchAttributeControlCharts FractionDefectiveP
470. xis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed spcChart SecondaryChart MinY 0 SpcChart SecondaryChart MaxY 40 VB Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed SpcChart PrimaryChart MinY 0 SpcChart PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed spcChart SecondaryChart MinY 0 SpcChart SecondaryChart MaxY 40 It is easiest to just call the auto scale routines after the chart has been initialized with data and any control limits calculated C Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits spcChart AutoScalePrimaryChartYRange SPC Variable Control Charts 221 Scale the y axis of the Range chart to display all data and control limits spcChart AutoScaleSecondaryChartYRange VB Must have data loaded before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC chart spcChart AutoCalculateControlLimits Scale the y axis of the X Bar chart to di
471. xmlformats org markup compatibility 2006 xmlns myz clr namespace com quinncurtis chart2dsl assembly QCChart2DSL xmlns my2 2 clr namespace com quinncurtis spcchartsl assembly QCSPCChartSL mc Ignorable d Introduction 5 d DesignHeight 631 d DesignWidth 878 gt Grid x Name LayoutRoot Background White gt my2 SPCTimeVariableControlChart Margin 18 11 16 6 Name spcChart1 Grid Row 1 EnableNotes false gt lt Grid gt lt UserControl gt In this example the SPC chart is placed as the only visual element of the standard Silverlight layout panel Grid Since the SPC chart object is given a Name it can be accessed in the behind code of the window using the variable name spcChart In general all of the chart definition and initialization takes place in the the behind code using either C or VB The chart definition initialization can take place entirely in the behind code of the windows XAML file or it be done in a separate class created for that purpose Almost all of our examples use a separate class to initialize the SPC chart object This keeps the code more modular and the Window file much easier to read In the behind code example below extracted from our SPCApplicationl example the SPC chart object variable name spcChart in the example is initialized using the class TimeVariableControlChart The TimeVariableControlChart class sets all of the properties and other data fields which uniquely define the SPC
472. y samples new DoubleArray numsamplespersubgroup where numsamplespersubgroup 5 samples 0 samplevalue0 the samplevalue values come from your process samples 1 samplevaluel the samplevalue values come from your process samples 2 samplevalue2 the samplevalue values come from your process samples 3 samplevalue3 the samplevalue values come from your process samples 4 samplevalue4 the samplevalue values come from your process endif DateTime datetime DateTime Now String datetimestring datetime ToShortDateString datetime ToLongTimeString Add the new sample subgroup to the chart SpcChart ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Creating SPC Charts in Windows Applications 413 Reference and initialize the newly created TimeVariableControlChart class in the MainPage xaml cs behind code file using System using System Collections Generic using System Ling using System Net using System Windows using System Windows Controls using System Windows Documents using System Windows Input using System Windows Media using System Windows Media Animation using System Windows Shapes using com quinncurtis chart2dsl using com quinncurtis spocharts1 namespace SPCApplicationl public partial class MainPage UserControl TimeVar
473. y the Sampled value rows of the table spcChart EnableInputStringsDisplay True Display the Sampled value rows of the table spcChart EnableCategoryValues True Display the Calculated value rows of the table spcChart EnableCalculatedValues True Display the total samples per subgroup value row spcChart EnableTotalSamplesValues True Display the Notes row of the table spcChart EnableNotes True Display the time stamp row of the table spcChart EnableTimeValues True Process Capability Ratios and Process Performance Indices SPC Variable Control Charts 171 The data table also displays any process capability statistics that you want to see The software supports the calculation and display of the Cp Cpl Cpu Cpk Cpm Pp Ppu Ppl and Ppk process capability statistics In order to display process capability statistics you must first specify the process specification limits that you want the calculations based on These are not the high and low SPC control limits calculate by this software rather they externally calculated limits based on the acceptable tolerances allowed for the process under measure Set the lower specification limit LSL and upper specification limit USL using the ChartData ProcessCapabilityLSL Value and ChartData ProcessCapabilityUSL Value properties of the chart The code below is from the TimeVariableControlCharts X BarR Chart example spcChart ChartData ProcessCapabilityLSLValue 27 spcChart
474. yed It then offsets the top of the primary chart with respect to the bottom of the table by the value of the property GraphTopTableOffset The value of the property GraphBottomPos defines the bottom of the graph The default values for these properties are TableStartPosY 0 00 GraphTopTableOffset 0 02 GraphBottomPos 0 925 The picture below uses different values for these properties in order to emphasize the affect that these properties have on the resulting chart ElForm1 ES Simple Attbute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic TableStartPosY 0 1 H Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 10 11 40 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 2 4 FRACT DEF 0 100 0 040 0 240 0 060 0 220 0 180 0 180 0 160 0 100 0 240 0 060 0 240 0 100 0 200 0 140 0 120 0 160 NOTES N N N N N N N N N N N N N N N N N GraphTopTableOffset 0 1 GraphStopPosX 0 9 SPC Control Limits 282 SPC Attribute Control Charts There are two methods you can use to set the SPC control limit for a chart The first method explicitly sets the limits to values that you calculate on your own because of some analysis that a quality engineer does on previously collected data The second method auto calculates the

Download Pdf Manuals

image

Related Search

Related Contents

Verbatim VB-DMR47S2A      HP LeftHand Storage with VMware vSphere: Design considerations  見る - Kenwood  Scosche reviveLITE II  SX6536 Installations Guide      heat DUO - DeguDent  

Copyright © All rights reserved.
Failed to retrieve file