Home

QCSPCChart SPC Control Chart Tools for .Net CF - Quinn

image

Contents

1. 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 Control Chart 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
2. Me ChartData NotesHeader NOTES Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELS3 112 SPC Control Data and Alarm Classes 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 variable 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 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 SPC Control Data and Alarm Classes 113 Applies to v
3. 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 the subgroup 16 Standard SPC Control Charts Fixed sample size X Bar Sigma Control chart with header information 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 5 12 2008 6 23 24 PM TIME 18 23 18 38 18 53 19 08 19 23 19 38 19 53 20 08 20 23 20 38 20 53 21 08 21 23 21 38 21 53 22 08 22 23 MEAN 65 67 60 89 62 40 61 57 63 32 63 15 63 84 64 33 65 49 63 49 63 31 62 88 65 05 62 68 64 50 62 51 65 18 SIGMA 663 660 413 589 404 643 699 465 709 597 574 523 6 10 639 674 574 6 06 SUM 984 99 913 39 336 01 323 55 949 86 947 20 957 64 964 99 982 15 952 31 349 64 943 23 975 71 340 23 967 45 937 70 377 68 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ALARM E SMS Me M x cx uc M E NE NOTES N N N N N N N N N N N N N N N N N 15 10 5 0 19 00 20 00 21 00 22 00 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
4. sss 7 Directory Structure of QCSPCChart for Net sess 8 Critical Note Running the Example Programs eee 10 Chapter SUMMARY s ose or te otis a tee torn te Beca vdd axe dts ect dua FRU edu LA X RE aa 11 2 Standard SPC Control GC arts iiid rei toe be anda d x Rae hd a 13 Variable Control Chiartszs o Ce d OE RO E CIO abel E oa od bb tuo d Mare 14 Attribute Control Charts TER 27 Attribute Control Charts o euis etoe waded Pu i C a ebd a i ae 27 Other Important SPO Charts sees eer tae a a i ste in ees Caines 33 3 Class Architecture of the SPC Control Chart Tools for Net CF Class Library 39 Major Design Considerations s sca ce oe trece ED pae dise d Ate 39 SPC Control Chart Tools for Net CF Class Summary sese 41 SPC Control Chart Tools for Net CF Class Hierarchy sese 42 OCSPCChattClasses aae o paria op dete ue uas ue e oo 43 4 3 QCChart2D CF for Net Class Summary sese 56 Chart Wandosy Class s noiksi sane iaae ea ean xts a damit ba epa M ec basin pa te os ARTNA 57 Data CLASSES m 57 BO AS Classes EMI prc 58 Coordinate Transform C asses o tease ees Pop up Ga hoe bed vec pd tu odds 59 Auto Scaling CIASSES 0r tate fee oe tede etaed Ion ee deceit utro ditus 61 Chart Object Glasses us ues iuiae tetuer ati ne ac A REM d utc us inl eae Us 62 Mouse Interdetion Class s aoo 5 eri
5. UCLX235 7 BAR 29 9 CLX 24 0 14 00 15 00 16 00 17 00 UCLR 21 5 BAR 10 2 ICLR 0 0 i 14 00 15 00 16 00 17 00 Note the time based x axis for both charts Batch Based Variable Control Chart 150 SPC Variable Control Charts LCLX 22 6 UCLR 18 6 185 190 195 Note the numeric based x axis for both graphs Batch Based Variable Control Chart with time stamp x axis UCL 37 71 BAR 29 98 LCL 22 24 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 CL 19 46 RBAR 7 56 CL 0 00 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 SPC Variable Control Charts 151 C publ
6. vl hers are rU SEIS E AREIS The time increment between adjacent subgroups in this group Drag an item int timeincrementminutes 15 onto this text to add it to the Number of samples per sub group toolbox int numsamplespersubgroup 5 public Formi t InitializeComponent InitializeChart Solution Explorer Solution ENSE v LE E an 8 5 ES Solution SPCApplicationi 1 project 3l sPCApplicationt aj Properties H aij References bin B E3 obj E Formt cs amp Form1 Designer cs V Form1 resx Program cs public void InitializeChart Hi spcTimeVariableControlCharti is declared and instantiated in Formi Designer SPCTimeVariableControlChart spcchart this spcTimeVariableControlChart1 spechart PreferredSize new Size 798 510 lt SPC variable control chart type Properties int charttype SPCControlChartData MEAN RANGE CHART SE A Number of datapoints in the view CEM EA int numdatapointsinview 17 Initialize the SPCTimeVariableControlChart spechart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes if true spechart HeaderStringsLevel SPCControlChartData HEADER_STRINGS_LEVEL1 Set the strings used in the header section of the table s Error List Q 0 Errors f 0 Warnings i 0 Messages Description
7. 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 Me 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 100 sampling the graph would be updated once a minute with a single value in the samples array Updating MEAN SIGMA CHART VSS with 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 160 SPC Variable Control Charts X Bar Sigma Chart with variable sample size Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name T
8. Set to SPCChartBaseALARM HIGHLIGHT SYMBOL to highlight the process variable symbol if an alarm condition exists Set to Set to SPCChartBase 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 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 prima
9. make a note on every tenth item on average notesstring Note for sample subgroup 4 x ToStrimgk This sample is flagged as having some sort of problem else notesstring Add the new sample subgroup to the chart this 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 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 Me ChartData SimulateMeasurementRecord 30 10 Dim r As Double ChartSupport GetRandomDouble If r 0 1 Then 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 End If Add the new sample subgroup to the chart Me ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData 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 th
10. ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY CONTROL TARGET primarytarget ControlLimitValue 0 13 primarytarget ControlLimitText PBAR lower control limit primary chart SPCControlLimitRecord primarylowercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY LOWER CONTROL LIMIT primarylowercontrollimit ControlLimitValue 0 0 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart SPCControlLimitRecord primaryuppercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY UPPER CONTROL LIMIT primaryuppercontrollimit ControlLimitValue 0 25 primaryuppercontrollimit ControlLimitText UCL VB Set control limits for primary chart 272 SPC Attribute Control Charts target control limit primary chart Dim primarytarget As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY CONTROL TARGET primarytarget ControlLimitValue 0 13 primarytarget ControlLimitText PBAR lower control limit primary chart Dim primarylowercontrollimit As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY LOWER CONTROL LIMI D primarylowercontrollimit ControlLimitValue 0 0 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart Dim primaryuppercontrollimit As SPCControlLimitRecord _ Char
11. TextColor Public Instance Methods CheckAlarm Clone Copy Copy inherited from ChartObj ErrorCheck 138 SPC Control Data and Alarm Classes A historical record of the control limit values 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 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 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 SPC Control Data and Alarm Classes 139 state Returns an error code Returns the current alarm state based on the GetAlarm passed in value Get a values for the controlLimitsValues GetControlLimitHistory Value historical buffer Set current value of the control limit and SetControlLimitValue adds that value to the controlLimitValues historical array SPCCalcul
12. Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals 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 5 4 0 0 5 1 4 1 3 1 8 1 0 1 7 Defect 43 1 1 4 0 3 5 3 2 3 1 5 1 3 1 1 4 5 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 ALARM 8 00 9 00 10 00 11 00 12 00 13 00 14 00 15 00 C Chart alarm emphasis mode this ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL VB Chart alarm emphasis mode Me 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 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 294 SPC Attribute Control Charts TableAlarmEmphasisMode Tite Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Zero Equals 7344 8 14 8 44 44 10 14 10 44 11 14 11 44 1
13. VB Enable data and notes tooltips Me EnableDataToolTip True Me EnableNotesToolTip True 292 SPC Attribute Control Charts Me ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP Me ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP Enable Alarm Highlighting EnableAlarmStatusValues Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 11 38 12 08 12 338 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 41 2 6 3 3 2 1 2 4 3 3 1 0 0 1 1 D 7 Defect 3 2 5 5 3 0 8 0 5 3 5 1 9 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 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 it off if you don t want it Each sample interval has two small boxes that are labeled using one of three different characters An H signifies a high alarm a L signifies a low alarm and a signifies that there is no alarm C Alarm status line this EnableAlarmStatusValues false VB Alarm status line Me EnableAlarmStatusValues False SPC Attribute Control Charts 293 ChartAlarmEmphasisMode
14. alarmlimitvaluestring Current Value calculatedvaluestring If alarm AlarmState Then Console Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring Me ChartData AppendNotesString notesstring True End If End Sub SPCControlLimitAlarm SPC Variable Control Charts 207 If you want multiple alarms for a time interval vectored to the alarm processing routine i e it is possible that a time period has WE1 WE2 WE3 and WE4 alarms set the SPCControlChartData property to SPCControlChartData REPORT ALL ALARMS this 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 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 6645 Zero Equals zero TIME 20 34 20 49 21 04 21 19 21 34 21 49 22 04 22 19 22 34 22 49 23 04 23 19 23 34 23 49 0 04 UCL 53 25 39 40 30 20 10 0 21 00 22 00 23 00 0 00 UCL 20 76 RBAR 9 82 CL 0 00 21 00
15. 25 9 37 4 36 8 30 4 26 5 38 1 28 3 22 7 36 4 32 2 27 9 Sample amp 2 36 1 342 316 28 7 40 8 37 2 39 4 247 22 8 32 3 35 0 19 9 36 6 25 8 25 8 27 8 31 3 Sample amp 3 216 38 5 35 6 27 1 33 5 344 39 1 19 6 37 9 28 0 31 1 21 2 225 204 345 337 19 1 Sample 4 37 3 23 4 21 1 29 9 25 2 22 9 37 8 30 5 33 3 33 3 242 35 4 28 2 30 2 39 8 26 0 347 MEAN 314 312 28 7 29 0 32 1 33 6 32 2 30 5 30 6 333 297 28 1 27 2 240 35 4 327 29 0 RANGE 171 223 145 70 17 2 175 205 20 6 15 9 11 3 10 8 18 3 16 4 97 145 137 157 SUM 155 3 156 2 143 6 145 1 160 6 167 3 161 2 152 3 152 8 166 4 148 6 140 7 135 8 120 1 176 8 163 3 144 8 ALARM TAA Ed E ER eal ae D E ER a ER E E ER E Ed ES ER E ESI E ER E NOTES N N Y N N N N t N Y N N N N N N N 35 fox UCL 36 08 EAN 30 BAR 30 14 25 CL 24 19 RBAR 10 31 CL 0 00 40 30 20 10 0 13 00 14 00 15 00 16 00 These alarm highlight features apply to both variable control and attribute control charts Standard SPC Control Charts 27 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
16. DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER_STRINGS_LEVEL1 VB Set the strings used in the header section of the table Me ChartData Title Fraction Defective p Chart Me ChartData PartNumber 321 Me ChartData ChartNumber 19 Me ChartData DateString DateTime Now ToString Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL1 260 SPC Attribute Control Charts 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 5 an the strings used in the header section of the table this ChartData Title Fraction Defective p Chart this ChartData PartNumber 283501 this ChartData ChartNumber 17 this ChartData TheOperator B Cornwall this ChartData PartName Left Front Fender this ChartData Operation Painting this ChartData SpecificationLimits this ChartData Machine 11 this ChartData Gage this ChartData UnitOfMeasure this ChartData ZeroEquals this ChartData DateString DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 VB Set the strings used in the header section of the table Me ChartData Title Fraction Defective p Chart Me ChartData PartNumber 283501 hartData ChartNumb
17. E w 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 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 32 Standard SPC Control Charts Number of Defects per Unit Chart with variable sample size u chart Title Number Defective per Unit u Chart Part No 321 Chart No 19 Operator K Peterson Machine TIME 20 40 21 10 21 40 22 10 22 40 23 10 23 40 0 10 0 40 1 10 1 40 2 10 2 40 3 10 3 40 4 10 4 40 Burr 2 0 2 4 2 2 3 3 1 3 1 1 1 3 2 3 3 Seam 3 2 3 2 2 3 0 0 2 1 4 2 3 2 4 NO DEF UNIT 0 533 0 310 0 289 0 429 0 323 0 282 0 344 0 300 0 273 0 205 0 119 0 120 0 308 0 333 0 250 0 393 0 429 NO DEF UNIT 21 00 22 00 23 00 0 00 1 00 2 00 3 00 4 00 5 13 08 De
18. MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA 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 SPC Variable Control Charts 157 Set the table alarm highlighting to one of the TableAlarmEmphasisMode SPCChartBase table highlight constants ALARM HIGHLIGHT NONE ALARM HIGHLIGHT TEXT ALARM HIGHLIGHT OUTLINE ALARM HIGHLIGHT BAR Get the top edge using normalized coordinates of the TableStartPosY SPC chart table Set Get whether the x axis is time based or numeric XScaleMode based Public Instance Methods AddAnnotation AutoCalculateControlLimits AutoCalculatePrimaryControlLimits 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 AutoCalculateSecondaryControlLimits target and low control limits are calculated AutoScaleChartY Range AutoScalePrimaryChartY Range AutoScaleSecond
19. TimeAxis 63 66 70 90 TimeAxisLabels 69 70 TimeCoordinates 59 60 TimeGroupDataset 57 58 61 TimeLabel 53 90 91 143 145 175 176 268 TimeScale 58 59 TimeSimpleDataset 57 58 61 ToolTips 43 92 93 Trial License ii u Chart 5 13 31 39 243 UseNoTable 158 176 178 179 UserControl 7 41 56 57 341 349 350 356 UserCoordinates 59 Variable Control Chart v 4 5 13 14 15 23 32 39 40 45 46 98 99 100 104 110 111 112 132 147 149 150 158 163 164 169 185 225 234 245 variable sample subgroup 10 117 119 147 Visual Basic vi 5 10 12 344 345 Visual C vi 12 351 WE rules 10 203 Windows Applications vi 341 WorkingCoordinates 59 60 WorldCoordinates 59 XAxisLabelRotation 230 231 XAxisStringLabelMode 231 232 233 234 301 302 303 X Bar R 3 4 5 9 10 11 13 14 15 16 18 20 21 39 45 53 100 113 147 148 153 158 178 185 186 203 204 206 207 227 231 233 X Bar Sigma 4 5 9 10 11 13 14 16 17 39 53 100 113 114 147 153 158 159 160 185 187 227 X R 4 5 9 10 11 13 14 19 39 53 147 148 188 Zooming 2
20. Western Electric WE 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 A processed is considered out of control if any of the following criteria are met SPC Variable Control Charts 203 1 The most recent point plots outside one of the 3 sigma control limits 2 Two of the three most recent points plot outside and on the same side as one of the 2 sigma control limits 3 Four of the five most recent points plot outside and on the same side as one of the 1 sigma control limits 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 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 While the techniques in the previous section can be used to draw multiple SPC control lim
21. 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 214 SPC Variable Control Charts Dim timestamp As ChartCalendar spcData TimeStamp Dim timestampstring As String timestamp ToString Dim notesstring As String An timestampstring message _ fa 4 Xp alarmlimitvaluestring Current Value calculatedvaluestring If alarm AlarmState Then Me ChartData AppendNotesString notesstring True End If End Sub SPCControlLimitAlarm Scatter Plots of the Actual Sampled Data p r Eee n 74 01 74 00 73 99 LCLX 73 983 73 98 14 00 15 00 16 00 17 00 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 this PrimaryChart PlotMeasurementValues true VB Plot individual sampled values as a scatter plot Me PrimaryChart PlotMeasurementValues True Enable the Chart ScrollBar SPC Variable Control Charts 215 Tite Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 411 Time amp 53 953
22. timeincrementminutes 30 Operator S Kafka Machine 1 Time 12 31 1301 13 33 1401 1431 15 0 1531 16 0 1631 1701 1731 1801 18 31 19 00 1931 20 0 20 31 NO DEFECTIVE 12 0 1 6 5 10 10 8 7 12 9 12 2 0 6 3 12 NO INSP Once the Init routine is called the chart can be further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties Set Get the default font used in the table DefaultChartFontString display Public Instance Constructors Overloaded Initializes a new instance of the SPCChartBase SPCChartBase class Public Instance Properties Set to true to automatically log alarm details in the AutoLogAlarmsAsNotes sample interval Notes record Get Set an additional margin in normalized BottomLabelMargin coordinates if only the primary graphs is displayed allowing for the x axis labels Get the object that holds the descriptive text sampled ChartData and calculated values associated with the control chart 250 SPC Attribute Control Charts ChartAlarmEmphasisMode ChartTable DefaultControlLimitSigma EnableAlarmStatusV alues EnableCalculatedV alues EnableCategory Values EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableScrollBar EnableTimeValues EnableTotalSamplesV alues GraphBottomPos GraphStartPosX GraphStartPosY 1 GraphStartPosY2 GraphStopPosX GraphStopPosY 1
23. 0 Me SecondaryChart MaxY 40 Display the Sampled value rows of the table Me EnableInputStringsDisplay True Display the Sampled value rows of the table Me EnableCategoryValues True Display the Calculated value rows of the table Me EnableCalculatedValues True Display the total samples per subgroup value row Me EnableTotalSamplesValues True Display the Notes row of the table Me EnableNotes True Display the time stamp row of the table Me EnableTimeValues True SPC Variable Control Charts 165 Process Capability Ratios and Process Performance Indices 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 ProcessCapabilityLSLValue and ChartData ProcessCapabilityUSL Value properties of the chart The code below is from the TimeVariableControlCharts X BarR Chart example this ChartData ProcessCapabilityLSLValue 27 th
24. 0 25 Dim variableControlLimits As DoubleArray this 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 Me 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 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 280 SPC Attribute Control Charts Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator S Kafka Machina Date 12 28 2005 1 21 14 PM Time 1321 13 51 14 21 14 51 15 21 15 51 16 21 16 51 17 21 17 51 18221 18 51 19 21 19 5
25. 02 02 02 0 2 Cpm 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 03 03 Ppk 0 2 0 2 0 3 0 3 0 3 0 3 0 3 103 0 2 0 3 02 0 2 0 2 0 2 0 2 0 2 03 ALARM F3 ES EST E EST E ES ES ES EI ET ESI ER EST ESI EI ESI LER ERI ER ES ERE ER ER ES ER ER EE ER ER E ER ERI ER mh NOTES Y Y N y N N N N N N N Y Y N N N N C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL this ChartTable BackgroundColorl Color White this ChartTable BackgroundColor2 Color Gray VB Me ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL Me ChartTable BackgroundColorl Color White Me ChartTable BackgroundColor2 Color 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 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 the display of calculated values in the table StringLabelFont
26. 137 5 138 5 160 5 162 7 154 8 178 4 139 0 158 2 135 3 166 4 171 0 ALARM E ELT ER PI PS ER ELE et SRR Aa ESSI ERE aR ee NOTES N N N N N N N N N N N N N N N 35 UCL 36 29 BAR 30 25 EAN Cl 24 20 UCL 22 14 RBAR 10 47 CL 0 00 50 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 25 Scrollable Time Based Median Range Chart with Scatter Plot of Actual Sampled Data 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 5 12 2008 7 19 39 PM ALARM o 0 oom ru c 2772 2 12c UCL 37 47 35 MEDIAN 22 BAR 30 09 25 LCL 22 71 20 00 21 00 22 00 23 00 UCL 22 66 US re MEM a aa PDC ME RANGE 10 RBAR 10 39 CL 0 00 20 00 21 00 22 00 23 00 ET Us el Alarm Notification Typically when a process value exceeds a control limit an alarm condition exists In order to make sure that 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
27. 292 32 8 31 6 28 9 32 2 30 4 37 0 35 9 23 4 27 3 26 1 343 297 266 31 9 Sample 1 28 4 30 3 30 3 249 348 26 1 316 23 9 33 2 25 37 3 33 0 347 28 1 31 2 36 1 25 7 Sample 2 30 1 33 0 34 4 30 9 34 8 25 6 34 3 37 1 36 1 23 3 27 5 30 3 30 4 34 6 31 4 36 4 335 Sample amp 3 26 8 343 246 287 25 8 337 35 5 26 0 35 2 33 6 27 3 28 9 315 298 28 9 26 0 34 1 Sample 4 28 1 29 1 33 4 27 0 25 3 22 5 31 9 22 32 2 32 7 27 9 29 9 35 8 26 3 35 3 346 36 1 MEAN 29 1 30 6 30 4 28 8 30 6 27 4 33 1 28 0 34 7 30 4 28 7 29 3 31 7 30 6 313 313 323 RANGE 52 8 8 3 8 73 9 31 111 39 144 48 119 138 57 36 8 3 64 104 10 5 SUM 145 3 152 9 151 8 144 2 152 8 136 8 165 6 140 1 173 7 151 8 143 3 149 4 158 6 153 0 156 5 159 6 161 3 ALARM ze pa felis Pepe epee eee pepe feo p ps spp NOTES N N N N N N X N N N N N N N N N N 40 30 20 10 0 23 00 0 00 5 13 08 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 SPC Control Alarms
28. 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 Redistributable 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 ii 3 RESTRICTIONS You may not reverse engineer de compile or disassemble the SOFTWARE except and only to the extent that such activity 1s 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 desc
29. D 1009 xw a x am vx MOO K Month amp ee MesthiDay 7 Day Week TT 90102 100102 10102 20102 10109 110102 120102 10103 WeskiDay 5 Day Wadi ay nour eee T I T T 1 31 1 10602 14202 19000 120742 19163 10203 10303 10 403 There are more than 40 diferent b makiato axes types appropriate for scales ranging from 1 secondio 100 years Date Axes QuatedMonth TT TT Th tT f T ot ES o o4 o o o oa o 2001 2002 2003 Month JFMAMJJASONDJFMAMJJASONOJFMAMJJASONO J 2000 2001 2001 2003 Ment F T T I T T TTT T TTTT T TTT T Jam feb Mar Apr May Jun Ji Aug Sep Om Now Des Jan feb Mar Agr May Jun Jul Aup Sep 200 u vro 0 Day O Day Week f T T T T T T T T T T T T T T 1 Wed Thu Fri Sat Sun Mon Tue Wed Thu Fh Sat Sun Mon Tue Wed Thu 10603 11203 There are more fan 40 derent b mediate axes types appropri ate for scales rangi from 1 second to 100 years Date Axes There see more than 40 aterert tradite anne ewe sppropeiste for sowas ranging tron 1 second to 100 yass 66 SPC Control Data and Alarm Classes TimeAxis Time Date Axes with Custom Hour Range 8 30 AM to 4 00 PM This class is the most complex of the axis classes It supports time scales ranging from 1 millisecond to hundreds of years Dates and times are specified using the Net CF ChartCalendar class The major and minor tick marks can fall on any time base where a time base represents seconds m
30. Me Me Me Me hartData hartData hartData hartData hartData C C C C C C hartData ChartData ChartData ChartData ChartData ChartData PartNumber 283501 ChartNumber 17 PartName Transmission Casing Bolt Operation Threading SpecificationLimits TheOperator J Fenamore Machine 11 Gage 8645 UnitOfMeasure 0 0001 inch ZeroEquals zero DateString DateTime Now ToString 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 this ChartData Title Project XKYZ for PerQuet this ChartData TitleHeader Project Name VB Me ChartData Title Project XKYZ for PerQuet Me ChartData TitleHeader Project Name Change other header strings using the ChartData properties listed below e TitleHeader e PartNumberHeader e ChartNumberHeader e PartNameHeader e OperationHeader e OperatorHeader e MachineHeader e DateHeader e SpecificationLimitsHeader e GageHeader SPC Variable Control Charts 171 e UnitOfMeasureHeader e ZeroEqualsHeader e NotesHeader Even though the input header string properties have names like Title PartNumbe
31. Me Dock DockStyle Fill SPC Variable Control Charts 227 DrawChart End Sub End Region Dim startTime As New ChartCalendar SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of samples per sub group Dim numsamplespersubgroup As Integer 3 Number of data points in the view Dim numdatapointsinview As Integer 17 The time increment between adjacent subgroups Dim timeincrementminutes As Integer 15 Public Sub DrawChart Initialize the SPCBatchVariableControlChart Me InitSPCBatchVariableControlChart charttype numsamplespersubgroup numdatapointsinview Me RebuildChartUsingCurrentData End Sub DrawChart 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 InitSPCBatchVariableControlChart Method This initialization method initializes the most important values in the creation of a SPC chart 228 SPC Variable Control
32. SPC Control Data and Alarm Classes 101 Index of secondary chart lower control limit in controlLimitData SPC SECONDARY LOWER CONTROL LIMIT array Index of secondary chart upper control limit in controlLimitData SPC SECONDARY UPPER CONTROL LIMIT Public Static Shared Properties BatchColumnHeadString DefaultAbsRangeString DefaultDataLogFilenameRoot DefaultHighAlarmMessageString DefaultLowAlarmMessageString DefaultLowControlLimitString DefaultMeanString DefaultMedianString DefaultRangeString DefaultSampleValueString DefaultSigmaString DefaultSumString DefaultTargetString DefaultUpperControlLimitString Default VarianceString 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 DataLogFileOpenForWrite 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 Default string use
33. SPCControlLimitAlarmArgs 54 Class Architecture This class passes event information to a SPCControlLimitAlarmEventDelegate alarm processing delegate SPCControlLimitAlarmEventDelegate A delegate type for hooking up control limit alarm notifications Class Architecture 55 4 3 QCChart2D CF for Net Class Summary This chapter is a summary of the information in the QCChart2DNetCFManual PDF file It is not meant to replace that information Refer to that manual for detailed information concerning these classes The following categories of classes form the core of the QCChart2D CF software Chart view class Data classes Scale transform classes The chart view class is a 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 data 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 etc for a chart object The coordinate
34. erc Wu p Emm v 5 CL 5 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 4 00 5 00 6 00 7 00 8 00 93 00 10 00 5 13 08 The tabular cusum works by accumulating deviations from the process mean uo 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 C 2max 0 x uo K C i1 C max 0 uo K xi C i1 where the starting values are Cy Cy 0 uois 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 uo and the out of control process mean value u that you are trying to detect K ABS u Ho 2 SPC Variable Control Charts 195 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 o Typically K is selected to be one half the magnitude of the difference between the target value uo and the out of control process mean value u that you are trying to detect You specify H and K in the initialization call InitSPCTimeCusumControlChart for a time based variable
35. 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 this 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 Me ChartData AddNewSampleRecord timestamp samples Updating u charts Variable Sample Subgroup Size 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
36. ocx exe e SPCApplicationl Add the QCSPCChartNetCF DLL to the Toolbox by right clicking on the Toolbox and selecting Choose Items Browse to the c Quinn Curtis DotNet lib folder and select the QCSPCChartNetCF DLL file This will add all of the SPC charts controls in the DLL to the toolbox SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart 354 Creating SPC Charts in Windows Applications SPCApplication1 Microsoft Visual Studio File Edit a Si wf Windows CE 5 0 Device View Project Build Debug Target d Toolbox Form1 Designer cs SOF sPCTimeAttributeCon P 468 sPCTimeVariableCont QF ParetoChart 68 sPCBatchVariableCon S68 SPCBatchAttributeCo 6 ProbabilityChart E FrequencyHistogram t Common Device Con Device Containers h Pointer 7 Panel m TabControl Device Menus amp Too h Pointer RE ContextMenu ES MainMenu k StatusBar ie ToolBar Device Data hk Pointer 1 3 BindingSource mainMenut v Data Tools b Debug Form1 cs Design Formi cs Window Community Help Any CPU Error List 0 Errors f 0 Warnings i 0 Messages E lt Column G Error List Yj Task List Eg Find Results 1 9 Find Symbol Results Proje Solution Explorer SPCApplic A X 3
37. 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 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits if i gt 10 this AutoCalculateControlLimits this ChartData AddNewSampleRecord timestamp samples notesstring VB Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE SPC Variable Control Charts 199 Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits If i gt 10 Then Me AutoCalculateControlLimits End If Me 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 initialControllimits 130 25 35 10 0 20 double ehangeControlLimits 28 23 33 9 O0 18 DoubleArray variableControlLimits this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE f Variable Control Limits updated using AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray v
38. 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 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 24 0 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 C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND SPC Attribute Control Charts 265 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 11 4 10 0 99 76 115 9 7 11 3 10 8 9 5 118 126 9 6 85 SUM 148 7 152 9 157 5 151 7 155 6 142 9 143 9 147 1 144 3 154 8 144 9 1140 4 163 8 151 2 147 3 151 4 162 4 Cpk 92 0 2 0 3 03 93 0 3 9 2 02 9 2 10 2 02 0 2 0 2
39. 1 6 Seam 8 6 4 7 1 5 7 2 3 1 4 4 1 NO DEF 24 0 16 0 23 0 22 0 17 0 20 0 19 0 19 0 11 0 10 0 9 0 26 0 12 0 21 0 ALARM UCLP 33 11 NO DEF 20 LCLP 6 43 21 00 22 00 23 00 1 00 2 00 3 00 0 00 5 13 08 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 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 34 Standard SPC Control Charts Frequency Histogram Chart Frequency Histogram of Selected Data Freq 40 Measurements Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the se
40. 1008 1023 1038 1053 1108 1123 1138 1153 1208 1223 RANGE 22 100 64 b 119 125 k gua QU 1571 1517 WAO 150 1 1532 1952 1856 1452 1854 MOS 1533 MAD 1923 1629 1978 WL NO INSP 5 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 this EnableScrollBar true VB enable scroll bar Me 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 216 SPC Variable Control Charts a Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bot Operation Threading 0000000000000 Operator J Fenamore Machine 11 Time 1033 10 48 1103 11 18 1133 1948 1203 1218 1233 1248 1303 1318 1333 1348 1403 1418 1433 STDDEV 370 555 505 5 96 607 608 590 554 522 660 610 674 513 480 729 637 520 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 58288 LCLX 59 3 0 9 8 7 6 5 4 3 2 Frequency Histograms Viewing frequency histograms of both the variation in the prim
41. 160 6 167 3 161 2 152 3 152 8 166 4 148 6 140 7 135 8 120 1 176 8 163 3 144 8 ALARM B ER EN MEE N N N 40 30 20 C 10 0 13 00 public void InitializeChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup SimulateData thus this this this AutoCalculateControlLimits AutoScalePrimaryChartYRange AutoScaleSecondaryChartYRange RebuildChartUsingCurrentData numdatapointsinview numcategories nne a timeincrementminutes LICL 36 08 CL 24 19 UCL 21 79 RBAR 10 31 CL 0 00 124 SPC Control Data and Alarm Classes private void SimulateData String notesstring for int 1 0 i 200 i ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples this ChartData SimulateMeasurementRecord 30 10 Add the new sample subgroup to the chart this ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes VB Public Sub InitializeChart Fill parent container Me Dock DockStyle Fill Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Must have data loaded before an
42. 279 Notes Tooltips 216 289 NotesLabel 43 52 176 269 NotesToolTip 43 52 221 291 292 np Chart 29 243 NumericAxisLabels 68 69 NumericLabel 53 90 91 143 175 176 268 269 OHLCPlot 72 80 Pareto Chart 9 12 42 50 311 330 331 332 333 335 336 346 349 353 356 ParetoChart 9 12 42 50 311 330 331 332 333 335 336 346 349 353 356 p Chart 13 28 29 39 47 48 243 PhysicalCoordinates 43 52 58 59 60 62 63 Probability Chart 9 12 42 51 311 323 324 325 326 327 328 346 349 353 356 ProbabilityChart 9 12 42 51 311 323 324 325 326 327 328 346 349 353 356 ProbabilityCoordinates 43 51 52 ProbabilityScale 43 51 ProbabilitySigmaAxis 43 51 52 Process Capability 5 40 165 166 167 168 Redistributable License ii Scatter Plots 24 214 287 SimpleBarPlot 85 86 SimpleDataset 57 58 61 SimpleLineMarkerPlot 85 87 SimpleLinePlot 85 88 SimplePlot 70 85 86 87 88 92 93 SimpleScatterPlot 85 88 SPCArrayStatistics 52 SPCBatchAttributeControlChart 1 9 11 42 44 47 243 245 296 297 298 346 349 353 356 SPCBatchVariableControlChart 1 9 11 42 44 45 98 147 148 150 174 225 226 227 266 346 349 353 356 SPCCalculatedValueRecord v 44 97 98 107 129 130 132 133 135 139 140 205 206 213 SPCChartBase 42 44 98 128 137 154 155 157 178 179 223 224 225 238 249 250 251 293 294
43. 296 306 SPCChartObjects 43 174 175 176 182 196 197 198 199 201 202 231 232 233 234 236 266 267 268 276 277 278 279 280 281 301 302 303 305 SPCControlChartData v 43 97 98 99 100 102 104 109 110 111 117 118 122 125 126 127 128 129 132 133 134 151 152 153 156 168 169 170 177 178 182 183 191 193 195 196 205 206 207 213 226 227 228 245 246 251 254 255 259 260 271 272 283 284 285 286 296 297 299 SPCControlLimitAlarmArgs 43 53 97 132 133 134 135 136 205 206 213 SPCControlLimitRecord v 43 44 97 98 129 130 131 132 133 134 135 137 138 181 182 183 200 201 202 205 206 213 271 272 280 281 SPCControlParameters 43 52 SPCGeneralizedTableDisplay v 43 53 97 143 171 172 173 174 176 263 264 265 266 268 SPCTimeAttributeControlChart 9 11 42 44 48 243 245 246 247 257 258 304 346 349 353 356 SPCTimeVariableControlChart 9 10 11 42 44 46 98 110 111 124 132 133 147 148 150 151 152 153 175 178 191 193 195 196 235 236 346 347 349 350 351 353 354 356 357 StackedBarPlot 72 77 StackedLinePlot 72 81 StandardLegend 89 359 StringAxisLabels 68 69 StringLabel 43 53 90 91 143 176 269 Table Background Colors 171 Table Fonts 173 265 Table Strings 168 TableAlarmEmphasisMode 157 224 225 251 294 295 Templates 4 5 175 268 TickMark 94 95
44. 59 60 ChartShape 91 92 ChartSymbol 91 92 ChartText 53 90 91 97 143 176 268 ChartTitle 90 91 ChartView 10 42 57 62 92 94 157 252 318 326 3277 335 341 Control Limit Alarms v 129 Control Limits 181 185 186 187 188 189 192 196 198 199 270 273 276 278 279 Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk 5 40 141 CSV 40 94 102 105 107 108 125 Customer Support v 2 CuSum chart 9 11 14 22 148 194 195 Data logging 40 DataCursor 92 93 Dataset 57 70 71 DataToolTip 43 92 93 Developer License ii EWMA chart 20 21 148 189 190 FindObj 92 93 FloatingBarPlot 72 76 Frequency Histogram 9 312 FrequencyHistogramChart 9 12 42 49 237 305 311 312 313 314 317 318 319 320 346 349 353 356 GraphObj 61 62 82 Grid 89 90 GroupBarPlot 72 77 GroupDataset 57 58 61 GroupPlot 70 72 73 74 75 76 77 78 79 80 81 HistogramPlot 72 78 320 Individual Range 3 4 13 14 19 39 46 99 111 147 148 153 188 227 Initializing the SPCControlChartData Class 109 Legend 88 89 Legendltem 88 89 LinearAxis 43 62 64 69 90 LinearScale 58 LineGapPlot 72 79 LogAxis 62 65 69 90 LogScale 58 59 MA chart 21 22 148 159 192 193 Markers 91 93 MouseListener 43 92 93 94 MoveData 92 93 MoveObj 92 93 MultiLinePlot 72 80 MultiMouseListener 92 94 156 251 Multiple SPC Control Limits 200
45. 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 18 Standard SPC Control Charts Median Range Chart 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 5 12 2008 8 08 57 PM TIME 20 08 20 23 20 38 20 53 21 08 21 23 21 38 21 53 22 08 22 23 22 38 22 53 23 08 23 23 23 38 23 53 0 08 Sample 0 37 4 245 320 246 2 4 242 2333 35 6 237 36 1 265 366 36 2 243 255 365 373 Sample 1 33 9 27 8 36 7 25 0 233 25 9 30 1 366 264 244 236 372 270 281 328 234 33 2 Sample 2 35 2 36 1 353 243 342 233 311 298 37 3 302 2360 245 36 3 2317 2350 2311 255 Sample 3 373 32 1 347 234 2332 373 261 268 256 2353 323 354 251 343 314 2337 317 Sample 4 36 1 348 263 284 245 295 229 292 37 0 281 260 2344 240 28 1 272 258 255 MEDIAN 36 11 324 347 246 254 253 30 1 298 264 2302 265 2354 270 281 2314 2311 317 RANGE 35 11 6 10 4 54 10 3 14 0 10 5 3 8 13 6 117 124 127 12 3 10 0 9 6 131 11 8 NO INSP 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 ALARM 5 z E 3 3 NOTES N N N N N N N N N N N N N N N N N 40 CL S2 25 01 LCL 53222 44 21 00 22 00 23 00 0 00 5 13 08 EL Median Range Also known as the Median and Range Chart V
46. Alarm Classes 141 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 calculated 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 CF CALC SPC CPK CALC SPC SPC CPL CALC CPM CALC SPC CPU CALC SPC CUSTOM_PC_CALC SPC SPC PP CALC PPK CALC SPC PPL CALC SPC PPU _ CALC SPC Public Static Shared Properties 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 Constant value PPU calculation DefaultProcessCapabilityStrings Public Instance Constructors SPCProcessCapabilityRecord Public Instance Properties CalculationType CurrentValue Cur
47. Batch Individual Range Batch Dyn X Bar Sigma Variable Control Limits X Bar R No Table Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 TIME 17 04 17 12 17 37 17 48 18 07 18 20 18 29 18 52 18 54 19 12 19 24 19 45 19 57 20 11 20 36 20 42 21 02 RANGE 0 2 7 7 107 88 9 0 20 3 9 4 6 1 6 2 0 3 9 9 9 5 7 5 8 14 3 123 14 0 ALARM 17 04 17 12 17 37 17 48 18 07 18 20 18 29 18 52 18 54 19 12 19 24 19 45 19 57 20 11 20 36 20 42 21 02 EU 2 The time stamp of batch control chart does not have to be does not have to have an equal time spacing between adjacent sample groups 2 Introduction Revision 2 0 has added many new to QCChart2D CF New features include e Five new plot types BoxWiskerPlot FloatingStackedBarPlot RingChart SimpleVersaPlot and GroupVersaPlot e Elapsed time scaling to compliment the time date scaling Includes a set of classes specifically for elapsed time charts ElapsedTimeLabel ElapsedTimeAutoScale ElapsedTimeA xis ElapsedTimeA xisLabels ElapsedTimeCoordinates ElapsedTimeScale ElapsedTimeSimpleDataset and ElapsedTimeGroupDataset Vertical axis scaling for time date and elapsed time A DatasetViewer class for the grid like display of dataset information in a table A MagniView class a new way to zoom data A CoordinateMove class used to pan the coordinate system left right up down e Zoom stack processing is now internal to t
48. 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 SPC Variable Control Charts 235 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 16 00 17 00 18 00 19 00 uj E 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 this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes this PrimaryChart XAxis LineColor Color Blue this PrimaryChart XAxis LineWidth 3 his SecondaryChart YAxisl LineColor Color Green his SecondaryChart YAxis2 LineColor Color Red his SecondaryChart YAxisl LineWidth 3 his SecondaryChart YAxis2 LineWidth 3 his PrimaryChart ProcessVariableData LineMarkerPlot LineColor Color Black his PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet l cet ct 236 SPC Variable Control Ch
49. CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT 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 252 SPC Attribute Control Charts Set Get whether the x axis is time based or numeric XScaleMode based Public Instance Methods AddAnnotation AutoCalculateControlLimits AutoCalculatePrimaryControlLimits AutoCalculateSecondaryControlLimits AutoScaleChartY Range AutoScalePrimaryChartY Range AutoScaleSecondaryChartY Range Copy Draw InitSPCChartBase IsTimeScale MakeControlLinePlot 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 contr
50. ChartData AlarmStateEventEnable true 204 SPC Variable Control Charts Must have data loaded before any of the Auto methods are called Check this data against rules SimulateData 100 23 VB AddHandler Me ChartData AlarmStateEventHandler AddressOf Me SPCControlLimitAlarm don t generate alarms in initial data simulation Me ChartData AlarmStateEventEnable False Me PrimaryChart UseWERuntimeRules SimulateData Calculate the SPC control limits for the X Bar part of the current SPC chart X Bar R Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData generate alarms starting now Me 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 this ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm don t generate alarms in initial
51. Charts 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 E Parameters charttype The SPC chart type parameter Use one of the SPCControlChartData SPC chart types MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA 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 batch Counter 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 SPC Variable Control Charts 229 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 18 1233 1248 1303 1318 13 330 1948 1440 1418 1633 148 1503 1518 1533 1548 103 1618 2
52. Files of type Component Files dll tlb olb ocx exe e SPCApplicationl Add the QCSPCChartNetCF DLL to the Toolbox by right clicking on the Toolbox and selecting Choose Items Browse to the c Quinn Curtis DotNetVib folder and select the QCSPCChartNetCF DLL file This will add all of the SPC charts controls in the DLL to the toolbox SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart Creating SPC Charts in Windows Applications 347 SPCApplication1 Microsoft Visual Studio z Lh 83 4 ye Toolbox Formi Designer vb Form1 vb Form1 vb Design Start Page sPCChartBase SB sPCTimeAttributeCon amp sPCTimeVariableCont dg Paretochart SB sPCBatchVariableCon GB sPCBatchAttributeCo Sol Tg ici SPCApplication1 My Project Sj References EJ bin LL obj I E E E EP EE Formi vb 2 Form Designer vb FrequencyHistogram 2 Form resx ab Button v CheckBox Tf DateTimePicker dg ProbabilityChart A Label A LinkLabel lt ListBox 33 ListView 2 NumericUpDown BackColor E control ii PictureBox x Bl Font Arial 10pt ProgressBar ForeColor B coe RadioButton FormBorderStyle FixedSingle Text Form1 l Splitter El Behavior AutoValidate EnablePreventFoc ContextMenu none Qo Errors A 0 Warnin
53. Get the array of the sample data Get a reference to the charts subhead Set Get the font used for the chart subhead SPC Attribute Control Charts 307 Set Get the font used for the data table TableFont Get Set the text template for the data tooltip TextTemplate Get Set the increment between adjacent TimeIncrementMinutes samples of charts that use a numeric x scale Set Get tooltip font ToolTipFont Get a reference to the charts tooltip symbol ToolTipSymbol Get a reference to the charts x axis XAxis Get a reference to the charts x axis labels XAxisLab Get a reference to the charts x axis grid XGrid Get Set the x value template for the data XValueTemplate tooltip Get a reference to the charts left y axis YAxis1 Get a reference to the charts right y axis YAxis2 Get a reference to the charts left y axis YAxisLab labels Get a reference to the charts left y axis title YAxisTitle Get a reference to the charts y axis grid YGrid Get Set the y value template for the data YValueTemplate tooltip The main objects of the graph are labeled in the graph below _SraphBackground F 40 35 YAxisTitle 25 L heiss YAxisLab 20 XAxisLab PlotBackground UCL 35 8 SPC Attribute Control Charts 309 8 Frequency Histogram Pareto Diagram and Normal Probability Charts FrequencyHistogramChart ParetoChart ProbabilityChart Frequency Histogram Chart An SPC control chart wi
54. Line Column Project F Error List j Task List E Find Results 1 g3Find Symbol Results Ready e Critical Step Make sure you add the following lines to the top of the Form1 cs code to resolve the QCChart2D CF QCSPCChart CF and other graphics classes used in the example using com quinncurtis chart2dnetcf using com quinncurtis spcchartnetcf e You should view the complete source of the SPCApplicationl Forml InitializeChart method by loading the SPCApplicationl Forml cs file in the VS editor e You should now be able to compile run and view the entire project Any changes you make in the InitializeChart method form is reflected in the application If you still have problems go back and study the many example programs we have provided e Here is what the resulting SPC chart looks like Title Variable Control Chart X Bar amp R Part Mo 283501 Chart No 17 TIME 17 36 17 51 18 06 18 21 18 36 18 51 19 06 19 21 19 36 19 51 20 06 20 21 20 36 20 51 21 06 21 21 21 36 ICL 35 25 i BAR 29 81 EAN LCL 24 37 40 30 20 10 0 18 00 19 00 20 00 21 00 ICL 19 91 CL 0 00 40 30 20 10 0 18 00 19 00 20 00 21 00 Em w e SPCApplication2 There are other ways to achieve the same result We actually prefer the technique used in the SPCApplication2 example and that is what most of our other example programs use In that example we added a UserControl name XBarRChart to the project Add UserControl We then
55. N N N N N N N 0 3 UCLP 0 29 0 2 PBARz0 14 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 this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes his GraphStartPosX 0 2 Enable scroll bar his EnableScrollBar true his PrimaryChart DisplayFrequencyHistogram true his PrimaryChart XAxis LineColor Color Blue his PrimaryChart XAxis LineWidth 3 his PrimaryChart ProcessVariableData LineMarkerPlot LineColor Color Black et ct A E AE xb apf his PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet SPC Attribute Control Charts 305 this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor Color Beige this PrimaryChart GraphBackground FillColor Color LightGray this PrimaryChart PlotBackground FillColor Color LightGoldenrodYellow this PrimaryChart FrequencyHistogramChart PlotBackground FillColor Color LightGoldenrodYellow The PrimaryChart object is an instance of the SPCChartObjects class The SPCChartObjects class contains the obj
56. 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 120 SPC Control Data and Alarm Classes 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 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 this ChartData SampleSubgroupSize VSS numsamplespersubgroup int 25 ChartSupport GetRandomDouble Add the new sample subgroup to the chart this 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 sa
57. Net CF SDK did not support dash styles for line drawing and the System Drawing Drawing2D ws not used System Drawing Imaging Namespace The System Drawing Imaging namespace implements basic imaging functionality Basic graphics functionality is provided by the System Drawing namespace 8 Introduction System Drawing Color Class Provides a class to define colors in terms of their individual RGB Red Green Blue components System Drawing Font Class Defines a particular format for text including font face size and style attributes System IO Namespace The IO namespace contains types that allow synchronous and asynchronous reading and writing on data streams and files System Collections Namespace The System Collections namespace contains interfaces and classes that define various collections of objects such as lists queues bit arrays hash tables and dictionaries Directory Structure of QCSPCChart for Net The SPC Control Chart Tools for Net CF class library uses the standard directory structure also used by the QCChart2D CF and QCRTGraph CF software It adds the QCSPCChart directory structure under the Quinn Curtis DotNet folder For a list of the folders specific to QCChart2D CF see the manual for QCChart2D CF QCChart2DNetCFManual pdf Drive Quinn Curtis Root directory DotNet Quinn Curtis Net based products directory Docs Quinn Curtis Net related documentation directory Lib Quinn Curtis Net related
58. Properties AlarmDisplay AlarmEnable AlarmMessage AlarmState Calculated ValueSrc ControlLimitText ControlLimitType ControlLimitValue ControlLimitValues Specifies the alarm is a greater than alarm Specifies the alarm is a lower than alarm 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 Hysteresis Value PrevAlarmState SPCProcessVar SymbolColor TextColor Public Instance Methods CheckAlarm Clone Copy ErrorCheck GetAlarm GetControlLimitHistory Value SetControlLimitValue SPC Control Data and Alarm Classes 131 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 Returns an object that is a Clone of this SPCControlLimit
59. SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 0 UCLR1 UCLR1 this PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal this PrimaryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal For SecondaryChart high limits only SPCControlLimitRecord ucl4 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLR2 UCLR2 SPCControlLimitRecord ucl5 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLR1 UCLR1 this SecondaryChart AddAdditionalControlLimit ucl4 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 this SecondaryChart AddAdditionalControlLimit ucl5 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 1cl2 As New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 0 LCLR2 LCLR2 Dim ucl2 As New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 0 UCLR2 UCLR2 Me PrimaryChart AddAdditionalControlLimit 1c12 202 SPC Variable Control Charts SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 Me PrimaryChart AddAdditionalControlLimit ucl2 _ SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim lcl13 As New SPCControlLim
60. 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 this ChartTable SampleItemTemplate LineColor Color 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 C this GraphStartPosX 0 1 start here this GraphStopPosX 0 875 end here VB Me GraphStartPosX 0 1 start here Me 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 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 value of the property GraphBottomPos defines the bottom of the graph The default values for thes
61. 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 DefaultSampleRowHeaderPrefix headers of the sample data items DefectiveDecimalPrecision Gage GageHeader Machine MachineHeader NotesHeader NotesMessage NotesToolTips NumberSamplesValueRowHeader 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 104 SPC Control Data and Alarm Classes NumcCalculatedV alues NumRecordsPerChart NumSampleCategories Operation OperationHeader OperatorHeader PartName PartNameHeader PartNumber PartNumberHeader 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 a
62. an alternative to the standard Net CF 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 CF 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 CF Array class adding routines for resizing of the array and the insertion and deletion of bool 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 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 96 SPC Control Data and Alarm Classes 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 control chart data is stored in the SPCControlChartData class It holds the header information used to customize the chart tabl
63. 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 the 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 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 fill attributes of the object SPC Control Data and Alarm Classes 61 ChartAttribute This class consolidates the common line and fill attributes associated with a GraphObj o
64. axes labels grids and a bar plot 50 Class Architecture Pareto Chart Pareto Diagram of Defects Freq Cum Poor Mix Stains Not Enough 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 51 Cumulative Normal Probability Chart Normal Probability Plot Showing Estimated Accumulated Frequencies Under 40 2 4 6 8 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 CF charting software capable of rendering of probability chart coordinate systems ProbabilityScale ProbabilityAutoScale Prob
65. 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 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 alte
66. built If you attempt to view the main Form 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 The primary view class of the QCSPCChart library is the ChartView class The ChartView class derives from the Net System Windows Forms 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 Net Compact Framework Devices and Emulators It is very difficult to make SPC chart displays small enough to fit on the Windows Mobile PDA PC Phone and other emulators that ship with Windows Visual Studio Those emulators have tiny tiny screens Visual Studio 2003 shipped with a Windows CE emulator with a larger screen resolution but it has been removed in subsequent versions of Visual Studio It is assumed you want this software to run on dedicated Windows CE devices with a minimum screen resolution of 640 x 480 If you already have hardware that meets this requirement you can use your actual hardware device as your development environment If you have an emulator for your hardware usually supplied by the hardware manufacturer
67. calculated values in the table StringItemTemplate 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 decimal precision of a numeric string this ChartTable SampleItemTemplate LineColor Color 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 SPC Variable Control Charts String title Parameters primarychart 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 Place your chart title here 10 00 11 00 12 00 13 00 40 30 20 10 0 10 00 11 00 12 00 13 0
68. call Me Dock DockStyle Fill InitializeChart End Sub End Region Sub InitializeChart TODO Add any initialization after the InitForm call Dim xl As Double 11 0 2 3 4 5 6 7 By 9 Dim y1 As Double 2 6 13 26 58 82 93 97 100 Frequency Histograms Pareto Diagrams Probability Charts 325 Me InitProbabilityChart xl yl Me 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 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 Public Static Shared Properties Set Get default font object used for the axes DefaultAxisLabelsFont labels Set Get the default font object used for the DefaultAxisTitleFont axes titles Set this properties BuildGraph Set Get the default font used in the chart Default
69. changed the inheritance of the control in the user controls XBarRChart cs file from UserControl to one of our SPC chart types SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart public partial class XBarRChart SPCTimeVariableControlChart ChartCalendar startTime new ChartCalendar The time increment between adjacent subgroups int timeincrementminutes 15 Number of samples per sub group 357 int numsamplespersubgroup 5 public XBarRChart InitializeComponent InitializeChart e The chart customization code is placed in the XBarRChart cs file Once compiled the XBarRChart control appears in the projects Toolbox and you will see it if you display the projects main form You can select the XBarRChart control from the Toolbox and drop it on the main form e SPCApplication3 A third technique skips adding any of the SPC controls to the toolbox Instead you can instantiate the SPC control directly in the Form cs file In this example a simple Panel control has been dropped onto the form This provides a simple means to position and size the SPC control it will hold Add the SPC chart control to the panel in the Forml cs file SPCTimeVariableControlChart spcchart null public void InitializeChart spcchart new SPCTimeVariableControlChart Have the chart fill
70. 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 this 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 Me 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 196 SPC Variable Control Charts Extracted from MiscTimeBasedControlCharts CUSumChart2 C int charttype SPCControlChartData TABCUSUM CHART double processMean 10 double kValue 0 5 double hValue 5 Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype nu
71. data simulation this ChartData AlarmStateEventEnable false this PrimaryChart UseWERuntimeRules Must have data loaded before any of the Auto methods are called SimulateData 100 20 SPC Variable Control Charts 205 Calculate the SPC control limits this AutoCalculateControlLimits throw out values used to calculate limits this ChartData ResetSPCChartData generate alarms now this ChartData AlarmStateEventEnable true Must have data loaded before any of the Auto methods are called Check this data against rules SimulateData 100 23 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 T message An alarmlimitvaluestring Current Value calculatedvaluestring if alarm AlarmState ie Console Out WriteLine notesstring this ChartData AppendNotesString notesstring true VB AddHandler Me ChartData AlarmStateEventHandler Addr
72. 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 the last category is assigned the total number of defective parts not defects DoubleArray samples this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record this ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing startTime Add ChartObj MINUTE 30 Calculate the SPC control limits this AutoCalculatePrimaryControlLimits Scale the y axis of the SPC chart to display all data and control limits this AutoScalePrimaryChartYRange Rebuild the chart using the current data and settings this RebuildChartUsingCurrentData VB 284 SPC Attribute Control Charts 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 _ Me ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample
73. for other Net CF components too 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 the x value array the number of x values the dataset name and the dataset type 58 SPC Control Data and Alarm Classes SimpleDataset Represents simple xy data where for every x value there is one y value TimeSimpleDataset A subclass of SimpleDataset it uses ChartCalendar dates a wrapper around the System DateTime value class as the x values and floating point numbers as the 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 ChartC
74. 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 Attribute Control Charts 267 Extracted from the example TimeAttributeControlCharts PercentDefectiveChart C SPCChartObjects AxisTitleFont new Font Times 12 FontStyle Regular SPCChartObjects ControlLimitLabelFont new Font Times 10 FontStyle Regular this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCChartObjects AxisTitleFont new Font Times 12 FontStyle Regular SPCChartObjects ControlLimitLabelFont new Font Times 10 FontStyle Regular Me InitSPCTimeAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview timeincrementminutes The chart class static property DefaultTableFont sets the default Font string Since the chart fonts all default to different sizes the default font is defined using a string specifying the
75. 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 plots Daily Stock Price Price NASDAQ T T T T i T T T T T T T i T T T T i T 1 05 09 1 12 09 1 19 09 1 26 09 2 02 09 FloatingStackedBarPlot 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 1997 Prozac SPC Control Data and Alarm Classes 77 1999 2001 2003 1997 1998 1999 2 zoloft Paxil Celexa Group and the Stacked bars represent two different ways of displaying the same data GroupBarPlot StackedBarPlot GroupVeraPlot 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 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 ite
76. line in the data table or highlight the entire column of the sample interval where the alarm occurs Change the color of a data point that falls outside of alarm limits 49 30 20 10 0 13 00 14 00 15 00 16 00 40 30 20 10 0 13 00 14 00 15100 16 00 26 Standard SPC Control Charts 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 MEM 2 09 2 24 2 39 E S609 3 24 3 39 3 54 4 09 EN 4 39 4 54 5 09 5 24 5 39 Sample 1 Sample 3 MEAN 27 8 MEN 304 26 7 31 0 M348 258 308 269 32 1 EHE 31 2 295 284 292 304 SUM An alarm status line highlights an alarm condition and lets you know when chart the primary or secondary the alarm occurs in 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 5 12 2008 7 39 20 PM TIME 12 24 12 39 12 54 13 09 13 24 13 33 13 54 14 09 14 24 14 39 14 54 15 09 15 24 15 39 15 54 16 03 16 24 Xx 38 7 412 313 26 2 23 6 33 0 19 0 40 2 22 0 35 3 318 26 1 20 2 21 0 40 3 375 312 Sample 1 216 18 9 24 0 33 2 37 6 40 3
77. number of defective parts not defects DoubleArray samples this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART double r ChartSupport GetRandomDouble if r lt 0 1 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 Add new sample record this ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute passing startTime Add ChartObj MINUTE 30 VB Private Sub SimulateData Dim notesstring As String If Me IsDesignMode Then Return End If 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 Y is assigned the total number of defective parts not defects Dim samples As DoubleArray Me 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 f i ToString Spray paint nozzel clogged Replaced with new Enois nozzle Else notesstring End If Add new sample record Me ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute p
78. 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 Constant specifies that the next NUMERIC ROW SPACING row to the table should user numeric row spacing Constant specifies that the table TABLE NO COLOR BACKGROUND does not use a background color Constant specifies that the table uses a single color for the TABLE SINGLE COLOR BACKGROUND background backgroundColor1 Constant specifies that the table uses horizontal stripes of color for TABLE SINGLE COLOR BACKGROUND GRID the background backgroundColorl and backgroundColor2 Constant specifies that the table uses horizontal stripes of color for TABLE STRIPED COLOR BACKGROUND the background backgroundColorl and backgroundColor2 Constant specifies that the next TEXT ROW SPACING row to the table should user text row spacing Public Static Shared Properties Set Get the default font used in the table DefaultTableFont display Public Instance Constructors Overloaded Initializes a new instance of the SPCGeneralizedTableDisplay SPCGeneralizedTableDisplay class Public Instance Properties Set Get the background bar left offset in BackgroundBarXOffset normalized coordinates Set Get the first of two
79. objects are stored internal to the SPCControlChartData 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 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 5 12 2008 6 23 31 PM TIME 16 23 18 53 19 23 19 53 20 23 20 53 2173 71 53 22 23 72153723123 29 53 0 23 M 1 73 Eg 2123 Cpk 0 000 0 922 0 909 0 696 0 745 0 730 0 584 0 706 0 876 0 648 0 623 0 584 0 587 0 619 0 539 0 545 0 557 Ppk 0 000 1 156 1 374 0 565 0 457 0 378 0 431 0 468 0 506 0 464 0 495 0 479 0 506 0 527 0 500 0 506 0 529 ALARM Ium e UM SEE IMEEM IUS 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 30 p VALLI TTD RAMIS SELES SES gt ICL 29 18 med ambe Ade ABS RANGE 10 1 f E ERE VERRE HERPES E ET VERRE RANGE 8 93 CL 0 00 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 C7 SPC variable control chart type int charttype SPCControlChartData INDIVIDUAL RANGE CHART Number of samples per sub group int numsamplespersubgroup 1 Number of data points in the view int numdatapointsi
80. parent client area Me Dock DockStyle Fill Define and draw chart InitializeChart End Sub End Region 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 SPC Attribute Control Charts 247 Dim numdatapointsinview As Integer 17 The time increment between adjacent subgroups Dim timeincrementminutes As Integer 30 Sub InitializeChart Initialize the SPCTimeAttributeControlChart Me InitSPCTimeAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview timeincrementminutes Me RebuildChartUsingCurrentData End Sub DrawChart End Class SPCTimeAttributeControlChart Members SPCTimeAttributeControlChart overview Public Instance Constructors Overloaded Initializes a new instance of the SPCTimeAttributeControlChart SPCTimeAttributeControlChart class Public Instance Methods Overloaded Initialize the class for a specific InitSPCTimeAttributeControlChart SPC chart type The control chart type p np c and u charts is established in the attribute control charts InitSPCTimeAttributeControlChart initialization routine SPCTimeAttributeControlChart InitSPCTimeAttributeControlChart Met
81. 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 Grid Classes Grid PolarGrid AntennaGrid 90 SPC Control Data and Alarm Classes 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 Grid 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 th
82. 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 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 this XAxisLabelRotation 90 VB Me 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 Ci SPC Variable Control Charts 231 this XAxisLabelRotation 90 I e an this InterGraphMargin this GraphBottomP
83. 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 bars in this case Instead you can change the histogram bar colors by calling SetSegmentLineColor and SetSegmentFillColor Frequency Histograms Pareto Diagrams Probability Charts 321 C For int i 0 i lt 97 i this FrequencyHistogramPlot SetSegmentFillColor i Color Blue this FrequencyHistogramPlot SetSegmentLineColor i Color Black VB Dim i As Integer For i 0 To 8 Me FrequencyHistogramPlot SetSegmentFillColor i Color Blue Me FrequencyHistogramPlot SetSegmentLineColor i Color Black Next i You can also use the utility properties BarFillColor BarLineColor and BarLineWidth we added to the FrequencyHistogramPlot that will set all of the bars of the histogram plot at once C this BarFillColor Color Blue this BarLineColor Color Black VB Me BarFillColor Color Blue Me BarLineColor Color Black Adding Control Lines and Normal Curve to Histogram Plot Revision 1 8 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 sel
84. record Me ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing StartTime Add ChartObj MINUTE 30 Calculate the SPC control limits Me AutoCalculatePrimaryControlLimits Scale the y axis of the SPC chart to display all data and control limits Me AutoScalePrimaryChartYRange Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData Me UpdateDraw End Sub timerl Tick Updating Chart Data The real time example above demonstrates how the SPC chart data 1s 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 if this IsDesignMode return for int i 0 i lt 2003 i 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 this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART SPC Attribute Control Charts 285 Add new sample record this ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing startTime
85. sale but also taint the manufacturer with a reputation that will hurt future sales regardless of the quality of future products Users have a short memory A company s quality reputation is only as good as the quality of its most recent product Introduction 3 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 zea
86. their five number summaries the 74 SPC Control Data and Alarm Classes smallest observation lower quartile Q1 median Q2 upper quartile Q3 and largest observation Candlestick Plots in Technical Analysis 4 01 05 The Open 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 SPC Control Data and Alarm Classes 75 Cell Plot of Population Density 0 100 200 Mean Family Income 1000 The Cell plot will plot rectangles of any size color and postion CellPlot 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 ErrorBarPlot 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 76 SPC Control Data and Alarm Classes Media Schedule WSJ DSP Journal EDN PC Mag Computer Week Info Age 1 2002 4 2002 7 2002 10 2002 1 2003 Year of 2003 Floating bars are useful for creating scheduling charts FloatingBarPlot This class
87. to DATALOG FILE SAMPLED VALUES the file Datalog flag specifying that the time DATALOG FILE TIME STAMP stamp should be logged to the file Datalog flag specifying that the file DATALOG USER STRING 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 FRACTION DEFECTIVE PARTS CHART Chart SPC Chart header level constant HEADER STRINGS LEVELO display no header strings SPC Chart header level constant HEADER STRINGS LEVELI display minimal header strings title partNumber chartNumber dateString SPC Chart header level constant HEADER STRINGS LEVEL2 display most header strings title partNumber chartNumber partName operation operator machine dateString SPC Chart header level constant HEADER STRINGS LEVEL3 display all header strings title partNumber chartNumber partName operation operator machine specification limits gage unitofMeasure zeroEqulas and dateString Chart type constant Individual INDIVIDUAL RANGE CHART Range Individual X SPC Variable 100 SPC Control Data and Alarm Classes MEAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS MEAN VARIANCE CHART MEDIAN RANGE CHART NO DATALOG FILE PREFIX NUMBER DEFECTIVE PARTS CHART
88. true 258 SPC Attribute Control Charts Display the Calculated value rows of the table his EnableCalculatedValues true Display the total samples per subgroup value row his EnableTotalSamplesValues true his EnableNotes true Display the time stamp row of the table E i t Display the Notes row of the table t E his EnableTimeValues true this RebuildChartUsingCurrentData VB Sub InitializeChart Initialize the SPCTimeAttributeControlChart Me InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table Me ChartData Title Fraction Defective p Chart Me ChartData PartNumber 321 Me ChartData ChartNumber 19 Me ChartData PartName Pre paint touchup Me ChartData TheOperator S Kafka Display the Sampled value rows of the table Me EnableInputStringsDisplay True Display the Sampled value rows of the table Me EnableCategoryValues True Display the Calculated value rows of the table Me EnableCalculatedValues True Display the total samples per subgroup value row Me EnableTotalSamplesValues True Display the Notes row of the table Me EnableNotes True Display the time stamp row of the table Me EnableTimeValues True SPC Attribute Control Charts 259 Me RebuildChartUsingCurrentData End Sub Initi
89. 0 Frequency Histogram Pareto Diagram and Normal Probability Charts 311 Frequency Histogram Wart nsu ide terne dissipat du Rt poire pu Rp IDEE ERE 311 Probability P gres nenia tet la ea a A ao ch Salen E COPAS 322 Pareto DIalratis 4 oce edo n aseteN testes dese eise dte vce deci uA eee estan atom tales dae a LN 329 Using SPC Control Chart Tools for Net CF to Create Windows Applications 341 Critical Note Running the Example Programs sss 341 Net Compact Framework Devices and Emulators sse 341 Visual Basic FOE NE ssbecdtbim ubstuipad drei a eec es deua ate EE tni 344 Visual C Tor Nel ise da caves cas se espero end diea pue n EAR ae an Rea P 351 Indexes cese M esee ded abel ce UR ue LE sed sans 358 vi SPC Control Chart Tools for Net CF 1 Introduction New Features found in the 2 0 version of QCSPCChart CF Revision 2 0 follows Revision 1 8 Most new features associated with revision 2 0 are part of the QCChart2D CF software on top of which the QCSPCChart CF software is built As far this software goes only a few featues specific to Revision 2 0 of QCSPCChart CF have been added These include e The batch control chart templates SPCBatchVariableControlChart SPCBatchAttributeControlChart have new x axis labeling modes Label the x axis tick marks using a batch number the original and default mode a time stamp or a user defined string i
90. 0 Extracted from the exaple program SPCApplicationl C public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 17 177 178 SPC Variable Control Charts Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes this UseNoTable true true true Place your chart title here this EnableScrollBar true this ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL If training deta SimulateData 50 30 10 Calculate the SPC control limits for both graphs of the current SPC chart X Bar R this 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 this AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits this AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings this RebuildChartUsingCurrentData VB Public Sub InitializeChart Fill parent container Me Dock DockStyle Fill SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of datapoints in the view Dim numdatapointsinview As Inte
91. 0 0 00000 sog 201 0 02 003 0 04 005 0 00002 0 00004 100 0 4 0 2 0 0 0 2 0 4 EA Is eg E N pel ye T5 37 a5 0 10000 20000 30000 40000 10 80 80 2800 15 29 3 40 40 2400 25 0 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 Logarithmic Axes 1000 50000 100 400 5000 Linear X Log X Log X 10 Log Y 200 Linear Y 500 Log Y 1 0 50 0 1 0 5 0 20 40 60 80 100 0 02 0 2 2 20 200 1 10 100 1000 40 Log X 20 Linear Y 0 Q2 0406 1 gt 4 6 10 p 40 60 100 499 400600 1000 100 Time X 10 Log Y 8 01 02 9 01 02 10 01 02 Logarithmic axes can be combined with linear logarithmic and time axes LogAxis SPC Control Data and Alarm Classes 65 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 Yea av Quan Cs rrr es a vas 1000 wes 2000 ua wo 2000 Yeas Mor QuatesMent T T
92. 0 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 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 po l Fraction Defective Parts 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 Label the tick mark with time stamp of sample group this XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME VB Label the tick mark with time stamp of sample group Me 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 this ChartData AddNewSampleRecord batchCounter timestamp samples VB Me ChartData AddNewSampleRecord batchCounter timestamp samples 302 SPC Attribute Control Charts See the example program BatchAttributeControlCharts FractionDefectivePartsControlChart 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 Title Percent Defective Pa
93. 0 22 00 23 00 0 00 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 290 SPC Attribute Control Charts Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 41 Time 1646 1716 1746 1816 1846 1916 1946 2016 2046 2116 2146 2216 2246 2316 2346 O16 046 2 4 FRACT DEF hesia i 0 028 0 160 0 160 0 200 0 060 0 180 0 040 0 220 0 200 0 220 0 100 0 050 0 140 n on ian qc 0 0 M CLP 0 00 17 00 18 00 21 00 23 00 124208 ALL x C private void SimulateData String notesstring e if this IsDesignMode return for int i 0 i 200 i Add new sample record this ChartData AddNewSampleRecord timestamp samples notesstring Simulate 30 minute passing startTime Add ChartObj MINUTE 30 VB Private Sub SimulateData Dim notesstring As String If Me IsDesignMode Then Return End If Dim i As Integer For i 0 To 19
94. 0 24 0 140 40 240 80 60 180 200 220 120 80 120 40 240 40 26 0 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 this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND this ChartTable BackgroundColorl Color Bisque this ChartTable BackgroundColor2 Color LightGoldenrodYellow VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND Me ChartTable BackgroundColorl Color Bisque Me ChartTable BackgroundColor2 Color LightGoldenrodYellow Extracted from the TimeAttributeControlCharts NumberDefectivePartsControlChart example program 264 SPC Attribute Control Charts C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND this ChartTable BackgroundColorl Color LightBlue VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND Me ChartTable BackgroundColorl Color LightBlue Extracted from the TimeAttributeControlCharts NumberDefectivePartsControlChart 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 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
95. 06 SPC Control Data and Alarm Classes Equals inherited from Object ErrorCheck inherited from ChartObj ExcludeRecordFromControlLimitCalculations GetBatchNumberValue GetCalculatedValue GetCalculatedValueRecord GetChartObjIDCntr inherited from ChartObj GetChartObjType inherited from ChartObj GetControlLimit GetControlLimitRecord GetControlLimitString GetControlLimitText GetControlLimitValue GetHashCode inherited from Object GetNotesString GetNumberOfSamplesPerSubgroup 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 1s equal to the current Object Throws an exception if an error exists in the error chain Exclude the specified record from the SOC 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 Returns the chart object type Get the value of a specific SPC chart limit Get the control limit record at the specified index Get the text for a specific
96. 1 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 the 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 Table of Contents Lc Introd COfL seus ve per teret tod o lk rec eia tee Water edite veta ea eom tup ta e dtr os 1 New Features found in the 2 0 version of QCSPCChart CF sese l T torials ssena UE 2 Customer Support eine ee pee a E dtes EEE RE E S 2 SPC Control Chart Tools for Net CF Background ssseseeee 2 Quinn Curtis SPC Statistical Process Control Software sss 4 Net Compact Framework Background essere 3 Limitation of the Net API Compact Framework API eee 6 QCChart2D CF for Net Compact Framework Dependencies
97. 1 20 21 20 51 21 21 Scratch 2 1 E 0 1 0 4 0 2 b 2 b 5 1 0 5 6 Burr 2 1 E 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 b 1 2 4 5 Seam 2 1 1 1 1 0 1 0 1 4 b 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 5 50 50 50 50 50 50 50 50 50 S50 S0 S0 50 650 NOTES N N N N N N N N N N N N N N N N N 0 3 a 0 2 0 0 14 00 15 00 16 00 17 00 18 00 19 00 20 00 There are two steps to adding additional control limits creating a UCLP Q 28 UCLR2 0 23 UCLR1 0 18 PBAR 0 13 LCLR1z0 09 LCLR2 0 04 CLP 0 00 SPCControlLimitRecord object for the new control limit and adding the control limit to the chart using the charts AddAdditionalControlLimit method C double sigma2 2 0 double sigmal 1 0 Create multiple limits SPCControlLimitRecord 1c12 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCLR2 LCLR2 SPCControlLimitRecord ucl2 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLR2 UCLR2 this PrimaryChart AddAdditionalControlLimit 1012 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 this PrimaryChart AddAdditionalControlLimit ucl2 S
98. 2 14 12 44 Defect 1 3 0 0 3 5 2 Defect 43 7 4 0 0 2 2 2 1 FRACT DEF 140 0 000 0 040 0 080 0 260 0 200 0 120 ALARM CL 0 00 C Table alarm emphasis mode this TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR VB Table alarm emphasis mode Me 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 SPC Attribute Control Charts 295 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 Sue ar a a ee 3 0 5 3 70 73 5 6 Defect 3 3 8 9 3 0 8 1 5 1 4 4 2 4 b A 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 TEE E 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 Tab
99. 20 10 34 9 03 11 47 10 51 9 40 10 08 9 37 10 62 C 0 00 0 00 0 00 1 16 282 2 50 0 04 1 00 0 00 0 00 0 00 0 97 0 98 000 0 00 0 00 0 12 C 0 05 1 56 1 77 0 00 0 00 0 00 1 46 0 00 0 30 0 00 0 47 0 00 0 00 0 10 0 00 0 13 0 00 MEAN 9 45 7 99 9 29 11 66 12 16 10 18 8 04 11 46 9 20 10 34 9 03 11 47 10 51 9 40 10 08 9 37 10 62 ALARM CL 5 00 C C CL 5 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 5 13 08 bo gt 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 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 e The first part is the header section identifying the title of the chart the monitored process the ma
100. 22 00 23 00 0 00 5 13 08 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 208 SPC Variable Control Charts C Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed this PrimaryChart MinY 0 this PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed this SecondaryChart MinY 0 this 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 Me PrimaryChart MinY 0 Me PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed Me SecondaryChart MinY 0 Me 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 this AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits this AutoSca
101. 23 35 18 05 06351 1 05 16098 2 05 2135 Sample 0 9 78 10 64 10 00 9 76 9 48 9 64 9 71 9 46 9 94 10 74 29 89 10 27 9 77 10 04 10 15 10 54 10 20 MA 9 782 10 213 10 141 10 045 9 931 9 916 9 886 9 835 9 846 9 952 9 868 9 899 9 901 9 964 9 998 10 091 10 170 ALARM CL 11 00 CL 9 00 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 The current value z for a MA chart is calculated as a weighted moving average of the N most recent samples Zi Xit Xia Bis t KN where X is the sample value for time interval i and N is the length of the moving average Control Limits for the MA Chart UCL uot 3 o sqrt N Center line to LCL m 3 o sqrt N uois the process mean o is the process standard deviation also known as sigma SPC Variable Control Charts 193 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 Z 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 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 I
102. 32 25 27 37 30 27 33 32 28 29 23 24 35 28 31 26 21 317 2 2717 324 9 28 1 3 D 319 262 6 304 23 73 321 8 9 SUM 950 875 3832 972 897 841 844 86 0 78 0 957 787 858 911 958 88 3979 87 UCL 37 6 C private void SimulateData batch number for a given sample subgroup int batchCounter 0 for int i 0 2 2007 itt Important to make a new ChartCalendar object each time ChartCalendar timestamp ChartCalendar startTime Clone Simulate a sample subgroup record DoubleArray samples this ChartData SimulateMeasurementRecord 30 10 Update chart data using i as the batch number batchCounter i Add a new sample record to the chart data this 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 Dim batchCounter As Integer 0 230 SPC Variable Control Charts 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 Me ChartData SimulateMeasurementRecord 30 10 Update chart data using i as the batch number batchCounter i Add a new sample record to the chart data Me ChartData AddNewSampleRecord batchCounter timestamp samples Simulate
103. 476 352 85 144 165 105 461 386 263 476 304 SD SS7 4092 327 293 539 3189 251 218 472 4219 199 330 1059 101 3237 300 115 380 410 206 122 238 316 Frequency Histograms Pareto Diagrams Probability Charts Frequency Histogram of Selected Data Freq 40 Measurements Once the Init routine is called the chart can be further customized using the properties and methods below Public Static Shared Properties Get Set the default font used for the axes DefaultAxisLabelsFont labels and axes titles Set Get the default font used in the chart DefaultChartFontString This is a string specifying the name of the font Get Set the default font used for the numeric DefaultDataValueFont values labeling the bars Get Set the font used for the chart footer DefaultFooterFont Get Set the font used for the main title DefaultMainTitleFont Get Set the font used for the main title DefaultSubHeadFont Set Get the default font object used for the DefaultToolTipFont tooltip Frequency Histograms Pareto Diagrams Probability Charts 317 Public Instance Constructors FrequencyHistogramChart Public Instance Properties AutoNormalCurve BarAttrib BarDataValue BarFillColor BarLineColor BarLineWidth ChartOrientation CoordinateSystem Datatooltip Footer FrequencyHistogramPlot FrequencyLimits Frequency Values GraphBackground GraphBorder Histogr
104. 7 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 31 37 31 39 33 20 50 33 50 51 28 51 40 52 43 Initialize histogram this InitFrequencyHistogram freqLimits freqValues Set bar orientation this chartOrientation ChartObj VERT DIR f Build chart this BuildChart VB Public Class FrequencyHistogramUserControll Inherits com quinncurtis spcchartnet FrequencyHistogramChart Region Windows Form Designer generated code 314 Frequency Histograms Pareto Diagrams Probability Charts Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call Me Dock DockStyle Fill InitializeChart End Sub End Region Sub InitializeChart Frequency bins Dim freqLimits As Double _ 19 5 24 5 29 5 34 5 39 5 44 5 49 5 54 5 59 5 data to be sorted into frequency bins Dim freqValues As Double _ 132 44 44 42 57 25 Sly 23 33 27 42 46 213 15 44 53 S7 25 38 44 36 40 36 48 56 47 40 _ 58 45 38 32 39 43 31 45 41 7 31 39 32 30 50 33 50 51 28 Sly 40 b 43 Me InitFrequencyHistogram freqLimits freqValues Me 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 FrequencyHistogramChar
105. 7 12 6 12 0 20 0 16 7 16 4 16 4 13 2 16 9 162 12 1 193 8 1 SUM 21 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 D 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 0 226 0 225 0 225 0 225 0 224 0 224 0 224 0 224 0 224 0 223 0 224 Ppk D 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 JBi i I I I I I I I I 2 I NOTES IN N N N NN N N N N N N N N N N 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 this AutoLogAlarmsAsNotes true VB Me AutoLogAlarmsAsNotes True Creating a Batch Based Variable Control Chart Both the SPCTimeVariableContolChart and SPCBatchVariableControlChart derive from the SPCChartBase and as a result the two classes are very similar and share 95 of the same properties Creating and initializing a ba
106. 8 00 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 22 08 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 30 Standard SPC Control Charts Typical Number Defective Parts Chart np 21 00 22 00 23 00 1 00 2 00 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 Standard SPC Control Charts 31 Typical Number of Defects c Title Number Defects c Chart Part No 321 Chart No 19 Operator K Peterson Machine TIME 20 26 20 56 21 26 21 56 22 26 22 56 23 26 23 56 amp 0 26 0 56 1 26 1 56 2 26 2 56 Burr 7 2 4 4 4 4 1 5 6 4 7 6 6 6 Seam 6 5 7 2 1 7 1 7 2 6 1 5 8 7 NO DEF 27 0 18 0 27 0 19 0 12 0 22 0 20 0 19 0 23 0 19 0 14 0 27 0 27 0 22 0 ALARM UCLP 34 39 italia tla intial pet tpt ie ila flo eta hal laa sat Tow 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08
107. 9 SPC Attribute Control Charts 291 Add new sample record Me 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 this EnableDataToolTip true this EnableNotesToolTip true VB Enable data and notes tooltips Me EnableDataToolTip True Me 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 Tool TipMode property to NotesTooITip MOUSEDOWN TOOL TIP as in the example below C Enable data and notes tooltips this EnableDataToolTip true this EnableNotesToolTip true this ChartData NotesToolTips ButtonMask MouseButtons Right Sas default is MOUSETOGGLE TOOLTIP cet his ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP
108. 9 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 91 107 120 87 57 110 135 127 121 98 82 84 104 45 133 107 0 243 0 218 0 233 0 248 0 249 0 250 0211 0218 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 0219 0 228 0218 0 214 0216 0 231 0 251 0 260 0 233 0 231 0 220 60 40 20 0 19 00 20 00 21 00 22 00 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 167 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 textbook for various sample sizes By convention the quantity RBar d2 is used to estimate the process sigma f
109. 9 370 10 620 ALARM 20 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 5 13 08 a D MA Chart Moving Average 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 22 Standard SPC Control Charts Tabular CuSum Chart Title Variable Control Chart CUSUM 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 5 12 2008 7 46 23 PM TIME 19 45 20 15 20 45 21 15 21 45 22 15 22 45 23 15 23 45 0S 0 145 115 1 45 2 5 245 J15 345 Sample 0 9 45 7 99 9 29 11 66 12 16 10 18 28 04 11 46 9
110. Add ChartObj MINUTE 30 VB Private Sub SimulateData If Me IsDesignMode Then Return End If 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 number of defective parts not defects Dim samples As DoubleArray _ Me ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData PERCENT DEFECTIVE PARTS CHART Add new sample record Me 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 if this IsDesignMode return for int i 0 i 200 i 286 SPC Attribute Control Charts ChartCalendar timestamp ChartCalendar startTime Clone This simulates an assignable defect for each category the last category is assigned the total
111. Array object holding the strings used to label the categories of the Pareto plot Set attributes before BuildChart 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 Frequency Histograms Pareto Diagrams Probability Charts 335 MainTitle PlotBackground ResetOnDraw Scale2StartY Scale2StopY SymbolAttrib XAxis XAxisLab XAxisTitle YAxisl YAxis2 YAxisLab1 YAxisLab2 Y AxisTitlel Y AxisTitle2 YGrid Public Instance Methods AddCategoryltem BuildChart Copy InitParet
112. B 5 Where the constants A5 B3 and B4 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 M A R I Center line LCL M A R 188 SPC Variable Control Charts Control Limits for the R Chart UCL R D R Center line R LCL R D R The constants A D3 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 D3 D4 2 2 22 0 0 387 3 1 26 0 0 2 75 4 0 83 0 0 2 38 5 0 71 0 0 2 18 Individual Range Chart Also known as the X R Chart Control Limits for the X Bar Chart UCL X E gt R Center line X LCL X ES cb R Control Limits for the R Chart UCL R D R Center line R LCL 0 R in this case is the average of the moving ranges SPC Variable Control Charts 189 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 A EWMA chart showing the variable control limits actual values and EWMA values 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 D
113. Bar true this EnableCategoryValues false Label the tick mark with user defined strings this XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING VB enable scroll bar Me EnableScrollBar True Me EnableCategoryValues False Label the tick mark with user defined strings Me XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING 234 SPC Variable Control Charts 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 this 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 this ChartData AddAxisUserDefinedString batchidstring VB Me ChartData AddNewSampleRecord batchCounter timestamp samples variableControlLimits Dim randomnum As Integer CInt 1000 ChartSupport GetRandomDouble Dim batchidstring As String EC amp randomnum ToString Me ChartData AddAxisUserDefinedString batchidstring See the example program
114. CControlLimitAlarm C private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e VB Private Sub SPCControlLimitAlarm ByVal sender As Object _ ByVal e As SPCControlLimitAlarmArgs End Sub SPCControlLimitAlarm 136 SPC Control Data and Alarm Classes Setup and enable an alarm state event handler in an identical manner C this ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm this ChartData AlarmStateEventEnable true VB AddHandler Me ChartData AlarmStateEventHandler _ AddressOf Me SPCControlLimitAlarm Me ChartData AlarmStateEventEnable True where the handler method is this SPCControlLimitAlarm C private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e VB Private Sub SPCControlLimitAlarm ByVal sender As Object _ ByVal e As SPCControlLimitAlarmArgs End Sub SPCControlLimitAlarm 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 SPC Control Data and Alarm Classes 137 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 Overloaded Initializes a new instance of the SPCSampledValu
115. Chart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCTimeVariableControlChart DefaultChartFontString Times Me 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 176 SPC Variable Control Charts 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 SampleItemTemplate NumericLabel The NumericLabel object used as a template for displaying the sample values in the table CalculateditemTemplate NumericLabel The NumericLabel object used as a template for displaying
116. ChartFontString This is a string specifying the name of the font Set Get the default font object used for the DefaultFooterFont chart footer 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 326 Frequency Histograms Pareto Diagrams Probability Charts 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 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 obj
117. Cl 0 00 50 40 30 20 10 0 1 00 2 00 3 00 24 Standard SPC Control Charts Scrollable Time Based XBar R Chart with frequency histograms header measurement and calculated value information 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 5 12 2008 7 04 41 PM TIME 16 49 17 04 17 19 17 34 17 49 18 04 18 34 18 49 19 04 19 19 19 34 19 49 20 04 20 19 20 34 20 49 XX 245 247 296 19 0 19 0 29 9 25 0 32 6 30 2 305 347 30 2 32 0 26 0 28 7 367 Sample 1 27 6 26 31 6 215 22 3 23 8 30 3 36 3 38 0 26 8 38 1 32 4 37 8 22 7 37 2 23 8 Sample 2 3156 196 25 4 39 1 33 0 13 4 22 6 397 20 4 30 0 41 1 226 26 0 392 215 41 1 Sample amp 3 37 4 19 19 8 27 39 1 327 22 4 25 9 36 9 36 4 36 2 32 4 37 2 26 2 40 3 34 4 Sample 4 23 0 345 35 3 253 37 9 317 37 5 25 9 37 2 31 0 282 21 4 252 21 3 38 6 28 3 MEAN 28 8 25 0 28 3 26 7 30 3 27 5 27 32 1 32 5 310 35 7 27 8 316 27 1 333 342 RANGE 145 14 9 155 20 2 20 1 13 3 15 1 13 9 176 96 13 0 110 126 17 9 188 122 Sum 144 0 125 2 141 7 133 3 151 3
118. DER_STRINGS_LEVEL1 VB Set the strings used in the header section of the table Me ChartData Title Variable Control Chart X Bar amp R Me ChartData PartNumber 283501 Me ChartData ChartNumber 17 Me ChartData DateString DateTime Now ToString Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI The example below displays a maximum set of header strings HeaderStringsLevel SPCControlChartDataA 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 C Ic ae the strings used in the header section of the table this ChartData Title Variable Control Chart X Bar amp R this ChartData PartNumber 283501 this ChartData ChartNumber 17 this ChartData PartName Transmission Casing Bolt this ChartData Operation Threading this ChartData SpecificationLimits this ChartData TheOperator J Fenamore this ChartData Machine 11 this ChartData Gage 8645 this ChartData UnitOfMeasure 0 0001 inch this ChartData ZeroEquals zero this ChartData DateString DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 VB Set the strings used in the header section of the table Me ChartData Title Variable Control Chart X Bar amp R 170 SPC Variable Control Charts Me Me Me Me Me Me Me Me
119. ED cer ra Fa Ge in D t EE E Cue Ul D eet a Monday Western Eastern Southern Northern Mon Sales Sales Sales Sales M Region Region Region Region AxisLabels 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 NumericAxisLabels This class labels the major tick marks of the LinearAxis and LogAxis classes The class supports many predefined and user definable formats including numeric exponent percentage business and currency formats StringAxisLabels This class labels the major tick marks of the LinearAxis and LogAxis classes using user defined strings 70 SPC Control Data and Alarm Classes TimeAxisLabels ElapsedTimeAxisLabels PolarAxesLabels AntennaAxesLabels Chart Plot Classes ChartPlot ContourPlot GroupPlot PieChart PolarPlot AntennaPlot SimplePlot 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 d
120. EE 33 Ente TEE 294 pk 20 19 Cpm 0 28 Ppk 0 18 20 NOTES Note for sample subgroup 48 Lothe cutting too broke f 10 Replaced wih new Agon cuting tool BAR 10 1 i VEE o CL 0 0 60 40 20 0 0 00 1 00 2 00 3 00 8 10 06 xl 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 220 SPC Variable Control Charts Titie Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 1445 1500 15315 1530 1545 1600 16 15 1630 1645 1700 17315 1730 1745 1800 1815 1830 45 82 30 23 25 26 34 37 35 27 29 34 30 26 24 33 23 23 3 31 35 29 34 32 25 3 W MEAN X In 1 T 1 c c c M 14 138 4 TE 1 4 i84 146 4 T CL 35 5 BAR 29 8 CL 24 0 C private void SimulateData String notesstring for int i0 i lt 200 i
121. EL EL A od Solution SPCApplication1 1 project 9 spcapplication1 Sa Properties ka References EE Form cs c Program cs Er 3i vax Properties Form1 System Windows Forms Form ae IL El Appearance BackColor EE control Arial 10pt Font ForeColor B controltext FormBorderStyle FixedSingle Text Formi El Behavior AutoValidate ContextMenu Enabled ToolBar El Data DataBindings sre Text EnablePreventFoc none True none gt The text contained in the control Ready From that point on you can select the appropriate SPC Chart control from the Toolbox and drop in on the form The SPCApplicationl example program uses the SPCTimeVariableControlChart control The code that instantiates the control sizes it and places on the from is automatically placed in the Form Designer cs file You don t need to monkey around with that The code needed to customize the chart for your application is placed in the Forml cs file In the SPCApplicationl example it is placed in the Forml InitializeChart method Creating SPC Charts in Windows Applications 355 29 SPCApplication1 Microsoft Visual Studio File Edit view Refactor Project Build Debug Target Data Tools Window Community Help gi E id B Xa g b Debug gt Any CPU gt gt Font Windows CE 5 0 Device ee 47 A Fy R a EE Toolbox AxX d is Form1 cs Design Formi cs Start Page General
122. ENT DEFECTIVE PARTS CHART add a new sample record Me ChartData AddNewSampleRecord group timestamp samples Simulate timeincrementminutes minute passing 300 SPC Attribute Control Charts startTime Add ChartObj MINUTE timeincrementminutes batchCounter 1 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 view int numdatapointsinview 13 Batch Control Chart X Axis Time Stamp Labeling SPC Attribute Control Charts 301 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 1
123. ER CONTROL LIMI T primarylowercontrollimit ControlLimitValue 24 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart Dim primaryuppercontrollimit As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY UPPER CONTROL LIMI T primaryuppercontrollimit ControlLimitValue 36 primaryuppercontrollimit ControlLimitText UCL Set control limits for secondary chart target control limit secondary chart Dim secondarytarget As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY CONTROL TARGET secondarytarget ControlLimitValue 10 secondarytarget ControlLimitText RBAR lower control limit secondary chart Dim secondarylowercontrollimit As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY LOWER CONTROL LI MIT secondarylowercontrollimit ControlLimitValue 0 secondarylowercontrollimit ControlLimitText LCL upper control limit secondary chart Dim secondaryuppercontrollimit As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY UPPER CONTROL LI MIT secondaryuppercontrollimit ControlLimitValue 22 secondaryuppercontrollimit ControlLimitText UCL 184 SPC Variable Control Charts The second way to set the control limits is to call the AutoCalculateControlLimits method You must have already added a colle
124. 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 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 String _ 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 Frequency Histograms Pareto Diagrams Probability Charts 333 You can add the category item values and string item strings one by one using the AddCategorylItem method ParetoChart AddCategoryItem Method Add an item to the category Values and categoryStrings arrays VB Public Sub AddCategoryItem ByVal itemfreq As Double _ ByVal itemstring As String _ public void AddCategoryItem double itemfreq string itemstring Parameters itemfreq The count of how many times this category has occurred itemstring The string identifying the category item Public Static Shared Properties Set Get default font object used for the axes DefaultAxisLabelsFont labels and axes titles Set attrib
125. FECTIVE PARTS CHART or PERCENT DEFECTIVE PARTS CHART np chat NUMBER DEFECTIVE PARTS CHART c chart NUMBER DEFECTS CHART u chartt NUMBER DEFECTS PERUNIT CHART Updating p and np 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 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 i 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 h
126. Frequency Histograms Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 18 12 18 27 18 42 18 57 19 12 19 27 19 42 19 57 20 12 20 27 20 42 20 57 21 12 21 27 21 42 21 57 22 12 NOTES N N N N N N N N N N N N N N N N N 40 30 20 10 0 UCL 21 49 ZI povsseveeeeeenencereennnnsnd M edeem e 10 RBAR 10 17 TALALT BASAJ LASIS T T CL 0 00 40 30 20 10 0 19 00 20 00 21 00 22 00 Creating an Independent not part of a SPC chart Frequency Histogram The FrequencyHistogramChart class creates a standalone frequency histogram 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 extracted from the FrequencyHistogram FrequencyHistogramUserControll example program C public class FrequencyHistogramUserControll com quinncurtis spcchartnet FrequencyHistogramChart public FrequencyHistogramUserControll Frequency Histograms Pareto Diagrams Probability Charts 313 This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart void InitializeChart Frequency bins double fregLimits 19 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 20 51 23 29 2
127. 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 Standard SPC Control Charts 29 Fraction Defective Parts p Chart with variable sample size Arom X Bar Sigma Chart fF Percentage Defective Chart p chart Number Defects Per Unit u chart l i Ix Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Date 2 21 2008 5 46 51 PM Time 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 1 16 1 46 Scratch 0 1 3 1 1 4 3 3 0 4 2 2 3 1 1 1 0 Burr 0 1 4 1 3 1 1 2 1 2 4 2 5 5 0 1 0 Dent 1 1 3 2 0 3 3 1 0 1 1 2 5 1 1 0 0 Seam 0 0 2 2 3 0 2 0 6 5 4 1 4 4 0 1 0 Other 2 2 5 5 3 1 0 4 6 4 1 0 5 2 0 0 1 NO DEFECTIVE 3 5 10 11 6 8 8 10 13 11 10 5 12 13 2 2 1 FRACT DEF 0 067 0 102 0 227 0 324 0 136 0 160 0 222 0 256 0 464 0 234 0 222 0 156 0 343 0 419 0 040 0 057 0 037 NO INSP 45 45 49 49 44 44 34 34 44 44 50 50 36 36 39 39 28 NOTES N N N N N N N N N N N N N N N N N 0 6 e E FRACT DEF o N 0 0 1
128. PCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1c13 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 5 LCLRL BECLRI S SPCControlLimitRecord ucl3 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 35 UCLR1 UCLR1 SPC Attribute Control Charts 281 this PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal this 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 lcl2 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCLR2 LCLR2 Dim ucl2 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLR2 UCLR2 Me PrimaryChart AddAdditionalControlLimit lcl2 _ SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 Me PrimaryChart AddAdditionalControlLimit ucl2 _ SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim lc13 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCLR1 LCLR1 Dim ucl3 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLR1 UCLRI Me PrimaryChart AddAdditionalControlLimit lcl3 _ SPCCh
129. 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 this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND SPC Variable Control Charts 173 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 11 4 10 0 99 76 115 9 7 11 3 10 8 9 5 118 126 9 6 85 SUM 148 7 152 9 157 5 151 7 155 6 142 9 143 9 147 1 144 3 154 8 144 9 1140 4 163 8 151 2 147 3 151 4 162 4 Cpk 92 0 2 0 3 03 93 0 3 9 2 02 9 2 10 2 02 0 2 0 2 02 02 02 0 2 Cpm 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 03 03 Ppk 0 2 0 2 0 3 0 3 0 3 0 3 0 3 103 0 2 0 3 02 0 2 0 2 0 2 0 2 0 2 03 ALARM F3 ES EST E EST E E
130. QCSPCChart SPC Control Chart Tools for Net CF 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 38645 Zero Equals zero Date 5 12 2008 5 40 35 PM TIME 14 10 14 40 14 55 15 10 15 25 15 40 15 55 16 10 16 25 16 40 16 55 MEAN 30 5 28 0 30 9 26 1 27 6 31 6 31 8 348 321 317 23 3 RANGE 114 178 9 0 112 13 4 195 9 1 65 15 3 10 4 18 1 SUM 152 5 139 9 154 5 130 7 137 8 158 2 153 1 173 9 160 6 158 7 146 7 Cpk 0 166 0 165 0 166 0 165 0 164 0 164 0 165 0 167 0 168 0 163 0 168 Cpm 0 227 0 226 0 227 0 227 0 227 0 226 0 227 0 227 0 227 0 228 0 227 Ppk 0 160 0 160 0 160 0 159 0 158 0 1593 0 153 0 161 0 162 0 162 0 162 ALARM l JEEEREEPEEEEEEFEEFETLFELI N N N N N N N Y N N NOTES 40 30 20 10 0 13 00 14 00 15 00 16 00 RBAR 3 54 CL 0 00 40 30 20 10 0 13 00 14 00 15 00 16 00 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 6 1 2009 Rev 2 0 SPC Control Chart Tools for Net Compact Framework Documentation and Software Copyr
131. RY UPPER CONTROL LIMI T primaryuppercontrollimit ControlLimitValue 36 primaryuppercontrollimit ControlLimitText UCL Set control limits for secondary chart target control limit secondary chart SPCControlLimitRecord secondarytarget ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY CONTROL TARGET secondarytarget ControlLimitValue 10 secondarytarget ControlLimitText RBAR lower control limit secondary chart SPCControlLimitRecord secondarylowercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY LOWER CONTROL LI MIT secondarylowercontrollimit ControlLimitValue 0 secondarylowercontrollimit ControlLimitText LCL upper control limit secondary chart SPCControlLimitRecord secondaryuppercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC SECONDARY UPPER CONTROL LI MIT secondaryuppercontrollimit ControlLimitValue 22 SPC Variable Control Charts 183 secondaryuppercontrollimit ControlLimitText UCL VB target control limit primary chart Dim primarytarget As SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY CONTROL TARGET primarytarget ControlLimitValue 30 primarytarget ControlLimitText XBAR lower control limit primary chart Dim primarylowercontrollimit As SPCControlLimitRecord ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY LOW
132. Record object Overloaded Copies the source SPCControlLimitRecord 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 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 QCSPCChartNetCFCompiledHelpFile 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 DynamicXBarRChart example program C public void InitializeChart 132 SPC Control Data and Alarm Classes TODO Add any initialization after the InitForm call Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table this ChartData Title Variable Control Chart X Bar amp R this ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm don t generate alarms in initial data simulation this ChartData AlarmStateEventEnable false Simu
133. S ES ES EI ET ESI ER EST ESI EI ESI LER ERI ER ES ERE ER ER ES ER ER EE ER ER E ER ERI ER mh NOTES Y Y N y N N N N N N N Y Y N N N N C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL this ChartTable BackgroundColorl Color White this ChartTable BackgroundColor2 Color Gray VB Me ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND GRIDCELL Me ChartTable BackgroundColorl Color White Me ChartTable BackgroundColor2 Color 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 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 BatchIndividu
134. SPC chart limit Get the control limit text at the specified index Get a control limit value for charts with 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 GetPrimaryControlLimits GetSampledValue GetSampleRowHeaderString GetSecondaryControlLimits GetThisChartObjID inherited from ChartObj GetTimeValue GetType inherited from Object GetY AxisTitle IsControlLimit OutputAllValuesToDataLog ReadAllValuesFromFile ResetSPCChartData SPC Control Data and Alarm Classes 107 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 b
135. SYMBOL to highlight the process variable symbol if an alarm condition exists Set to Set to SPCChartBase ALARM NO HIGHLIGHT SYMBOL 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 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 GraphStartPosY2 GraphStopPosX GraphStopPosY 1 GraphStopPosY2 GraphTopTableOffset HeaderSt
136. Size 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 161 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 this ChartData AddNewSampleRecord timestamp samples VB 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 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 Me ChartData AddNewSampleRecord timestamp samples Measured Data and Calculated Value Tables Standard worksheets used to gath
137. 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 C this ChartTable SampleLabelFont new Font Times 12 FontStyle Regular VB Me ChartTable SampleLabelFont new Font Times 12 FontStyle Regular 266 SPC Attribute Control Charts 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 Font Microsoft Sans Serif 11 FontStyle Regular Initialize the SPCBatchVariableControlChart this InitSPCBatchAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview VB SPCGeneralizedTableDisplay DefaultTableFont _ new Font Microsoft Sans Serif 11 FontStyle Regular Initialize the SPCBatchAttrbiuteControlChart Me InitSPCBatchAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview Chart Fonts There are default chart fonts that are static objects in the SPCChartObjects class They establish the default fonts
138. This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart void InitializeChart add Pareto chart categories values and strings his AddCategoryItem 5 Torn his AddCategoryItem 7 Not Enough nComponent his AddCategoryItem 2 Others his AddCategoryItem 11 Poor Mix his AddCategoryItem 8 Stains Build chart E t t E this AddCategoryItem 27 Holes t t his BuildChart VB Public Class ParetoPlotUserControll Inherits com quinncurtis spcchartnet ParetoChart Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call Add any initialization after the InitializeComponent call Me Dock DockStyle Fill InitializeChart End Sub 332 Frequency Histograms Pareto Diagrams Probability Charts End Region Sub InitializeChart add Pareto chart categories values and strings Me AddCategoryItem 5 Torn Me AddCategoryItem 7 Not Enough ControlChars Lf Component Me AddCategoryItem 2 Others Me AddCategoryItem 11 Poor Mix Me AddCategoryItem 27 Holes Me AddCategoryItem 8 Stains Build chart Me BuildChart End Sub InitializeChart
139. Value Header HeaderFont HistogramStartPos HistogramOffset MaxY MinY ParentSPCChartBase PlotBackground PlotMeasurementValues PPhysTransforml ProcessVariableData SampledDataData SubHead SubheadFont 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 y axis of the chart Set Get that parent SPCChartBase object 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
140. Values and frequencyLimits Sort the category values and category SortCategoryItems strings Changing Default Characteristics of the Chart Pareto Diagram of Defects MainTile 11 25 2005 4 18 56 PM A eT PC CES ET 97 300 10096 ie Ti YGrid YAxisTitle 1 ieTi Y AxisTitle2 N 20 Fe CONS PEL RERO s p LineMarkerPlot Cum Freq 50 10 yaxi L YAX S2 0 096 Holes Poor Mix Stains Not Enough d Component 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 this AddCategoryItem 5 Torn this AddCategoryItem 7 Not Enough nComponent this AddCategoryItem 2 Others this AddCategoryItem 11 Poor Mix his his his vto anb wf ORO bo eb wt oc geb 206 VB Sub End his his his his his his Frequency Histograms Pareto Diagrams Probability Charts 337 AddCategoryItem 27 Holes AddCategoryItem 8 Stains LineMarkerPlot LineColor Color Blue LineMarkerPlot SymbolAttributes PrimaryColor Color Black YAxisl LineColor Color Green YAxisl LineWidth 3 YAxis2 LineColor Colo
141. 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 12 Introduction Chapter 8 describes how the FrequencyHistogramChart ParetoChart and ProbabilityChart classes create ancillary SPC charts Chapter 9 is a tutorial that describes how to use SPC Control Chart Tools for Net CF to create Windows CE applications using Visual Studio Net Visual C and Visual Basic 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 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 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 contro
142. Y N N N N N N N N N N 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 axis 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 XBarRChart example C this PrimaryChart Datatooltip EnableCategoryValues true this PrimaryChart Datatooltip EnableProcessCapabilityValues true this PrimaryChart Datatooltip EnableCalculatedValues true this PrimaryChart Datatooltip EnableNotesString true VB Me PrimaryChart Datatooltip EnableCategoryValues True Me PrimaryChart Datatooltip EnableProcessCapabilityValues True Me PrimaryChart Datatooltip EnableCalculatedValues True Me PrimaryChart Datatooltip EnableNotesString True 218 SPC Variable Control Charts where The following properties enable sections of the chart header and table PrimaryChart Datatooltip EnableCategoryV alues PrimaryChart Datatooltip EnableProcessCapabilityV alues PrimaryChart Datatooltip EnableCalculatedV alues PrimaryChart Datatooltip EnableNotesStrings Display the category subgroup sample values in the data tooltip PrimaryChart Datat
143. 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 for the class 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 and X R Individual Range 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 cr
144. aToolTip 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 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 Class Architecture 53 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 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 5 12 2008 10 17 44 PM TIME 22117 22 32 22 47 23 02 23 17 23 32 23 47 0 02 0 17 0 32 0 47 1 02 1 17 1 32 1 147 2 02 2 17 xx 31 9 255
145. abilityCoordinates 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 ProbabilityAutoScale 52 Class Architecture 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 ProbabilityCoordinates The ProbabilityCoordinates class extends the PhysicalCoordinates class to support a y axis probability scale in an xy coordinate plane ProbabilityAxis The Probability Axis class implements a probability axis where the major tick marks are placed at intervals appropriate to a cumulative probability scale ProbabilitySigmaA xis 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 items in the SPC table SPCDat
146. acted from the TimeVariableControlCharts DynamicXBarR Chart example C private void timerl Tick object sender System EventArgs e if this IsDesignMode return ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples this ChartData SimulateMeasurementRecord 30 Add the new sample subgroup to the chart this ChartData AddNewSampleRecord timestamp samples Calculate the SPC control limits for the X Bar part of the current SPC chart this AutoCalculateControlLimits 210 SPC Variable Control Charts Scale the y axis of the X Bar chart to display all data and control limits this AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits this AutoScaleSecondaryChartYRange Rebuild and draw the chart using the current data and settings this 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 If Me IsDesignMode Then Return End If Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples As DoubleArray Me ChartData SimulateMeasurementRecord 30 Add the new sample subgro
147. adigm though it never really mattered in Revisions 1 0 1 1 and 2 0 of Net CF For unknown reasons starting with the Net CF 3 5 found in Visual Studio 2008 it does matter The VS 2008 Toolbox will not host a UserControl derived object that contains PInvoke calls Therefore we include two versions of the QCChart2DNetCF DLL one that uses PInvoke and supports XOR drawing and one that does not use PInvoke They are named QCChart2DNetCF XOR DLL uses PInvoke and support XOR drawing mode and QCChart2DNetCF NOXOR DLL does not use PInvoke and does not support XOR drawing mode The DLL you wish to use must copied and renamed to QCChart2DNetCF DLL and placed in the Quinn Curtis DotNetMib folder The default QCChart2DNetCF DLL file is a copy of QCChart2DNetCF NOXOR DLL QCChart2D CF for Net Compact Framework Dependencies The QCChart2D CF for the Net Compact Framework class library is self contained It uses only standard classes that ship with the Microsoft Net Compact Framework API The software uses the major Net namespaces listed below System Windows Forms Namespace The System Windows Forms namespace contains classes for creating Net Forms Controls and Dialog boxes System Drawing Namespace The System Drawing namespace provides access to basic graphics functionality System Drawing Drawing2D Class The System Drawing Drawing2D namespace contains the DashStyle enumerication that is used by many of the programs The VS 2003 version of
148. al 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 36 Standard SPC Control Charts Cumulative Normal Probability Chart Normal Probability Plot Showing Estimated Accumulated Frequencies Under 4 2 4 6 8 10 Frequency Bin Pareto Diagrams The Pareto diagram is a 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 Standard SPC Control Charts 37 Pareto Chart Pareto Diagram of Defects Freq Cum Poor Mix Stains Not Enough 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
149. al 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 Oe Chart T Qe LOSS Autore dU seen a eee RO UCLP 0 28 PBAR 0 14 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 T pede ME T RET oa EES UCLP 0 27 0 2 i Lap d PBAR 0 13 0 1 0 0 CLP 0 00 0 5 10 15 Note the numeric based x axis Attribute Control Charts Consist of Only One Graph SPC Attribute Control Charts 245 Whereas the Variable Control Charts contain two different graphs which we refer to generically as the primary 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 C public class FractionDefe
150. alRangeChart C this ChartTable SampleLabelFont new Font Times 12 FontStyle Regular VB 174 SPC Variable Control Charts Me ChartTable SampleLabelFont new Font Times 12 FontStyle Regular 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 BatchVariableControlCharts BatchIndividualRangeChart C SPCGeneralizedTableDisplay DefaultTableFont new Font Microsoft Sans Serif 10 FontStyle Regular Initialize the SPCBatchVariableControlChart this InitSPCBatchVariableControlChart charttype numsamplespersubgroup numdatapointsinview VB SPCGeneralizedTableDisplay DefaultTableFont _ new Font Microsoft Sans Serif 10 FontStyle Regular Initialize the SPCBatchVariableControlChart Me InitSPCBatchVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview Chart Fonts 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
151. alculateControlLimits 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 186 SPC Variable Control Charts 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 as the Mean or Average and Range Chart Control Limits for the X Bar Chart UCL X A R Center line X LCL X A R Control Limits for the R Chart UCL R D R Center line R SPC Variable Control Charts 187 LCL R D3 R Where the constants A D3 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 A S Center line X LCL X A S Control Limits for the Sigma Chart UCL Ba S Center line S LCL
152. alendar 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 LinearScale A concrete implementation of the ChartScale class It converts a linear physical coordinate system into the working coordinate system SPC Control Data and Alarm Classes 59 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 WorkingCo
153. alizeChart 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 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 TimeAttributeControlCharts SimpleAttributeControlChart 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 this ChartData Title Fraction Defective p Chart this ChartData PartNumber 321 this ChartData ChartNumber 19 this ChartData DateString
154. amDataset MainTitle PlotBackground 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 respect 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 ResetOnDraw SubHead XAxis XAxisLab XAxisTitle XGrid Y Axis Y AxisLab Y AxisTitle YGrid Public Instance Methods AddFrequencyHistogramControlLine Copy InitFrequencyHistogram InitFrequencyHistogramDataset 318 Frequency Histograms Pareto Diagrams Probability Charts Set Get True t
155. ample Imports com quinncurtis chartzdnetcf Imports com quinncurtis spcchartnetcf You should view the complete source of the SPCApplication1 Form1 InitializeChart method by loading the SPCApplicationl Forml vb file in the VS editor You should now be able to compile run and view the entire project Any changes you make in the InitializeChart method form is reflected in the application If you still have problems go back and study the many example programs we have provided Here is what the resulting SPC chart looks like Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 17 36 17 51 18 06 18 21 18 36 18 51 19 06 19 21 19 36 19 51 20 06 20 21 20 36 20 51 21 06 21 21 21 36 ICL 35 25 i BAR 29 81 EAN LCL 24 37 40 30 20 10 0 18 00 19 00 20 00 21 00 ICL 19 91 CL 0 00 40 30 20 10 0 18 00 19 00 20 00 21 00 e SPCApplication2 There are other ways to achieve the same result We actually prefer the technique used in the SPCApplication2 example and that is what most of our other example programs use In that example we added a UserControl name XBarRChart to the project Add UserControl We then changed the inheritance of the control in the user controls XBarRChart Designer vb file from UserControl to one of our SPC chart types SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart Probabilit
156. ample below C Enable data and notes tooltips this EnableDataToolTip true this EnableNotesToolTip true this ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP this ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP VB Enable data and notes tooltips Me EnableDataToolTip True Me EnableNotesToolTip True Me ChartData NotesToolTips ButtonMask MouseButtons Right default is MOUSETOGGLE TOOLTIP Me ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP 222 SPC Variable Control Charts Enable Alarm Highlighting EnableAlarmStatusValues 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 17 6 13 6 149 129 168 87 218 216 179 187 120 138 128 198 15 4 100 17 1 Cpk 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 2390 242 0 246 0 246 30 20 10 0 14 00 15 00 16 00 17 00 I 40 30 20 10 0 14 00 15 00 16 00 17 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 it off if you don t want it Each sample interval has two small box
157. amples 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 Me ChartData AddNewSampleRecord timestamp samples In an Individual Range chart which by definition samples 10096 of the production level the samples array would only have one value for each update If the production level is 114 SPC Control Data and Alarm Classes sixty items per hour with 100 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 ele
158. ar spreadsheet and word processing programs 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 check of an process variable produces a change of state in alarm state condition SPC Control Data and Alarm Classes 109 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
159. ariable 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 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 this 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 s
160. ariableControlLimits new DoubleArray changeControlLimits this 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 Me 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 Me ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring 200 SPC Variable Control Charts 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 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 TimeVariableContr
161. artCalendar 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 Me 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 Standard worksheets used to gather and plot SPC data consist of three main parts e 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 e 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 e The third part plots the calculated SPC values as a SPC chart The chart includes options that enable the programmer to customize an
162. artObjects SPC LOWER CONTROL LIMIT 1 sigmal Me 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 Chart Y Scale 282 SPC Attribute Control Charts 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 this PrimaryChart MinY 0 this PrimaryChart MaxY 40 VB Set initial scale of the y axis of the mean chart If you are calling AutoScalePrimaryChartYRange this isn t really needed Me PrimaryChart MinY 0 Me 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
163. arts this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor Color Beige this PrimaryChart GraphBackground FillColor Color LightGray this PrimaryChart PlotBackground FillColor Color LightGoldenrodYellow VB Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Me PrimaryChart XAxis LineColor Color Blue Me PrimaryChart XAxis LineWidth 3 Me SecondaryChart YAxisl LineColor Color Green Me SecondaryChart YAxis2 LineColor Color Red Me SecondaryChart YAxisl LineWidth 3 Me SecondaryChart YAxis2 LineWidth 3 Me PrimaryChart ProcessVariableData LineMarkerPlot LineColor Color Black Me PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet Me PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor Color Beige Me PrimaryChart GraphBackground FillColor Color 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 Get the array of TextObject objects AnnotationArray representing the annotations of the chart Set Get annotation font AnnotationFont Set Get the x and y values use to offset a AnnotationNudge data
164. ary 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 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 this PrimaryChart DisplayFrequencyHistogram true this SecondaryChart DisplayFrequencyHistogram true VB frequency histogram for both charts Me PrimaryChart DisplayFrequencyHistogram True Me SecondaryChart DisplayFrequencyHistogram True SPC Chart Data and Notes Tooltips SPC Variable Control Charts 217 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 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 1445 1500 15 15 1530 1545 1600 16 15 16 30 1645 1700 17 15 1730 1745 1800 18 15 1830 1845 2 30 23 25 26 34 37 35 27 29 34 30 26 26 33 36 30 2B a4 33 23 23 35 31 35 29 34 32 25 30 30 34 30 27 34 31 NOTES N N N N N N
165. aryChartY Range Copy Draw 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 158 SPC Variable Control Charts This initialization method initializes the InitSPCChartBase most important values in the creation of a SPC chart Returns true if the coordinate system has a IsTimeScale time based x axis The coordinate system of the chart Draw a control line either a simple straight MakeControlLinePlot line or a variable control line for the specified chart Rebuild the graph taking into account the RebuildChartUsingCurrentData most recent data values Rescale primary and secondary charts based RescaleGraphsToScrollbar on the position of the value of the scroll bar The thumb position of the scroll bar Reset the history buffers of all of the SPC ResetSPCChartD
166. as part of a development kit they may sell you can use that We can t tell you how to connect your emulator to Visual Studio though You will need to contact your hardware manufacturer We use a generic standalone Windows CE emulator from Microsoft It can be downloaded from Microsoft here http www microsoft com downloads details aspx FamilyID A 1 20E012 CA31 4BE9 A3BF B9BF4F64CE72 amp displaylang en 342 Creating SPC Charts in Windows Applications Please notify us if this link stops working The emulator has one supremely useful feature you can easily set the size of the display in the command line that starts the emulator Refer to this discussion http social msdn microsoft com forums en US microsoftdeviceemu thread 1d035a8d ac8d 476c 940c ea33 1e80a226 Carefully follow the steps needed to connect this emulator to Visual Studio It s long and a little complicated but it works In step one where it says C Program Files Windows CE 5 0 Emulator Emulator_500 exe nk cem video 640x480x 16 Ethernet virtualswitch sharedfolder C CES5SharedFolder set the display size to 800 x 600 using the video switch C Program Files Windows CE 5 0 Emulator Emulator_500 exe nk cem video 800x600x16 Ethernet virtualswitch sharedfolder C CE5SharedFolder Otherwise you can follow the discussion pretty much as is You will end up with a Windows CE emulator that looks like this Creating SPC Charts in Windows A
167. ased description of the item in the SPCCalculatedValueRecord 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 ina 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 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 108 SPC Control Data and Alarm Classes Save SetControlLimitString SetControlLimitStrings SetControlLimitValue SetControlLimitValues SetSampleRowHeaderString SimulateDefectRecord SimulateMeasurementRecord SortAlarmObjectsBy Value ToString inherited from Object TransitionEventCondition Public Instance Events AlarmStateEventHandler AlarmTransitionEventHandler 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 popul
168. assing SPC Attribute Control Charts 287 StartTime Add ChartObj MINUTE 30 Next i End Sub SimulateData Scatter Plots of the Actual Sampled Data e This 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 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 this EnableScrollBar true VB Enable scroll bar Me EnableScrollBar True Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kefka Machine 1 Time 1014 1044 1214 1244 1334 13 44 14 14 14 44 15 14 15 44 16 14 10 44 17 14 1744 18 14 1844 19 14 2 1 3 4 6 1 4 4 2 2 2 1 2 6 D 1 2 a4 2 4 0 7 1 2 0 1 3 2 3 0 5 3 3 2 6 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 N N N N N N N N N N 0 3 0 1 0 0 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 Ei a Scrollbar 288 SPC Attribute Control Charts 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 whet
169. ata data objects Creates a numeric label of the control limit UpdateControlLimitLabel and adds the numeric label to the spe chart Specifies to create the primary and UseNoTable 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 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 SPC Variable Control Charts 159 samples 4 0 133 Fifth of five samples Add the new sample subgroup to the chart this ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray New DoubleArray 5
170. ate 5 12 2008 7 46 19 PM TIME 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 1 16 1 46 2 16 2 46 3 16 3 46 Sample 0 9 45 7 99 9 29 11 66 12 16 10 18 8 04 11 46 9 20 10 34 9 03 11 47 10 51 9 40 10 08 9 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 9 450 7 990 9 290 11 660 12 160 10 180 8 040 11 460 9 200 10 340 9 030 11 470 10 510 9 400 10 080 9 370 10 620 ALARM 12 x x 20 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 5 13 08 SSS Le The current value z for an EWMA chart is calculated as an exponentially weighted moving average of all previous samples Zi A XiT 1 Zi 1 where x is the sample value for time interval i the smoothing value has the permissible range of 0 lt lt 1 and the starting value required with the first sample at i 0 is the process target value uo Control Limits for the EWMA Chart UCL Ho L o Sqrt A Q A 1 1 A Center line Ho 190 SPC Variable Control Charts LCL po L o Sqrt 2 1 1 1 1 5 uois the process mean o is the process standard deviation also known as sigma is the user specified smoothing value A typical value for A is 0 05 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 so
171. atedV alueRecord 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 Shared Fields Constant value for a custom SPC SPC CUSTOM CALC calculation unused Constant value for a percent defective parts SPC calculation SPC FRACTION DEFECTIVE PARTS CALC Constant value for a fraction defects SPC FRACTION DEFECTS CALC SPC calculation Constant value for a ABS individual range SPC calculation SPC_INDIVIDUAL ABS RANGE CALC Constant value for INDIVIDUAL SPC INDIVIDUAL COPY VALUE RANGE Constant value for a individual range SPC INDIVIDUAL RANGE CALC SPC calculation Constant value for a maximum SPC SPC MAX CALC calculation Constant value for a mean SPC SPC MEAN CALC calculation Constant value for a mean SPC SPC MEAN N MINUS 1 CALC calculation using N 1 rather than N Constant value for a median SPC SPC MEDIAN CALC calculation Constant value for a minimum SPC SPC MIN CALC calculation Constant value for a percent defective parts calculation 140 SPC Control Data and Alarm Classes SPC PERCENT DEFECTIVE PARTS CALC SPC PERCENT DEFECTS CALC Constant value for a percent defects SPC calculation SPC RANGE CALC SPC STD DEVIATION CALC SPC SUM CALC Constant value for a range SPC calculation Co
172. ategory 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 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 this 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 samples 3 2 Number of defects for defect category 4 samples 4 3 Number of defects for defect cat
173. ation of the Net API Compact Framework API Microsoft Net Compact Framework includes a basic API for writing applications that make use of GUI s data structures databases files and streams networking and web services The graphics part of the API is a subset of the standard Net graphics API supporting far fewer classes than are found in that API and far fewer methods and properties in the classes that are supported A few of the limitations of the Net Compact Framework API compared to the regular Net API are e Brushes only support simple color i e no gradients or textures e Only simple RGB colors are supported with no alpha blending no transparency e No generalized geometry support for arbitrary shapes because Net Compact Framework lacks a Matrix class and a GraphicsPath class e No 2D coordinate transformation classes for rotating text and arbitrary geometric shapes e Text cannot be rotated not even 90 degrees for vertical text e No printer and image output support e Images imported into a program cannot be rotated e In general none of the advanced features found in the System Drawing Drawing2D library are available to the Net Compact Framework programmer The QCSPCChart CF for the Net Compact Framework software derives from our original QCSPCChart for Net software The original software makes extensive use of the advanced graphics features found in the workstation version of Net In order to port the QCSPCChart so
174. ay 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 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 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 SPC Control Data and Alarm Classes 71 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 da
175. babilityAutoScale com quinncurtis chart2dnet Axis ProbabilityAxis com quinncurtis chart2dnet LinearAxis ProbabilitySigmaAxis com quinncurtis chart2dnet PhysicalCoordinates ProbabilityCoordinates com quinncurtis chart2dnet Scale ProbabilityScale com quinncurtis chart2dnet StringLabel NotesLabel com quinncurtis chart2dnet MouseListener NotesToolTip com quinncurtis chart2dnet DataToolTip SPCDataToolTip QCSPCChart Classes SPCControlChartData SPCControlLimitAlarmArgs SPCControlLimitRecord SPCCalculatedValueRecrod SPCProcessCapabilityRecord SPCSampledValueRecord SPCControlParameters SPCGeneralizedTableDisplay SPCControlPlotObjects SPCChartObjects SPC Control Chart Data 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 44 Class Architecture 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 descr
176. 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 another without deleting the instance of the old plot object and creating an instance of the new Legend Classes LegendItem BubblePlotLegendItem SPC Control Data and Alarm Classes 89 Legend StandardLegend BubblePlotLegend Legends provide a key for interpreting the 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
177. before any of the Auto methods are called SimulateData Calculate the SPC control limits for both graphs of the current SPC chart this AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits this AutoScalePrimaryChartYRange 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 Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Once all of the graph parameters are set call the method RebuildChartUsingCurrentData SPC Attribute Control Charts 283 C Rebuild the chart using the current data and settings this RebuildChartUsingCurrentData VB Rebuild the chart using the current data and settings Me 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 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
178. bins double freqLimits 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues 1121 349 345 322 277 162 218 134 133 476 323 307 133 354 245 434 476 352 185 144 165 105 461 396 263 476 304 180 557 482 327 293 839 318 291 320 Frequency Histograms Pareto Diagrams Probability Charts 218 47 72 218 199 330 109 101 137 300 119 Initialize histogram this InitFrequencyHistogram freqLimits freqValues this YAxis LineColor Color Green this YAxis LineWidth 3 this YAxisLab LineColor Color DarkMagenta this BuildCharti 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 _ 1121 349 345 322 277 162 218 134 1323 _ 4T6 323 367 133 354 245 434 476 352 _ 185 144 165 105 461 386 263 476 304 180 557 482 327 293 529 2318 251 218 ave 218 199 330 109 T7101 137 300 T1195 _ 380 410 206 122 238 Me InitFrequencyHistogram freqLimits freqValues Me ChartOrientation ChartObj VERT DIR Me BarFillColor Color LightCoral Me FrequencyHistogramPlot SetSegmentFillColor 4 Me BuildChart End Sub InitializeChart Special Considerations Color Blue 1 The FrequencyHistogramChart class uses the QCChart2D HistogramPlot
179. bject into a single class 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 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 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 c
180. c desistit ues edd o uera va dun desidiae 92 Miscellaneous Utility Classes cepere rite ero tnde Ee iheoone t ethasen esae e Hae aue dene 94 5 SPC Control Data and Alarm Classes indio etr eie ot opa toe IR PO ER d ta ERU EDU doe aka 97 Class SPGControlChartData eeu qoem eter tren einer erret do re a teaches 97 Contro Limit Alarms oe oi ense aider sete ame esee iu tae eas 129 Control Limit Alarm Event Handling orte Ce tat ern oet 134 SPCSampledVal eRecotd u s teet sans den ec ine art etre a tex SU EON Ix rend 136 SPCCOhtolEmmitB eeorq s i inanes tcs od eect ua emet oti tete m edes 137 SPE Calculated Value Records 5a tena ee tenes mun uten c DAN cls oe nies 139 SPCProcessCapabilityRecord Sacer i ette repete RR ERR d ree NT edic 141 SPC Generalized TableDISplay uiis ttu tect letti ptasdegt tete a a t bui tsp oue 143 6 SPC Variable Control Charts reote iecore Une eibi aede dein 147 Time Based and Batch Based SPC Charts essere 149 Creating a Batch Based Variable Control Chart eee 225 Changing the Batch Control Chart X Axis Labeling Mode sss 230 Changing Default Characteristics of the Chart sene 234 SPC Attribute Control Charts 4 scisco ote tutae es er saa RORIS Id cd iabevbvesdentes 243 Time Based and Batch Based SPC Charts essere 244 Changing the Batch Control Chart X Axis Labeling Mode sss 30
181. 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 analysis charts e Frequency Histograms e Probability Charts e Pareto Charts 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 and CuSum charts Standard SPC Control Charts 15 Typical Time Base Variable Control Chart X Bar R with basic header information Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 18 12 18 27 18 42 18 57 19 12 19 27 19 42 19 57 20 12 20 27 20 42 20 57 21 12 21 27 21 42 21 57 22 12 NOTES UCL 35 79 LCL 24 06 40 30 20 10 0 19 00 20 00 21 00 22 00 UCL 21 49 EMT RBAR 10 17 40 30 20 10 0 19 00 20 00 21 00 22 00
182. ced at equal degree intervals 68 SPC Control Data and Alarm Classes 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 AxisLabels NumericAxisLabels StringAxisLabels PolarAxesLabels AntennaAxesLabels SPC Control Data and Alarm Classes 69 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 Axis Labels Possible date labels Possible time labels Possible numeric labels for todays date for the current time for the value 12340 April 04 2005 6 15 30 24 Hour Mode 12340 0 Decimal 2005 6 15 24 Hour Made 1 2340E 004 Scientific 4 2005 15 30 4 Minute Second 12 34DK Business 4 4 2005 6 15 30 12 Hour Mode 123400096 Percent faye 6 15 12 Hour Made 1 2340x1U Exponent ee 12 340 Currency 4 05 Cadillac 4 04 05 i ue ies Steak knives Multi line axis April Your fired labels are supported Apr n el at ed
183. cense 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 SOFTWARE without charge on an evaluation basis for thirty 30 days from the day that you DOWNLOAD the trial version of the SOFTWARE The termination date of the trial SOFTWARE is 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
184. chine operator part number and other important information specific to the chart e 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 Standard SPC Control Charts 23 e The third part 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 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 38645 Zero Equals zero Date 5 12 2008 7 00 59 PM TIME 0 00 os 0 30 ids i30 1 45 200 235 2 30 Mii 315 3 30 3 45 400 ARN TCI OECDEDEEOEEEEENMEE S EET RBAR 10 04
185. ckedBarPlot StackedLinePlot GroupVeraPlot 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 GroupPlot This class is an abstract base class for all group plot classes 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 SPC Control Data and Alarm Classes 73 Bubble Size t 5 on 40 Million 2001 2002 Time of bankruptcy The size radius or area of the bubble adds an additional dimension to the graph 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 Box and Whisker Plots are used in Descriptive Statistics 150 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
186. colors used in the BackgroundColorl alternating background colors used to delineate the table rows BackgroundColor2 CalculatedItemTemplate CalculatedLabelFont CurrentColumnPosition CurrentRowPosition NotesItemTemplate NotesLabelFont NumericColumnSpacing NumericRowSpacing SampleItemTemplate SampleLabelFont StartColumnPosition StartRowPosition StringItemTemplate StringLabelFont TableBackgroundMode TextColumnSpacing TextRowOffset 144 SPC Control Data and Alarm Classes Set Get the second of two colors used in the 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 tabl
187. 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 CF charting software but not specific to the QCSPCChart CF software QCSPCChart QCSPCChart CF examples for C and VB Visual CSharp CZ specific directory Introduction 9 CF QCSPCChartClassLib contains the source code to the QCSPCChartNetCF dll library installed only if the source code has been purchased CF 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 and u charts using the SPCBatchAttributeControlChart class BatchVariableControlCharts a collection of batch variable control charts including X Bar R X Bar Sigma Median Range and X R charts using the SPCBatchVariableControlChart class TimeAttributeControlCharts a collection of time attribute control charts including n np c and u charts using the SPCTimeAttributeControlChart class TimeVariableControlCharts Batch VariableControlCharts a collection of time variable control charts including X Bar R X Bar Sigma Median Range and X R charts using the SPCTimeVariableControlChart class MiscTimeBasedControlCharts a collection of time variable control charts including EWMA MA and CuSum charts
188. condary 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 Standard SPC Control Charts 35 XBar Sigma Chart with Integral Frequency Histograms 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 amp 11 Date 5 12 2008 6 23 24 PM TIME 18 23 18 38 18 53 19 08 19 23 19 38 19 53 20 08 20 23 20 38 20 53 21 08 21 23 21 38 21 53 22 08 22 23 MEAN 65 67 60 89 62 40 61 57 63 32 53 15 63 84 64 33 65 48 63 49 63 31 62 88 65 05 62 68 6450 62 51 55 18 SIGMA 663 660 413 589 404 643 699 465 709 597 574 523 610 639 674 574 6 06 SUM 384 93 313 39 936 01 323 55 343 86 947 20 357 64 964 39 382 15 952 31 949 64 943 23 375 71 340 23 967 45 937 70 977 68 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ALARM eaa Ez ec Scotia cop Wea nave Yuk cote eT Neen lc EE So goo Wa O NOTES N N N N N N N N N N N N N N N N N gt z x EAN 63 3 Gere A cE RENS ANUUT JS BAR 63 82 15 10 5 0 IGMA S 37 o i gt wawuowo ELCL 2 56 19 00 20 00 21 00 22 00 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 norm
189. ction 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 this AutoCalculateControlLimits VB Must have data loaded before any of the Auto methods are called SimulateData v Calculate the SPC control limits for both graphs of the current SPC Me 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 to the ChartData object and after a certain number of updates call the AutoCalculateControlLimits method to establish new control limits C updateCount this 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 this AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits this Au
190. ctivePartsControlChart com quinncurtis spcchartnet SPCTimeAttributeControlChart private System ComponentModel IContainer components 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 data points in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 30 public FractionDefectivePartsControlChart This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart void InitializeChart 246 SPC Attribute Control Charts Initialize the SPCTimeAttributeControlChart this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes this RebuildChartUsingCurrentData VB Public Class SimpleAttributeControlChart Inherits com quinncurtis spcchartnet SPCTimeAttributeControlChart Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call Have the chart fill
191. d 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 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 Get Set the alarm channel associated with AlarmChannel the alarm SPC Control Data and Alarm Classes 135 Get Set the SPCControlLimitRecord EventAlarm object Get Set the SPCCalculatedValueRecord SPCSource object associated with the alarm A complete listing of SPCControlLimitAlarmArgs properties are documented in the QCSPCChartNetCFCompiledHelpFile chm documentation file located in the doc subdirectory Example Setup and enable an alarm transition event handler in the following manner C this ChartData AlarmTransitionEventHandlert new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm this ChartData AlarmTransitionEventEnable true VB AddHandler Me ChartData AlarmTransitionEventHandler _ AddressOf Me SPCControlLimitAlarm Me ChartData AlarmTransitionEventEnable true where the handler method is this SP
192. d 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 EnableCategoryValues EnableCalculated Values EnableTotalSamplesV alues EnableNotes SPC Attribute Control Charts 257 EnableTimeValues Title Fraction Defective p Chart Part No 321 Chart No 19 EnablelnputS tringsDisplay true Operator S Kafka EnableTimeValues frue FRACT DEF S0 0 160 20 0 Oo QOQO Q 0 Q G0 Q A EnableTofalSamplesValues frue N N N N N N N 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 The example code below is extracted from the TimeAttributeControlCharts SimpleAttributeControlChart example program C void InitializeChart Initialize the SPCTimeAttributeControlChart this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table this ChartData Title Fraction Defective p Chart this ChartData PartNumber 321 this ChartData ChartNumber 19 this ChartData PartName Pre paint touchup this ChartData TheOperator S Kafka Display the Sampled value rows of the table this EnableInputStringsDisplay true Display the Sampled value rows of the table this EnableCategoryValues
193. d 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 102 SPC Control Data and Alarm DefaultXBarString DefaultXString NotesColumString SampleValueColumnString TimeStampColumnString Public Static Shared Methods Classes 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 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 CalcRangeBasedDecimalPos display calculated values in the data table Public Instance Constructors SPCControlChartData Public Instance Properties AlarmStateEventEnable AlarmTransitionEventEnable ChartNumber ChartNumberHeader CurrentNumberRecords DatalLogEnable DataLogCSV DataLogFilename DataLogFlags O
194. dated 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 InitS PC TimeV ariableControlChart 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 _ C public void InitSPCTimeVariableControlChart int charttype int numsamplespersubgroup int numdatapointsinview int timeincrementminutes Parameters charttype The SPC chart type parameter Use one of the SPCControlChartData SPC chart types MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS 154 SPC Variable Control Charts INDIVIDUAL RANGE CHART EWMA CHART MA 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 Specifie
195. 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 frequency Limits 328 Frequency Histograms Pareto Diagrams Probability Charts Changing Default Characteristics of the Chart Forml MainTitle __ Normal Probability Plot Showing Estimated Accumulated Frequencies YAxisLab1 i YAxisLab2 kan AXGrid Yo ia z 99 8 D pcd 99 5 90 1 SigmaAxisLab 50 50 Under i S 70 SigmaAxis M in 90 8 E Ni YAxisTitle 0 95 2 0 20 0 5 99 5 0 2 998 5 0 2 4 6 8 10 Y Axis1 T a Frequency Bin YAxis2 xisLa gt xAxisTitle XAxis GraphBackground PlotBackground Measurements XAxis XAxisTitle XAxisLab 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 void InitializeChart TODO Add any initialization after the InitForm call double xl 1 2 3 4 5 6 7 8 9 double y
196. 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 Standard SPC Control Charts 17 X Bar Sigma Chart with variable sample size 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 5 12 2008 7 59 11 PM TIME 19 59 20 14 20 29 20 44 20 59 21 14 21 29 21 44 21 59 22 14 22 29 22 44 22 59 23 14 23 29 23 44 23 59 MEAN 63 4 66 4 64 2 65 7 62 3 66 9 65 4 63 2 62 6 65 2 64 6 63 2 64 7 63 1 64 1 66 2 64 1 SIGMA 7 3 64 47 69 48 54 56 44 27 7 2 60 54 74 54 69 52 66 Sum 317 2 331 9 899 4 854 0 810 4 869 4 719 8 631 6 438 0 521 2 969 0 505 3 582 3 883 7 705 0 993 0 448 8 NO INSP 5 5 14 13 13 13 11 10 8 15 8 9 14 11 15 7 ALARM o NOTES N N N N N N N N N N N N N N N N N CL 69 10 XBAR 64 12 CL 59 13 T T 80 60 4020 0 20 00 21 00 22 00 23 00 CL 9 73 SIGMA 6 10 LCL 2 48 80 60 40 20 0 20 00 21 00 22 00 23 00 The X Bar Sigma 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
197. djacent subgroups Dim timeincrementminutes As Integer 30 Sub InitializeChart Initialize the SPCBatchAttributeControlChart 298 SPC Attribute Control Charts Me InitSPCBatchAttributeControlChart charttype numcategories _ 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 InitSP CBatchAttributeControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub InitSPCBatchAttributeControlChart _ ByVal charttype As Integer _ ByVal numcategories As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ C 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 NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS 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
198. e Get Set the starting y position in normalized coordinates of the first row of the table Get Set the StringItemTemplate 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 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 TextRowSpacing TimeColumnSpacing TimeltemTemplate TimeLabelFont TimeRowSpacing Public Instance Methods AddCalculatedItem AddHorizontalBar AddNotesItem AddNumericltem AddStringItem AddTimeltem Clone Copy GetChartLabel IncrementRow InitDefaults SPC Control Data and Alarm Classes 145 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 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
199. e 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 98 SPC Control Data and Alarm Classes the calculated chart values used in the chart and the SPC control limits Calculated Values MEAN 29 5 275 29 7 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 objects There is an instance of SPCControlChartData in the SPCChartBase class Since the SPCChartBase class is the bas
200. e AddNewSampleRecord method call SPC Variable Control Charts 213 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 AddNewSampleRecord 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 in dalarmlimitvaluestring Current Value calculatedvaluestring Append a notes string to the current record if alarm AlarmState this 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
201. e 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 Chart type constant Custom SPC Attribute Control Chart unused CUSTOM ATTRIBUTE CONTROL CHART Chart type constant Custom SPC Variable Control Chart not used CUSTOM VARIABLE CONTROL CHART Datalog flag specifying that all DATALOG FILE ALL available items should be logged to the file Datalog flag specifying that the DATALOG FILE BATCH NUMBER batch number should be logged to the file SPC Control Data and Alarm Classes 99 Datalog flag specifying that the calculated values should be logged DATALOG FILE CALCULATED VALUES to the file Datalog flag specifying that the DATALOG FILE COLUMN HEADS column heads should be logged to the file Datalog flag specifying that the control limit values should be logged DATALOG FILE CONTROL LIMIT VALUES the file Datalog flag specifying that the DATALOG FILE NOTES notes should be logged to the file Datalog flag specifying that the sampled values should be logged
202. e 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 COLUMN 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 this ChartData DataLogFlags SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DATALOG FILE COLUMN HEADS 128 SPC Control Data and Alarm Classes SPCControlChartData DATALOG FILE NOTES VB Me ChartData DataLogFlags 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 It is also possible to read a previously saved datalog file a
203. e 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 ElapsedTimeLabel The chart text classes draw one or more strings in the chart window Different classes support different numeric formats including floating point numbers date time values and multi line text strings International formats for floating point numbers and date time values are also supported SPC Control Data and Alarm Classes 91 ChartText 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 ChartTitle This class displays a text string as the title or footer of the chart AxisTitle This class displays a text string as the title for an axis The axis title position is outside of the axis label area ChartLabel This class is the abstract base class of labels that require special formatting NumericLabel This class is a concrete implementation of the ChartLabel class and it displays formatted numeric values TimeLabel This class is a concrete implementation of the ChartLabel class and it displays formatted ChartCalendar dates ElapsedTimeLabel This class is a concrete i
204. e 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 270 SPC Attribute Control Charts TableStartPosY z 0 1 Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 10 1140 12 30 1240 1330 1340 1410 1440 1510 15 40 1610 16 40 1710 1740 18 10 1840 19 10 2 a4 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 SPC Control Limits 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 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 SetControlLimitV alues 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 AddA dditionalControlLimit method discussed in the Multiple Control Limits section The data values in the controllimitvalues and controllimitstrin
205. e 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 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 82 SPC Control Data and Alarm Classes Polar Line and Scatter Plots The polar line charts use true polar not linear interpolation between data points PolarLinePlot 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 PolarScatterPlot This class is a concrete implementation of the PolarPlot class and displays data in a simple scatter plot format Antenna Plot Classes AntennaPlot AntennaLinePlot AntennaScatterPlot AntennaLineMarkerPlot GraphObj AntennaAnnotation Antenna plots that use data organized as arrays of x and y values where an x value represents the radial
206. eRecord SPCSampledValueRecord class Public Instance Properties Get Set the current value for this record SampledValue Get Set the historical array of the sampled SampledValues value record Get Set the description of sampled value ValueDescription record Public Instance Methods Copies the source object Copy Calculate a statistic for the historical data GetCalculatedV alueStatistic associated with the sample item Set the current value of the record and adds SetSampledValue 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 Specifies the alarm is a greater than alarm SPC GREATERTHAN LIMIT Specifies the alarm is a lower than alarm SPC LOWERTHAN LIMIT Specifies the limit is not an alarm just a SPC NOTA LIMIT value Public Instance Constructors Overloaded Initializes a new instance of the SPCControlLimitRecord SPCControlLimitRecord class Public Instance Fields controlLimitValues Public Instance Properties AlarmDisplay AlarmEnable AlarmMessage AlarmState ControlLimitText ControlLimitType ControlLimitValue ControlLimitValues HysteresisValue PrevAlarmState SPCProcessVar SymbolColor
207. eated 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 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 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 are created using the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes 148 SPC Variable Control Charts Individual Range Chart Also known as the X R Chart The Individual Range Chart is used when the sample size for a
208. ect 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 Frequency Histograms Pareto Diagrams Probability Charts 327 TextTemplate ToolTipSymbol XAxis XAxisLab XAxisTitle XGrid XValues XValueTemplate YAxisl YAxis2 Y AxisLabl Y AxisLab2 Y AxisTitle YGrid Y Values Y ValueTemplate Public Instance Methods BuildChart Copy InitProbabilityChart InitProbabilityDatasets Get the default text object template for the data tooltip Get the tooltip symbol object for the data tooltip 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 probability 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
209. ectangle 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 ChartView class to support multiple mouse listeners at the same time Miscellaneous Utility Classes ChartCalendar CSV Dimension Point2D GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D ChartCalendar CSV Dimension Point2D This class contains utility routines used to process ChartCalendar date objects This is a utility class for reading and writing CSV Comma Separated Values files 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 CF Point class GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D SPC Control Data and Alarm Classes 95 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
210. ected 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 322 Frequency Histograms Pareto Diagrams Probability Charts Histogram Control Limit Lines and Normal Curve fit Frequency Histogram of Selected Data Freq 40 Measurements this AddFrequencyHistogramControlLine 20 0 new ChartAttribute Color LightGreen 2 3 this AddFrequencyHistogramControlLine 60 0 new ChartAttribute Color LightGreen 2 this AutoNormalCurve true VB Me AddFrequencyHistogramControlLine 20 0 new ChartAttribute Color LightGreen 2 Me AddFrequencyHistogramControlLine 60 0 new ChartAttribute Color LightGreen 2 Me AutoNormalCurve True Probability Plots Another important tool the SPC engineer uses to model the process variation 1s 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 Frequency Histograms Pareto Diagra
211. ects needed to display a single graph Below you will find a summary of the class properties Public Instance Properties AnnotationArray AnnotationFont AnnotationNudge AxisLabelFont AxisTitleFont ControlLabelPosition ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart Get the array of TextObject objects representing the annotations of the chart Set Get annotation font Set Get the x and y values use to offset a data points annotation with respect to the actual data point 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 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 306 SPC Attribute Control Charts GraphBackground BatchIncrement BatchStartValue BatchStop
212. ed 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 This class selects and moves individual data points of an object derived from the SimplePlot class 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 high low close values for a given point in a chart 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 One x or one y axis One x and one y axes One x and multiple y axes One y and multiple x axes e Multiple x and y axes e 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 94 SPC Control Data and Alarm Classes MoveCoordinates MultiMouseListener target chart displays the chart in the magnified state The mouse positions a MagniView r
213. ee l at 1 100uA 10 9 MM H M 3 H I b 50uA 0 0 5 10 15 20 Collector Emitter Voltage The Multi inePlot will plot a multiple y vectors vs a single x vector 80 SPC Control Data and Alarm Classes MultiLinePlot This class is a concrete implementation of the GroupPlot class and displays group data in multi line format 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 Daily Stock Price Scroll week NASDAQ 4 11 05 4 18 05 4 25 05 5 02 05 5 09 05 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 SPC Control Data and Alarm Classes 81 Cumulative Plot of Noise vs Time from 7 Sources 2000 1500 1000 Amp 500 0 5 10 15 20 Time The Stacked Line Plot will plot the cumulativ
214. 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 3 Class Architecture of the SPC Control Chart Tools for Net CF Class Library Major Design Considerations This chapter presents an overview of the SPC Control Chart Tools for Net CF class architecture It discusses the major design considerations of the architecture Major design consideration specific to SPC Control Chart Tools for Net CF are e Direct support 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 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 Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects pe
215. egory 5 samples 5 4 TOTAL number of defective parts in the sample Add the new sample subgroup to the chart Me ChartData AddNewSampleRecord timestamp samples SPC Control Data and Alarm Classes 117 Our example programs obscure this 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 example program C DoubleArray samples this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record this ChartData AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray Me ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record Me 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
216. ents standard SPC charts and then go about defining the charts using some sort of menu driven interface or wizard This is probably the most expensive 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 CF 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 program from scratch 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 knowledge of SPC or of charting Built on top our QCChart2D CF it implements templates and support classes for the following SPC charts and control
217. er 17 hartData TheOperator B Cornwall hartData PartName Left Front Fender hartData Operation Painting hartData Machine 11 hartData Gage hartData UnitOfMeasure hartData ZeroEquals C e e c C Me ChartData SpecificationLimits G C c C hartData DateString DateTime Now ToString Me 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 SPC Attribute Control Charts 261 Project Name Project XKYZ for PerQuet Set the properties this ChartData Title Project XKYZ for PerQuet this ChartData TitleHeader Project Name VB Me ChartData Title Project XKYZ for PerQuet Me ChartData TitleHeader Project Name Change other headers using the ChartData properties listed below e TitleHeader e PartNumberHeader e ChartNumberHeader e PartNameHeader e OperationHeader e OperatorHeader e MachineHeader e DateHeader e SpecificationLimitsHeader e GageHeader e UnitOfMeasureHeader e ZeroEqualsHeader 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 respec
218. er and plot SPC data consist of three main parts e 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 e 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 162 SPC Variable Control Charts e The third part plots the calculated SPC values for the sample group variables 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 EnableCategoryValues EnableCalculated Values EnableTotalSamplesV alues EnableNotes EnableTotalSamplesV alues EnableTimeValues EnableProcessCapabilityV alues DD o I Part No 28 Operator J Fenamore EnableinputStringsDisplay true EnableCategoryValues true EnableC alculated Values true SUM 140 2 1946 1924 125 5b 5 130s Itsy Itc 5 1os0 19s A 1458 1473 Enable Total Samples Values true 15 20 1635 1550 1606 16 20 16 35 1650 17 05 1720 17 35 1750 1805 1820 In the program the code looks like the following code extracted from the TimeVariableControlCharts X BarR Chart examp
219. ery 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 Standard SPC Control Charts 19 Typical Time Based Individual Range Chart X R with data table 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 6645 Zero Equals zero Date 5 12 2008 6 23 31 PM TIME 18 2318 53 519 23 19 537 70 23 20 53 2123 21 59 22 293 _ 22 53 29 23 23 59 D23 comedies 1S3 223 Cpk 0 000 0 922 0 909 0 696 0 745 0 730 0 584 0 706 0 876 0 648 0 623 0 584 0 587 0 619 0 539 0 545 0 557 Ppk 0 000 1 156 1 374 0 565 0 457 0 378 0 431 0 468 0 506 0 464 0 495 0 479 0 506 0 527 0 500 0 506 0 529 ALARM XU NENNT EAE S ee a st ea ce 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 30 Lu ICL 29 18 ml MS Ae ABS RANGE 10 1 A 2 E PERD LL LLL lll 4E 1 neers O E anos RANGE 8 93 CL 0 00 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 Individual Range Chart Also known as the X R Chart The Individual Range Chart is used w
220. es 46 Class Architecture Typical Time Variable Control Chart Individual Range or XR Chart 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 6645 Zero Equals zero Date 5 12 2008 6 23 31 PM TIME 18 23518 53519 23 19 535 20 23 20 53 2123 21 59 221293 22 53 29 23 23 59 230 DS NA 1S 223 Cpk 0 000 0 922 0 909 0 696 0 745 0 730 0 584 0 706 0 876 0 648 0 623 0 584 0 587 0 619 0 539 0 545 0 557 Ppk 0 000 1 156 1 374 0 565 0 457 0 378 0 431 0 468 0 506 0 464 0 495 0 479 0 506 0 527 0 500 0 506 0 529 ALARM ue e II EE Tc 50 40 SAMPLE YALUE 30 20 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 30 a a us 3 413408 OAT n LL med ID Mi Ade ABS RANGE 10 RANGE 8 93 CL 0 00 19 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 5 13 08 i e 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 and MA CHART chart types Typical SPCBatchCusumControlChart with alarm limits Class Architecture 47 Typical Batch Attribute Control Chart Fraction Defective or p Chart Title Fraction Defective Parts p Chart Part No 321 Chart No 19 Operato
221. es store the SPCControlLimitRecord objects in the SPCControlChartData ControlLimitValues array list SPCControlLimitRecord constructors This constructor creates a new instance of a SPCControlLimitRecord 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 SPCControlChartData processvar SPCCalculatedValueRecord clr int parametertype double alarmlimitvalue string normalmessage string alarmmessage s 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 130 SPC Control Data and Alarm Classes Specifies the alarm limit value normalmessage Specifies display message when no alarm present alarmmessage Specifies the alarm message The most commonly used SPCControlLimitRecord properties are Public Static Shared Fields SPC GREATERTHAN LIMIT SPC LOWERTHAN LIMIT SPC NOTA LIMIT Public Instance Constructors SPCControlLimitRecord Public Instance
222. es that are labeled using one of three different characters An H signifies a high alarm a L signifies a low alarm and a signifies that there is no alarm C Alarm status line this EnableAlarmStatusValues false VB Alarm status line Me EnableAlarmStatusValues False SPC Variable Control Charts 223 ChartAlarmEmphasisMode 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 Equats zero 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 128 31 157 154 196 188 159 44 168 165 203 161 91 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 40 30 20 10 0 13 00 14 00 15 00 16 00 C Chart alarm emphasis mode this ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL VB Chart alarm emphasis mode Me 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 i
223. essOf Me SPCControlLimitAlarm don t generate alarms in initial data simulation Me ChartData AlarmStateEventEnable False Me PrimaryChart UseWERuntimeRules 206 SPC Variable Control Charts SimulateData Calculate the SPC control limits for the X Bar part of the current SPC chart X Bar R Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData generate alarms starting now Me ChartData AlarmStateEventEnable True End Sub SPCControlLimitAlarm 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 n timestampstring message An _
224. everal 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 classes also implement mouse event delegates that use the mouse to mark move and zoom chart objects and data MouseListener This class implements Net CF 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 FindObj DataCursor MoveData DataToolTip ChartZoom MagniView SPC Control Data and Alarm Classes 93 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 This class extends the MouseListener class providing additional methods that selectively determine what graphical objects intersect the mouse cursor 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 press
225. fect 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 e 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 e The second part records the defect data organized as a table recording the defect data and SPC calculations in a neat readable fashion e 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 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 Standard SPC Control Charts 33 Typical Number of Defects c Chart with data table Title Number Defects c Chart Part Mo 321 Chart No 19 SH K Peterson Machine E TIME 20 46 21 18 21 48 22 18 22 480 23 18 23 48 0 18 0 48 1 18 1 48 2 18 2 48 3 18 Burr 3 5 7 5 8 4 0 1 1 5 6
226. 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 I R chart it can also be used when sample subgroup sizes are greater than one Standard SPC Control Charts 21 EWMA Exponentially Weighted Moving Average Chart with Sample Values Plotted 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 5 12 2008 7 46 19 PM TIME 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 1 16 1 46 2 16 2 46 3 16 3 46 Sample 0 9 45 7 99 9 29 11 66 12 16 10 18 8 04 11 46 9 20 10 34 9 03 11 47 10 51 9 40 10 08 9 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 9 450 7 990 9 290 11 660 12 160 10 180 8 040 11 460 9 200 10 340 9 030 11 470 10 510 9 400 10 080
227. ftware does not calculate optimal and L values that is up to you the programmer to supply based on your experience with EWMA charts Note that the term 1 1 A approaches unity as 1 increases The implies that the control limits of an EWMA chart will reach approximate steady state values defined by UCL go L o Sqrt A 2 A LCL w L o Sqrt A 2 A 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 1 If the EWMA chart is used with subgroup sample sizes greater than 1 the value of X is replaced by the mean of the corresponding sample subgroup and the value of o is replaced by the value o sqrt n where in is the sample subgroup size You specify A and 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 EWMAChart and MiscBatchBasedControlCharts EWMA Chart Specify L using the DefaultControlLimitSigma property and using 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 UseSS Limits Extracted from the MiscTimeBasedControlCharts EWM A Cha
228. ftware to the Net Compact Framework compromises had to be made because of the limitations listed above In some cases work arounds were devised to overcome these limitations When compared to the original QCSPCChart for Net software the QCQPCChart CF for the Net Compact Framework has the following limitations e While the Brush class only supports a simple color i e no gradients or textures we were able to implement simple linear gradients for our ChartBackground class e Only simple RGB colors are supported with no alpha blending no transparency e Because much of the original software was written using the GraphicsPath class we created our own simple GraphicsPath class to maintain source compatibility e Asimple Matrix class along with related 2D coordinate transformation routines were added so that we could rotate scale and translate geometric shapes and symbols defined using GraphicsPath objects e mage objects incorporated in a chart can be scaled and translated but not rotated e Text still cannot be rotated not even 90 degrees for y axis titles Introduction 7 e We implemented XOR drawing so that we could properly draw zoom rectangles and data cursor objects e No printer and image output support The XOR drawing is optional We implement XOR drawing by calling a Net CF PInvoke function that permits calling drawing routines in the underlying oprerating system Strickly speaking this violates the Net managed memory par
229. ger 17 Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes SPC Variable Control Charts 179 Me UseNoTable True True True Place your chart title here Me EnableScrollBar True Me ChartAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT SYMBOL Training data to establish limits SimulateData 50 30 10 Me AutoCalculateControlLimits New data SimulateData 50 30 15 Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings Me 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 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 this GraphStartPosX 0 1 start here this GraphStopPosX 0 875 end here VB Me GraphStartPosX 0 1 start here Me GraphStopPosX 0 875 end here There is not much flexibility posi
230. gner generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call Me Dock DockStyle Fill Define and draw chart InitializeChart End Sub End Region Public Sub InitializeChart Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData End Sub InitializeChart SPCTimeVariableControlChart Members Public Instance Constructors SPC Variable Control Charts 153 Overloaded Initializes a new instance of the SPCTimeVariableControlChart SPCTimeVariableControlChart class Public Instance Methods Overloaded Initialize the class for a specific InitSPCTimeVariableControlChart SPC chart type Overloaded Initialize the class a cusum InitSPCTimeCusumControlChart chart type The control chart type X Bar R 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 up
231. gs i 0 Messages Enabled True Description File ToolBar none El Data Ed DataBindings Tag El Design Name Error List Jj Task List Find Results 1 g Find Symbol Results e From that point on you can select the appropriate SPC Chart control from the Toolbox and drop in on the form The SPCApplicationl example program uses the SPCTimeVariableControlChart control The code that instantiates the control sizes it and places on the form is automatically placed in the Form Designer vb file You don t need to monkey around with that e The code needed to customize the chart for your application is placed in the Forml vb file In the SPCApplicationl example it is placed in the Forml InitializeChart method 348 Creating SPC Charts in Windows Applications 29 SPCApplication1 Microsoft Visual Studio File Edit Windows CE 5 0 Device Toolbox View Refactor Project Build Eid sa Debug Target Data Tools Window Community Help g b Debug z 95 89 42 Sk 2X gt Any CPU Bp Font D Rh ae se E General Formi cs Design Forml cs Start Page Solution Explorer Solution S v X BSS Sy vl There are no usable controls in this group Drag an item onto this te The time increment between adjacent subgroups int timeincrementminutes 15 Number of samples per sub group in
232. gs 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 this ChartData SetControlLimitValues controllimitvalues string controllimitstrings PBAR LCL UCL SPC Attribute Control Charts 271 this ChartData SetControlLimitStrings controllimitstrings VB Dim controllimitvalues As Double 0 13 0 0 0 25 Me ChartData SetControlLimitValues controllimitvalues Dim controllimitstrings As String PBAR LCL UCL Me 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 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 if desired The example below sets the control limit values and text for the three control limits target value upper control limit and lower control limit of the primary chart and the three control limit values for the secondary chart C Set control limits for primary chart target control limit primary chart SPCControlLimitRecord primarytarget
233. he 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 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 frequency Limits Changing Default Characteristics of the Chart Frequency Histograms Pareto Diagrams Probability Charts 319 Frequency Histogram of Selected Data MainTitle YAxisLab inem Le E ERE NR S S E ERE RR RR ER diac mm Freq 200 400 Measurements 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
234. he ChartZoom class Refer to the QCChart2D CF manual for information specific to these new features Tutorials Chapter 10 is a tutorial that describes how to get started with the SPC Control Chart Tools for Net CF charting software 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 either your own example or a modified version of one of our own examples SPC Control Chart Tools for Net CF 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
235. he 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 DATALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES this ChartData DataLogFileOpenForWrite DatalogFilel txt datalogflags this ChartData DatalLogEnable true this 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 Me ChartData DataLogFileOpenForWrite DatalogFilel txt datalogflags Me ChartData DatalLogEnable True SPC Control Data and Alarm Classes 127 Me ChartData AddNewSampleRecord timestamp samples notesstring Every call to the AddNewSampleRecord method will append a new SPC record to the file specified in the DataLogFileOpenForWrite 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 b
236. hen 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 20 Standard SPC Control Charts Typical EWMA Chart Title Variable Control Chart M 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 5 12 2008 7 46 22 PM TIME 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 1 16 1 46 2 16 2 46 3 16 3 46 Sample 0 10 25 9 34 10 06 10 34 9 76 9 47 10 42 9 94 10 32 10 22 10 25 9 29 928 978 9 43 9 41 9 46 MA 10 249 9 793 9 881 9 996 9 948 9 868 9 947 9 946 9 987 9 954 10 085 9 999 9 881 9 883 9 879 9 767 9 715 ALARM CL 11 00 CL 9 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 5 13 08 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
237. her 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 the chart C frequency histogram for both charts this PrimaryChart DisplayFrequencyHistogram true VB frequency histogram for both charts Me PrimaryChart DisplayFrequencyHistogram True Title Fraction Defective p Chart Part No 321 Char No 19 Operator S Kafka Machine 41 Time 1931 2001 2031 2101 2131 220 2231 2301 23 31 001 2 a4 FRACT DEF UCLP 0 28 20 15 10 5 0 Frequency Histogram SPC Attribute Control Charts 289 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 Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 1640 1710 1740 1810 1840 1910 1940 2010 2040 2110 2140 2210 2240 2310 2340 010 O40 2 b 2 0 6 3 1 4 1 1 2 2 2 3 3 2 6 0 4 1 4 0 4 3 4 2 3 1 3 3 5 8 1 4 1 FRACT DEF 0 020 0 160 0 000 0 200 0 240 0 180 0 160 0 120 0 040 0 100 0 240 0 200 0 260 0 100 0 260 0 240 0 180 NOTES N N N N N N N N N N N N N N N N N 17 00 18 00 19 00 20 00 21 0
238. his way in many cases Often times it is done by the same factory floor personal who control the process being measured allowing 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 4 Introduction 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 implem
239. hod 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 _ 248 SPC Attribute Control Charts C public void InitSPCTimeAttributeControlChart int charttype int numcategories int numsamplespersubgroup int numdatapointsinview int timeincrementminutes he 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 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 timeincremenminutes Specifies the normal time increment between adjacent subgroup samples The image below further clarifies how these parameters affect the attribute control chart SPC Attribute Control Charts 249 Title Fraction Defective p Chart Part No 321 Chart No 19
240. ibute Control Updating p and np charts Fixed Sample Subgroup Size p chart FRACTION DEFECTIVE PARTS CHART or PERCENT DEFECTIVE PARTS CHART np chat NUMBER DEFECTIVE PARTS CHART 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 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 i 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 116 SPC Control Data and Alarm Classes initialization call the first N 0 N 1 elements of the samples array holds the defect count for each c
241. ic class XBarRChart SPCTimeVariableControlChart 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 data points in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 15 public XBarRChart This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart public void InitializeChart j Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes this RebuildChartUsingCurrentData VB Public Class XBarRChart Inherits com quinncurtis spcchartnet SPCTimeVariableControlChart 152 SPC Variable Control Charts Private startTime As ChartCalendar 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 data points in the view Private numdatapointsinview As Integer 17 The time increment between adjacent subgroups Private timeincrementminutes As Integer 15 Region Windows Form Desi
242. ight Quinn Curtis Inc 2009 Quinn Curtis Inc Tools for Net Compact Framework 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 Curtis Inc SOFTWARE identified above which includes all Quinn Curtis Inc Net Compact Framework 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 li
243. ill no longer be a straight horizontal line instead it will be jagged or stepped depending on the changes made 0 3 0 2 0 0 21 00 22 00 23 00 0 00 1 00 12 28 05 18 00 19 00 20 00 SPC Attribute Control Charts 277 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 SetControlLimitV alues method C doubl initialControlLimits 0 13 0 0 0 27 double changeControlLimits 0 11 0 0 0 25 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 this ChartData SetControlLimitValues changeControlLimits this 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 Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 If i 10 Then Me ChartData SetControlLimitValues changeControlLimits End If Me 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 value
244. imeinci startTime Add ChartObj MINUTE timeinc Next L End Sub XBarRChart Attributes X 2 End Class s 41 B COM Error List COM Class False 0 Errors A 0 Warnings i 0 Messages COM Visible True c File Line Column Project E Component Design Default Event None Properties AX COM Class lt gt Expose Class to COM d Error List A Task List gi Find Results 1 i Find Symbol Results Ready Ln 114 Col 12 e Right click the XBarRChart Designer vb node and select View Code Change the UserControl inheritance to com quinncurtis spcchartnetcf SPCTimeVariableControlChart Don t change anything else in the file lt Global Microsoft VisualBasic CompilerServices DesignerGenerated gt _ Partial Public Class XBarRChart Inherits com quinncurtis spcchartnetcf SPCTimeVariableControlChart e The chart customization code is placed in the XBarRChart vb file Once compiled the XBarRChart control appears in the projects Toolbox and you will see it if you display the projects main form You can select the XBarRChart control from the Toolbox and drop it on the main form e SPCApplication3 A third technique skips adding any of the SPC controls to the toolbox Instead you can instantiate the SPC control directly in the Form vb file In this example a simple Panel control has been dropped onto the form This provides a simple means to position and size the SPC control it will hold Add the SPC chart cont
245. 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 or PERCENT DEFECTIVE PARTS CHART VSS 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 118 SPC Control Data and Alarm Classes C DoubleArray samples this 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 this ChartData SampleSubgroupSize VSS numsamplespersubgroup int 25 ChartSupport GetRandomDouble Add new sample record this ChartDa
246. ing 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 Net Compact Framework Background The goal of the Microsoft Net Compact Framework is according to Microsoft The Net Framework and the Net Compact Framework provide a consistent programming model across the full range of Windows platforms and expose that programming model through a single unified tool set Visual Studio Net Together Visual Studio and the Net Compact Framework enable millions of desktop Visual Basic developers and the rapidly growing market of C developers to begin building smart mobile applications Features of the Net Compact Framework and Visual Studio Net include support for XML and Web services the ability to integrate components written in multiple programming languages and developer productivity features such as integrated rich device emulator support a visual drag and drop forms designer a comprehensive set 6 Introduction of user interface controls remote debugging support and simplified application deployment Limit
247. inutes 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 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 ElapsedTimeAxis 8 00 00 16 00 00 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 SPC Control Data and Alarm Classes 67 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 scale This circular axis represents 360 degrees or 2 Pi radians of the polar scale and the tick marks that circle this axis are spa
248. iption and the hysteresis value for alarm checking SPCCalculatedV alueRecord 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 class 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 45 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 SENA J Fenamore Machine 11 TIME 21 38 21 53 22 08 22 23 22 38 22 53 23 108 23 23 23 38 23 53 0 08 0 23 0 38 0 53 1 08 1 23 1 38 RANGE 11 2 0 4 13 4 6 7 3 6 43 6 9 42 74 45 34 3 4 5 6 75 24 11 3 10 0 ALARM 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 and MA CHART chart typ
249. is 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 SPCProcessCapability Record 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 X BarR Chart example this ChartData AddProcessCapabilityValue SPCProcessCapabilityRecord SPC CPK CALC this ChartData AddProcessCapabilityValue SPCProcessCapabilityRecord SPC CPM CALC this 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 166 SPC Variable Control Charts Title Variable Control Chart X Bar amp R Pan No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 18 44 18 5
250. 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 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 this ChartData AddNewSampleRecord timestamp samples 256 SPC Attribute Control Charts VB Dim samples As DoubleArray New DoubleArray 5 ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New Ch
251. isStringLabelMode property to SPCChartObjects AXIS LABEL MODE DEFAULT C this 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 this ChartData AddAxisUserDefinedString batchidstring VB Add new sample record Me ChartData AddNewSampleRecord batchnumber timestamp samples Dim randomnum As Integer CInt 1000 ChartSupport GetRandomDouble Dim batchidstring As String EC amp randomnum ToString Me 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 304 SPC Attribute Control Charts Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine amp 1 Time iti4 1044 1214 1246 13 4 1344 1434 1444 15 14 1544 1614 1644 1714 1744 1814 1844 19 14 2 1 3 4 6 1 4 4 2 2 2 1 0 2 6 o 1 2 ay 2 4 0 7 1 2 0 1 3 2 3 0 5 3 3 2 5 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 N N N
252. it 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 software automatically calculates all of the appropriated control limits based on the current data The example below is extracted from the WERulesVariableControlChart X BarR Charts example program C this ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm don t generate alarms in initial data simulation this ChartData AlarmStateEventEnable false this 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 this AutoCalculateControlLimits throw out values used to calculate limits this ChartData ResetSPCChartData generate alarms now this
253. itRecord Me ChartData _ SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 LCLR1 LCLR1 Dim ucl3 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 UCLRI UCLRI1 Me PrimaryChart AddAdditionalControlLimit lcl3 _ SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal Me PrimaryChart AddAdditionalControlLimit ucl3 _ SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal For SecondaryChart high limits only Dim ucl4 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 0 UCLR2 UCLR2 Dim ucl5 As New SPCControlLimitRecord Me ChartData _ SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 0 UCLR1 UCLRI1 Me SecondaryChart AddAdditionalControlLimit ucl4 _ SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Me SecondaryChart AddAdditionalControlLimit ucl5 _ 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
254. ith 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 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 2 1 24 2006 12 18 40 23 8902424375481 33 7523682840412 Record 3 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 126 SPC Control Data and Alarm Classes SPCControlChartData DATALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES 5 There are five sampled values per record 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 the C TimeVariableControlCharts Bin Debug folder or VB TimeVariableControlCharts Bin folder T
255. ive parts in the sample Add the new sample subgroup to the chart Me 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 example program C DoubleArray samples this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record this ChartData AddNewSampleRecord timestamp samples SPC Attribute Control Charts 255 VB Dim samples As DoubleArray Me ChartData SimulateDefectRecord 50 0 134 _ SPCControlChartData NUMBER DEFECTIVE PARTS CHART Add new sample record Me 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 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 that
256. l 2 6 13 26 58 82 93 97 1007 this InitProbabilityChart xi yl this ProbabilityPlot LineColor Color Red this ProbabilityPlot ChartObjAttributes SymbolSize 12 this YAxisl LineColor Color Green this YAxisl LineWidth 3 Frequency Histograms Pareto Diagrams Probability Charts 329 this YAxis2 LineColor Color Blue this YAxis2 LineWidth 3 this YAxisLabl LineColor Color DarkMagenta this BuildCh rti VB Sub InitializeChart TODO Add any initialization after the InitForm call Dim xl As Double 1 0 2 3 4 5 6 7 8 9 Dim yl As Double 2 6 13 29 58 B2 93 91 100 Me InitProbabilityChart x1 y1 Me ProbabilityPlot SetColor Color Red sets both line and fill color Me ProbabilityPlot ChartObjAttributes SymbolSize 12 Me YAxisl LineColor Color Green Me YAxisl LineWidth 3 Me ProbabilityPlot LineColor Color Red Me ProbabilityPlot ChartObjAttributes SymbolSize 12 Me YAxis2 LineColor Color Blue Me YAxis2 LineWidth 3 Me YAxisLabl LineColor Color DarkMagenta Me BuildChart End Sub InitializeChart Pareto Diagrams 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 330 Frequency Histograms Pa
257. l Japanese industry considers Deming a national hero where his quality system played a major role in the postwar expansion of the Japanese 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 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 t
258. l Note Running the Example Programs The example programs for SPC Control Chart Tools for Net CF 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 ChartView derived control will not be visible on the main Form 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 Form 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 Net CF class library the 30 day trial versions and the developer version Each version has different characteristics that are summarized below Introduction 11 30 Day Trial Version The trial version of SPC Control Chart Tools for Net CF is downloaded in a file named Trial QCSPCChartCFR20x 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 f
259. l 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 Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts Fraction or Percent Non Conforming u Chart Number of Defects per Unit Number of Non Conformities 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 14 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
260. l 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 Administration nor any other federal agency has suspended revoked or denied your export privileges 8 NO WARRANTIES 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 1
261. 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 175 Extracted from the example TimeVariableControlCharts DynamicXBarR Chart C SPCChartObjects AxisTitleFont new Font Times 12 FontStyle Regular SPCChartObjects ControlLimitLabelFont new Font Times 10 FontStyle Regular this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes VB SPCChartObjects AxisTitleFont new Font Times 12 FontStyle Regular SPCChartObjects ControlLimitLabelFont new Font Times 10 FontStyle Regular Me 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 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 TimeVariableControlCharts Dynamic X BarRChart C SPCTimeVariableControlChart DefaultChartFontString Times this InitSPCTimeVariableControl
262. lass It calculates scaling values based on the numeric 62 SPC Control Data and Alarm Classes 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 and line style 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 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 and line style information for the object while the PhysicalCoordinates maintains the coordinate system used by object The majority of classes in the lib
263. lateData generate alarms starting now this ChartData AlarmStateEventEnable true 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 if alarm AlarmState Console Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring SPC Control Data and Alarm Classes 133 VB Public Sub InitializeChart Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes AddHandler Me ChartData AlarmStateEventHandler AddressOf Me SPCControlLimitAlarm don t generate alarms in initial data simulation Me ChartData AlarmStateEventEnable False SimulateData Me RebuildChartUsingCurrentData End Sub InitializeChart Private Sub SPCControlLimitAlarm ByVal sender As Object ByVal e As SPCControlLimitAlarmArgs Dim alarm As SPCControlLimitRecord e EventAlarm Dim alarmlimitval
264. lated value rows of the table this EnableCalculatedValues true Display the total samples per subgroup value row this EnableTotalSamplesValues true Display the Notes row of the table this EnableNotes true Display the time stamp row of the table this EnableTimeValues true VB 164 SPC Variable Control Charts Change the default horizontal position and width of the chart Me GraphStartPosX 0 1 start here Me GraphStopPosX 0 875 end here Set the strings used in the header section of the table Me ChartData Title Variable Control Chart X Bar amp R Me ChartData PartNumber 283501 Me ChartData ChartNumber 17 Me ChartData PartName Transmission Casing Bolt Me ChartData Operation Threading Me ChartData SpecificationLimits Me ChartData TheOperator J Fenamore Me ChartData Machine 11 Me ChartData Gage 8645 Me ChartData UnitOfMeasure 0 0001 inch Me ChartData ZeroEquals zero Me ChartData DateString DateTime Now ToString Me ChartData NotesMessage Control limits prepared May 10 Me 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 Me PrimaryChart MinY 0 Me PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed Me SecondaryChart MinY
265. le program C SPC Variable Control Charts 163 Change the default horizontal position and width of the chart this GraphStartPosX 0 1 start here this GraphStopPosX 0 875 end here Set the strings used in the header section of the table this ChartData Title Variable Control Chart X Bar amp R this ChartData PartNumber 283501 this ChartData ChartNumber 17 this ChartData PartName Transmission Casing Bolt this ChartData Operation Threading this ChartData SpecificationLimits this ChartData TheOperator J Fenamore this ChartData Machine 11 this ChartData Gage 8645 this ChartData UnitOfMeasure 0 0001 inch this ChartData ZeroEquals zero this ChartData DateString DateTime Now ToString this ChartData NotesMessage Control limits prepared May 10 this 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 this PrimaryChart MinY 0 this PrimaryChart MaxY 40 Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t really needed this SecondaryChart MinY 0 this SecondaryChart MaxY 40 Display the Sampled value rows of the table this EnableInputStringsDisplay true Display the Sampled value rows of the table this EnableCategoryValues true Display the Calcu
266. leAlarmEmphasisMode 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 this AutoLogAlarmsAsNotes true VB Me AutoLogAlarmsAsNotes True Creating a Batch Based Attribute Control Chart 296 SPC Attribute Control Charts 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 BatchAttributeControlChart SimpleA ttributeControlChart example program C public class SimpleAttributeControlChart com quinncurtis spcchartnet SPCBatchAttributeControlChart private System ComponentModel IContainer components ChartCalendar startTime new ChartCalendar int batchCounter 0 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 data points in the view int numdatapointsinview 17 The
267. lePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits this AutoScaleSecondaryChartYRange VB Must have data loaded before any of the Auto methods are called SimulateData Caloulate the SPC control limits for both graphs of the current SPC chart SPC Variable Control Charts 209 Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Once all of the graph parameters are set call the method RebuildChartUsingCurrentData C Rebuild the chart using the current data and settings this RebuildChartUsingCurrentData VB Rebuild the chart using the current data and settings Me 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 extr
268. licit 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 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 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 SPC Control Data and Alarm Classes 123 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 XBarRCha
269. 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 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 Introduction 5 np Chart Number of Defective Parts c Chart Number of Defects u Chart Number of Defects per Unit 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 Western Electric Runtime Rules WE Runtime Rules 1 2 3 and 4 The SPC Control Chart Tools for Net CF is a family of templates that integrate the QCChart2D CF chart
270. ll 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 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 Histogram Chart i EN Frequency Histogram of Selected Data Freq Measurements 312 Frequency Histograms Pareto Diagrams Probability Charts 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 XBar R Chart with Integral
271. lt 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 331 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 00 20 31 21 001 21 31 C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND this ChartTable BackgroundColorl Color Bisque 172 SPC Variable Control Charts this ChartTable BackgroundColor2 Color LightGoldenrodYellow VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE STRIPED COLOR BACKGROUND Me ChartTable BackgroundColorl Color Bisque Me ChartTable BackgroundColor2 Color 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 C this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND this ChartTable BackgroundColorl Color LightGray VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND Me ChartTable BackgroundColorl Color LightGray Extracted from the TimeVariableControlCharts XBarSigma example program Title Variable Control Chart X Bar amp Sigma
272. ltip 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 SPC Variable Control Charts 239 Get a reference to the charts left y axis title Y AxisTitle Get a reference to the charts y axis grid YGrid Get Set the y value template for the data YValueTemplate tooltip The main objects of the graph are labeled in the graph below A GraphBackground 40 r Y 35 UCL 35 8 Mean 30 BAR 30 0 YaxisTitle F LineMarkerPlot arkerPlot YAxi l sLa b T T T T T T T T T i T T T T T T 1600 17 18 00 18 00 m IXAxisLab PlotBackground SPC Variable Control Charts 241 7 SPC Attribute 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 dent
273. meAttributeControlChart An Attribute Control Chart class 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 SPC PERCENT DEFECTIVE PARTS CHART VSS FRACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types Class Architecture 49 Frequency Histograms used in Combination with a SPC Control Chart 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 5 12 2008 7 00 59 PM TIME 0 00 ots 0 30 100 i115 130 1 45 200 2 15 230 3 00 35 330 3 45 4 00 ALARM Aaa Se alec E E EE E EIE esac E S EST ERI EST ESSI EP SR EI EB EAN 40 30 20 10 0 1 00 2 00 3 00 4 00 le 50 40 30 20 10 0 1 00 2 00 3 00 4 00 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
274. ment 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 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 this ChartData AddNewSampleRecord timestamp samples VB GetCurrentSampleSubgroupSize is a fictional method that gets the current number of samples in the sample subgroup The value of N SPC Control Data and Alarm Classes 115 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 Me ChartData AddNewSampleRecord timestamp samples Adding New Sample Records for Attr
275. mestamp samples increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE sampleincrement VB Private Sub SimulateData Dim i As Integer For i e 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 As DoubleArray Me ChartData SimulateMeasurementRecord 33 9 Add the new sample subgroup to the chart Me 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 C private void SimulateData String notesstring for int i20 i 2007 itt 212 SPC Variable Control Charts ChartCalendar timestamp ChartCalendar startTime Clone Use the ChartData sample simulator to make an array of sample data DoubleArray samples this ChartData SimulateMeasurementRecord 30 10 double r ChartSupport GetRandomDouble if r 0 1
276. mpleRecord timestamp samples Other AddNewSampleRecord Methods Add a new sample record to a time based SPC chart public void AddNewSampleRecord ChartCalendar DoubleArray Add a new sample record with notes to a time based SPC chart public void AddNewSampleRecord ChartCalendar DoubleArray string Add a new sample record to a batch based SPC chart public void AddNewSampleRecord DoubleArray Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord DoubleArray string Add a new sample record to a numeric based SPC chart public void AddNewSampleRecord double ChartCalendar DoubleArray DoubleArray stri ng Add a new sample record with notes to a numeric based SPC chart 122 SPC Control Data and Alarm Classes public void AddNewSampleRecord double ChartCalendar DoubleArray string Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord double DoubleA rray 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 QCSPCChartNetCFCompiledHelpFile chm compiled help file under com quinncurtis spcchartnet SPCControlChartData AddNewSampleRecord If the AddNewSampleRecord overload does not have an exp
277. mplementation of the ChartLabel class and it displays numeric values formatted as elapsed time strings 12 32 21 StringLabel 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 ChartSymbol Various classes are used 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 92 SPC Control Data and Alarm Classes ChartImage This class encapsulates a System Drawing Image class defining a rectangle in chart coordinates that the image is placed in JPEG and other image files can be imported using the System Drawing Image class and displayed in a chart ChartShape This class encapsulates a GraphicsPath 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 GraphicsPath 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 S
278. mples 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 Me ChartData SampleSubgroupSize VSS numsamplespersubgroup 25 ChartSupport GetRandomDouble Add the new sample subgroup to the chart SPC Control Data and Alarm Classes 121 Me 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 this ChartData SimulateDefectRecord 19 85 5 Add a sample record this ChartData AddNewSampleRecord timestamp samples VB Simulate sample record Dim samples As DoubleArray Me ChartData SimulateDefectRecord 19 85 5 Add a sample record Me ChartData AddNewSa
279. ms Probability Charts 323 Creating a Probability Plot Cumulative Normal Probability Chart Normal Probability Plot Showing Estimated Accumulated Frequencies Under 4 2 4 6 8 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 ProbabilityPlotUserControll example program C public class ProbabilityPlotUserControll com quinncurtis spcchartnet ProbabilityChart public ProbabilityPlotUserControll This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart 324 Frequency Histograms Pareto Diagrams Probability Charts InitializeChart void InitializeChart VB TODO Add any initialization after the InitForm call double lel 1 2 3 4 5 9 7 9 9 7 double yl 2 6 13 26 58 82 93 97 100 this InitProbabilityCh rt xl yl this BuildChart Public Class ProbabilityPlotUserControll Inherits com quinncurtis spcchartnet ProbabilityChart Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent
280. ms before it 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 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 78 SPC Control Data and Alarm Classes Video Game Usage by Age Group 10096 80 6096 4096 2096 096 40 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 SPC Control Data and Alarm Classes 79 Sales vs Cost Gap Sales Profits 1998 1999 2000 2001 2002 The Line Gap chart is useful for emphasizing the difference between two lines LineGapPlot 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 50 mdi ps I b 350uA u 40 Region b 300uA 30 I b 250uA I b 200uA mA 20 i P aaa errr RER t
281. msamplespersubgroup numdatapointsinview sampleincrement this ChartData CusumHValue hValue this ChartData CusumKValue kValue this ChartData ProcessMean processMean 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 Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes Me ChartData CusumHValue hValue Me ChartData CusumKValue kValue Me 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 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE this SecondaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE SPC Variable Control Charts 197 VB Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Me SecondaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE 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 limi
282. n Attribute Control chart numSampleCategories sampleSubgroupSize for Variable Control 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 Set Get index in the calculatedValues array for the PrimaryCalculatedVariableIndex primary calculated value data SampleSubgroupSize SecondaryCalculatedVariableIndex SPCChartType SpecificationLimits 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 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 Set Get data table specification limits string SpecificationLimitsHeader TheOperator TimeStamp TimeValueRowHeader Title TitleHeader UnitOfMeasure UnitOfMeasureHeader ZeroEquals ZeroEqualsHeader Public Instance Methods AddNewSampleRec
283. n 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 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 SPCBatchV ariableControlChart classes 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
284. 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 C PercentDefectivePartsControlChart DefaultChartFontString Times this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes VB PercentDefectivePartsControlChart DefaultChartFontString Times Me 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 268 SPC Attribute Control Charts 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 this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes this PrimaryChart XAxisLab TextFont new Font Times 10 FontStyle Regular this PrimaryChart YAxisLab TextFont new Font Times 14 FontStyle Regular VB Me InitSPCTimeAttributeControlChart charttype numcategories num
285. nd 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 ReadAllIValuesFromFile method to read previously saved values The example below is extracted from the TimeVariableControlChart VariableControlLimitsCharts example program VB Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes If File Exists DatalogFilel txt Then Me ChartData ReadAllValuesFromFile DatalogFilel txt C this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes if File Exists DatalogFilel txt this 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 SPC Control Data and Alarm Classes 129 Control Limit Alarms Class SPCControlLimitRecord 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 class
286. ng Spec Limits Units 0 0001 inch Operator J Fenamore Machine 411 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 32 5 23 2 26 5 30 2 26 6 284 36 5 28 7 27 7 28 8 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 15 9 21 1 9 8 19 3 19 0 11 7 14 5 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 el LJ Hl 1 SPC Variable Control Charts 225 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 41 12 56 13 11 13 26 13 41 13 56 14 11 14 26 14 41 14 56 15 11 15 26 15 41 15 56 16 11 16 26 16 41 MEAN 29 8 29 5 33 1 30 4 28 8 25 5 29 2 24 6 26 2 29 5 31 1 286 31 1 276 347 RANGE 19 1 17 4 12
287. ng 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 238 SPC Variable Control Charts MinY ParentSPCChartBase PlotBackground PlotMeasurementValues PPhysTransform1 ProcessVariableData SampledDataData SubHead SubheadFont TableFont TextTemplate TimeIncrementMinutes ToolTipFont ToolTipSymbol XAxis XAxisLab XGrid XValueTemplate YAxisl YAxis2 YAxisLab Set Get the minimum value used to scale the y axis of the chart Set Get that parent SPCChartBase object 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 too
288. nitSPCBatchVariableControlChart 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 this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Number of time periods in moving average this ChartData MA w 9 VB SPC variable control chart type Private charttype As Integer SPCControlChartData MA CHART Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Number of time periods in moving average Me ChartData MA w 7 Me ChartData ProcessMean 10 0 Me ChartData ProcessSigma 1 0 194 SPC Variable Control Charts CuSum Chart Tabular one sided upper and lower cumulative sum A batch CuSum chart exceeding the H value Title Variable Control Chart EWMA Part No 283501 Chart No 17 Date 5 12 2008 8 03 47 PM ALARM Fes os R ECC NR CENE ELE een ot RECETTE 5 CL 5 00 Hh T a NONE S ll
289. nn Curtis DotNet QCSPCChart Visual Basic CF examples New Project Project types Templates E Visual Cat Visual Studio installed templates Other Languages 06 3 Visual Basic GxlDevice Application 2 Class Library Windows 2 2 Contral Library Console Application Smart Device elEmpty Project Pocket PC 2003 Smartphone 2003 _ My Templates can OS Windows Mobile 5 0 Starter Kits Web E Visual J amp E visual C 4 Other Project Types DistFarm Rrilldar Far CEA N lt J gt gd Search Online Templates 4 project For creating a NET Compact Framework 2 0 Forms application For Windows CE 5 0 and later Mame SPCApplication1 1 Location C Quinn Curtis DotNet QCSPCChart visual Basic CF examples v Solution Create new Solution v Create directory For solution Solution Name SPCApplication1 1 e Right click on project name in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select BOTH the QCChart2DNetCF DLL and QCSPCChartNetCF DLL 346 Creating SPC Charts in Windows Applications Add Reference NET Projects Browse Recent Look in lib OCSPCChartNetCF dil J QCsPCChartNet dll 55 OCRTGraphNetCF dll 5 QCRTGraphNet dll 5 QCChart3DNet dll E oCChart2DNetCF dl 5 QCChart2DNet dl aacutil exe File name QCSPCChartNetCF dil QCChart2DNetCF dll
290. nstant value for a standar deviation SPC calculation Constant value for a sum SPC calculation Constant value for a total defective parts SPC calculation SPC TOTAL DEFECTIVE PARTS CALC SPC TOTAL DEFECTS CALC SPC VARIANCE CALC Public Static Shared Methods CalculateHistoryStatistic Public Instance Constructors SPCCalculatedValueRecord Public Instance Properties CalculatedValue Calculated Values CalculationType MostRecentSampledValues ValidValueFlags ValueDescription Public Instance Methods 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 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 Copy GetCalculatedV alueStatistic IsValueValid SetCalculatedValue SPCProcessCapabilityRecord SPC Control Data and
291. nterval that is in an alarm condition will change to reflect the color of the 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 224 SPC Variable Control Charts TableAlarmEmphasisMode 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 646 7 01 7 16 7311 01 8 16 8 31 8 46 901 9 16 7 5 138 17 1 9 9 0 0 179 131 166 98 196 200 0 200 0 199 0 199 0 200 0 20 d 190 0 190 0 190 0 190 0 190 0 19 40 30 20 10 0 C4 Table alarm emphasis mode this TableAlarmEmphasisMode SPCChartBase ALARM HIGHLIGHT BAR VB Table alarm emphasis mode Me 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 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threadi
292. 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 of Defects Control Chart Also known as Number Nonconformities or c chart UCL c 3 Sqrt c Center line c LCL c 3 Sqrt c 276 SPC Attribute Control Charts Number of Defects per Unit Control Chart Also known as Number Nonconformities per Unit or u chart UCL u t 3 Sqrt u n Center line ll c 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 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE 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 w
293. nview 17 The time increment between adjacent subgroups int sampleincrement 30 public IndividualRangeChart 110 SPC Control Data and Alarm Classes This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart public void InitializeChart if this IsDesignMode return This call is required by the Windows Forms Form Designer InitializeComponent Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Set the strings used in the header section of the table this ChartData Title Variable Control Chart X Bar amp R this ChartData PartNumber 283501 this ChartData ChartNumber 17 this ChartData PartName Transmission Casing Bolt this ChartData Operation Threading this ChartData SpecificationLimits this ChartData TheOperator J Fenamore this ChartData Machine 11 this ChartData Gage 8645 this ChartData UnitOfMeasure 0 0001 inch this ChartData ZeroEquals zero this ChartData DateString DateTime Now ToString this ChartData NotesMessage Control limits prepared May 10 this ChartData NotesHeader NOTES row header this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL1 Rebuild the cha
294. oChart InitParetoChartsDatasets 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 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 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 categoryValues 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 336 Frequency Histograms Pareto Diagrams Probability Charts histogramDataset using the values in frequency
295. ol 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 method initializes the most important values in the creation ofa SPC chart Returns true if the coordinate system has a time based x axis The coordinate system of the chart Draw a control line either a simple straight line or a variable control line for the specified chart SPC Attribute Control Charts 253 Rebuild the graph taking into account the RebuildChartUsingCurrentData most recent data values Rescale primary and secondary charts based RescaleGraphsToScrollbar on the position of the value of the scroll bar The thumb position of the scroll bar Reset the history buffers of all of the SPC ResetSPCChartData data objects Creates a numeric label of the control limit UpdateControlLimitLabel and adds the numeric label to the spe chart Adding New Sample Records for Attribute Control Charts Attribute Control Chart Cross Reference p chart FRACTION DE
296. olCharts MultiLimitX BarR Chart Title Variable Control Chart Multi Limit Part No 123456 Chart No 18 E T men Machine 11 UCL 74 0431 UCLR2 74 0369 CLR1 74 0306 XBAR 74 0244 LCLR1 74 0182 LCLR2 74 0120 LCL 74 0057 21 00 22 00 23 00 0 00 UCL 0 0470 UCLR2 0 0374 UCLR1 0 0278 RANGE 9 g2 0 01 0 00 CL 0 0000 21 00 22 00 23 00 0 00 5 13 08 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 C double sigma2 2 0 double sigmal 1 0 Create multiple limits For PrimaryChart SPC Variable Control Charts 201 SPCControlLimitRecord 1c12 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 0 0 ECLR2 LCER2 SPCControlLimitRecord ucl2 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 0 UCLR2 UCLR2 this PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 this PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1c13 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT OUr LOLRI LOLRLI 3s SPCControlLimitRecord ucl3 new SPCControlLimitRecord this ChartData
297. olds 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 254 SPC Attribute Control Charts DoubleArray samples new DoubleArray 60 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 this 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 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 defect
298. on Click on any pie wedge to see a detail PieChart This class 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 SPC Control Data and Alarm Classes 85 Aetius Mutual Fund Asset Allocation Click on any pie wedge to see a detail RingChart The ring chart 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 86 SPC Control Data and Alarm Classes SimplePlot This class is an abstract base class for all simple plot classes Production of Green Bars is Up 200 M 100 1999 2000 2001 2002 2 2004 2005 Bar plots can have the values of the bars displayed above or inside each bar SimpleBarPlot This class is a concrete implementation of the SimplePlot class and displays da
299. ooltip EnableCategoryValues true Display the calculated values used in the chart Mean range and sum for an Mean Range 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 219 Data Tooltip with optional display items 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 133 113 118 125 128 135 74 121 123 102 66 105 70 135 93 102 91 Cpk 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 Ppk 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 T 1140 102 1233 I PI 1 35 Sample 0 35 02 Ip Sample 1 25 25 30 Sample 2 2421 Sample 3 3366 1E ss j 25 L Sample 4 36 54 te ae i MEAN 30 93 f 20 RANGE 1233 40 30 20 10 0 1 20 SUM 154 67 D 220024 T EP TTEXEHORB
300. or Net CF is downloaded in a file with a name similar to NETCFSPCDEVR2x0x561x1 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 Chapter Summary The remaining chapters of this book discuss the SPC Control Chart Tools for Net CF package designed to run on any hardware that has a Net runtime installed on it Chapter 2 presents a summary of the standard SPC control charts that can be created using the software Chapter 3 presents the overall class architecture of the SPC Control Chart Tools for Net CF and summarizes all of the classes found in the software Chapter 4 summarizes the important QCChart2D CF classes that you must be familiar with in order to customize advanced features of the SPC Control Chart Tools for Net CF 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
301. or enter notes specific to a specific sample subgroup using a special notes tooltip e 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 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 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 Class Architecture 41 e Other optional features There are many optional features that SPC charts often use including Multiple SPC control limits corresponding to 1 2 and 3 sigma limits Scatter plots of all sampled data values on top of calculated means and medians Data point annotations The chapter also summarizes the classes in the SPC Control Chart Tools for Net CF library SPC Control Chart Tools for Net CF Class Summary The SPC Control Chart Tools for Net CF library is a super set of the QCChart2D CF library The classes of the QCChart2D CF library are an integral part of the software A summary of the QCChart2D CF classes appea
302. or 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 SQRT 1 V V XDoubleBar Tau S Process Performance Indices Pp Ppl Ppu Ppk Pp USL LSL 6 S 168 SPC Variable Control Charts Ppl XDoubleBar LSL 3 S 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 input header strings display has four sub levels that display increasing levels of information The input header st
303. ord SPC Control Data and Alarm Classes 105 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 This methods will create a text file and AppendCurrentRecordValuesToDataLog append the current SPC data record to that Clone ControlLimitInitialized Copy Copy inherited from ChartObj DataLogFileOpenForWrite 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 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 chart data to that file in a CSV Comma Separated Value format A CSV file can be read by popular 1
304. ordinates 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 class manages the interface to the System Drawing classes and contains routines for drawing lines rectangles and text using Net CF device coordinates WorldCoordinates This class derives from the UserCoordinates class and maps a device independent world coordinate system on top of the Net CF device coordinate system WorkingCoordinates 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 60 SPC Control Data and Alarm Classes PhysicalCoordinates CartesianCoordinates TimeCoordinates ElapsedTimeCoordinates PolarCoordinates AntennaCoordinates Attribute Class ChartAttribute 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
305. os 0 85 z Me XAxisLabelRotation 90 Me InterGraphMargin 0 1 Me 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 3101 3118 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 gt gt gt gt gt ee gt MEAN 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 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 Ir zl 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 this EnableScrollBar true this EnableCategoryValues false Label the tick mark with time stamp of sample group this XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME 232 SPC Variable Control Charts VB enable scroll bar Me EnableScrollBar True Me EnableCategoryValues False Label the tick mark with time stamp of sample group Me XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE TIME When updating the chart with sample da
306. ouse 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 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 CF manual QCChart2DNetCFManual pdf The SPC Control Chart Tools for Net CF classes are in addition to the ones above They are summarized below SPC Control Chart Tools for Net CF Class Hierarchy The QCSPCChart classes are a super set of the QCChart2D CF charting software No attempt should be made to utilize the QCSPCChart CF classes without a good understanding of the QCChart2D CF classes See the QCChart2DNetCFManual PDF file for detailed information about the QCChart2D CF classes The diagram below depicts the class hierarchy of the SPC Control Chart Tools for Net CF library without the additional QCChart2D CF classes Namespace com quinncurtis spcchartnetcf com quinn curtis chart2dnetcf ChartView FrequencyHistogramChart ParetoChart ProbabilityChart SPCChartBase SPCBatchAttributeControlChart SPCBatchVariableControlChart SPCTimeAttributeControlChart SPCTimeVariableControlChart Class Architecture 43 com quinncurtis chart2dnet AutoScale Pro
307. parent client area spcchart Dock DockStyle Fill panell Controls Add spcchart e The rest of the chart customization code is placed in the Forml InitializeChart method 358 Using QCChart3D for Net to Create Web Applications Index Adding new new data using AddNewSampleRecord 105 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 134 159 161 184 185 197 198 199 209 210 211 212 219 220 228 229 230 232 234 254 255 256 273 277 278 279 283 284 285 286 289 290 291 299 301 303 Alarm Event Handling v 134 Attribute Control Chart v vi 4 13 27 28 32 39 47 48 52 97 98 112 243 244 245 248 253 273 295 298 303 AutoLogAlarmsAsNotes 155 225 249 295 AutoScale 43 61 Axis 40 43 45 46 47 48 62 63 68 69 230 231 233 300 302 AxisLabels 68 69 AxisTitle 90 91 Background v 2 5 62 CartesianCoordinates 51 59 60 c Chart 5 13 30 39 243 Chart Fonts 173 174 265 266 Chart Position 179 269 ChartAlarmEmphasisMode 155 178 179 223 250 293 ChartAttribute 60 61 62 322 ChartCalendar 58 61 66 91 94 111 112 113 114 115 116 119 120 121 122 123 124 125 132 133 151 152 158 159 160 161 205 206 209 210 211 212 213 214 225 227 229 230 245 246 254 255 256 283 284 285 286 296 297 299 356 ChartImage 91 92 ChartLabel 90 91 145 ChartPlot 70 71 ChartScale 58
308. pdateCount this 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 this AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits this AutoScalePrimaryChartYRange VB updateCount 1 Me 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 Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me 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 0 i 10 i this ChartData ExcludeRecordFromControlLimitCalculations i true Dim i As Integer For i 0 To 9 Me 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 274 SPC Attribute Control Charts Fraction Defective Parts Number Defective Parts Number Defects Number Defects Per Unit Introd
309. points annotation with respect to the actual data point Set Get the font used to label the x and y AxisLabelFont axes AxisTitleFont ControlLabelPosition ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart GraphBackground BatchIncrement BatchStartValue BatchStop Value Header HeaderFont HistogramStartPos HistogramOffset MaxY SPC Variable Control Charts 237 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 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 endi
310. pplications 343 sf My Computer a Fe Emulator for Windows CE Shortcut to Local Disk C F e My Device Recycle Bin L2 Recycle Bin A Windows CE Documents One counterintuitive thing to watch out for is that when you connect to the Windows CE Emulator following these instructions it actually looks like a physical Win CE device to Visual Studio When you create the shell of a Net Compact Framework application and run it you will first be faced with a choice of where to deploy your application 344 Creating SPC Charts in Windows Applications Deploy SPCApplication11 Choose where to deploy your application Deploy Pocket PC 2003 SE Emulator Pocket PC 2003 SE Square Emulator Pocket PC 2003 SE Square YGA Emulator Pocket PC 2003 SE YGA Emulator USA Windows Mobile 5 0 Pocket PC R2 Emulator USA Windows Mobile 5 0 Pocket PC R2 Square Emulator USA Windows Mobile 5 0 Smartphone R2 QvGA Emulator Windows Mobile 5 0 Pocket PC Device E Windows Mobile 5 0 Pocket PC Device R2 Windows Mobile 5 0 Pocket PC Emulator Windows Mobile 5 0 Pocket PC Phone Emulator M Show me this dialog each time I deploy the application Choose the Windows CE 5 0 Device from the list Until you can get a simple Net Compact Framework application to run on the device or emulator of your choice do not try and add the Quinn Curtis software to your application We have found that the network connection to the Windows CE em
311. r 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 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 TimeVariableControlCharts IndividualRangeChart example program Title Variable Control Chart Individual Range Part No 283501 Chart No 17 Part Name Transmission Casing Bo
312. r S Kafka Machine TIME 21 45 22 15 22 45 23 15 23 45 0 15 0 45 1 15 1 45 2 315 2 45 345 3 45 4 15 445 5 15 5 45 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 0 3 E aaa URL ELM RAI A A A EVER UA are UCLP 0 283 ee Oe e FRACT DEF N n i PBAR 0 137 0 1 4 INE eS T A 0 0 CLP 0 000 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 PERCENT DEFECTIVE PARTS CHART VSS FRACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types 48 Class Architecture Typical Time Attribute Control Chart Fraction Defective or p Chart Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Date 5 12 2008 10 10 20 PM TIME 22 10 22 40 23 10 23 40 0 10 0 40 1 10 1 40 2 10 2 40 3 10 3 40 4 10 4 40 FRACT DEF 0 100 0 220 0 080 0 100 0 240 0 260 0 020 0 220 0 160 0 100 0 040 0 000 0 220 0 160 MO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 R ALARM NOTES N N N N N N N N N N N N N N UCLP 0 265 FRACT DEF PBAR 0 125 CLP 0 000 23 00 0 00 1 00 2 00 3 00 4 00 5 13 08 SPCTi
313. r Blue YAxis2 LineWidth 3 YAxisLabl LineColor Color DarkMagenta 4BuildCharti InitializeChart add Pareto chart categories values and strings Me AddCategoryItem 5 Torn Me AddCategoryItem 7 Not Enough ControlChars Lf Component Me AddCategoryItem 2 Others Me AddCategoryItem 11 Poor Mix Me AddCategoryItem 27 Holes Me AddCategoryItem 8 Stains Build chart Me LineMarkerPlot LineColor Color Blue Me LineMarkerPlot SymbolAttributes PrimaryColor Color Black Me YAxisl LineColor Color Green Me YAxisl LineWidth 3 Me YAxis2 LineColor Color Blue Me YAxis2 LineWidth 3 Me YAxisLabl LineColor Color DarkMagenta Me BuildChart Sub InitializeChart 9 Using SPC Control Chart Tools for Net CF to Create Windows Applications Critical Note Running the Example Programs The example programs for SPC Control Chart Tools for Net CF 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 ChartView derived control will not be visible on the main Form 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
314. r Unit SPC Analysis Charts Frequency Histograms Probability Charts Pareto Charts 40 Class Architecture e Minimal programming required create SPC charts with a few lines of code using our SPC chart templates e 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 chart display with job specific information for example Title Operator Part Number Specification Limits Machine ect e 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 e 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 e Notes The operator can view
315. ransmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 5 12 2008 7 59 11 PM TIME 19 59 20 14 20 29 20 44 20 59 21 14 21 29 21 44 21 59 22 14 22 29 22 44 22 59 23 14 23 29 23 44 23 59 MEAN 63 4 66 4 64 2 65 7 62 3 66 9 65 4 63 2 62 6 65 2 64 6 63 2 64 7 63 1 64 1 66 2 64 1 73 64 47 69 48 54 56 44 27 72 60 54 74 54 69 52 66 317 2 331 9 899 4 854 0 810 4 869 4 719 8 631 6 438 0 521 2 969 0 505 3 582 3 883 7 705 0 993 0 448 8 5 5 14 13 13 13 11 10 ri 8 15 8 9 14 11 15 7 CL 69 10 70 XBAR 64 12 CL 59 13 T T 80 60 4020 0 20 00 21 00 22 00 23 00 CL 9 73 SIGMA 6 10 LCL 2 48 80 60 40 20 0 20 00 21 00 22 00 23 00 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 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 GetCurrentSampleSubgroup
316. rary 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 Background This class fills the background of the entire chart or the plot area of the chart using a solid color or a color or a gradient Axis Classes Axis LinearAxis PolarAxes AntennaAxes ElapsedTimeAxis LogAxis SPC Control Data and Alarm Classes 63 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 the 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 13 12 11 10 Axis 500 400 300 200 100 Widget Tolerances by Worker Click on one of the buttons below to change the x axis range 1400 14 0K 00 V 1200 13 0K A PAUTA id 1000 12 0K j v 800 11 0K 600 10 0K 0 20 40 60 80 100 Event Partition Graphs can have an UNLIMITED number of x and y axes This class is the abstract base class for the other axis classes It contains data and drawing routines common to all axis classes 64 SPC Control Data and Alarm Classes Linear Axes 100 0 00004 50 0 00002
317. rentValues LSLValue USL Value ValidValueFlags ValueDescription Public Instance Methods CalculateProcessCapability Value CalculateProcessCapability Values Clone Copy IsValueValid Reset SetProcessCapabilityValue 142 SPC Control Data and Alarm Classes Default descriptors for the process capability strings Cp 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 currentV alues 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 SPC Control Data and Alarm Classes 143 SPCGeneralizedTableDisplay This class manages a list of ChartText
318. reto Diagrams Probability Charts Pareto Chart Pareto Diagram of Defects BO A A A A Freq Cum Holes Poor Mix Stains Not Enough 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 ParetoPlotUserControll file of the ParetoDiagram example program C public class ParetoPlotUserControll com quinncurtis spcchartnet ParetoChart 1 summary Required designer variable lt summary gt private System ComponentModel Container components null Frequency Histograms Pareto Diagrams Probability Charts 331 public ParetoPlotUserControll
319. ribed 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 respect 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 wil
320. rings 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 XBarR Chart 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 SPC Variable Control Charts 169 C Set the strings used in the header section of the table this ChartData Title Variable Control Chart X Bar amp R this ChartData PartNumber 283501 this ChartData ChartNumber 17 t his ChartData DateString DateTime Now ToString ct his HeaderStringsLevel SPCControlChartData HEA
321. ringsLevel InterGraphMargin MultipleMouseListener PrimaryChart ScrollBarBottomPosition ScrollBarPixelHeight SecondaryChart SPCChartType 156 SPC Variable Control Charts 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 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
322. rnatively 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 28 Standard SPC Control Charts Typical Time Based Attribute Control Chart p Chart Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 4 26 4 56 5 26 5 56 6 26 6 56 7 26 7 56 8 26 8 56 9 26 9 56 10 26 10 56 No INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 UCL 0 268 PBAR 0 127 4 cL 0 000 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 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
323. rol to the panel in the Form1 vb file Creating SPC Charts in Windows Applications 351 Dim spcchart As SPCTimeVariableControlChart Nothing Public Sub InitializeChart Spcchart New SPCTimeVariableControlChart Have the chart fill parent client area Spcchart Dock DockStyle Fill Panell Controls Add spcchart The rest of the chart customization code is placed in the Form1 InitializeChart method Visual CZ for Net First if this is the first Net Compact Framework program you have every created make a few practice application programs using the Visual Studio defaults Don t try to add graphics to an application until you are able to create a simple Net Compact Framework applications using the New Project File New Project application wizard e You start the New Project application wizard by selecting File New Project bringing up the New Project dialog box e From this dialog select Visual C Projects Smart Device Windows CE 5 0 folder on the left and the Device Application template on the right The default Device Application targets a Net CF 2 0 device Do NOT target a Net 1 0 device by selecting the Device Application 1 0 since this software is not compatible with Net 1 0 and 1 1 e Assign a name to the application in the name box either the default DeviceApplication1 or your own pick SPCApplication11 in the example below Select a location which for our examples is the folder C Quinn Cur
324. rs below QCChart2D CF Class Summary Chart view class Data classes Scale transform classes The chart view class is a 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 data The scale transform classes handle the conversion of physical coordinate values to working coordinate values for a single dimension Coordinate transform classes Attribute class Auto Scale classes The coordinate transform classes handle the conversion 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 42 Class Architecture 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 m
325. rt example SPC Variable Control Charts 191 C SPC variable control chart type int charttype SPCControlChartData EWMA CHART Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement this ChartData EWMA StartingValue 10 Set to estimate of mean of process variable this ChartData EWMA Lambda 0 1 this DefaultControlLimitSigma 2 7 Specifies L value this ChartData EWMA UseSSLimits false VB SPC variable control chart type Private charttype As Integer SPCControlChartData EWMA CHART Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes Me ChartData EWMA StartingValue 10 Set to estimate of mean of process variable Me ChartData EWMA Lambda 0 1 Me DefaultControlLimitSigma 2 7 Me ChartData EWMA UseSSLimits False 192 SPC Variable Control Charts MA Chart Moving Average A MA chart showing the variable control limits actual values and moving average values Title Variable Control Chart MA 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 5 12 2008 6 35 57 PM TIME 18 35 719 05 719 35020 05 20 35 21 057 21 35 22 05 22 35 23 05
326. rt example program The AddNewSampleRecord routine is called in the SimulateData method 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 5 12 2008 7 39 20 PM TIME 12 24 12 39 12 54 13 09 13 24 13 33 13 54 14 09 14 24 14 39 14 54 15 09 15 24 15 39 15 54 16 03 16 24 XX 38 7 412 313 26 23 6 33 0 19 0 40 2 22 0 35 3 318 26 1 20 2 21 0 40 3 375 312 Sample 1 21 6 18 9 24 0 33 2 37 6 40 3 25 9 37 4 36 8 30 4 26 5 38 1 28 3 22 7 36 4 322 27 9 Sample amp 2 36 1 342 316 28 40 8 37 2 39 4 247 22 8 32 3 35 0 19 9 36 6 258 25 8 278 31 3 Sample amp 3 216 38 5 35 6 27 1 33 5 34 4 39 1 19 6 37 9 28 0 31 1 21 2 225 20 4 345 397 19 1 Sample 4 37 3 23 4 21 1 29 9 25 2 22 9 37 8 305 33 3 39 3 242 35 4 28 2 30 2 398 26 0 347 MEAN 314 31 2 28 7 29 0 32 1 33 6 32 2 30 5 30 6 33 3 297 28 1 27 2 240 35 4 32 7 29 0 RANGE 17 1 22 3 145 70 17 2 175 205 20 6 15 9 11 3 10 8 18 3 16 4 97 145 137 157 SUM 155 3 156 2 143 6 145 1
327. rt using the current data and settings this RebuildChartUsingCurrentData VB SPC Control Data and Alarm Classes 111 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 Public Sub InitializeChart Fill parent container Me Dock DockStyle Fill Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement Change the default horizontal position of the chart Me GraphStartPosX 0 15 Set the strings used in the header section of the table Me ChartData Title Variable Control Chart Individual Range Me ChartData PartNumber 283501 Me ChartData ChartNumber 17 Me ChartData PartName Transmission Casing Bolt Me ChartData Operation Threading Me ChartData SpecificationLimits Me ChartData TheOperator J Fenamore Me ChartData Machine 11 Me ChartData Gage 8645 Me ChartData UnitOfMeasure 0 0001 inch Me ChartData ZeroEquals zero Me ChartData DateString DateTime Now ToString Me ChartData NotesMessage Control limits prepared May 10
328. rts p Chart Part No 321 Chart No 19 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 l 2 0 l 0 0 l 0 Seam 7 4 5 1 6 2 3 1 1 0 0 1 0 DEF 26 0 20 0 20 0 4 0 24 0 6 0 220 22 0 22 0 0 0 0 0 10 0 2 0 ALARM 30 CLP 29 14 20 4 m a PBAR 14 29 10 0 1 CLP 0 00 EC292 EC980 EC428 EC770 EC644 EC803 EC317 EC308 EC580 EC918 EC891 EC610 EC827 Ep 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 this EnableScrollBar true this EnableCategoryValues false Label the tick mark with user defined strings this XAxisStringLabelMode SPCChartObjects AXIS LABEL MODE STRING VB enable scroll bar Me EnableScrollBar True SPC Attribute Control Charts 303 Me EnableCategoryValues False Label the tick mark with user defined strings Me 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 the axis labeling mode back to batch number labeling by assigning the XAx
329. ry and secondary charts Get the bottom edge using normalized coordinates of the plotting area for the primary chart GraphStopPosY2 GraphTopTableOffset HeaderStringsLevel InterGraphMargin MultipleMouseListener PrimaryChart ScrollBarBottomPosition ScrollBarPixelHeight SecondaryChart SPCChartType TableAlarmEmphasisMode SPC Attribute Control Charts 251 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 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 CUSTOM ATTRIBUTE
330. s 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 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 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 s
331. s String XBAR LOL TUCL RBAR LCL UCL Me 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 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 if desired The example below sets the control 182 SPC Variable Control Charts limit values and text for the three control limits target value upper control limit and lower control limit of the primary chart and the three control limit values for the secondary chart C target control limit primary chart SPCControlLimitRecord primarytarget ChartData GetControlLimitRecord SPCChartObjects SPC PRIMARY CONTROL TARGET primarytarget ControlLimitValue 30 primarytarget ControlLimitText XBAR lower control limit primary chart SPCControlLimitRecord primarylowercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC PRIMARY LOWER CONTROL LIMI T primarylowercontrollimit ControlLimitValue 24 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart SPCControlLimitRecord primaryuppercontrollimit ChartData GetControlLimitRecord SPCControlChartData SPC PRIMA
332. s needed in the calculation C 278 SPC Attribute Control Charts this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits if 1 gt 10 this AutoCalculateControlLimits this ChartData AddNewSampleRecord timestamp samples VB Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits If i gt 10 Then Me AutoCalculateControlLimits End If Me 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 ehangeControlLimits 0 11 0 0 0 25 DoubleArray variableControlLimits this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE if Variable Control Limits updated using AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray SPC Attribute Control Charts 279 variableControlLimits new DoubleArray changeControlLimits this 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
333. s the normal time increment between adjacent subgroup samples The image below further clarifies how these parameters affect the variable control chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 timeincrementminutes 15 Operator J Fenamore Machine 11 Time 15 20 1535 15 50 16 05 1620 16 35 1650 17 05 1720 1735 17 50 1805 1820 1835 1850 19 05 1920 wl EYCLX 24 1 Once the Init routine is called the chart can be further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties Set Get the default font used in the table DefaultChartFontString display Public Instance Constructors Overloaded Initializes a new instance of the SPCChartBase SPCChartBase class Public Instance Properties AutoLogAlarmsAsNotes BottomLabelMargin ChartAlarmEmphasisMode ChartData ChartInitialized ChartTable DefaultControlLimitSigma EnableAlarmStatusV alues EnableCategory Values EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableScrollBar EnableTimeValues EnableTotalSamplesV alues GraphBottomPos GraphStartPosX GraphStartPosY 1 SPC Variable Control Charts 155 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
334. samplespersubgroup numdatapointsinview timeincrementminutes Me PrimaryChart XAxisLab TextFont new Font Times 10 FontStyle Regular Me PrimaryChart YAxisLab TextFont new Font Times 14 FontStyle Regular 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 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 YValueTemplate 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 SampleItemTemplate NumericLabel The NumericLabel object used as a template for displaying the sample values in the table SPC Attribute Control Charts 269 CalculateditemTemplate NumericLabel The NumericLabel object used as a template for displaying calculated values in the table StringltemTemplate
335. subgroup from which the defect data is counted numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time SPC Attribute Control Charts 299 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 if this IsDesignMode return for int i 0 i 2005 i double batchnumber batchCounter ChartCalendar timestamp ChartCalendar startTime Clone Simulate a new sample record DoubleArray samples this ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERCENT DEFECTIVE PARTS CHART add a new sample record this ChartData AddNewSampleRecord batchnumber timestamp samples Simulate timeincrementminutes minute passing startTime Add ChartObj MINUTE timeincrementminutes batchCountert VB Private Sub SimulateData If Me IsDesignMode Then Return End If 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 _ Me ChartData SimulateDefectRecord 50 0 134 SPCControlChartData PERC
336. 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 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 whe
337. t 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 initialOontrolLimits 30 25 35 10 0 20 double changeControlLimits 28 23 33 9 QO 18 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 if i 10 this ChartData SetControlLimitValues changeControlLimits this ChartData AddNewSampleRecord timestamp samples notesstring 198 SPC Variable Control Charts VB Dim initialControlLimits As Double 30 25 35 10 0 20 Dim changeControlLimits As Double 28 23 33 9 0 18 Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Change limits at sample subgroup 10 If i 10 Then Me ChartData SetControlLimitValues changeControlLimits End If Me ChartData AddNewSampleRecord timestamp samples notesstring Second
338. t 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 _ Frequency Histograms Pareto Diagrams Probability Charts 315 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 1100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues 1121 349 345 322 211 162 218 134 133 475 323 367 133 354 245 434 476 352 185 144 165 105 461 386 263 476 304 180 557 482 sed 293 DSS 219 251 218 472 218 1997 330 109 301 137 300 115 380 410 206 122 23833 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 345 322 277 162 218 134 133 476 323 367 133 354 245 434
339. t 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 SPC Attribute Control Charts 263 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 2 6 1 0 0 1 1 1 5 2 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 0 Ti 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
340. t numsamplespersubgroup 5 Solution SPCApplicationt 1 project 3l sPCApplicationt ext to add it to the toolbox aj Properties E aj References bin public Formi t InitializeComponent InitializeChart B E3 obj E Formt cs E Form1 Designer cs V Form1 resx Program cs Error List public void InitializeChart Hi spcTimeVariableControlCharti is declared and instantiated in Formi Designer SPCTimeVariableControlChart spcchart this spcTimeVariableControlChart1 spechart PreferredSize new Size 798 510 lt SPC variable control chart type Properties int charttype SPCControlChartData MEAN RANGE CHART SE A Number of datapoints in the view CEM EA int numdatapointsinview 17 Initialize the SPCTimeVariableControlChart spechart InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes if true spechart HeaderStringsLevel SPCControlChartData HEADER_STRINGS_LEVEL1 Set the strings used in the header section of the table lt Q 0 Errors A 0 warnings i 0 Messages Description Error List Line Column Project 4 Task List Find Results 1 de Find Symbol Results Ready Critical Step Make sure you add the following lines to the top of the Form1 vb code to resolve the QCChart2D CF QCSPCChart CF and other graphics classes used in the ex
341. tData GetControlLimitRecord SPCControlChartData SPC PRIMARY UPPER CONTROL LIMI T primaryuppercontrollimit ControlLimitValue 0 25 primaryuppercontrollimit ControlLimitText UCL 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 this 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 Me AutoCalculateControlLimits SPC Attribute Control Charts 273 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 u
342. ta use AddNewSampleRecord overload that has batch number and a time stamp parameters C this ChartData AddNewSampleRecord batchCounter timestamp samples VB Me ChartData AddNewSampleRecord batchCounter timestamp samples See the example program BatchVariableControlCharts Batch X BarRChart 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 SPC Variable Control Charts 233 Batch Control Chart X Axis User Defined String Labeling Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 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 j i i i l i LCL 22 31 EC959 EC953 EC891 EC497 EC700 EC339 EC452 EC758 EC852 EC809 EC255 EC32 EC285 EC814 CL 18 75 RBAR 7 28 CL 0 00 EC959 EC953 EC891 EC497 EC700 EC339 EC452 EC758 EC852 EC809 EC255 EC32 EC285 EC814 guum Bl 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 T C enable scroll bar this EnableScroll
343. ta AddNewSampleRecord timestamp samples VB Dim samples As DoubleArray Me 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 Me ChartData SampleSubgroupSize VSS numsamplespersubgroup 25 ChartSupport GetRandomDouble Add new sample record Me ChartData AddNewSampleRecord timestamp samples 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 SPC Control Data and Alarm Classes 119 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
344. ta 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 SPC Control Data and Alarm Classes 87 History Test Results 100 90 Score 80 70 Student Individual data points can be automatically labeled SimpleLineMarkerPlot This class is a concrete implementation of the SimplePlot class and it displays simple datasets in a line plot format where scatter plot symbols highlight individual data points Profits are Expected to Rise 1998 1999 2000 2001 2002 2003 2004 2005 2006 Graphs can have background colors legends titles and data tooltips 88 SPC Control Data and Alarm Classes SimpleLinePlot 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 QC Line Bar Scatter Pie Dynamic Financial Axes Mouse Polar Contour Theoretical vs Experimental Data 100 80 60 Work 40 20 0 10 20 30 40 50 3 MBAs 1000 employees E Energy Companies Software Companies Predicted Scatter plots usually display some form of sampled data SimpleScatterPlot 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 SimpleVersaPlot The SimpleVersaPlot is a plot type that can
345. ta 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 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 AN a F ii 20000 NN Mr 2100 0 r QD lo 2200 0 mae 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 Group Plot Classes 72 SPC Control Data and Alarm Classes GroupPlot ArrowPlot BoxWhiskerPlot BubblePlot CandlestickPlot CellPlot ErrorBarPlot FloatingBarPlot FloatingStackedBarPlot GroupBarPlot GroupVersaPlot HistogramPlot LineGapPlot MultiLinePlot OHLCPlot Sta
346. tch based SPC chart is much the same as that of a time based SPC chart See the example program BatchVariableControlCharts for a variety of batch SPC charts Derive your base class from the SPCBatchVariableControlChart class C public class BatchXBarRChart SPCBatchVariableControlChart ChartCalendar startTime new ChartCalendar SPC variable control chart type 226 SPC Variable Control Charts int charttype SPCControlChartData MEAN RANGE CHART Number of samples per sub group int numsamplespersubgroup 3 Number of data points in the view int numdatapointsinview 17 The time increment between adjacent subgroups int timeincrementminutes 15 public BatchXBarRChart This call is required by the Windows Forms Form Designer InitializeComponent this Dock DockStyle Fill DrawChart public void DrawChart Initialize the SPCBatchVariableControlChart this InitSPCBatchVariableControlChart charttype numsamplespersubgroup numdatapointsinview Change the default horizontal position and width of the chart this RebuildChartUsingCurrentData VB Public Class BatchXBarBChart Inherits com quinncurtis spcchartnet SPCBatchVariableControlChart Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call
347. that is the one implemented in this software The tabular cusum works SPC Variable Control Charts 149 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 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 Time Based Variable Control Chart
348. this 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 0 To 199 Me ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes SPC Variable Control Charts 221 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 this EnableDataToolTip true this EnableNotesToolTip true VB Enable data and notes tooltips Me EnableDataToolTip True Me 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 Tool TipMode property to NotesTooITip MOUSEDOWN TOOL TIP as in the ex
349. time increment between adjacent subgroups int timeincrementminutes 30 public SimpleAttributeControlChart f This call is required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart void InitializeChart Initialize the SPCBatchAttributeControlChart this InitSPCBatchAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview SPC Attribute Control Charts 297 VB Public Class SimpleAttributeControlChart Inherits com quinncurtis spcchartnet SPCBatchAttributeControlChart Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any initialization after the InitializeComponent call Have the chart fill parent client area Me Dock DockStyle Fill Define and draw chart InitializeChart End Sub End Region Dim startTime As New ChartCalendar Dim batchCounter As Integer 0 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 The time increment between a
350. tioning the top and bottom of the chart Depending on the table items enabled the table starts at the position defined the TableStartPosY 180 SPC Variable Control Charts 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 C this TableStartPosY 0 00 this GraphTopTableOffset 0 02 this InterGraphMargin 0 075 this GraphBottomPos 0 925 VB Me TableStartPosY 0 00 Me GraphTopTableOffset 0 02 Me InterGraphMargin 0 075 Me 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 TableStartPosY 0 1 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 411 ime 1757 1 amp 12 1827 1842 18 57 19312 1927 19 42 19 57 2012 2027 20 42 20 57 2112 2127 2142 21 57 RANGE 70 101 109 94 81 111 80 75 397 90 110 112 92 109 88 3123 112 SPC Variable Control Charts 181 SPC Control Limits There are two ways to set the SPC control limit for a chart The first explicitl
351. tis DotNet QCSPCChart Visual CSharp CF examples 352 Creating SPC Charts in Windows Applications New Project Project types Templates E Visual Cs Visual Studio installed templates Windows S Smart Device Efi Device Application Class Library Pocket PC 2003 F Control Library ZF Console Application Smartphone 2003 js Empty Project Windows CE 5 0 Windows Mobile 5 0 Pocket My Templates Starter Kits Remote Tools Framework web E Other Languages Other Project Types Platform Builder For CE 6 0 gd Search Online Templates lt amp 4 project for creating a NET Compact Framework 2 0 forms application for Windows CE 5 0 and later Name SPCApplication1 1 Location v Browse Solution v Create directory For solution Solution Name SPCApplicationl 1 e Right click on project name in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select BOTH the QCChart2DNetCF DLL and QCSPCChartNetCF DLL Creating SPC Charts in Windows Applications 353 Add Reference NET Projects Browse Recent Look in lib OCSPCChartNetCF dll 5 QCsPCChartNet dl 55 OCRTGraphNetCF dll 5 QCRTGraphNet dll 5 QCChart3DNet dll E oCChart2DNetCF dl 5 QCChart2DNet dl aacutil exe File name QCSPCChartNetCF dil QCChart2DNetCF dll Files of type Component Files dll tlb olb
352. tive 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 262 SPC Attribute Control Charts Title Number Defective per Unit u Chart Part Operator S Kafka Mac Time 12 001 12 31 13 01 13 31 14 01 14 31 Burr Seam Set the table row headers strings for defect categories this ChartData SetSampleRowHeaderString 0 Soretoh s this ChartData SetSampleRowHeaderString 1 Burr this ChartData SetSampleRowHeaderString 2 Dent this ChartData SetSampleRowHeaderString 3 Seam this ChartData SetSampleRowHeaderString 4 Other VB Set the table row headers strings for defect categories Me ChartData SetSampleRowHeaderString 0 Scratch Me ChartData SetSampleRowHeaderString 1 Burr Me ChartData SetSampleRowHeaderString 2 Dent Me ChartData SetSampleRowHeaderString 3 Seam Me ChartData SetSampleRowHeaderString 4 Other The ChartTable property of the char
353. toScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits this AutoScaleSecondaryChartYRange VB updateCount 1 SPC Variable Control Charts 185 Me 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 Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange End Xf 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 AutoCalculatePrimaryControlLimits or AutoCalculateSecondaryControlLimits method Need to exclude records from the control limit calculation Call the ChartData ExcludeRecordFromControlLimitCalculations method passing in true to exclude the record for int 10 i 10 i this ChartData ExcludeRecordFromControlLimitCalculations i true VB Dim i As Integer For i 0 To 9 Me ChartData ExcludeRecordFromControlLimitCalculations i True Next i Formulas Used in Calculating Control Limits for Variable Control Charts The SPC control limit formulas used by AutoC
354. 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 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 SPC Control Data and Alarm Classes 57 Miscellaneous utility classes Other classes use these for data storage file I O and data processing A summary of each category appears in the following section Chart Window Classes System Windows Forms UserControl ChartView The starting point of a chart is the ChartView class The ChartView class derives from the Net CF System Windows Forms UserControl class where the Control class is the base class for the Net CF collection of standard components such as menus buttons check boxes etc The ChartView class manages a collection of chart objects in a chart and automatically updates the chart objects when the underlying window processes a paint event Since the ChartView class is a subclass of the Control class it acts as a container
355. ubgroups 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 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 244 SPC Attribute Control Charts 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 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 interv
356. uction to Statistical Quality Control by Douglas C Montgomery John 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 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 Fraction Defective Parts Also known as Fraction Non Conforming or p chart UCL p 3 Sqrt p 1 p n Centerline p LCL p 3 Sqt p 1 p n Percent Defective Parts Also known as Percent Non Conforming or p chart SPC Attribute Control Charts 275 UCL P 3 Sqrt P 100 P n Center line P 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 p LCL n p 3 Sqrt n p 1 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
357. ue 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 134 SPC Control Data and Alarm Classes 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 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 SPCControlLimitRecor
358. ulator times out if it remains inactive for a length of time If that happens you can restart it by running the Windows CE emulator CMAccept exe program using the emulators Start Run option as described in the emulator setup discussion previously referenced Once you do that you have a couple of minutes to try and connect to the emulator again Visual Basic for Net First if this is the first Net Compact Framework program you have every created make a few practice application programs using the Visual Studio defaults Don t try to add graphics to an application until you are able to create modify and run a simple Net Compact Framework applications using the New Project File New Project application wizard e You start the New Project application wizard by selecting File New Project bringing up the New Project dialog box e From this dialog select Visual Basic Projects Smart Device Windows CE 5 0 folder on the left and the Device Application template on the right The default Device Application targets a Net CF 2 0 device Do NOT target a Net Creating SPC Charts in Windows Applications 345 1 0 device by selecting the Device Application 1 0 since this software is not compatible with Net 1 0 and 1 1 e Assign a name to the application in the name box either the default DeviceApplication1 or your own pick SPCApplication11 in the example below Select a location which for our examples is the folder C Qui
359. up to the chart Me ChartData AddNewSampleRecord timestamp samples Calculate the SPC control limits for the X Bar part of the current SPC chart Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Rebuild and draw the chart using the current data and settings Me RebuildChartUsingCurrentData Simulate timeincrementminutes minute passing StartTime Add ChartObj MINUTE timeincrementminutes End Sub Updating Chart Data The real time example above demonstrates how the SPC chart data 1s 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 SPC Variable Control Charts 211 C private void SimulateData for ant 2 07 i lt 2007 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 this ChartData SimulateMeasurementRecord 33 9 Add the new sample subgroup to the chart this ChartData AddNewSampleRecord ti
360. using the SPCTimeVariableControlChart class 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 Add a SPCTimeVariableControlChart object directly to a form from the VS Toolbnox and configure it as an X Bar R chart Used in the tutorial SPCApplication2 Add a SPCTimeVariableControlChart derived user control as a separate module in the project configure itas an X Bar R chart and add the derived object to the main form Used in the tutorial 10 Introduction SPCApplication3 Instantiate a SPCTimeVariableControlChart without using the Toolbox and insert it into Panel control SPCTimeVariableControlChart object configure it as an X Bar R chart and place it directly on a form bypassing the VS Toolbox Used in the tutorial 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 Visual Basic VB specific code CF Examples VB examples Same as the C examples above Critica
361. utes before BuildChart Set Get the default font used in the chart DefaultChartFontString This is a string specifying the name of the font Set Get the default footer font Set attributes DefaultFooterFont before BuildChart Get Set the default chart title font Set DefaultMainTitleFont attributes before BuildChart Get Set the default chart title font Set DefaultSubHeadFont attributes before BuildChart Set Get the default font object used for the DefaultToolTipFont tooltip Public Instance Constructors Overloaded Initializes a new instance of the ParetoChart ParetoChart class Public Instance Properties BarAttrib BarDataValue BarPlot BarWidth CategoryStrings Category Values CoordinateSystem1 CoordinateSystem2 CumulativeFreqDataset Datatooltip DefaultGraphBorder Footer FrequencyDataset GraphBackground LineAttrib LineMarkerPlot LineMarkerPlotDataValue 334 Frequency Histograms Pareto Diagrams Probability Charts 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 String
362. 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 AntennaLinePlot AntennaScatterPlot AntennaLineMarkerPlot AntennaAnnotation SPC Control Data and Alarm Classes 83 180 AntennaLineMarkerPlot This class is a concrete implementation of the AntennaPlot class and displays data in a simple line plot format The 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 84 SPC Control Data and Alarm Classes 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 Aetius Mutual Fund Asset Allocati
363. verloaded Initializes a new instance of the SPCControlChartData 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 DataLogFileOpenForWrite 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 DataLogFileOpenForWrite 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 DataLogUserString DateHeader DateString DefaultDefectRowHeaderPrefix SPC Control Data and Alarm Classes 103 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 of the SPCControlChartData datalog DATALOG FILE BATCH NUMBER DATALOG FILE TIME STAMP DATALOG FILE SAMPLED VALUES DATALOG FILE CALCULATED VALUES DATALOG FILE CONTROL LIMIT
364. y of the Auto methods are called SimulateData y Calculate the SPC control limits for both graphs of the current SPC chart Me AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits Me AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData End Sub InitializeChart SPC Control Data and Alarm Classes 125 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 Me ChartData SimulateMeasurementRecord 30 10 Me 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 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 w
365. y 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 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 SetControlLimitV alues 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 AddA dditionalControlLimit 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 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 this ChartData SetControlLimitValues controllimitvalues string eontrollimitstrings XBAR LCL UCL RBAR LCL UCL this ChartData SetControlLimitStrings controllimitstrings VB Dim controllimitvalues As Double 30 24 36 10 0 22 Me ChartData SetControlLimitValues controllimitvalues Dim controllimitstrings A
366. yChart ParetoChart e Unlike C the inheritance for the class is not set in the main XBarRChart vb file Instead it is set in the normally hidden XBarR Chart Designer vb file You must go to icons of the toolbar at the top of the Solution Explorer and select the second from the left which will turn on the Show All Files option 350 Creating SPC Charts in Windows Applications 72 SPCApplication2 Microsoft Visual Studio DER File Edit View Project Build Debug Target Data Tools Window Community Help RARA d Bh Xx 3a 4 5 b Debug gt Any CPU Windows CE 5 0 Device 85 Ta NC WS ee Toolbox Ix Formi vb XBarRChart Designer vb XBarRChart vb Solution Explorer SPCApplica A X General XBarRChart v E Declarations ig oa 3 E amp Sol Jes bation2 1 project There are no usable controls sampler lt gumpievelues A de Sh a Lies on2 dnd in this group Drag an item the samplevalue values come from your pi 5 onto this text to add it to the samples 3 samplevalue3 toolbox the samplevalue values come from your pi samples 4 samplevalue4 the samplevalue values come from your pi End If F pa TE Sa My Project 3j References ji bin 3 obj EE Formt vb E XBarRChart vb 2 xBarRChart Designer vb 2 XBarRChart resx E EH De Add the new sample subgroup to the Spechart ChartData AddNewSampleRecord increment simulated time by t

Download Pdf Manuals

image

Related Search

Related Contents

DUAL LED PIVOT SPOTLIGHT  PDP-S34-LR PDP-S33-LR    Samsung AQ12SBGE User Manual  User manual .  Operation Manual  Samsung HT-XA100 manual do usuário  Samsung SL-M4580FX manual do usuário  Zotac ZBOX ID42 Plus  Denon AVR-1506 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file