Home
QCSPCChart SPC Control Chart Tools for - Quinn
Contents
1. ii 4 Regionalization ccceeeeeseeeeeeeeneeeeeseenecsesseeneesseeeeates regionalization 2 vi 385 Rule Lernpl t s erre vie e Rule Templates 2 vi 209 319 Scatter Plots ee devise ee te eo EIE PERO costes Scatter Plots 26 43 44 58 73 82 83 86 221 292 Senjibricm DT PKT ScrollBar 25 35 36 156 157 159 179 222 223 238 239 240 254 255 256 292 293 308 310 Simple d tasets 1 teer eee Simplebataseta si eise seed 1 SimpleBarPlot sessesssseeeeeeeeeee Sir pleBatrPlIot ueris 86 97 SuinipleDataset 6 rer trit e eren eet SimpleDataset 1 3 59 60 64 97 SimpleLineMarkerPlot eese SimpleLineMarkerPlot 86 87 97 SimpleLinePlot eerte cette edes SimpleLinePlot 86 88 97 SimplePlotis eee ee RS SimplePlot 73 86 87 88 92 93 97 SimpleScatterPlot sse SimpleScatterPlot 86 88 97 SPCArrayStatistics essere SPCArrayStatistics eessss 54 SPCBatchAttributeControlChart sss SPCBatchAttributeControlChart2 10 13 44 46 49 118 121 247 249 258 259 2770 302 303 304 310 373 400 404 413 421 SPCBatchVariableControlChart 149 SPCBatchVariableControlChart 2 10 13 44 46 47 101 148 149 152 405 1
2. Operator S Kafka Machine 1 Time 11 14 11 44 12 14 12 44 13 14 13 44 14 14 14 44 15 14 15 44 16 14 16 44 17 14 17 44 18 14 18 44 19 14 2 4 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 200 0 180 0 100 0 060 0 220 NOTES N N N N N N 10 da a Ne i Q 5 PBAR 0 14 a wo1 1 M f i LL L 0 0 CLP 0 00 16 00 17 00 18 00 Scrollbar SPC Chart Histograms Viewing frequency histograms of the variation in the primary variable side by side with the SPC control chart makes it even easier to find out whether the variations are the result of natural variations or the result of some systemic change in the process You can turn on integrated frequency histograms for either chart using the PrimaryChart DisplayFrequencyHistogram property of the chart frequency histogram for both charts this PrimaryChart DisplayFrequencyHistogram true VB frequency histogram for both charts Me PrimaryChart DisplayFrequencyHistogram True 270 SPC Attribute Control Charts 5 x nira Chait Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic efective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 19 31 20 01 20 31 21 01 21 31 22 01 22 31 23 01 23 31 0 01 0 31 2 UCLP 0 28 PBAR 0 13
3. er Sample 4 36 54 MEAN 30 93 a ree PANGE 12 33 0 00 1 0 SUM 154 67 30 8 10 06 Cpk 0 18 i Cpm 0 28 NE Ppk 0 19 i f w o ee emeen NOTES Note for sample subgroup 448 Se UCL 21 4 EN Lathe cutting tool broke 10 Replaced with new Aeon cutting tool BAR 10 1 a a 0 i ELcL 0 0 60 40 20 0 0 00 1 00 2 00 3 00 8 10 06 Ea 210 SPC Variable Control Charts 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 EE Formi loj xl Bar R x Bar Sigma Individual Range Mult LimitBar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 14 45 15 00 15 15 15 30 15 45 16 00 16 15 16 30 16 45 17 00 17 15 17 30 17 45 18 00 18 15 18 30 18 45 subgroup 12 27 9 29 7 29 Lath
4. Critical Step Make sure you add the following lines to the top of the UserChartControll cs code to resolve the QCSPCChart and other graphics classes used in the example using System Drawing using System Drawing Drawing2D using com quinncurtis chart2dnet using com quinncurtis spcchartnet Build the Solution Build Build Solution This will compile the UserChartControllclass and make it accessible as a component on the Toolbox If the project fails to compile go back and check the previous steps 370 Creating SPC Charts in Windows Applications You can create as many custom chart controls as your application requires Each custom chart control will inherit from one of the SPC chart classes listed above Right click on the UserChartControll class form and view the underlying C code We placed all of the chart customization code in the InitializeGraph method Until this method is called the UserChartControllclass appears as an empty shell Your can call this method from the UserChartControllclass constructor public UserChartControll This call is required by the Windows Forms Form Designer InitializeComponent TODO Add any initialization after the InitForm call Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart or from somewhere outside of the class to avoid problems associated debugging errors in user controls at design t
5. PT pL Ow DF o9 266 SPC Attribute Control Charts VB Private Sub Timerl Tick ByVal sender As System Object ByVal e As System EventArgs Handles Timerl Tick Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar This simulates an assignable defect for each category the last category is assigned the total number of defective parts not defects Dim samples As DoubleArray _ 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 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 is updated using the ChartData AddNewSampleRecord method In this case the chart data updates with each timer tick event though it could just as easily be any other type of event If you have already collected all of your data and just want to plot it all at once use a simple loop like most of our examples do to update the data C private void SimulateData if this IsDesignMod
6. VB Dim controllimitvalues As Double 30 24 36 10 0 22 Me ChartData SetControlLimitValues controllimitvalues Dim controllimitstrings As String XBAR LCL UCL 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 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 LIMIT primarylowercontrollimit ControlLimitValue 24 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart SPCCont
7. Lin8 1520 1675 1338 1458 EnableTotalSamplesValues true In the program the code looks like the following code extracted from the TimeVariableControlCharts X BarR Chart example program C 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 his ChartData Title Variable Control Chart X Bar amp R his ChartData PartNumber 283501 his ChartData ChartNumber 17 his ChartData PartName Transmission Casing Bolt his ChartData Operation Threading his ChartData SpecificationLimits his ChartData TheOperator J Fenamore his ChartData Machine 11 his ChartData Gage 8645 his ChartData UnitOfMeasure 0 0001 inch his ChartData ZeroEquals zero his ChartData DateString DateTime Now ToString his ChartData NotesMessage Control limits prepared May 10 his 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 his PrimaryChart MinY 0 this PrimaryChart MaxY 40 24212 2 2 021 gt EY 9 2 et ct ct ct ck cb CR veh cb Choc ce CB OD C pt os 158 SPC Variable Control Charts Set initial scale of the y axis of the range chart If you are calling AutoScaleSecondaryChartYRange this isn t rea
8. T T T T T T 0 00 3 06 08 The current value z for an EWMA chart is calculated as an exponentially weighted moving average of all previous samples z irt 1 Ee where Xi is the sample value for time interval i the smoothing value the permissible range of 0 lt s5 and the starting value required with the first sample at i 0 is the process target value Ff Control Limits for the EWMA Chart UCL Center line LCL YEL C 9 sge CORB y 1 1 9 i FL Lesqa CHB 1 1 9 182 SPC Variable Control Charts Gis the process mean f amp the process standard deviation also known as sigma Cet user specified smoothing value A typical value for C ibe f 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 software does not calculate optimal Costi L values that is up to you the programmer to supply based on your experience with EWMA charts Note that the term 1 1 approaches unity as i increases The implies that the control limits of an EWMA chart will reach approximate steady state values defined by UCL L sg Copgter Cay ock LCL HL 9 sgr Capos Cag ock It is best if you use the exact equations that take into account the sample period so that an out of control process can be detected using the tighter control limits that are ca
9. A group dataset which uses ChartEvent objects as the source of the data It is used to feed data into the group plotting routines EventScale An event scale class used to convert between event coordinates and device coordinates EventSimpleDataset A simple dataset which uses ChartEvent objects as the source of the data It is used to feed data into the simple plotting routines 2 Introduction What s New in Rev 2 2 Three new control charts Moving Average Moving Range MAMR Moving Average Moving Sigma MAMS and the Number Defects per Million DPMO See Chapter 6 SPC Variable Control Charts and Chapter 9 SPC Attribute Control Charts Direct support for additional control rule sets Nelson AIAG Juran Hughes Gitlow Westgard and Duncan in addition to the WE Western Electric and Supplemental Rules See Chapter 8 Named and Custom Control Rule Sets Create custom sets of control rules using any rule from any of the standard named control rule sets See Chapter 8 Named and Custom Control Rule Sets Define custom control rules based any of our predefined control rule templates See Chapter 8 Named and Custom Control Rule Sets Regionalization All strings used in the software have been moved to a static class which can be initialized at runtime with country specific strings See Chapter 11 Regionalization for non USA English Markets New Features found in the 2 1 version of QCSPCChart Revision 2 1 a
10. Batch Based Variable Control Chart with numeric x axis es nS ee LL m LL m e e mi z lt 30 BAR 30 0 25 J LCLX 22 6 20 i 185 190 195 7 emi temm crc RE T ctfiks 15 ul Z 10 lt RBAR 7 2 5 0 CLR 0 0 Note the numeric based x axis for both graphs Batch Based Variable Control Chart with time stamp x axis UCL 37 71 35 z amp 30 BAR 29 98 25 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 RANGE RBAR 7 56 17 16 17 37 17 45 18 07 18 21 18 27 18 43 19 08 19 16 19 35 19 43 19 57 20 24 20 39 20 41 21 08 21 17 SPC Variable Control Charts 147 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 C public class XBarRChart SPCTimeVariableControlChart ChartCalenda
11. DPMO Chart Also known as the Number of Defects per Million Chart For a sample subgroup the number of times a defect occurs is measured and plotted as a value normalized to defects per million Since the plotted value is normalized to a fixed sample subgroup size the size of the sample group can vary without rendering the chart useless Time Based and Batch Based SPC Charts Attribute Control Charts are further categorized as either time or batch based Use time based SPC charts when data is collected using a subgroup interval corresponding to a specific time interval Use batch based SPC charts when the data subgroup interval is a sequential batch number that does not correspond to a uniform time interval The major difference in these two types of SPC charts is the display of the x axis Control charts that sample using a uniform time interval will generally use a time based x axis with time date axis labels Control charts that sample based on batches will generally use a numeric based x axis with numeric axis labels Time Based Attribute Control Chart og c E E NU E erred ere cee eeneT es ee UCLP 0 28 PBAR 0 14 FRACT DEF CLP 0 00 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 Note the time based x axis Batch Based Attribute Control Chart 230 SPC Attribute Control Charts 0 3 UCLP 0 27 0 2 PBAR 0 13 FRACT DEF 0 5 10 15 Note the numeric based x axis Attri
12. Sample 1 20 23 27 30 27 31 23 29 38 28 31 30 24 26 36 34 40 Sompes2 30 26 29 34 3 40 19 36 34 32 19 32 40 28 39 35 40 Sample 3 20 22 29 30 39 27 19 36 38 41 40 38 23 26 40 38 27 MEAN 25 7 244 31 9 304 30 2 314 24 1 33 1 33 5 32 5 29 1 30 1 305 27 5 333 324 354 SUM 128 6 122 0 159 7 152 0 150 9 157 1 120 6 165 3 167 3 162 6 145 3 150 4 152 7 137 4 166 3 162 2 177 1 ALARM 4 4 6 These alarm highlight features apply to both variable control and attribute control charts 30 Standard SPC Control Charts Scrollable Time Based XBar R Chart with Scatter Plot of Actual Sampled Data LIONE E Static with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 123456 Chart No 18 Operator T Moosey Machine 11 7402 ucLx 74 018 74 01 z 3 lt 74 00 f XBAR 74 001 73 99 LCLX 73 985 73 98 UCLR 0 042 RBAR 0 016 1 CLR 0 000 0 00 CD 1 9I 70937191 717153190931 9 3 97103 m ael Attribute Control Charts Attribute Control Charts are a set of control charts specifically designed for tracking defects also called non conformities These types of defects are binary in nature yes no where a part has one or more defects or it doesn t Examples of defects are paint scratches discolorations breaks in the weave of a textile dents cuts etc Think of the last car that you
13. You will probably want to create a HTML page to host the call to the ASP page This can be done using FrontPage a simple editor and the Visual Studio IDE A simple HTML page that connects the URL address above to an HTML image tag appears below The complete source to a lt body gt for the HTMLPagel htm is seen below lt body gt lt p gt lt iframe name I1 width 920 height 650 src Default aspx WIDTH 880 amp HEIGHT 610 gt Your browser does not support inline frames or is currently configured not to display inline frames lt iframe gt fo body Creating SPC Charts in Windows Applications 387 A http www quinn curtis com SPCWebApplicationi HTMLPage1 htm Microsoft Internet Explorer inl xj File Edit View Favorites Tools Help ay Q O a m Heme 6 2 28 1983 Address http www quinn curtis com SPCWebApplication1 HTMLPage1 htm X Ba Links 2s Google picationi HTMuPaget htm G search x2 Ex843bloded 56 Check Autolink Autoril Ed Options 25 E htp EJ www E quinn curtis Ecom E sPCWebAppliationi gt Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator Roger Bacon Machine AB 276 Time 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 16 49 17 04 vile Elore PT fap en Another method is to use two WebForms in the ASP application The first form is setup much like the
14. 1999 2000 2001 2002 2003 2004 2005 2006 Bar plots can have the values of the bars displayed above or inside each bar This class is a concrete implementation of the SimplePlot class and displays data in a bar format Individual bars the QCChart2D Class Summary 87 maximum value of which corresponds to the y values of the dataset are justified with respect to the x values History Test Results Test Score 5 10 15 20 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 Sales Volume is Rising Faster than Forecast 400 1999 2000 2001 2002 2003 2004 2005 2006 Presentation quality graphs with background gradients semi transparent colors legends and titles 88 QCChart2D Class Summary SimpleLinePlot Measurable work output This class is a concrete implementation of the SimplePlot class it displays simple datasets in a line plot format Adjacent data points are connected using a straight or a step line Theoretical vs Experimental Data 20 40 60 80 100 3 MBAs 1000 employees Energy Companies Software Companies Predicted SimpleScatterPlot SimpleVersaPlot Legend Classes LegendItem BubblePlotLegendItem Legend StandardLegend BubblePlotLegend Scatter plots usually d
15. 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 Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI1 Me RebuildChartUsingCurrentData End Sub InitializeChart 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 SPC Control Data and Alarm Classes 114 notes A string specifying any notes associated with this sample subgroup controllimits Array of control limits one for each control limit
16. C GetCurrentSampleSubgroupSize is a fictional method that gets the current number of samples in the sample subgroup The value of N can vary from sample interval to sample interval You must have a valid sample value for each element N GetCurrentSampleSubgroupSize Size array exactly to a length of N DoubleArray samples new DoubleArray N ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array You must have a valid sample value for each element of the array size 0 N 1 samples 0 0 121 First of five samples 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 SPC
17. Cpu Cpk Pp P1 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 139 SPC Control Data and Alarm Classes Public Instance Methods CalculateProcessCapability Value CalculateProcessCapability Values Clone Copy IsValueValid Reset SetProcessCapabilityValue SPCGeneralizedTableDisplay Calculate the process capability value Calculate the process capability value Returns an object that is a clone of this object Overloaded Copies the source object Checks to the validValueFlags to see if a value in the calculated historical data array currentValues is valid Reset the history buffer of the SPCProcessCapabilityRecord class Calculate the process capability value Sets the currentValue property of the class to the result This class manages a list of ChartText objects NumericLabel StringLabel and TimeLabel objects that encapsulate each unique table entry in the SPC chart table This class also manages the spacing between the rows and columns of the table and
18. Creating SPC Charts in Windows Applications 397 Get Return Me ChartData Title End Get Set ByVal value As String Me ChartData Title value Me RebuildChartUsingCurrentData End Set End Property Xsummary Set Get the input string flag lt summary gt Public Property EnableInputStrings As Boolean Get Return Me EnableInputStringsDisplay End Get Set ByVal value As Boolean Me EnableInputStringsDisplay value Me RebuildChartUsingCurrentData End Set End Property Public Sub InitializeChart SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of samples per sub group Dim numsamplespersubgroup As Integer 5 Number of datapoints in the view Dim numdatapointsinview As Integer 17 Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup timeincrementminutes Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI Me ChartData Title Variable Control Chart X Bar Me ChartData PartNumber 283501 Me ChartData ChartNumber 17 Me ChartData PartName Transmission Casing Bolt Me ChartData Operation Threading 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 t
19. Overloaded Check the current value against the parameterValue Returns an object that is a Clone of this SPCControlLimitRecord object Overloaded Copies the source SPCControlLimitRecord object Checks the SPCControlLimitRecord object for common errors Current error state Returns an error code Returns the current alarm state based on the passed in value Get a values for the controlLimitsValues historical buffer Set current value of the control limit and SPC Control Data and Alarm Classes 130 adds that value to the controlLimitValues historical array The SPCControlLimitRecord properties are documented in the QCSPCChartNetCompiledHelpFile chm documentation file located in the doc subdirectory Example of trapping SPCControlLimitRecord alarm using an event delegate The example below specifies an alarm event delegate for the control limit alarms The example was extracted from the TimeVariableControlCharts DynamicXBarR Chart example program C public void InitializeChart 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 S
20. 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 178 SPC Variable Control Charts I ll p lt Center line I LCL x A R Control Limits for the R Chart UCL R D R Center line R LCL R D R Where the constants A D and D are tabulated in every SPC textbook for various sample sizes X Bar Sigma Also known as the X Bar S Chart Control Limits for the X Bar Chart UCL X AF S Center line X LCL X A S Control Limits for the Sigma Chart UCL B S Center line S LCL B S SPC Variable Control Charts 179 Where the constants A B and B are tabulated in every SPC textbook for various sample sizes Median Range Also known as the Median and Range Chart Control Limits for the Median Chart UCL Center line LCL I M A M M A Control Limits for the R Chart UCL Center line LCL R D D R The constants A D and D for median range charts are different than those for mean range charts A brief tabulation of the median range chart specific values appears below Size A2 2 2 22 3 1 26 4 0 83 5 0 71 In
21. S QCRTGraphNet dll 9 QCMatViewNet dll QCMatPackNet dll QCChart2DNet dll Pl gacutil exe File name OCChart2DNet dll GCSPCChartNet dll Files of type Component Files dll tlb olb ocx exe manifest Creating SPC Charts in Windows Applications 369 View the UserChartControll cs code Change the base class of UserChartControll to one of the SPC Chart classes derived from com quinncurtis chart2dnet ChartView These are SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart 3 amp 9 amp 3 S This adds a local version of the control to the project The C form code should now look like using System using System Collections Generic using System ComponentModel using System Drawing using System Data using System Text using System Windows Forms using System Drawing Drawing2D using com quinncurtis chart2dnet using com quinncurtis spcchartnet namespace SPCApplicationl i public partial class UserChartControll quinncurtis spochartnet SPCTimeVariableControlChart i public UserChartControll InitializeComponent Note that the file uses a class modifier of partial This means that there is more code associated with the class in the related UserControlChart1 Designer cs file Normally you will not need to edit that file
22. SPCCalculatedValueRecord 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 SPC CUSTOM CALC Constant value for a custom SPC calculation unused SPC FRACTION DEFECTIVE PARTS CALC Constant value for a percent defective parts SPC calculation SPC FRACTION DEFECTS CALC Constant value for a fraction defects SPC calculation SPC INDIVIDUAL ABS RANGE CALC Constant value for a ABS individual E i E E range SPC calculation SPC INDIVIDUAL COPY VALUE Constant value for INDIVIDUAL RANGE SPC INDIVIDUAL RANGE CALC Constant value for a individual range SPC calculation SPC MAX CALC Constant value for a maximum SPC calculation SPC MEAN CALC Constant value for a mean SPC calculation SPC MEAN N MINUS 1 CALC Constant value for a mean SPC calculation using N 1 rather than N SPC MEDIAN CALC Constant value for a median SPC calculation SPC MIN CALC Constant value for a minimum SPC calculation SPC PERCENT DEFECTIVE PARTS CALC Constant value for a percent defective parts calculation SPC PERCENT DEFECTS CALC Constant value for a percent defects SPC calculation SPC RANGE CALC Constant value for a range SPC calculation SPC STD DEVIATION CALC Constant value for a standar deviation SPC calculation SPC SUM CALC Constant value for a sum SPC calculation SPC T
23. this BuildChart 342 Frequency Histograms Pareto Diagrams Probability Charts VB 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 LineMar Me LineMar Me YAxisl Me YAxisl Me YAxis2 Me YAxis2 kerPlot LineAttributes PrimaryColor Color Blue kerPlot SymbolAttributes PrimaryColor Color Black LineColor Color Green LineWidth 3 LineColor Color Blue LineWidth 3 Me YAxisLabl LineColor Color DarkMagenta Me BuildChart End Sub InitializeChart 10 File and Printer Rendering Classes ChartPrint BufferedImage All of the chart classes described in this manual com quinn curtis chart2dnet ChartView FrequencyHistogramChart ParetoChart ProbabilityChart SPCChartBase SPCBatchAttributeControlChart SPCBatchVariableControlChart SPCTimeAttributeControlChart SPCTimeVariableControlChart are derived from the com quinncurtis chart2dnet ChartView class The chart and table information displayed in these charts can be printed and saved to image files using the techniques described in the QCChart2D manual QCChart2DNetManual pdf This chapter repeats that information substituting examples extracted from the for SPC Contro
24. Hughes Rules The only sources we could find for the Hughes rules were all second hand If anyone can direct is to an original source for the Hughes Rules please send an e mail to support quinn curtis com Duncan Rules Acheson Johnston Duncan was an international expert in quality control and published his rules in the text book Quality control and industrial statistics fifth edition Irwin 1986 Gitlow Rules Dr Howard S Gitlow is an international expert in Sigma Six TOM and SPC His rules are found in his book Tools and Methods for the Improvement of Quality 1989 ISBN 10 0256056803 290 Named and Custom Control Rule Sets Westgard Rules The Westgard rules are based on the work of James Westgard a leading expert in laboratory quality management They are considered Laboratory quality control rules You can find more information about the Westgard Rules and James Westgard at the web site http www westgard com The rules sets have many individual rules in common In particular the WECO rules and the Nelson rules have 7 out of 8 rules in common and only differ in the fourth rule Western Electric WECO Rules In the Western Electric Rules A process is considered out of control if any of the following criteria are met 1 The most recent point plots outside one of the 3 sigma control limits If a point lies outside either of these limits there is only a 0 3 chance that this was caused by the no
25. The QCSPCChart classes are a super set of the QCChart2D charting software No attempt should be made to utilize the QCSPCChart classes without a good understanding of the QCChart2D classes See the QCChart2DNetManual PDF file for detailed information about the QCChart2D classes The diagram below depicts the class hierarchy of the SPC Control Chart Tools for Net library without the additional QCChart2D classes Namespace com quinncurtis spcchartnet com quinn curtis chart2dnet ChartView FrequencyHistogramChart ParetoChart ProbabilityChart SPCChartBase SPCBatchAttributeControlChart SPCBatchVariableControlChart SPCTimeAttributeControlChart SPCTimeVariableControlChart Class Architecture 45 com quinncurtis chart2dnet AutoScale Probability AutoScale com quinncurtis chart2dnet Axis Probability Axis 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 SPCControlChartDa
26. YAxisLab 20 BAR 30 0 4 LCL 24 2 17 00 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 dents cuts etc Think of the last car that you bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the number of defects are tracked u chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated p Chart Also known as the Percent or Fraction Defective Parts Chart For a sample subgroup the number of defective parts is measured
27. end used to mark the end of the array HE SPCChartStrings SetCurrentDefaultStrings usEnglishStrings return true VB Shared initStringsFlag As Boolean InitStrings Private Shared Function InitStrings As Boolean US en Dim usEnglishStrings As String start Microsoft Sans Serif H L N Y _ Variable Control Chart X Bar amp R zero TIME ALARM NO INSP _ Title Part No Chart No Part Name Operation Operator _ Machine Date Spec Limits Gage Units Zero Equals _ MEAN MEDIAN RANGE VARIANCE SIGMA SUM _ SAMPLE VALUE ABS RANGE MA C C EWMA _ DEF FRACT DEF NO DEF NO DEF NO DEF UNIT DEF MILLION _ PBAR LCLP UCLP MR MS X XBAR RBAR Target LCL Low Alarm UCL _ High Alarm Sample Defect Batch Time Stamp Sample _ Notes M dd yyyy M dd yyyy HH mm ss SPCDataLog SPCDataLog Measurements _ Frequency Frequency Histogram Defect Category Frequency Cumulative 96 Pareto Diagram _ Frequency Bin Population Under Normal Probability Plot Basic WECO WECO SUPPLEMENTAL _ Nelson AIAG Juran Hughes Gitlow Duncan Westgard _ Primary chart Secondary chart greater than less than above below _ increasing decreasing trending w
28. 03 03 0 3 0 3 0 3 0 3 03 0 3 0 3 0 3 03 0 3 0 3 Ppk 0 2 02 03 03 03 03 03 03 0 2 03 02 02 02 02 0 2 02 03 ALARM EEEF ER EE REELEEILEEEEEEILEEILEELEEEILFEELEEEILEERLEERL DP NOTES Y Y N Y N N N N N N N Y T 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
29. 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 BarRCharts example program If you want to include the WE Trending Supplemental rules in addition to the regular WE Runtime rules call UseWERuntimeAndSupplementalRules in place of UseWERuntimeRules C this ChartData AlarmStateEventHandler new SPCControlLimitAlarmEventDelegate this SPCControlLimitAlarm don t generate alarms in initial data simulation this ChartData AlarmStateEventEnable false this PrimaryChart UseWERuntimeRules this PrimaryChart UseWERuntimeAndSupplementalRules 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 AutoCcalculateControlLimits 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 thi
30. 118 121 122 123 124 125 126 127 134 135 152 153 159 160 161 162 212 213 217 218 219 220 221 233 234 236 237 249 251 258 259 260 289 290 291 292 302 303 305 306 406 413 416 421 424 431 434 437 439 Chart Eyen sAr EEE oT eme ene ChartEVentza edes cear gente etu 1 ChartImage 2 grate ib tee chartimage91 97 414 416 417 422 425 ChartLabel sess ehartb abel unu 90 91 97 146 ChartPlotz eiiielaae merita oc ene Charnblot u ae s 73 74 97 ChartPrint 2 oened eatin de tet e ea 385 ChartPrint 94 97 373 374 375 376 377 378 379 380 DENIS nione vi 94 373 374 CliartScale ehe Rede ocndem sets ChartScale 60 61 62 97 ChartShap e a ect eren ChartShape ccse mor 91 92 97 ChartSymnibol eerte eee te tenero edu Charts ymbol eem 91 92 97 ChartText dna e teet e e ChartText 55 90 97 100 144 177 212 Chart Titles dene marte ee ChartTitle 90 91 97 431 432 437 440 441 Chat View ise eret dire t eR ChartView 5 11 12 44 59 64 92 94 97 158 256 352 361 362 370 373 374 376 377 378 379 380 381 382 383 384 398 401 402 404 408 416 424 427 428 429 434 435 Control Limit Alarms eseeeeenen control limit alarms v 13 131 133 Control Limits 33er ae ps 195 control limits 2 16 20 21 31 42 43 45 100 101 107 108 109 112 114 115 124
31. 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 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 Alarm status line this EnableAlarmStatusValues false VB Alarm status line Me EnableAlarmStatusValues False SPC Variable Control Charts 213 ChartAlarmEmphasisMode WMA Chart Variable Control Limits Dynamic SPC Bar Sigma Individual Range Multi Limit X Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero pol lo l NENNEN EMEN TIME 12 34 12 49 13 04 13 19 13 34 13 49 14 04 14 19 14 34 14 49 15 04 15 19 15 34 15 49 16 04 16 19 16 34 RANGE 12 8 3 1 15 7 154 19 6 188 159 44 168 165 20 3 16 1 9 1 123 143 176 84 Cpk 0 198 0 202 0 201 0 200 0 198 0 197 0 197 0 197 0 196 0 195 0 194 0 193 0 193 0 193 0 193 0 191 0 191 Ppk 0 194 0 196 0 196 0 195 0 193 0 192 0 193 0 192 0 191 0 190 0 189 0 188 0 188 0 188 0 188 0 186 0 186 NOTES 40 30 20 10 0 13 00 14 00 15 00 16 00 Chart alarm em
32. 296 297 305 306 307 309 329 416 424 434 439 Alarm Event Handling eeese 343 Alarm Event Handling v vi 136 343 Alarm highlighting eee Alarm Highlighting 156 157 229 230 232 254 255 298 299 300 301 341 ASPNET Stace itis ne ERE trei e Gem ASP Net vi 408 409 410 419 Attribute Control Chart sess 8 49 50 Attribute Control Chart 2 v vi 8 10 13 14 29 30 31 35 41 46 49 50 55 100 101 106 110 114 118 247 248 249 251 252 257 278 284 292 302 303 304 305 309 Auto scaling classes tee eren nae AutoScale ienser ri 1 AutoLogAlarmsAsNotes eeee AutoLogAlarmsAsNotes 156 232 253 301 302 AUtoScalle eeeeeecceseesscesseeeceseeeeeeeceseceeeeceenaeeeeeneeeeeeas AutoScale 1 3 45 53 54 63 64 97 126 127 158 164 165 179 180 186 211 213 215 216 217 218 256 277 287 288 289 415 424 433 439 BGS es as entere iA rear 47 48 49 50 axis 1 2 3 vi 15 38 39 42 43 45 47 48 49 50 52 53 54 58 64 65 66 67 69 70 71 72 73 89 90 91 93 95 97 104 109 127 150 151 156 158 164 165 175 176 179 180 186 211 213 215 216 217 218 224 237 238 239 240 241 243 244 245 248 249 253 255 256 270 271 272 277 287 288 289 306 307 308 309 310 311 312 313 351 352 353 355 356 358 360 361 362
33. 363 364 368 370 371 372 390 415 424 433 439 440 Axis label classes eie t et eterne RR Axis Labels a a N 1 Axis Labels 3e ree RO eie i ut AxisLabels 1 3 71 72 73 97 351 360 368 Axis Title rera ur ond AxisTitle 90 91 97 109 175 176 244 245 270 271 311 313 352 353 360 362 370 390 B ackegro nd s ee mtt rrr eo s background v 6 44 55 58 65 97 144 145 146 172 173 174 243 244 245 266 267 268 269 311 312 352 361 369 370 BarDatapointValue eee BarDatapointValue 97 B fferedImage 5 diete etes teet BufferedImage 94 97 373 381 382 384 408 414 416 422 424 425 C Chart eoa e RIA ND 8 14 41 c chart 8 14 30 31 33 35 41 55 103 118 121 247 257 280 CartesianCoordinates eeessssssee CartesianCoordinates 53 61 62 97 402 Creating SPC Charts in Windows Applications Chart Fonts eee etd d e a ee dee deine chart fonts 174 175 176 269 270 271 Chart Position esssssesssseseeeeeeeeeneee enne Chart Position 180 273 ChartAlarmEmphasisMode sess ChartAlarmEmphasisMode 156 179 230 254 299 300 ChartAttribute 3 sca ete rer rr ChartAttribute 63 64 65 97 215 336 338 339 340 341 357 GhartCalenda r 4 2 ps pe eerie ChartCalendar 60 64 69 91 94 97 114 115 116 117
34. 51 244 311 345 347 348 349 352 353 355 373 400 404 Gitlow RuleS ia Aet tte ee tenes Gitlow 2 vi 9 11 13 209 315 317 318 320 323 325 326 327 332 391 397 ruo RD 209 GraphOby nta aro orte metet GraphObj 63 64 65 83 97 Grid crise OR LE e dee Ra eee 403 grid 3 44 51 52 53 58 89 90 97 144 172 174 245 267 269 313 352 353 362 370 Group datasets ect esteso cech a rna CIrOUDIDATASetu duca eosin eversa 1 GroupBarPlot 2 maera RR AE ng a EAA GroupBarPlot 75 79 97 GroupDataset 4 eee Diet deretur GroupDataset 1 3 59 60 64 97 GroupPlotz e e cot bes acie A obla t not GroupPlot 73 75 76 77 78 79 80 81 82 97 HistogramPlot tici ree hrec da histogramplot 75 80 97 352 355 356 378 379 Hughes Rul 8 neS antr te e EE Hughes 2 vi 9 11 13 209 315 317 318 320 322 325 327 330 331 332 333 391 397 Image Rendering eee BufferedImage 94 97 373 381 382 384 408 414 416 422 424 425 Individual Range 8 14 15 41 148 Individual Range 7 8 14 15 19 41 48 102 141 148 149 154 190 234 Juran Rules ac eB e an db t ERR dodo Juran 2 6 9 11 13 209 315 317 318 322 325 327 332 333 391 E gefid A A AG et Ba seek a Legend oes 88 89 92 97 Legendlteim
35. 74 66 OLI LOLIT ontrolLimitRecord this ChartData LIMIT 75 33 UCLI DOLI LLAMLE CLES T 1 sigma this PrimaryChart AddAdditionalControl SPCChartObjects SPC UPPER CONTROL LIM ILimit ucl3 IT 1 s amp igmal For Secondary Chart this SecondaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT ue 2 this SecondaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT ue 0 1 sigma lower limit 2 sigma lower limit 2 sigma lower limit 1 sigma lower limit 1 sigma lower limit ects SPC LOWER CONTROL LIMIT LimitValue ects SPC UPPER CONTROL LIMIT LimitValue ects SPC CONTROL TARGET LimitValue 75 LimitVal LimitVal this SecondaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET LimitValue Le SPCControlLimitRecord lcl4 new SPCC ontrolLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN L SPCControlLimitRecord ucl4 new SPCC IMIT 0 355 LCs DOLJ gt ontrolLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 1 66 UCL2 UCL2 this SecondaryChart AddAdditionalControlLimit 1c14 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 this SecondaryChart AddAdditionalControlLimit ucl4 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sidgma2 SPCControlLimitRecord 1cl15 new SPCC ontrolLimitRecord this ChartData SPCControlLimitRecord SPC
36. FRACT DEF CLP 0 00 20 00 21 00 22 00 23 00 0 00 1 00 2 00 3 00 11 25 05 a 20 15 10 5 0 Frequency Histogram SPC Chart Data and Notes Tooltips You can invoke two types of tooltips using the mouse The first is a data tooltip When you hold the mouse button down over one of the data points in the primary chart the x and y values for that data point display in a popup tooltip Data Tooltip SPC Attribute Control Charts 271 Singe Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic a Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 16 40 17 10 17 40 18 10 18 40 19 10 19 40 20 10 20 40 21 10 21 40 22 10 22 40 23 10 23 40 0 10 0 40 SSS EOE ee UM WERE a ee SUN md ma oO E E ee CS a 4 1 4 0 4 3 4 2 3 1 3 3 5 8 1 4 7 1 e O E MEE CUNGUE NUNC NINE NT C RUNE NUNC 2 NEUEN 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 0 2 PBAR 0 14 FRACT DEF 0 0 CLP 0 00 19 00 k 23 00 0 00 12 02 05 T 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 272 SPC Attribute Control Charts no n
37. MyTestUserControll height 600 width 800 classid http quinn curtis com UserControlTestRev2 QCSPC WindowsControlLibraryl d1ll WindowsControlLibraryl UserControl1l VIEWASTEXT gt lt OBJECT gt Notice the classid in the lt object gt tag The classid has two parts to it First we have the URL to the DLL file make sure the DLL is not in the web sites bin Creating SPC Charts in Windows Applications 399 directory In this example the WindowsControlLibraryl DLL file has been explicitly copied to the http quinn curtis com web site and placed in the folder UserControlTestRev2 QCSPC Hence the URL to the library is http quinn curtis com UserControlTestRev2 QCSPC WindowsControlLibraryl dll It is then followed by a sign and ends with the fully qualified name of the control namespace control name In this case that is WindowsControlLibraryl UserControll The full c assid becomes classid http quinn curtis com UserControlTestRev2 QCSPC WindowsControlLibraryl dll WindowsControlLibraryl UserCo ntroll This is sufficient to display the QCSPCChart derived user control in a web page using Internet Explorer If you want to modify elements of the chart you will need to communicate to the control from JavaScript embedded in the HTML page In our IEQCSPCChart htm example we added a couple of text fields one that changes the chart title text and another that changes the y axis range of the chart text2 A couple of but
38. New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC_GREATERTHAN LIMIT Less UCEL UGE SPC Variable Control Charts 195 Me SecondaryChart AddAdditionalControlLimit 1c15 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal Me SecondaryChart AddAdditionalControlLimit ucl5 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal Me PrimaryChart ControlLimitLineFillMode True Me SecondaryChart ControlLimitLineFillMode True Special Note When you create a SPCControlLimitRecord object you can specify an actual limit level If you do not call the charts AutoCalculateControlLimits method the control limit will be displayed at that value If you do call AutoCalculateControlLimits method the auto calculated value overrides the initial value 0 0 in the examples above When you call the charts AddAdditionalControlLimits method you specify the sigma level that is used by the AutoCalculateControlLimits to calculate the control limit level If you want the control limits displayed as filled areas set the charts ControlLimitLineFillMode property True Ct this PrimaryChart ControlLimitLineFillMode true This will fill each control limit line from the limit line to the target value of the chart In order for the fill to work properly you must set this property after you define all additional control limits Also you must add the outer most control limits SPC UPPER CONTROL LIMIT 3 and SPC LOWER CONTROL LIMI
39. O desc deed ee sete cet eee deae ee ees rene qug WECO vi 9 11 13 315 316 317 320 321 325 326 327 329 332 333 390 391 397 WECO Supplemental 321 321 Western Electric rules sse Western Electric Rules 209 315 316 Westgatd 2 sereranteocmtep taste ee teieeceie tels Westgard 2 vi 9 11 13 209 316 319 323 325 326 327 332 391 397 Windows Applications esee Windows Applications vi 13 398 428 434 WorkingCoordinates eese WorkingCoordinates 61 62 97 WorldCoordinates eese WorldCoordinates 61 62 97 X Bar R ssessseeseeeee 8 14 15 41 148 149 X Bar R 7 8 10 11 13 14 15 16 18 20 21 41 47 55 103 115 148 149 154 159 179 187 188 210 211 213 214 234 238 240 415 424 433 439 X Bar Sigma esses 8 14 15 41 148 X Bar Sigma 5 8 10 11 13 14 15 16 17 18 41 55 103 115 116 148 154 159 160 161 187 188 234 235 5 C PU EET EM EE 8 14 15 41 148 X R 8 10 11 13 14 15 19 41 55 148 149 190 XAxisLabelRotation seen XAxisLabelRotation 237 238 XAxisStringLabelMode ees XAxisStringLabelMode 238 239 240 241 307 308 309
40. SPCChartObjects UseNamedRuleSet Method Visual Basic Declaration Public Sub UseNamedRuleSet _ ruleset As Integer _ Public Sub UseNamedRuleSet _ ruleset As Integer _ ruleflags As BoolArray C public void UseNamedRuleSet int ruleset public void UseNamedRuleSet int ruleset BoolArray ruleflags Parameters ruleset Named and Custom Control Rule Sets 299 One of the SPCControlLimitRecord named rule indentifiers BASIC RULES WECO RULES WECOANDSUPP RULES NELSON RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES WESTGARD RULES and DUNCAN RULES ruleflags An array of bool one for each named rule in the rule set Use the standard 3 sigma control limits this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the WECO rules This corresponds WECO rules 1 rules is 1 to 8 this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the WECO rules This corresponds WECO rules 1 rules is 1 to 12 this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of Nelson rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of AIAG rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of Juran rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of Hughes rules this PrimaryChart UseNa
41. The SPChartStrings class looks like public static class SPOChartStrings public enum SPOStringEnum int empty 0 chartFont highAlarmStatus lowAlarmStatus shortStringNo shortStringYes US en static String usEnglishStrings Microsoft Sans Serif ng F pu N yn Static ArrayList globalStringList new ArrayList public static String currentDefaultStrings usEnglishStrings The SPCStringEnum enumeration contains an item for every default string used in the software Paired with that is the currentDefaultStringsList which has one string element for every enumerated value in the SPCStringEnum enumeration The software pulls the strings it uses from the currentDefaultStrings array It is initialize by default with the usEnglishStrings array the string values of which are listed in the tables below SPCStringEnum Default Strings Description start 0 start Marks the start of the enumeration chartFont Microsoft Sans Serif default font string highAlarmStatus H alarm status line High short string lowAlarmStatus L alarm status line Low short string shortStringNo NU No short string shortStringYes bd Yes short string dataLogUserString n default data log user string sPCControlChartDataTitle Variable Control Chart X Bar amp R Default chart title zeroEqualsZero zero table zero string timeValueRowHe
42. 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 68 QCChart2D Class Summary Date Axes Year YeavQuarter i LL AZAN LIE TEAR Le E ERD NES AAA 1985 1990 1995 2000 4998 4999 2000 2004 2002 2003 YeawMonth QuartevMonth qrmmmmmmmqmmmmmmmmqmmmm MM 4998 1999 2000 2001 2002 2003 4 002 42002 7 2002 10 2002 1 2003 Month Week Month Day C Day Week a a a S E y 5 i TITTITITTTTTTTTTTTTIT TIT TTITTTTTTTTTTTTTTTTTTTTTTTTTTTTTIT 98402 100102 110002 420402 40103 110102 120102 40103 Month Day 5 Day Week WeekiDay G Day Week rmm ep 10103 20303 30303 40103 4msms 1203 OMS 42503 Week Day 5 Day Week Day 8 Hour i Hrot eor 4 06 03 4413 03 1 20 03 12703 10103 1 02 03 1 03 03 1 0403 There are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years Date Axes QuartewMonth a a2 as a4 a2 a3 a4 a1 2001 2002 2003 Month TTTTTTTTTTTTTTTTTT TTTTTTTTTTTTTTTTTI JFMAMJJASONDJFMAMJJASONDAJFMAMS3JJASONDJ 2000 2001 2002 2003 hood dE Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep 2008 20
43. True Display the Notes row of the table Me EnableNotes True Display the time stamp row of the table Me EnableTimeValues True Me RebuildChartUsingCurrentData End Sub InitializeChart The input header strings display has four sub levels that display increasing levels of information The input header strings display level is set using the charts 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 244 SPC Attribut
44. charttype numsamplespersubgroup numdatapointsinview timeincrementminutes this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL1 Creating SPC Charts in Windows Applications 393 Set the strings used in the header section of the table his ChartData Title Variable Control Chart X Bar amp R his ChartData PartNumber 283501 his ChartData ChartNumber 17 his ChartData PartName Transmission Casing Bolt his ChartData Operation Threading oct cb choc Display the Sampled value rows of the table his EnableInputStringsDisplay true Display the Sampled value rows of the table his EnableCategoryValues true Display the Calculated value rows of the table his EnableCalculatedValues true Display the total samples per subgroup value row his EnableTotalSamplesValues true Display the Notes row of the table his EnableNotes true Display the time stamp row of the table his EnableTimeValues true vet Cet co ct SG S pb och ct pb EA this PrimaryChart ProcessVariableData LineMarkerPlot LineAttributes PrimaryColor Color Black H this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor Color Beige frequency histogram for both charts this PrimaryChart DisplayFrequencyHistogram true this SecondaryChart DisplayFr
45. containing the data associated with the plot Contour Plot of the Heat Distribution of a Plasma Torch Degrees C 1000 0 1200 0 1400 0 1600 0 1800 0 1900 0 2000 0 2100 0 2200 0 2400 0 2600 0 2800 0 3000 0 The contour plot routines work with either an even grid or a random shown grid ContourPlot This class is a concrete implementation of the ChartPlot class and displays a contour plot using either lines or regions filled with color Group Plot Classes QCChart2D Class Summary 75 GroupPlot ArrowPlot BoxWhiskerPlot BubblePlot CandlestickPlot CellPlot ErrorBarPlot FloatingBarPlot FloatingStackedBarPlot GroupBarPlot GroupVersaPlot HistogramPlot LineGapPlot MultiLinePlot OHLCPlot StackedBarPlot 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 Flow Analysis Stealth Project The size position and direction of every arrow in an arrow plot is under program control 76 QCChart2D Class Summary ArrowPlot This class is a concre
46. converts a date time physical coordinate system into the working coordinate system ElapsedTimeScale A concrete implementation of the ChartScale class converts an elapsed time coordinate system into the working coordinate system Coordinate Transform Classes UserCoordinates WorldCoordinates WorkingCoordinates PhysicalCoordinates CartesianCoordinates ElapsedTimeCoordinates PolarCoordinates AntennaCoordinates TimeCoordinates The coordinate transform classes maintain a 2D coordinate system Many different coordinate systems are used to position and draw objects in a graph Examples of some of the coordinate systems include the device coordinates of the current window normalized coordinates for the current window and plotting area and scaled physical coordinates of the plotting area 62 QCChart2D Class Summary UserCoordinates WorldCoordinates WorkingCoordinates PhysicalCoordinates CartesianCoordinates TimeCoordinates ElapsedTimeCoordinates PolarCoordinates AntennaCoordinates This class manages the interface to the System Drawing classes and contains routines for drawing lines rectangles and text using Net device coordinates This class derives from the UserCoordinates class and maps a device independent world coordinate system on top of the Net device coordinate system This class derives from the WorldCoordinates class and extends the physical coordinate system of the plot area the area typically
47. default is MOUSETOGGLE TOOLTIP Me ChartData NotesToolTips ToolTipMode NotesToolTip MOUSEDOWN TOOLTIP Enable Alarm Highlighting 274 SPC Attribute Control Charts EnableAlarmStatusValue Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Left Front Fender peration Painting Spec Limits Units Operator B Cornwall Machine 11 Gage Zero Equals TIME 11 38 12 08 12 38 13 08 13 38 14 08 14 38 15 08 15 38 16 08 16 38 17 08 17 38 18 08 18 38 19 08 19 38 Defect 1 2 6 3 3 2 1 2 4 3 3 1 0 0 1 1 0 7 Defect 43 2 5 5 3 0 8 0 5 3 5 1 0 1 3 1 1 2 FRACT DEF 0 120 0 200 0 180 0 200 0 140 0 300 0 080 0 240 0 140 0 280 0 060 0 000 0 020 0 140 0 060 0 020 0 280 e DO PBAR 0 12 m FRACT DEF 0 0 CL 0 00 12 00 13 00 14 00 15 00 17 00 18 00 19 00 There are several alarm highlighting options you can turn on and off The alarm status line above is turned on off using the EnableAlarmStatus Values property We have set it on by default so you will have to turn it off if you don t want it Each sample interval has two small boxes that are labeled using one of several different characters listed below The most common are an H signifying a high alarm a L signifying a low alarm and a signifying that there is no alarm When specialized control rules are implemented either using the named rules discussed in Chapter 8 or custom rules involving trending oscilla
48. or in an ASP Net page The source URL for the image component can either be an image file or a URL address to an ASP page that serves up the image file as a stream The QCSPCChart library includes a BufferedImage class that renders a ChartView chart as a memory bitmap and will output that image to a file or a stream The image file or stream can be in any image format supported by the Net System Drawing Imaging ImageFormat class The second method embedding a QCSPCChart ChartView derived object in an HTML page is made possible because we eliminated the license file from the software There was no way to check the license file from a control embedded in an HTML page without generating exceptions that would invalidate the control We aren t sure what browsers support this other than Microsoft Internet Explorer In order to guarantee the necessary security clearance to run in the browser you must install our QCChart2DNet and QCSPCChartNet DLL libraries in the GAC of the client computer more on that later Included with the software is the complete source to the two web applications we have running on our web site at http quinn curtis com SPCWebApplicationl HTMLPagel htm http quinn curtis com SPCWebA pplication2 HTMLPagel htm The source is found at the following locations C Creating SPC Charts in Windows Applications 373 Quinn Curtis DotNet QCSPCChart Visual CSharp examples Asp Net SPC WebApplication Quinn Curtis DotNet
49. 127 148 149 156 158 164 165 166 175 179 180 181 182 183 184 185 186 187 188 189 190 191 192 194 195 198 199 201 202 203 204 205 208 209 210 211 213 214 215 216 217 218 244 247 254 256 270 274 275 276 277 278 280 282 283 284 285 287 288 289 311 315 316 317 318 319 320 325 326 328 329 332 341 415 424 433 439 control limits 5 oo rov teda 319 control limits 20f32s 319 control limits 31s 319 Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk 8 Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk 8 42 143 CSV born mos UC ro c pn n tiers CSV 42 94 95 97 105 107 108 109 110 127 Custom Rules sss nennen custom rules vi 13 209 299 332 333 335 341 Customer Support ccccescecesccceseeseeeeeeneeeseeeeeeeeenneeees customer support eessss v 6 CuSum Chart 2 ann e ce a i vetu 15 149 cusum chart 10 11 13 15 23 24 148 149 150 154 197 198 234 Datalogsine 2 e e eto ecdtbse data logging 42 104 105 127 128 Data Tooltups aieo nee EE tr data tooltips 1 42 156 228 254 297 DataCUtSOr 2a etr eee cie EE DataCursor eese 92 93 97 Dat set z i ise nde esent nano eene eee tot oo aeuo ve ChartDataset 59 60 73 74 97 Data Tool Tip een OH HERE EDU Datatooltip 45 54 92
50. 166 0 142 0 137 1 155 0 148 8 143 6 142 9 149 1 143 2 vl Done LL T DT oM nee Another method is to use two WebForms in the ASP application The first form is setup much like the previous example The aspx page contains nothing and the aspx cs behind code page does all the work defining a chart and streaming the result back as a JPEG image The second WebForm page hosts a collection of Web controls place on the aspx page One of these Web controls is an Image web control The behind code page for this WebForm connects the URL of the Image control to the first WebForm page which does nothing be serve up charts Our example SPCWebApplication2 uses this approach The reason you might want to take this approach is that it is much easier to wire up the controls on a WebForm page using the aspx cs behind code as opposed to doing it on an HTML page The drawback is that the entire page redraws when anything is posted causing a momentary flash when the chart is redraw Using the HTML approach the chart redraws without the flash making it a better method for real time applications Creating SPC Charts in Windows Applications 381 Visual Basic for Net If you do not already have an application program project create one using the Visual Studio project wizard File New Project Visual Basic Projects ASP Net Web Application On the left select a project type of Visual Basic Projects Give the project a unique name our versi
51. 220 221 275 276 285 286 325 326 327 329 330 331 332 333 SPCControlParameters sen SPCControlParameters 45 54 55 SPCControlPlotObjectData eese 406 Creating SPC Charts in Windows Applications SPCControlPlotObjectData 336 338 339 340 341 SPCGeneralizedTableDisplay esses SPCGeneralizedTableDisplay vi 45 55 100 144 145 172 173 174 175 177 267 268 269 270 272 SPCTimeAttributeControlChart sss SPCTimeAttributeControlChart 10 13 44 46 50 118 119 120 121 122 123 247 249 250 251 252 258 259 261 262 271 272 310 373 400 404 413 421 SPCTimeVariableControlChart 149 SPCTimeVariableControlChart 10 11 13 44 46 48 101 112 113 126 130 134 135 148 149 152 153 154 155 176 178 179 193 196 198 199 241 242 243 373 400 401 404 405 407 413 414 415 416 421 422 423 424 425 429 430 431 432 435 436 438 Specification Limits esee specification limits 2 42 102 107 166 204 214 285 StackedBarPlot sse StackedBarPlot 3 75 78 79 97 StackedLanePlot itr hir ete ete ott StackedLinePlot 75 82 97 StandardLeserd uite t ete StandardLegend 88 89 97 String Axis Labels enisinia StringAxisLabels 71 7
52. 23 112 SPC Control Limits There are two ways to set the SPC control limit for a chart The first explicitly sets the limits to values that you calculate on your own because of some analysis that a quality engineer does on previously collected data The second auto calculates the limits using the algorithms supplied in this software SPC Variable Control Charts 173 The quick way to set the limit values and limit strings is to use the charts ChartData SetControlLimitValues and ChartData SetControlLimitStrings methods This method only works for the default 3 sigma level control limits and not any others you may have added using the charts AddAdditionalControlLimit method discussed in the Multiple Control Limits section The data values in the controllimitvalues and controllimitstrings arrays used to pass the control limit information must be sorted in the following order SPC_PRIMARY CONTROL TARGET SPC_PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT 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 controllimitstrings XBAR LCL UCL RBAR DCOL CL this Chart Data SetControllLimitStrings controllimitstrings
53. 7 2 1 3 2 1 6 5 6 2 2 2 0 1 1 2 Dent 2 2 0 0 ri 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 z 2 12 4 3 9 TON 6 4 6 2 12 2 13 96 DEF 10 0 240 140 40 240 80 60 180 200 220 120 80 120 40 240 40 260 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N C 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 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 248 SPC Attribute Control Charts Extracted from the TimeAttributeControlCharts NumberDefectivePartsControlChart example program Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Oper
54. 8 of 8 lt center line 9 1 8 8 0 9 8 of 8 gt center line 10 2 8 8 0 Duncan New Rule Description Rule Template Nof M X 1 l of 1 lt 3 sigma 1 1 1 1 3 l of 173 sigma 2 2 1 1 3 2 2 of 3 lt 2 sigma 3 1 2 3 2 3 2 of 3 gt 2 sigma 4 2 2 3 2 4 4of5 lt sigma 5 l 4 5 1 5 4 of 5 sigma 6 2 4 5 1 6 7 of 7 increasing 7 5 7 7 0 7 7 of 7 decreasing 8 6 7 7 0 Westgard New Rule Description Rule Template Nof M X 1 1 of 1 lt 3 sigma 1 1 1 1 3 l of 173 sigma 2 2 1 1 3 2 2 of 2 lt 2 sigma 3 1 2 2 2 2 of 2 gt 2 sigma 4 2 2 2 2 3 4 of 4 lt 1 sigma 5 1 4 4 1 4 of 4 gt 1 sigma 6 2 4 4 1 4 10 of 10 lt centerline 7 l 10 10 0 10 of 10 gt centerline 8 2 10 10 0 5 R2s 2 sigma limits 9 10 1 1 2 6 7 of 7 trending 10 7 7 7 0 298 Named and Custom Control Rule Sets 7 1 of 1 gt 2 sigma 11 1 1 1 2 1 of 1 lt 2 sigma 12 2 1 1 2 8 2 of 3 gt 3 sigma 13 1 2 3 2 2 of 3 lt 3 sigma 14 2 2 3 2 9 3 of 3 gt 1 sigma 15 1 3 3 1 3 of3 lt 1 sigma 16 2 3 3 1 10 6 of 6 lt centerline 17 1 6 6 0 6 of 6 gt centerline 18 2 6 6 0 11 8 of 8 lt centerline 19 1 8 8 0 8 of 8 gt centerline 20 2 8 8 0 12 9 of 9 lt centerline 21 1 9 9 0 9 of 9 gt centerline 22 2 9 9 0 13 12 of 12 lt centerline 23 1 12 12 0 12 of 12 gt centerline 24 2 12 12 0 Implementing a Named Rule Set You are able to add a named rule set to an SPC application using a single call Call the UseNamedRuleSet method passing in the appropriate rule ID
55. All you have to do is supply the raw data and the values of the frequency bins for which you want to accumulate values The FrequencyHistogramChart class auto scale a 322 Frequency Histograms Pareto Diagrams Probability Charts coordinate system creates the proper x and y axes and draws the resulting frequency histogram as a bar plot FrequencyHistogramChart InitFrequencyHistogram Method Initializes the histogram frequency bin limits and the data values for the histogram VB Public Sub InitFrequencyHistogram _ ByVal frequencylimits As Double _ ByVal frequencyvalues As Double _ public void InitFrequencyHistogram double frequencylimits double frequencyvalues Parameters frequencylimits The frequency limits of the histogram bins frequencyvalues An array the values that are counted with respect to the frequency bins The image below uses the following data C Frequency bins double freqLimits 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues 121 349 345 322 277 LOZ 218 L38 1337 475 dad 367 l33 354 245 434 476 352 185 144 l 5 105 461 385 2535 476 304 180 557 482 3243 293 839 318 291 218 472 218 199 330 l09 IUl L37 200 LIS 380 410 206 122 238 VB Frequency bins Dim freqLimits As Double _ 100 150 200 250 300 350 400 450 500 550 600 data to
56. Chart type constant Median and Range Median Range SPC Variable Control Chart Datalog flag specifying that the file prefix row ist NOT to be included Using this option will make the file incompatible with the SPCControlChartData routines that read data files Chart type constant Number Defective Parts np chart Control Chart Chart type constant Number Defects c chart Control Chart Chart type constant Number Defects per Unit u chart Control Chart Chart type constant Percent Defective Parts p chart Control Chart Index of primary chart target control limit in controlLimitData array Index of primary chart lower control limit in controlLimitData array Index of primary chart upper control limit in controlLimitData array Index of secondary chart target control limit in controlLimitData array SPC SECONDARY LOWER CONTROL LIMIT Index of secondary chart lower control limit in controlLimitData array SPC SECONDARY UPPER CONTROL LIMIT Index of secondary chart upper Public Static Shared Properties BatchColumnHeadString DefaultAbsRangeString DefaultDataLogFilenameRoot DefaultHighAlarmMessageString DefaultLowAlarmMessageString DefaultLowControlLimitString DefaultMeanString DefaultMedianString DefaultRangeString DefaultSample ValueString DefaultSigmaString DefaultSumString DefaultTargetString DefaultUpperControlLimitString DefaultVarianceString DefaultXBarString DefaultXSt
57. Defects Per Unit u chart l Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 20 50 PM Time 17 20 17 35 17 50 18 05 18 20 18 35 18 50 19 05 19 20 19 35 19 50 20 05 20 20 20 35 20 50 21 05 21 20 MEAN 61 8 59 6 64 7 63 8 676 625 632 612 622 65 7 61 0 627 636 667 617 619 626 SIGMA 4 69 5 22 6 79 5 62 5 92 6 14 6 03 7 99 7 27 6 11 6 62 4 46 6 94 6 72 6 72 6 70 6 73 SUM 680 238 906 766 406 937 885 367 559 460 366 502 382 600 617 805 752 NO INSP 11 4 14 12 6 15 14 6 9 7 6 8 6 9 10 13 12 NOTES N N N N N N N N N N N N N N N N N Edo b di 80 60 40 20 0 80 60 40 20 0 In this case the control chart high and low limits vary from 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
58. EE Form1 EWMA Chart MA Chart CuSum Chart CuSum Chart 2 MA MR Chart MA MS Chart Title Variable Control Chart MAMR Part No 283501 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 10 26 2011 1 23 33 PM TIME 13 23 13 53 14 23 Sample 0 945 7 99 9 29 945 872 891 0 00 146 1 6 Chart No 17 Spec Limits Gage 8645 17 23 17 53 18 23 18 53 19 23 19 53 9 20 10 34 29 03 1147 10 51 9 40 9 94 10 04 10 15 10 39 10 27 9 96 4 12 342 3 42 244 244 2 44 14 53 15 23 11 66 12 16 9 60 10 11 3 67 4 17 15 53 16 23 16 53 10 18 8 04 11 46 10 12 9 82 10 03 4 17 412 4 12 Units 0 0001 inch Zero Equals zero 20 23 20 53 21 23 10 08 937 10 62 9 95 10 10 10 00 244 2 10 1 25 MR CHANWATA NO The MAMR chart combines our Moving Average chart with a Moving Range chart The Moving Average chart is primary topmost chart and the Moving Range chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When calculating the Moving Range it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving range statistics MAMS Chart Moving Average M
59. 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 SPCProcessCapability Record SPC Control Data and Alarm Classes 138 This is the record class for calculating and storing SPC process capability statistics It supports calculating the Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk statistics Public Static Shared Fields SPC CP CALC SPC CPK CALC SPC CPL CALC SPC CPM CALC SPC CPU CALC SPC CUSTOM PC CALC SPC PP CALC SPC PPK CALC SPC_PPL_CALC SPC PPU CALC Public Static Shared Properties DefaultProcessCapabilityStrings Public Instance Constructors SPCProcessCapabilityRecord Public Instance Properties CalculationType CurrentValue CurrentValues LSLValue USLValue ValidValueFlags ValueDescription 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 Default descriptors for the process capability strings Cp Cpl
60. InitStrings String oldstring SPCChartStrings SetString SPCChartStrings SPCStringEnum defaultMean MEAN Euro standard oldstring SPCChartStrings SetString ff SPCChartStrings SPCStringEnum defaultDateFormat dd M yyyy us Eng standard oldstring SPCChartStrings Setstring SPCChartStrings SPCStringEnum defaultDateFormat M dd yyyy retur true You can change every string used in the software line by line using the technique above Another way is to create a properly sized and initialized string array and change every string in the software with a single call to the SPCChartStrings SetCurrentDefaultStrings method You will find an example in the MiscBatchBasedControlCharts Form1 example C Static bool initStringsFlag InitStrings Static bool Initstrings US en String usEnglishStrings start used to mark the beginning of the array Microsoft Sans Serif default font string HY s alarm status line High short string Lm alarm status line Low short string N No short string EN Yes short string we default data log user string Variable Control Chart X Bar amp R Default chart title zero table zero string TIME TIME row header ALARM ALARM row header NO INSP NO INSP row header Te thes Title field caption Part No Part number field caption Chart No Chart number field caption
61. LOWERTHAN LIMIT 0 66 LCL1 LCL1 194 SPC Variable Control Charts SPCControlLimitRecord ucl5 new SPCCo ntrolLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 1 33 UCL1 UCL1 this SecondaryChart AddAdditionalControlLimit 1c15 SPCChartObjects SPC LOWER CONTROL LIMIT P i sigmal this SecondaryChart AddAdditionalControlLimit ucl5 SPCChartObjects SPC UPPER CONTROL LIMIT P 1 sigmal this PrimaryChart ControlLimitLineFillMode true this SecondaryChart ControlLimitLineFil VB Dim sigma2 As Double 2 Dim sigmal As Double 1 Create multiple limits For PrimaryChart oo llMode true Me PrimaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT LimitValue 74 Me PrimaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT LimitValue 76 Me PrimaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET LimitValue 75 Dim l1c12 As New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 232 LCL2 LBOb2 5 Dim ucl2 As New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATER HAN LIMIT 75 66 UCL2 UCL2 Me PrimaryChart AddAdditionalControlLimit 1cl12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 Me PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim l1c13 As New SP
62. Methods AddCalculatedItem AddHorizontalBar AddNotesItem AddNumericlItem AddStringItem AddTimeltem Clone Copy GetChartLabel 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 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 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
63. 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 SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT D LCL2 MLELA Dim ucl2 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 0 28 UCL2 UCL2 Me PrimaryChart AddAdditionalControlLimit 1cl2 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 Me PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim l1c13 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT DIDI TLELI UnOTIMVS Dim ucl3 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT Url Uni VUGEL Me PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects 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 AutoCalculateCon
64. Private Sub SimulateData batch number for a given sample subgroup Dim batchCounter As Integer 0 Dim i As Integer For i 0 To 199 Important to make a new ChartCalendar object each time Dim timestamp As ChartCalendar CType startTime Clone ChartCalendar Simulate a sample subgroup record Dim samples As DoubleArray 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 passage of timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes SPC Variable Control Charts 219 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 us
65. QCChart2D Class Summary 79 Drug Sales The Group bar graph and the Stacked bar graph represent two different ways of displaying the same data 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 items 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 80 QCChart2D Class Summary Video Game Usage by Age Group F4 2 EF Ej 5 E o z S a 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 a
66. Ring Chart Classes It uses data organized as arrays of x and y values where an x value represents the numeric value of a pie wedge and a y value specifies the offset or explosion of a pie wedge with respect to the center of the pie Click on any pie wedge to see a detail Click again on the pie wedge to remove detail PieChart The pie chart plots data in a simple pie chart format It uses data organized as arrays of x and y values where an x value represents the numeric value of a pie wedge and a y value specifies the offset or explosion of a pie wedge with respect to the center of the pie 86 QCChart2D Class Summary 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 SimplePlot SimpleBarPlot g E This class is an abstract base class for all simple plot classes Production of Green Bars is Up Rael Ga arly LaLa ERU aL 77 UT psu
67. SPCControlChartData MEAN RANGE CHART Number of datapoints in the view Dim numdatapointsinview As Integer 17 Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes 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 2096 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
68. SPCControlChartData SPC PRIMARY UPPER CONTROL LIMI T primaryuppercontrollimit ControlLimitValue 0 25 SPC Attribute Control Charts 255 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 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 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 updateCounttt this ChartData AddNewSample
69. SUM CALC INDIVIDUAL RANGE CHART 0 SPCCalculatedValueRecord SPC INDIVIDUAL COPY VALUE 1 SPCCalculatedValueRecord SPC INDIVIDUAL ABS RANGE CAL MAMR CHART 0 SPCCalculatedValueRecord SPC MA CALC 1 SPCCalculatedValueRecord SPC MR CALC MAMS CHART 0 SPCCalculatedValueRecord SPC MA CALC 1 SPCCalculatedValueRecord SPC MS CALC EWMA CHART 0 SPCCalculatedValueRecord SPC EWMA CALC 1 SPCCalculatedValueRecord SPC MEAN CALC MA CHART 0 SPCCalculatedValueRecord SPC MA CALC TABCUSUM CHAR 0 SPCCalculatedValueRecord SPC CUSUM CPLUS CALC 1 SPCCalculatedValueRecord SPC CUSUM CMINUS CALC 2 SPCCalculatedValueRecord SPC MEAN CALC MEAN PERCENT DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC PERCENT DEFECTIVE PARTS CALC FRACTION DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC FRACTION DEFECTIVE PARTS CALC FRACTION DEFECTIVE PARTS CHART VSS 0 SPCCalculatedValueRecord SPC FRACTION DEFECTIVE PARTS VSS CALC NUMBER DEFECTIVE PARTS CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTIVE PARTS CALC NUMBER DEFECTS CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTS CALC NUMBER DEFECTS PERUNIT CHART 0 SPCCalculatedValueRecord SPC FRACTION DEFECTS CALC NUMBER DEFECTS PERUNIT CHART VSS 0 SPCCalculatedValueRecord SPC FRACTION DEFECTS VSS CALC PERCENT DEFECTIVE PARTS CHART VSS 0 SPCCalculatedValueRecord SPC PERCENT DEFECTIVE PARTS VSS CALC NUMBER DEFECTS PER MILLION CHART 0 SPCCalculatedValueRecord SPC TOTAL DEFECTS CALC 1 SPCCalculatedVa
70. _ SPCControlChartData DATALOG FILE COLUMN HEADS Or _ 127 SPC Control Data and Alarm Classes SPCControlChartData DATALOG FILE NOTES It is also possible to read a previously saved datalog file and initialize the ChartData object with previously collected data While the data can be initialized it is still important that the originating SPCChartBase object is initialized properly for the data it is to receive Use the ChartData ReadAllValuesFromFile 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 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 Control Limit Alarms Class SPCControlLimitRecord ChartObj SPCControlLimitRecord The SPCControlLimitRecord stores control limit alarm information for the SPCControlChartData class The SPCControlLimi
71. a cumulative percentage scale 40 Standard SPC Control Charts Pareto Chart i Form1 xt Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 20 2 B E 3 z g E SB 10 0 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category The chart is easy to interpret The tallest bar the left most one in a Pareto diagram is the problem that has the most frequent occurrence The shortest bar the right most one is the problem that has the least frequent occurrence Time spend on fixing the biggest problem will have the greatest affect on the overall problem rate This is a simplistic view of actual Pareto analysis which would usually take into account the cost effectiveness of fixing a specific problem Never less 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 Class Library Major Design Considerations This chapter presents an overview of the SPC Control Chart Tools for Net class architecture It discusses the major design considerations of the architecture Major design consideration specific to SPC Control Chart Tools for Net are 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 Ra
72. a limit value centerline center line Used in alarm messages to specify the center line of the chart r2s R2s Used in alarm messages to specify the R2s test sigmaShort S alarm status line sigma short string beyondAlarmStatus B alarm status line beyond short string trendingAlarmStatus mp alarm status line trending short string stratificationAlarmStatus S alarm status line stratification short string oscillationAlarmStatus O alarm status line oscillation short string r2sAlarmStatus RU alarm status line R2s short string rule Rule used in alarm messages for word Rule violation violation used in alarm messages for word violation sigma sigma used in alarm messages for word sigma target Target used in alarm messages for word Target ucl UCL used in alarm messages for to designate Upper Control Limit Icl LCL used in alarm messages for to designate Lower Control Limit defaultCp Cp used to label Cp row of table defaultCpl Cpl used to label Cpl row of table defaultCpu Cpu used to label Cpu row of table defaultCpk Cpk used to label Cpk row of table defaultCpm Cpm used to label Cpm row of table defaultPp PPp used to label Pp row of table defaultPl Ppl used to label Pl row of table defaultPu Ppu used to label Pu row of table defaultPpk Pp used to label Ppk row of table end end Marks the end of the e
73. a text file and append the current SPC data record to that file in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs Some localization for different operating Clone ControlLimitInitialized Copy Copy inherited from ChartObj DataLogFileOpenForWrite Equals inherited from Object ErrorCheck inherited from ChartObj SPC Control Data and Alarm Classes 108 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 spreadsheet and word processing programs Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Uses the dataLogFlags property as the guide to reading the values of the file so that property must be properly initialized for the data file being read Determines whether the specified Object is equal to the current Object Throws an exception if an error exists in the error chain ExcludeRecordFromControlLimitCalculations Exclude the specified record from the SOC GetBatchNumberValue GetCalculat
74. 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 subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups c Chart Also known as the Number of Defects or Number of Non Conformities Chart For a sample subgroup the number of times a defect occurs is measured and plotted as a simple count Statistically in order to compare number of defects for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups SPC Attribute Control Charts 229 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
75. any illegal purpose 4 SUPPORT SERVICES Quinn Curtis Inc may provide you with support services related to the SOFTWARE Use of Support Services is governed by the Quinn Curtis Inc polices and programs described in the user manual in online documentation and or other Quinn Curtis Inc provided materials as they may be modified from time to time Any supplemental SOFTWARE code provided to you as part of the Support Services shall be considered part of the SOFTWARE and subject to the terms and conditions of this EULA With 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 ex
76. 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 MAChart and MiscBatchBasedControlCharts MAChart Specify N using the MA_w property Extracted from the MiscTimeBasedControlCharts MA Chart example 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 T 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 1 0 Me ChartData ProcessSigma 1 0 186 SPC Variable Control Charts CuSum Chart Tabular one sided upper and lower cumulative sum A batch CuSum chart exceeding the H value inixl EWMA Chart MA Chart CUSum Char Title Variable Control Chart EWMA Part No 283501 Chart No 17 Date 3 5 2008 4 54 56 PM The tabular cusum works by accumulating deviations from the process mean Fh Positive deviatio
77. bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the number of defects are tracked u chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of Standard SPC Control Charts 31 the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated Attribute Control Charts Attribute Control Charts are a set of control charts specifically designed for tracking defects also called non conformities These types of defects are binary in nature yes no where a part has one or more defects or it doesn t Examples of defects are paint scratches discolorations breaks in the weave of a textile dents cuts etc Think of the last car that you bought The defects in each sample group are counted and run through some statistical calculations Depending on the type of Attribute Control Chart the number of defective parts are tracked p chart and np chart or alternatively the number of defects are tracked u
78. chart c chart The difference in terminology number of defective parts and number of defects is highly significant since a single part not only can have multiple defect categories scratch color dent etc it can also have multiple defects per category A single part may have 0 N defects So keeping track of the number of defective parts is statistically different from keeping track of the number of defects This affects the way the control limits for each chart are calculated Typical Time Based Attribute Control Chart p Chart 2101 xd anit Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Variable Control Limits Number Defects Per Unit Multic 4 gt Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 13 28 13 58 14 28 14 58 15 28 15 58 16 28 16 58 17 28 17 58 18 28 18 58 19 28 19 58 20 28 20 58 21 28 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N Y N N N N N N N N N N N N N N p a N i i i UCL 0 28 ee CI 9p Ep i io ES i j d PBAR 0 14 t gt 1 t il i i 0 0 CL 0 00 30 20 10 0 14 00 15 00 16 00 17 00 18 00 19 00 20 00 21 00 32 Standard SPC Control Charts p Chart Also known as the Percent or Fraction Defective Parts Chart For a sample subgroup the number of defective parts is mea
79. 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 frequency histogram for both charts this PrimaryChart DisplayFrequencyHistogram true this SecondaryChart DisplayFrequencyHistogram true VB Y frequency histogram for both charts Me PrimaryChart DisplayFrequencyHistogram True Me SecondaryChart DisplayFrequencyHistogram True SPC Chart Data and Notes Tooltips 208 SPC Variable Control Charts 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 EBlFormi nl xl Bar R Bar Sigma Individual Range Mult LimitBar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 14 45 15 00 15 15 15 30 15 45 16 00 16 15 16 30 16 45 17 00 17 15 17 30 17 45 18 00 18 15 18 30 18 45 2 30 23 25 26 34 37 35 27 29 34 30 26 26 33 36 30 28 4 33 23 23 35 31 35 29 34 32 25 30 30 34 30 27 34 31 MEAN 295 27 7 279 303 285 341 294 311 297 293 279 297 2
80. control limits Two of three points above 2 sigma control limits Two of three points below 2 sigma control limits Four of five points is above 1 sigma control limits Four of five points is below 1 sigma control limit s Six points in a row increasing Six points in a row decreasing Nine out of nine are above or below center line Eight points in a row on both sides of center line none in zone C Hughes Rules C D Un ducta ba c ABWNF SO One of one point is outside of 3 sigma control limits Two of three points above 2 sigma control limits Two of three points below 2 sigma control limit s Three of seven points above 2 sigma control limits Three of seven points below 2 sigma control limit s Four of ten points above 2 sigma control limits Four of ten points below 2 sigma control limits Four of five points is above 1 sigma control limits Four of five points is below 1 sigma control limits Seven points in a row increasing Seven points in a row decreasing Ten of eleven are above center line Ten of eleven are below center line Twelve of fourteen are above center line Twelve of fourteen are below center line Gitlow Rules po sur Oy Ups 2 ho rs One of one point is outside of 3 sigma control limits Two of three points above 2 sigma control limits Two of three points below 2 sigma control limits Four of five points is above 1 sigma control limits Four of five points is below 1 sigma control
81. current SPC chart this AutoCalculateControlLimits VB Named and Custom Control Rule Sets 303 Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits for both graphs of the current SPC chart Me AutoCalculateControlLimits Modifying Existing Named Rules Perhaps you like everything about a named rule set except for one or more rules For example you want to use the Hughes rules but want to change the N of M parameters of rules 15 and 16 You do that using the SPCControlLimitRecord method SetCustomRuleParameters SPCControlLimitRecord SetCustomRuleParameters Method Visual Basic Declaration Public Sub SetCustomRuleParameters _ valuesincalc As Integer _ numvaluesforruleviolation As Integer _ C public void SetCustomRuleParameters int valuesincalc int numvaluesforruleviolation C public void SetCustomRuleParameters int valuesincalc int numvaluesforruleviolation Parameters valuesincalc Specifies the number of values to use in calculation numvaluesforruleviolation Specifies the number of values that must be outside alarm limit for rule violation 304 Named and Custom Control Rule Sets The example below changes the N of M parameters of Hughes rules 15 and 16 from their default N ofM value 12 of 14 to the values 15 of 18 this Pri
82. disables rule 9 6 of 6 increasing or decreasing and rule 10 15 of 15 within 1 sigma from the Nelson Rules You use our rule numbering system for specifying which rule See the example program RulesRulesRules for examples of how to setup an SPC chart for a given set of control rules Once you add a set of named control rules to your SPC chart the next thing you will want to do is set the control limits You can either set the limits using known values or you can have our software calculate the limits using previously acquired sample data If you want to explicitly set the limits you must know the historical process mean also called the center line and the historical process sigma You may already know your process sigma or you may need to calculate itas 1 3 UCL process mean where UCL is your historical 3 sigma upper control limit Once you have those two values everything else is automatic Just call the UpdateControlLimitUsingMeanAndSigma method It will run through all of the control limit records and fill out the appropriate limit values and other critical parameters SPCControlChartData UpdateControlLimitsUsingMeanAndSigma Method Visual Basic Declaration Public Sub UpdateControlLimitsUsingMeanAndSigma _ chartpos As Integer _ mean As Double sigma As Double _ C 302 Named and Custom Control Rule Sets public void UpdateControlLimitsUsingMeanAndSigma int chartpos double mean double sigma Paramet
83. for each element N GetCurrentSampleSubgroupSize Size array exactly to a length of N DoubleArray samples new DoubleArray N ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array You must have a valid sample value for each element of the array size 0 N 1 samples 0 0 121 First of five samples 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 156 SPC Variable Control Charts 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 V
84. i ue a ete en etre deed Leeendltetna ovo Set 88 89 97 License Ele ee eed ee eene license file sesessss 4 408 Litie a AXIS ive orii shih meneame ORE LinearAxis 45 65 67 72 90 97 FanearScale 5 ies ort rtr een eerie eed LinearScale 60 61 97 LineGapPlot essere EineGapPloft cs eoe 75 80 97 LOgAXIS a ioiarhacbeon eate e ntt bed tet LogAxis 65 67 72 90 97 L gSc lez5 23 eee A etat letus EOgSCAle cineri 60 61 97 MA ch rt iei eee ettet ehe dete ood 149 ma chart 8 14 16 17 18 19 20 21 23 24 38 41 116 148 149 150 154 160 161 190 191 192 194 195 234 235 404 Creating SPC Charts in Windows Applications MAME Chart dete isa 149 MR part of the MAMR Moving Average Moving Range Chart 195 MS part of the MAMS Moving Average Moving Sigma Chart 195 MAMR 2 8 14 15 21 22 41 47 48 107 115 148 149 155 157 195 235 337 MAMS 2 8 14 15 22 23 41 47 48 107 115 148 150 155 157 195 235 337 Markers aeeoea a E ENE Marker 1 73 83 84 86 87 88 91 93 97 98 243 311 369 372 433 438 Mo u seListehet rron ann a ergo MouseListener45 92 93 94 97 157 255 MAMR2 8 14 15 21 22 41 47 48 107 115 148 149 155 157 195 235 337 Moving Average Moving Sigma sess MAMS 2 8 14 15 22 23 41 47 48 107 1
85. initialization after the InitializeComponent histogramplot New FrequencyHistogramUserControll Me Controls Add histogramplot End Sub Private Sub menuItem2 Click ByVal sender As Object ByVal e As System EventArgs Handles MenuItem2 Click If Not histogramplot Is Nothing Then Me PageSetup histogramplot sender e End If End Sub menuItem2 Click Private Sub menuItem3 Click ByVal sender As Object ByVal e As System EventArgs Handles MenulItem3 Click If Not histogramplot Is Nothing Then Me PrinterSetup histogramplot sender e End If End Sub menuItem3 Click Private Sub menuItem4 Click ByVal sender As Object ByVal e As System EventArgs Handles MenuItem4 Click If Not histogramplot Is Nothing Then Me PrintPreview histogramplot sender e End If End Sub menuItem4 Click Private Sub menuItem5 Click ByVal sender As Object ByVal e As System EventArgs Handles MenuItemb5 Click If Not histogramplot Is Nothing Then Me PrintPage histogramplot sender e End If End Sub menuItem5 Click Private Sub menuItem8 Click ByVal sender As Object ByVal e As System EventArgs Handles MenuItem8 Click Application Exit End Sub menuItem9 Click call This routine invokes the chart objects PageSetupItem method Public Sub PageSetup ByVal charview As ChartView ByVal sender As Object ByVal e As System EventArgs If Not charview Is Nothing Then If printobj Is Nothing Then printobj New ChartPrint char
86. 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 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 202 SPC Variable Control Charts 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 extracted from the TimeVariableControlCharts DynamicXBarR Chart example C private void timerl Tick object sender System EventArgs e if this IsDesignMode return ChartCalendar timestamp Char
87. numeric based while the y values are numeric based Since an event object can represent one or more y values for a single x value it can be used as the source for simple plot types simple line plot simple bar plot simple scatter plot simple line marker plot and group plot types open high low close plots candlestick plots group bars stacked bars etc Event objects can also store custom data tooltips and x axis strings The most common use for event based plotting will be for displaying time based data which is discontinuous financial markets data for example In financial markets the number trading hours in a day may change and the actual trading days Weekends holidays and unused portions of the day can be excluded from the plot scale producing continuous plots of discontinuous data The following classes have been added to the software in support of event based charting e ChartEvent A ChartEvent object stores the position value the time stamp y values and custom strings associated with the event EventArray A utility array class used to store ChartEvent objects EventAutoScale An auto scale class used by the EventCoordinates class EventAxis Displays an axis based on an EventCoordinates scale EventAxisLabels Displays the string labels labeling the tick marks of an EventAxis EventCoordinates Event coordinates define a coordinate system based on the the attached Event datasets EventGroupDataset
88. one way to pass data from the HTML page to the ASP page Using the behind code page you can query some database and get the data values from there without passing the data through the HTML page Once the chart is create and available as a ChartView derived object use the BufferedImage class to render the chart as a JPEG file and stream the image back in the response stream of the requesting HTML page Private Sub Page Load ByVal sender As System Object _ ByVal e As System EventArgs Handles MyBase Load Put user code to initialize the page here Put user code to initialize the page here Get Input from HTML ASP page request Dim widthstring As String Request Params Get 0 Dim heightstring As String Request Params Get 1 Dim imagewidth As Integer Integer Parse widthstring Dim imageheight As Integer Integer Parse heightstring Turn on all options Dim options As Integer 15 Dim chartVu As SPCTimeVariableControlChart GetInitializeChart imagewidth imageheight options Stream chart back as a JPeg image 386 Creating SPC Charts in Windows Applications Dim chartimage As New BufferedImage chartVu ImageFormat Jpeg get your binary image data here Response ContentType image jpeg chartimage Savelmage Response OutputStream chartVu Dispose End Sub Build the Solution Build Build Solution and resolve any errors that might have crept in This example was not designed to be a standalone application
89. parameters affect the variable control chart 150 SPC Variable Control Charts Ei Formi oj x Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 timeincrementminutes 15 Time 15 20 15 35 15 50 16 05 16 20 16 35 16 50 17 05 17 20 17 35 17 50 18 05 18 20 18 35 18 50 19 05 19 20 Operator J Fenamore Machine 11 24 2n DA 29 29 25 6 numsamplespersubgroup 5 7 aT VT oF zy or zJ Once the Init routine is called the chart can be further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties DefaultChartFontString Set Get the default font used in the table display Public Instance Constructors SPCChartBase Overloaded Initializes a new instance of the SPCChartBase class Public Instance Properties AutoLogAlarmsAsNotes Set to true to automatically log alarms in the notes log BottomLabelMargin Get Set an additional margin in normalized coordinates if only the primary graphs is displayed allowing for the x axis labels ChartAlarmEmphasisMode 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 ChartData ChartInitialized ChartTable DefaultControlLimitSigma EnableAlarmStatus Values EnableCategoryV alues EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableSc
90. 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 78 QCChart2D Class Summary ErrorBarPlot WSJ DSP Journal EDN 2 b S FJ Ss PC Mag Computer Week Info Age FloatingBarPlot Price 35 2003 Feb NASDAQ This class is a concrete implementation of the GroupPlot class and displays error bars Error bars are two lines positioned about a data point that signify the statistical error associated with the data point Media Schedule Jun Jul Aug Sep Oct Nov Dec 2004 Year of 2003 Mar Apr May Floating bars are useful for creating scheduling charts This class is a concrete implementation of the GroupPlot class and displays free floating bars in a graph The bars are free floating because each bar does not reference a fixed base value as do simple bar plots stacked bar plots and group bar plots Daily Stock Price 1880 1860 1840 1820 ra 1800 1 T 1 05 09 FloatingStackedBarPlot 1 12 09 2 02 09 rd 1 26 09 P 1 19 09 This class is a concrete implementation of the GroupPlot class and displays free floating stacked bars The bars are free floating because each bar does not reference a fixed base value as do simple bar plots stacked bar plots and group bar plots GroupBarPlot StackedBarPlot GroupVeraPlot g Er amp
91. required by the Windows Forms Form Designer InitializeComponent Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart SPC Attribute Control Charts 231 void InitializeChart 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 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 Dim numdatapointsinview As Integer 17 The time increment between adjacent subgroups Dim timeincrementminutes As Integer 30 Sub InitializeChart Initialize the SPCTimeAttributeCo
92. than leaving it alone The modern tendency is to automate as much of the SPC chart creation process as possible Electronic measuring devices can often measure quality in real time as items are coming off the line Usually some form of sampling will be used where one of every N items is measured The sampled values form the raw the data used in the SPC chart making process The values can be entered by hand into a SPC chart making program or they can be entered directly from a file or database connection removing the potential for transcription errors The program displays the sampled data in a SPC chart and table where the operator or quality engineer can make a judgment about whether or not the process is operating in or out of control Usually the SPC engineer tasked with automating an existing SPC charting application has to make a decision about the amount of programming he wants to do Does he purchase an application package that implements standard SPC charts and then go about defining the charts using some sort of menu driven interface or wizard This is probably the most 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
93. the alternating stripe used as a background for the table Public Static Shared Fields NUMERIC ROW SPACING TABLE NO COLOR BACKGROUND TABLE SINGLE COLOR BACKGROUND Constant specifies that the next row to the table should user numeric row spacing Constant specifies that the table does not use a background color Constant specifies that the table uses a single color for the background backgroundColorl TABLE SINGLE COLOR BACKGROUND GRID Constant specifies that the table TABLE STRIPED COLOR BACKGROUND TEXT ROW SPACING uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 Constant specifies that the next row to the table should user text Public Static Shared Properties DefaultTableFont Public Instance Constructors SPCGeneralizedTableDisplay Public Instance Properties BackgroundBarXOffset BackgroundColorl BackgroundColor2 CalculatedItemTemplate CalculatedLabelFont CurrentColumnPosition CurrentRowPosition NotesItemTemplate NotesLabelFont NumericColumnSpacing NumericRowSpacing SampleItemTemplate SampleLabelFont StartColumnPosition StartRowPosition SPC Control Data and Alarm Classes 140 row spacing Set Get the default font used in the table display Overloaded Initializes a new instance of
94. the y axis title object of the of the chart Get the y axis title object of the of the chart Get the DoubleArray of the y values of the data points plotted in the probability plot Get the default y value object template for the data tooltip Overloaded Builds the probability chart using the base objects ChartView Overloaded Copies the source ProbabilityChart object Initializes the x and y values of the data points plotted in the probability plot Builds the histogram dataset histogramDataset using the values in frequencyValues and frequencyLimits Changing Default Characteristics of the Chart 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 334 Frequency Histograms Pareto Diagrams Probability Charts MainTitle ___ Normal Probability Plot Showing Estimated Accumulated Frequencies YAxisLab1 Grid Yejia YAxisLab2 99 8 DEC 99 5 98 2c 95 90 80 lo wv 5 70 i c SigmaAxigLab 50 50 E a 30 70 SigmaAxis t 20 amp lo 1 YAxisTitle 0 5 0 2 0 20 0 5 99 5 0 2 N398 6 0 2 4 6 8 10 YAxis1 p di io sand Bin YAxis2 XAxisLab i XAxisTitle iiid GraphBackground PlotBackground C void InitializeChart TODO Add a
95. this example is SPCWebApplicationl 374 Creating SPC Charts in Windows Applications New Project Project types Templates B Visual C Visual Studio installed templates Windows Smart Device ASP NET Web Service Application Starter Kits DocProject My Templates Remote Tools Framework Web Other Languages Other Project Types Platform Builder For CE 6 0 E Search Online Templates L A project For creating an application with a Web user interface Mame SPCWebApplicationi Location C Quinn Curtis DotNet OCSPCChart visual CSharplexampleslAsp MNet v Solution Create new Solution v Create directory For solution Solution Name SPCWebApplication You will end with a basic WebForm based application with one System Web UI Page derived form Default aspx by default For purposes of this example the chart will placed in the initial default form Assume that you want to make an ASP Net application that streams an image file to an image component in a web page Creating SPC Charts in Windows Applications 375 TS sPCWebApplication1 Microsoft Visual Studio Ele Edit view projet Build Debug Target Data Tools Window Community Help ys oF d o4 n dry p Debug z Any CPU z MES bec E BLE og B3 iE GE O memet Explorer 6 0 l Tec IUBE Belauk aspx Star Pags OX Solution Explorer Solution SPCWebapplicationl w QR x Standard Client Objects amp Events
96. 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 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 and summarizes all of the classes found in the software Introduction 13 Chapter 4 summarizes the important QCChart2D classes that you must be familiar with in order to customize advanced features of the SPC Control Chart Tools for Net software Chapter 5 describes the classes that hold SPC control chart data and control limit alarms Chapter 6 describes how the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes create common variable control charts X Bar R Median and Range X Bar Sigma X R EWMA MA and CuSum charts Chapter 7 describes how the SPCTimeAttributeControlChart and SPCBatchAttributeControlChart classes create common attribute control charts p np c and u charts Chapter 8 describes how to implement the named control rules WECO Nelson AIAG Juran Hughes Gitlow Westga
97. 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 CChart2D software as the base and creating custom SPC charts using the primitives in the toolkit This is cheaper up front but may be expensive in terms of development costs Often times the third option is the only one available because the end user has some unique requirement that the pre packaged software can t handle hence everything needs to programmed from scratch Introduction 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 it implements templates and support classes for the following SPC charts and control limit calculations Variable Control Charts Templates Fixed sample size subgroup control charts X Bar R Mean and Range Chart X Bar Sigma Mean and Sigma Chart Median and Range Median and Range Chart X R Individual Range Chart EWMA Exponentially Weighted Moving Average Chart MA Moving Average Chart MAMR Moving Average Moving Range Chart MAMS Moving Average Moving Sigma Chart CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Si
98. your chart title here 35 UCL 35 3 az o 30 BAR 29 6 ul E 25 d LCL 24 0 10 00 11 00 12 00 13 00 20 UCL 20 6 W O g1 RBAR 9 8 0 CL 0 0 40 30 20 10 0 10 00 11 00 12 00 13 00 Extracted from the exaple program SPCApplicationl public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 17 Initialize the SPCTimeVariableControlChart 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 training data 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 SPC Variable Control Charts 171 VB Public Sub InitializeChart SPC variable control chart type Dim charttype As Integer
99. 0 247 257 258 259 278 279 Pareto Chart eU ile cene eae ParetoChart 11 13 44 52 345 365 366 367 368 369 370 371 373 390 400 404 Par toChart scere et er EOD EE 13 ParetoChart 11 13 44 52 345 365 366 367 368 369 370 371 373 390 400 404 PhysicalCoordinates eee PhysicalCoordinates45 54 61 62 64 65 97 Probability Chart 2 tete bere edteteieteet ProbabilityChart 11 13 44 53 345 358 359 360 361 362 363 364 373 390 400 404 ProbabilityChart esee 13 ProbabilityChart 11 13 44 53 345 358 359 360 361 362 363 364 373 390 400 404 ProbabilityCoordinates ccecceeseeseeseceeseeeceeneeeeees ProbabilityCoordinates 45 53 54 ProbabilityScale nete ie mereri ProbabilityS63le 5 ien 45 53 ProbabilitySigmaAxis sese ProbabilitySigmaAxis 45 53 54 Process Capabihty ee 8 Process Capability8 42 46 143 144 166 167 168 169 224 225 340 341 Process Performance eeeeesseeee ir Process Performance 166 168 169 OCChat DINGELL s oe te eii bebat a maed QCChart2DNet DLL 401 403 411 420 427 429 434 435 439 QCSPCChartNet DLL sese QCSPCChartNet DLL 10 385 401 403 408 411 420 427 429 434 435 439 Redistributable License sssssseeeee Redistributable License
100. 0 162 0 162 0 163 0 163 0 162 0 162 0 161 0 161 0 163 0 162 0 161 ALARM wie le eee be eee ee eee He eee ee ee ee ee le ee ee NOTES N N N N N N N N N N N N N N N N N SPC Variable Control Charts 215 The example above uses the ALARM HIGHLIGHT TEXT mode Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 4 15 2008 4 11 27 PM TIME 12 56 13 11 13 26 13 41 13 56 14 26 14 41 14 56 15 11 15 26 15 41 15 56 16 11 16 26 16 41 MEAN 243 29 8 29 5 33 1 30 4 28 8 37 4 25 5 29 2 24 6 26 2 29 5 31 1 28 6 31 1 27 6 347 RANGE 19 1 17 4 127 12 6 120 105 20 0 16 7 16 4 16 4 13 2 16 9 16 2 12 1 193 8 1 SUM 121 6 149 1 147 5 165 6 152 1 143 8 187 1 127 6 145 8 123 2 131 1 147 5 155 3 142 9 155 5 138 1 173 4 Cpk 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 I I He T ESISEIHBI 6 d6 d 0 b db d ed fe NOTES IN N N N N N N N N N N N N N NIN The example above uses the ALARM HIGHLIGHT OUTLINE mode In the table above the column outlines in blue and red reflect what is
101. 0 875 end here There is not much flexibility positioning the top and bottom of the chart Depending on the table items enabled the table starts at the position defined the TableStartPosY property and continues until all of the table items are displayed It then offsets the top of the primary chart with respect to the bottom of the table by the value of the property GraphTopTableOffset The top of the secondary chart offsets from the bottom of the primary chart by the amount of the 172 SPC Variable Control Charts 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 IRI BEES X Bar Sigma Individual Range MultiLimit Bar A Median Range Dynamic SPC TableStartPosY 0 1 I Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 17 57 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 2127 2142 21 57 RANGE 70 101 109 94 81 111 80 75 97 9390 3110 112 92 109 88 31
102. 0 900 10 00 1100 230 8 45 9 00 9 15 9 30 10103 10103 5 Minute Minute Minute 1 Seconds Poot Po 777777774 830 835 840 845 850 855 8 30 00 831400 83200 83300 63400 1 0103 10103 Minute 5 Second 5 Second Second 8 30 00 8 31 00 8 32 00 8 3300 93000 93005 8 30 10 83045 8 30 20 41 0103 4 01 03 Atime axis can be customized for non 24 hour range TimeAxis QCChart2D Class Summary 69 This class is the most complex of the axis classes It supports time scales ranging from 1 milliseond to hundreds of years Dates and times are specified using the Net ChartCalendar class The major and minor tick marks can fall on any time base where a time base represents seconds minutes hours days weeks months or years The scale can exclude weekends for example Friday October 20 2000 is immediately followed by Monday October 23 2000 A day can also have a custom range for example a 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 U L I E T1 31 1 31 17 1 1 1 1 ElapsedTimeA xis 1 i 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 take
103. 04 Day 5 Day Week I T T T T T T T T T T T T T T j wor FM T Ww T FOM OT ow T F M Tt wW 1 06 03 143 03 4 20 03 Day 7 Day Week I T T T T jj T T T T T T T l Wed Thu Fi Sat Sun Mon Tue Wed Thu Fi Sat Sun Mon Tue Wed Thu 4 05 03 41203 There are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years Date Axes Dayi4 Hour 8 HourHour MASAASSILIASSAAILASSALAI SALALARI LEAR 10103 10203 110303 4403 000 800 1600 000 800 10103 10203 4 HourHour Hout Minute A EA TER E ER EE SE T T a 000 400 00 1200 1800 0 00 4 00 200 3 00 490 10103 10103 Houri5 Minute 15 Minute Minute mmy Se ae Sa La a 020 4 00 200 2 00 0 00 0 15 0 30 0 45 400 D 10103 5 Minute Minute 000 005 00 015 020 025 10103 Minute S Second 0 00 00 0 01 00 0 02 00 0 03 00 10103 Minute 1 Seconds Po 17717777774 0 0000 0 0100 00200 0 03 00 0 04 00 10103 5 Second Second 0 00 00 00005 0 00 10 0 00 15 0 00 20 4 01 03 There are more than 40 different time date axes types appropriate for scales ranging from 1 second to 100 years Time Date Axes with Custom Hour Range 8 30 AM to 4 00 PM Dayf2 Hour 4 HouriHour a a Go T EE iT 10103 10203 4 03 03 10403 830 12 00 8 30 12 00 10103 10203 2 HourHour Hour ts Minute ae ae aes a a 0 830 1000 1200 1400 9 30 10 00 8 30900 1000 11 00 12 00 13 00 1400 10103 10203 10103 Hour Minute 15 Minute Minute mpy gm a T E R Ce 3
104. 11 20 26 20 41 20 56 21 11 2 34 52 4 4y 46 47 40 38 37 32 33 30 34 51 44 50 4 33 39 29 149 5 31 47 31 54 53 52 35 49 51 55 48 MEAN 39 5 46 8 347 46 8 47 2 395 42 0 426 449 38 5 428 40 9 37 8 482 413 444 SUM 197 5 234 1 173 6 233 9 236 0 197 6 210 0 213 1 224 4 192 5 214 0 204 5 189 1 240 9 206 6 221 9 eo UCLX 52 7 50 E di 40 e XBAR 41 7 i 30 CLX 30 7 50 30 100 50 40 CLR 40 3 ul g 30 amp 20 BAR 19 1 10 0 CLR 0 0 40 30 20 10 0 Scatter Plots of the Actual Sampled Data In some cases it useful to plot the actual values of a sample subgroup along with the sample subgroup mean or median Plot these samples in the SPC chart using additional scatter plots Standard SPC Control Charts 27 Scrollable Time Based XBar R Chart with Scatter Plot of Actual Sampled Data Static with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 123456 Chart No 18 Operator T Moosey Machine 11 74 02 F UCLX 74 018 74 01 z ij 74 00 XBAR 74 001 73 09 51 a an es LCLX 73 985 73 98 UCLR 0 042 a A E uj 0 03 e E amp 0 02 H RBAR 0 016 i E ah d 0 00 lOS LLLLZZ jr 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 sever
105. 15 148 150 155 157 195 235 337 MultiLinePlot 5 editt ceo eee tere Pene vo erae qn Veg Mult LinePlot 5 s 75 81 97 MultiMouseListener esee MultiMouseListener 157 255 Multiple SPC Control Limits sess Multiple SPC Control Limits 43 203 283 Nelson i35 p tec cto eene e edet Nelson 2 vi 9 11 13 209 315 316 317 320 321 325 327 332 333 391 397 317 NelsorRul s o oerte dee EEEE Nelson Rules 2 9 11 13 209 315 316 317 320 321 325 327 332 333 391 Notes Tooltips rerit eerte te tnit ener notes tooltips 224 228 294 297 298 NotesLabel 5 2 ect E DERE erg NotesLabel 45 54 145 174 177 269 273 NotesToolTip eene NotesToolTip 45 54 106 156 228 229 254 297 298 np chart 30 31 32 55 103 117 118 119 247 257 258 259 2779 Number Defects per Million sees Number Defects Per Million 2 8 14 279 Number Defects per Million 2 8 14 NumericAxisLabels cccccccccscccceessscceeesssssssssssssseees NumericAxisLabels 71 72 97 NumericLabel 2e epo iet ce tute NumericLabel 55 90 91 97 144 176 177 272 273 OHECPIG atate e EUER OPBHLDGPIOE anuni 75 81 97 Da GUAT ts esce ette oeste isdn PONE edd 41 p chart 5 30 31 32 41 49 50 55 102 103 117 118 119 12
106. 17 20 17 35 17 50 18 05 18 20 18 35 18 50 19 05 19 20 19 35 19 50 20 05 20 20 20 35 20 50 21 05 21 20 MEAN 61 8 59 6 64 7 63 8 67 6 62 5 63 2 61 2 622 657 61 0 62 7 63 6 667 617 619 62 6 SIGMA 469 5 22 6 79 5 62 5 92 6 14 6 03 7 99 7 27 6 11 662 446 694 672 672 6 70 6 73 SUM 680 238 906 766 406 937 885 367 559 460 366 502 382 600 617 805 752 NO INSP 11 4 14 12 6 15 14 6 9 Fi 6 8 6 9 10 13 12 NOTES N N N N N N N N N N N N N N N N N 80 60 40 20 0 EE EM MID TN 80 60 40 20 0 Median Range Also known as the 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 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 T Bye Time Based Individual Range Chart X R with data table Title Variable Control Chart XR Indivdual Range Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 148 2 03 2 18 233 2 48 3 03 3 18 3 33 3 48 4 03 4 18 4 33 4 48 503 5 18 5 33 5 48 ee e e ee ABS RANGE 34 7 7 08 107 24 83 6 1 4 8 56 39 54 1 8 38 86 81 4 9 40 J 30 Y LCLX 22 0 ABS RANGE Individual Range Chart Also known as the X R Chart The Individual R
107. 184 SPC Variable Control Charts Control Limits for the MA Chart UCL je 3 F grt N Centerline Gis the process mean f the process standard deviation also known as sigma N is the length of the moving average used to calculate the current chart value Control Limits for the MR part of the MAMR Moving Average Moving Range Chart 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 Where the constant D is tabulated in every SPC textbook for various sample sizes Control Limits for the MS part of the MAMS Moving Average Moving Sigma Chart UCL B4 S Il n Center line SPC Variable Control Charts 185 LCL B S S in this case is the average of the moving sigmas Where the constant B is tabulated in every SPC textbook for various sample sizes 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 InitSPCBatchVariableControlChart for a
108. 2 97 StriigEabel s d re e heres StringLabel 45 55 90 91 97 144 146 174 177 238 239 240 241 269 273 307 308 309 Table Background Colors esses Table Background Colors 172 Table Fonts sist tere ne ede e table fonts 174 269 Table Sttinigs ettet errem terere don Table SttBES entes tkd 111 169 TableAlarmEmphasisMode eee TableAlarmEmphasisMode 157 231 232 255 300 301 Templates menssa ioeie ir teen eed tige 8 templates 2 vi 8 9 13 14 25 35 42 46 176 177 209 272 273 319 320 332 Tick Mark 5 aeree eee creo eroe ete ie o ee PETS TickMark eesse 94 95 97 Time AXIS isa ehm cease te dee et TimeAxis 3 65 69 72 73 90 97 TimeAxisLabels eese TimeAxisLabels 3 72 73 97 TimeCoordinates essere TimeCoordinates 3 61 62 97 TimeGroupDa taset 3 e bmc ederet TimeGroupDataset 3 59 60 64 97 TimeLabel 5 eas sess deter pied oce teet e te etes TimeLabel 3 55 90 91 97 144 146 174 176 177 269 272 DIMES CALS ste vri tuer xU E eA d TimeScale 3 60 61 97 158 256 TimeSimpleDataset eese TimeSimpleDataset 3 59 60 64 97 TOOLTipsis i crus eem tt tee Datatooltip 45 54 92 93 97 156 225 228 244 254 297 298 311 352 361 369 Trial 1cense o eee Dek ek see
109. 2 2 3 2 3 4of5 lt sigma 5 1 4 5 1 4 of 5 gt sigma 6 2 4 5 l 4 8 of 8 lt center line 7 1 8 8 0 8 of 8 gt center line 8 2 8 8 0 WECO Supplemental New Rule Description Rule Template Nof M X 1 l of 1 lt 3 sigma 1 1 1 1 3 l of 173 sigma 2 2 1 1 3 2 2 of 3 lt 2 sigma 3 1 2 3 2 2 of 3 gt 2 sigma 4 2 2 3 2 3 4 of 5 lt sigma 5 1 4 5 1 4 of 5 sigma 6 2 4 5 1 4 8 of 8 lt center line 7 1 8 8 0 8 of 8 gt center line 8 2 8 8 0 5 6 of 6 incr or dec 9 7 6 6 0 6 15 of 15 within 1 sigma 10 8 15 15 1 7 14 of 14 alternating 11 11 14 14 0 8 8 of 8 outside zone C 12 4 8 8 1 Nelson New Rule Description Rule Template Nof M X 1 1 of 1 lt 3 sigma 1 1 1 1 3 l of 173 sigma 2 2 1 1 3 2 2 of 3 lt 2 sigma 3 1 2 3 2 2 of 3 gt 2 sigma 4 2 2 3 2 3 4 of 5 lt sigma 5 1 4 5 1 296 Named and Custom Control Rule Sets 4 5 6 7 8 AIAG Rule 1 2 3 4 5 Juran Rule 1 2 3 4 5 6 7 8 9 10 Hughes Rule 1 2 3 4 5 6 7 8 9 10 4 of 5 gt sigma 9 of 9 lt center line 9 of 9 gt center line 6 of 6 incr or dec 15 of 15 within 1 sigma 14 of 14 alternating 8 points outside zone C Description l of 1 lt 3 sigma 1 of 1 gt 3 sigma 7 of 7 lt center line 7 of 7 gt center line 7 of 7 increasing 7 of 7 decreasing Description l of 1 lt 3 sigma 1 of 1 gt 3 sigma 2 of 3 lt 2 sigma 2 of 3 gt 2 sigma 4 of 5 lt sigma
110. 20 10 0 7 00 8 00 9 00 10 00 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 Threading 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 232 26 5 302 266 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 98 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
111. 20 18 20 33 20 48 21 03 21 18 21 33 MEAN 65 37 63 49 63 02 65 47 63 62 64 36 65 03 63 39 62 37 63 57 65 21 63 78 64 04 62 31 64 48 65 62 64 43 SIGMA 6 62 5 51 6 84 6 67 6 98 6 37 6 92 5 93 5 83 6 84 6 84 6 16 5 36 5 41 6 56 6 62 7 59 SUM 980 952 945 982 954 965 975 951 936 953 978 957 961 935 967 984 967 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 NOTES N N N N N N N N N N N N N N N N N f UCL 68 8 BAR 64 1 ji f f HB CL 59 4 40 30 20 10 0 18 00 19 00 20 00 21 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 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 X Bar Sigma Chart with variable sample size ElFormi lolx X Bar Sigma Chart Fraction Defective Parts p chart Percentage Defective Chart p chart Number Defects Per Unit u chart Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 20 50 PM Time
112. 3 03 03 03 02 02 02 02 02 02 02 02 02 02 02 Cpm 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 Ppk 02 02 03 03 03 03 03 03 02 03 02 02 02 02 02 02 03 ALARM E EE ET HEEITER IIEF IE ILFEFIEFLF IL I LIF L L I f L j fll NOTES b Y N y N N N N N N N Y Y N N N 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 SPC Attribute Control Charts 249 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 he
113. 35 27 29 28 28 27 25 33 27 31 25 24 C 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 numdatapointsinview 17 The time increment between adjacent subgroups int sampleincrement 30 SPC Control Data and Alarm Classes 112 public IndividualRangeChart 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 ZeroEqual
114. 4 of 5 gt sigma 6 of 6 increasing 6 of 6 decreasing 9 of 9 gt center line 9 of 9 center line 8 of 8 outside zone C Description l of 1 lt 3 sigma 1 of 1 gt 3 sigma 2 of 3 lt 2 sigma 2 of 3 gt 2 sigma 3 of 7 lt 2 sigma 3 of 7 gt 2 sigma 4 of 10 lt 2 sigma 4 of 10 gt 2 sigma 4 of 5 lt sigma 4 of 5 gt sigma 7 of 7 increasing 6 7 8 9 10 11 12 New Rule Z7 ON tA 4 OD N29 eo o dk cOocoo 109oUn 4d U ctbx 2 New ys e dk cOocoo 1090Un 4d U cth 2 mA A 00 1th2 WN Template DONOR NK Template BNF AWNKP NK NYE Template OMmNrRNR NR NRK NR 4 5 9 9 9 9 6 6 15 15 14 14 8 8 Nof M 1 1 1 1 7 7 7 7 7 7 7 7 Nof M 1 1 1 1 2 3 2 3 4 5 4 5 6 6 6 6 9 9 9 9 8 8 Nof M 1 1 1 1 2 3 2 3 3 7 3 7 4 10 4 10 4 5 4 5 7 7 EOT O OO SSS Named and Custom Control Rule Sets 297 11 7 of 7 decreasing 12 6 7 7 0 12 10 of 11 lt center line 13 l 10 ll 0 13 10 of 11 gt centerline 14 2 10 ll 0 14 12 of 14 center line 15 l 12 14 0 15 12 of 14 gt center line 16 2 12 14 0 Gitlow New Rule Description Rule Template Nof M X 1 l of 1 lt 3 sigma 1 1 1 1 3 1 of 1 gt 3 sigma 2 2 1 1 3 2 2 of 3 lt 2 sigma 3 1 2 3 2 3 2 of 3 gt 2 sigma 4 2 p 3 2 4 4of5 lt sigma 5 l 4 5 1 5 4 of 5 sigma 6 2 4 5 1 6 8 of 8 increasing 7 5 8 8 0 7 8 of 8 decreasing 8 6 8 8 0 8
115. 41 47 42 42 33 45 35 41 49 34 ALARM A NOTES 1 2 1 1 1 FRACT DEF 15 00 16 00 17 00 18 00 19 00 20 00 np Chart Also known as the Number Defective Parts Chart For a sample subgroup the number of defective parts is measured and plotted as a simple count Statistically in order to compare number of defective parts for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups Standard SPC Control Charts 33 Typical Number of Defects c LN utei f Chi Title Number Defects c Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 aM c UCLP 32 6 PBAR 19 4 c Chart Also known as the Number of Defects or Number of Non Conformities Chart For a sample subgroup the number of times a defect occurs is measured and plotted as a simple count Statistically in order to compare number of defects for one subgroup with the other subgroups this type of chart requires that the subgroup sample size is fixed across all subgroups u Chart Also known as the Number of Defects per Unit or Number of Non Conformities per Unit Chart For a sample subgroup the number of times a defect occurs is measured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgroup sample size Since the plotted value is a fraction or percent of the sample subg
116. 5 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 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 jam zl Batch X Bar R Chart user defined string labeling of the x axis Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS LABEL MODE STRING C enable scroll bar 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 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 222 SPC Variable Control Charts mode back to batch number labeling by assigning the XAxisStringLabelMode property to SPCChartObjects AXIS LABEL MODE DEFAULT this ChartData AddNewSampleRecord batchCounter timestamp samples variableCo
117. 75 192 196 232 233 234 235 241 270 373 400 404 413 421 SPCCalculatedValueRecord sss SPCCalculatedValueRecord v 46 100 101 109 131 132 134 135 137 141 142 212 213 220 221 337 338 339 SPCChartB se eese edet needs chapbesdibeswscacs SPCChartBase 44 46 101 130 139 156 158 179 230 231 232 245 253 254 255 256 300 302 312 373 SPCChartObjects ensima enna a SPCChartObjects 45 175 176 182 199 200 201 202 205 206 207 208 215 238 239 240 241 244 270 271 272 280 281 282 283 286 307 308 309 311 324 326 329 332 333 335 336 338 339 340 341 SPCControlChartData 155 235 255 343 SPCControlChartData v 45 100 101 102 103 105 107 111 112 113 114 119 120 124 127 128 129 130 131 134 135 136 152 153 155 157 169 170 171 178 179 183 184 192 193 196 198 199 212 213 214 220 221 233 234 235 249 251 255 259 263 264 265 275 276 289 290 291 292 302 303 305 306 328 343 387 403 406 407 414 422 423 432 438 SPCControlLimitAlarmArgs ees 343 SPCControlLimitAlarmArgs 45 56 100 134 135 136 137 138 212 213 220 221 343 SPCControlLimitRecord eese SPCControlLimitRecord v 45 46 100 101 131 132 133 134 135 136 139 140 182 183 184 205 206 207 208 212 213
118. 9 16 14 1629 1644 16 59 17 14 1729 1744 17 59 18 14 18 29 18 44 ALARM 2 00 00 0 0 0 0 2 2 2 To To T H H HH e UCL S3 25 99 Target 19 98 LCL S3 13 97 40 30 20 10 0 16 00 17 00 18 00 Oscillation Named and Custom Control Rule Sets 315 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 20 559 21 14 2129 2144 21 59 2214 2229 2244 22 59 23 14 23 29 2344 23 59 0 14 0 29 ALARM O O O O O O O O O O O Stratification 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 1314 1 29 1 44 1 59 2 34 229 2 44 2 59 3 14 329 344 3 59 4 14 ALARM Oo O O O O O S S S S S S S UCL 53 25 99 Target 19 98 LCL S3 13 97 40 30 20 10 O 2 00 3 00 400 Alarm status line this EnableAlarmStatusValues false VB Alarm status line Me EnableAlarmStatusValues False 316 Named and Custom Control Rule Sets Control Limit Alarm Event Handling The SPCControlChartData class can throw an alarm event based on either the current alarm state or an alarm transition from one alarm state to another The SPCControlLimitAlarmArgs passes alarm data to the event handler See Chapter 5 SPC Control Data and Alarm Classes for examples of using an alarm event han
119. 93 97 156 225 228 244 254 297 298 311 352 361 369 Develop r License cederet dest DPMO2 8 14 34 41 248 257 278 279 Number Defects per Million 2 8 14 41 248 257 Duncan Rules sees Duncan2 vi 9 11 13 209 315 317 319 323 325 326 327 332 333 391 397 M CSS Ai eo ee eie o opt 391 EventAutoScales ic ena e dede eedem es Event Au toscale nero tie 1 BVentAXIS eerie ferite eed eee ea erede o one doses EVGA SIS oh rout eere ege 1 EventAxisLabels eese nente enn EventAxisLabels eee 1 EventCoordinates eese ie tentent tenth EventCoordinates 1 EventGroupDoataset cesses EventGroupDataset 1 BVCntsCal eiio iin WE EA ES BUventSodle esseen l EventSimpleDataset essere EventSimpleDataset 1 EWMA ch tt eee te rette kiei 149 EWMA chart 19 20 21 149 190 191 192 Find Ob A earth esp er egt en eee FindObj osten c M 92 93 97 FloatimgBarPlot 4 2 FloatingBarPlot 75 78 97 Frequency Histogram eeee FrequencyHistogram 5 10 13 44 51 223 224 244 293 310 311 345 347 348 349 352 353 355 356 357 373 375 376 378 382 390 400 404 415 423 433 438 FrequencyHistogram Chart esses 13 FrequencyHistogramChart 5 10 13 44
120. 95 1048 10 09 9 75 Sample 2 936 925 945 10 09 10 26 9 99 1048 10 40 10 25 10 74 10 28 975 931 999 979 975 10 61 Sample 3 978 987 977 10 65 10 36 10 70 10 22 955 9 76 10 13 10 22 993 10 59 9 70 9 70 10 64 10 54 Sample 4 9 58 9 35 960 986 10 59 10 03 29 32 10 21 10 47 9 41 9 85 9 32 10 31 10 30 10 43 10 14 9 86 MA 9 682 9 681 9 646 9 796 9 847 9 909 9 949 10 051 10 042 10 038 10 047 10 025 10 024 10 003 9 993 10 005 10 084 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 MAMR Chart Moving Average Moving Range MAMR Moving Average Moving Range Chart with Sample Values Plotted 22 Standard SPC Control Charts
121. 96 302 288 31 1 326 CL 35 5 BAR 29 8 CL 24 0 UCL 21 0 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 Time VariableControlCharts X BarR Chart example C this PrimaryChart Datatooltip EnableCategoryValues true this PrimaryChart Datatooltip EnableProcessCapabilityValues true this PrimaryChart Datatooltip EnableCalculatedValues true this PrimaryChart Datatooltip EnableNotesString true w VB Bro NA ME True Me PrimaryChart Datatooltip EnableProcessCapabilityValues True Me PrimaryChart Datatooltip EnableCalculatedValues True Me PrimaryChart Datatooltip EnableNotesString True where The following properties enable sections of the chart header and table SPC Variable Control Charts 209 PrimaryChart Datatooltip EnableCategory Values PrimaryChart Datatooltip EnableProcessCapability Values PrimaryChart Datatooltip EnableCalculatedV alues PrimaryChart Datatooltip EnableNotesStrings Display the category subgroup sample values in the data tooltip P
122. ARM 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 IL ul 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 Revision 2 0 has added many new to QCChart2D New features include Five new plot types BoxWiskerPlot FloatingStackedBarPlot RingChart __ SimpleVersaPlot and GroupVersaPlot Elapsed time scaling to compliment the time date scaling Includes a set of classes specifically for elapsed time charts ElapsedTimeLabel ElapsedTimeAutoScale ElapsedTimeAxis ElapsedTimeAxisLabels ElapsedTimeCoordinates ElapsedTimeScale ElapsedTimeSimpleDataset and ElapsedTimeGroupDataset S 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 Zoom stack processing is now internal to the ChartZoom class Refer to the QCChart2D manual for information specific to these new features Visual Studio 2005 Projects 4 Introduction All of the example program projects have been converted to the Visual Studio 2005 project format The VS 2005 project format is the oldest project format we expect to support in years moving forward While it may be possible to use the QCChart2D QCSPCCha
123. Array Me ChartData SimulateDefectRecord 19 85 5 Add a sample record Me ChartData AddNewSampleRecord 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 DoubleA rray string 121 SPC Control Data and Alarm Classes Add a new sample record to a batch based SPC chart public void AddNewSampleRecord DoubleA ray 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 DoubleA rray DoubleA rray stri ng Add a new sample record with notes to a numeric based SPC chart public void AddNewSampleRecord double ChartCalendar DoubleA rray string Add a new sample record with notes to a batch based SPC chart public void AddNewSampleRecord double DoubleArray 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 QCSPCChartNetCompiledHelpFile chm compiled help file under com quinncurtis spcchartnet SPCContro
124. As DoubleArray Me ChartData SimulateMeasurementRecord 30 10 Add the new sample subgroup to the chart Me ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes Next End Sub Private Sub UserControll Load ByVal sender As System Object ByVal e As System EventArgs Handles MyBase Load InitializeChart End Sub End Class Once you can compile the project copy the resulting WindowsControlLibrary1 DLL file to the desired folder on your web site In our example we copied the DLL to the http quinn curtis com UserControlTesRev2t OCSPC folder The DLL file size should be quite small since the underlying QCChart2DNet DLL and QCSPCChartNet DLL files are not included as part of the WindowsControlLihraryl DLL When Internet Explorer views a web page that properly references the WindowsControlLihrary1 DLL and its internal UserControll user control it will download just that DLL Internet Explorer will not attempt to download the QCChart2DNet DLL and QCSPCChartNet DLL files and will look to the system GAC instead Create the HTML File That Displays the User Control Create an HTML file however you normally would do it You will need to add HTML text to it using some sort of HTML editor You will find IEQCSPCChart htm our example in the WindowsControlLibraryl folder The control is referenced in the HTML file as lt OBJECT id
125. Attribute class The attribute class encapsulates the most common attributes line color fill color line style line thickness etc for a chart object Auto Scale classes The coordinate transform classes use the auto scale classes to establish the minimum and maximum values used to scale a 2D coordinate system The axis classes also use the 44 Class Architecture auto scale classes to establish proper tick mark spacing values Charting object classes The chart object classes includes all objects placeable in a chart That includes axes axes labels plot objects line plots bar graphs scatter plots etc grids titles backgrounds images and arbitrary shapes Mouse interaction classes These classes directly and indirectly System EventHandler delegates that trap mouse events and permit the user to create and move data cursors move plot objects display tooltips and select data points in all types of graphs File and printer rendering These classes render the chart image to a printer to a variety of file formats including JPEG and BMP or to a Net Image object Miscellaneous utility classes Other classes use these for data storage file I O and data processing For each of these categories see the associated description in the QCChart2D manual QCChart2DNetManual pdf The SPC Control Chart Tools for Net classes are in addition to the ones above They are summarized below SPC Control Chart Tools for Net Class Hierarchy
126. Bar 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 for the Cp Cpl and Cpu calculations MINIMUM a function that returns the lesser of two arguments SQRT a function returning the square root of the argument Process Capability Ratios Cp Cpl Cpu Cpk and Cpm Cp Cpl Cpu Cpk Cpm where USL LSL 6 RBar d2 XDoubleBar LSL 3 RBar d2 USL XDoubleBar 3 RBar d2 MINIMUM Cpl Cpu Cp SORT 1 V2 V XDoubleBar Tau S Process Performance Indices Pp Ppl Ppu Ppk Pp Ppl USL LSL 6 S XDoubleBar LSL 3 S 162 SPC Variable Control Charts Ppu USL XDoubleBar 3 S Ppk MINIMUM Ppl Ppu The major difference between the Process Capability Ratios Cp Cpl Cpu Cpk and the Process Performance Indices Pp Ppl Ppu Ppk is the estimate used for the process sigma The Process Capability Ratios use the estimate RBar d2 and the Process Performance Indices uses the sample standard deviation S If the process is in control then Cp vs Pp and Cpk vs Ppk should returns approximately the same values since both RBar d2 and the sample sigma S will be good estimates
127. CControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 86 CLI LOLITU Dim ucl3 As New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT Tordas TUSEI UOBLI Me PrimaryChart AddAdditionalControlLimit 1c13 SPCChartObjects SPC LOWER CONTROL LIMIT 1 sigmal Me PrimaryChart AddAdditionalControlLimit ucl3 SPCChartObjects SPC UPPER CONTROL LIMIT 1 sigmal For Secondary Chart Me SecondaryChart GetControlLimitData SPCChartObjects SPC LOWER CONTROL LIMIT LimitValue 10 Me SecondaryChart GetControlLimitData SPCChartObjects SPC UPPER CONTROL LIMIT LimitValue 2 Me SecondaryChart GetControlLimitData SPCChartObjects SPC CONTROL TARGET LimitValue Dim 1cl4 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC_LOWERTHAN LIMIT 0 33 LOL2 LCL2 Dim ucl4 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT l 55 UCL2 UCLZ Me SecondaryChart AddAdditionalControlLimit 1c14 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 Me SecondaryChart AddAdditionalControlLimit ucl4 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 Dim l1cl15 As SPCControlLimitRecord New SPCControlLimitRecord Me ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT bb CEI Cin Dim ucl5 As SPCControlLimitRecord
128. CTimeAttributeControlChart are derived from the SPCChartBase class Class Architecture 47 Typical Batch Variable Control Chart Mean and Range or X Bar R Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 11 30 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 19 40 2 31 24 33 29 27 35 23 29 26 27 33 34 32 36 29 33 29 300 279 324 313 282 352 29 1 302 275 322 316 294 273 308 286 347 30 0 90 0 837 97 1 293 8 845 1055 874 906 824 966 948 882 82 0 925 857 1040 899 SPCBatchVariableControlChart A Batch Variable Control Chart class that uses a CartesianCoordinate system with a numeric based X Axis This class creates MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS EWMA CHART TABCUSUM MA CHART MAMR CHART and MAMS CHART chart types 48 Class Architecture Typical Time Variable Control Chart Individual Range or XR Chart X Bar R Individual Range Individual Range Bar Sigma MultiLimit X Bar R Dynamic Bar R Title Variable Control Chart XR Indivdual Range Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 13 22 13 37 13 52 14 07 14 22 14 37 14 52 15 07 15 22 15 37 15 52 16 07 16 22 16 37 16 52 17 07 17 22 COPY VALUE 32 6 28 1 37 1 32 9 34 1 310 29 7 319 274 37 1 336 36 3 36 7 33 9 35 0 393 384 UCLX 45 5 COPY
129. CTimeVariableControlChart DefaultChartFontString Times this InitSPCTimeVariableControlChart 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 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
130. 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 batchCounter t 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 PERCENT DEFECTIVE PARTS CHART add a new sample record Me ChartData AddNewSampleRecord group timestamp samples Simulate timeincrementminutes minute passing startTime Add ChartObj MINUTE timeincrementminutes batchCounter 1 Next i End Sub SimulateData SPC Attribute Control Charts 281 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 sampl
131. ChartCalendar initialized with current time by default Dim timestamp As ChartCalendar New ChartCalendar Place sample values in array Y 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 SPC Variable Control Charts 155 X Bar Sigma Chart with variable sample size zax Bar Sigma Chart Fraction Defective Parts p chart Percentage Defective Chart p chart Number
132. Control Data and Alarm Classes 116 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 Attribute Control Updating p and np charts Fixed Sample Subgroup Size p chart FRACTION DEFECTIVE PARTS CHART Or PERCENT DEFECTIVE PARTS CHART np chart 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 1 e the sum of the items in the defect categories for a give sample subgroup do NOT have to add up to the number of defective parts for the sample subgroup Every defective part not only can have one or more defects it can have multiple defects of the same defect category The total number of defects for a sample subgroup will always be equal to or greater than the number of defective parts When using p and np charts that display defect category counts as part of the table where N is the numcategori
133. E as you wish give exact copies of the original evaluation SOFTWARE to anyone and distribute the evaluation SOFTWARE in its unmodified form via electronic means Internet BBS s Shareware distribution libraries CD ROMS etc You may not charge any fee for the copy or use of the evaluation SOFTWARE itself You must not represent in any way that you are selling the SOFTWARE itself You must distribute a copy of this EULA with any copy of the SOFTWARE and anyone to whom you distribute the SOFTWARE is subject to this EULA C 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 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 ii limitation You may not rent lease or lend the SOFTWARE You may not use the SOFTWARE to perform
134. EventArgs e public void PrinterSetup ChartView charview if charview null if printobj null printobj new ChartPrint charview else printobj PrintChartView charview printobj DoPrintDialog This routine invokes the chart objects PrintPreviewItem method public void PrintPreview ChartView charview object sender System EventArgs e if charview null if printobj null printobj new ChartPrint charview else printobj PrintChartView charview e printobj PrintPreviewItem sender This routine prints a chart by invoking the chart objects DocPrintPage method public void PrintPage ChartView charview object sender System EventArgs e if charview null if printobj null printobj new ChartPrint charview printobj DoPrintDialog else printobj PrintChartView charview printobj DocPrintPage sender e Visual Basic Imports Imports Imports Imports Imports File and Printer Rendering 347 com quinncurtis chart2dnet com quinncurtis spocchartnet System IO System Text System Drawing Imaging Public Class Forml Inherits System Windows Forms Form Dim histogramplot As FrequencyHistogramUserControll Dim printob As ChartPrint Region Windows Form Designer generated code Public Sub New MyBase New This call is required by the Windows Form Designer InitializeComponent Add any
135. Font DefaultMainTitleFont DefaultSubHeadFont DefaultToolTipFont Public Instance Constructors ParetoChart Public Instance Properties BarAttrib BarDataValue Set Get default font object used for the axes labels and axes titles Set attributes before BuildChart Set Get the default font used in the chart This is a string specifying the name of the font Set Get the default footer font Set attributes before BuildChart Get Set the default chart title font Set attributes before BuildChart Get Set the default chart title font Set attributes before BuildChart Set Get the default font object used for the tooltip Overloaded Initializes a new instance of the ParetoChart class Get the default primary bar attribute object for the bars of the chart Set attributes before BuildChart Get the default numeric label template used to label the values of bar plot of the frequency histogram part of the chart Set Frequency Histograms Pareto Diagrams Probability Charts 339 BarPlot BarWidth CategoryStrings CategoryV alues CoordinateSystem1 CoordinateSystem2 CumulativeFreqDataset Datatooltip DefaultGraphBorder Footer FrequencyDataset GraphBackground LineAttrib LineMarkerPlot LineMarkerPlotDataValue MainTitle PlotBackground ResetOnDraw Scale2StartY Scale2StopY SymbolAttrib attributes before BuildChart Get the histogram bar plot object of the frequency histogram part of the
136. 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 BatehXBarRChart 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 Me Dock DockStyle Fill 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 R
137. If i 10 Then Me ChartData SetControlLimitValues changeControlLimits End If 260 SPC Attribute Control Charts 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 values needed in the calculation this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits If 1 gt L0 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 inittalControlLimits 0 13 0 0 0 27 double changeControlLimits 0 11 0 0 0 25 DoubleArray variableControlLimits this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE y Variable Control Limits updated us
138. L3 VB Set the strings used in the header section of the table Me ChartData Title Fraction Defective p Chart Me ChartData PartNumber 283501 Me ChartData ChartNumber 17 Me ChartData TheOperator B Cornwall Me ChartData PartName Left Front Fender Me ChartData Operation Painting Me ChartData SpecificationLimits Me ChartData Machine 11 Me ChartData Gage Me ChartData UnitOfMeasure Me ChartData ZeroEquals Me ChartData 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 Project Name Project XKYZ for PerQuet SPC Attribute Control Charts 245 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 TitleHeader PartNumberHeader ChartNumberHeader SPartNameHeader SOperationHeader OperatorHeader MachineHeader DateHeader 5SpecificationLimitsHeader 5 GageHeader UnitOfMeasureHeader GZeroEqualsHeader NotesHeader Even though the input header stri
139. Limits Sort the category values and category strings Changing Default Characteristics of the Chart Frequency Histograms Pareto Diagrams Probability Charts 341 EE Formi 10 x Pareto Diagram of Defects MainTile 11 25 2005 4 18 56 PM 0 e T 97 300 100 e YGrid YAxisTitle1 YAxisTitle2 N o B LineMarkerPlot 3 c c S a 50 u 10 YAxisLab1 TRIER YAxis1 a YAxis2 0 0 7 Holes Poor Mix Stains Not Enough Tom Others Component f XAxis Defect Category XAxisLab GraphBackground PlotBackground Once the graph is initialized using the InitParetoChart or one of the ParetoChart constructors you can modify the default characteristics of each graph using these properties For example you can change the color of y axis and the y axis labels using the LineColor property of those objects C void InitializeChart this AddCategoryItem 5 Torn this AddCategoryItem 7 Not Enough nComponent this AddCategoryItem 2 Others this AddCategoryItem 11 Poor Mix this AddCategoryItem 27 Holes this AddCategoryItem 8 Stains this LineMarkerPlot LineAttributes PrimaryColor Color Blue this LineMarkerPlot SymbolAttributes PrimaryColor Color Black this YAxisl LineColor Color Green this YAxisl LineWidth ET this YAxis2 LineColor Color Blue this YAxis2 LineWidth 3 this YAxisLabl LineColor Color DarkMagenta
140. 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 dopu defect opportunities per unit applies only the DPMO chart dpmo defects per million opportunities applies only the DPMO chart calculated as dpmo 1 000 000 numberOfDefects sampleSize dopu up estimate or average of the dpmo values SPC Attribute Control Charts 257 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 UCL p 3 Sqrt p 100 p n Centerline p LCL p 3 Sqrt p 100 p n Number of Defective Parts Also known as the Number Nonconforming or np chart UCL E n p 3 Sgqrt n p 1 p n Center line n p LCL x n p 3 Sgqr n p 1 p n In this
141. N REUS Qs ep IE M uM M E 12 2 Standard SPC Control Charis mPCe Q 14 N amable Sas ans lad aa ae ari easel lei cacidiaut blends 15 Alb Contool 1 1 dc hdd ee a c Cl ner Te c fa aod bd dad 30 FAA Ee D REINO KR 34 Other Important SPC Cat uai rs arida adis a hd tad leds d E rs ed 36 3 Class Architecture of the SPC Control Chart Tools for Net Class Library 41 Maj r Desioen Consi ecd OO Oe enn ne ee Cac duod E Cr 41 SPC Control Chart Tools for Net Class SUPBEDBEY iui einen ated cade tics 43 4 OC Dam D for Net E es UMAR cyclins lp eter o E dd 58 LEE nun zo tor Net Class DUDIOREN e ee ne ones oasis en ae ieian doi sani cade iid 58 Char Me EC WI IRD ons icd D M DIM S UE 59 ERO ich eccrine cae eo aan deena aden 59 Class SPCC crit Bartala s esti a eo bean a cob gra aac a 100 Loma ib tS 131 SPC Control Chart Tools for Net 1 Introduction What s New in Rev 2 3 All of the new features found in the 2 3 version of QCSPCChart were added to QCChart2D primarily a new collection of event based charting classes None of these routines have been used in the QCSPCChart software Event Based Charting A new set of classes have been added in support of new event based plotting system In event based plotting the coordinate system is scaled to the number of event objects Each event object represents an x value and one or more y values The x value can be time based or
142. No Events v mg EE Pointer T k 48 Page Language C AutoEventWireup true CodeBehind Default aspx cs Inherits SPCWebApplicationi Default i a Solution SPCWebAppication1 1 project A Label M sPCwebapplication abi TextBox lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Transitional EN http wwu u3 0rg TR xhtmli DTD xhtmli transition Ep Bl Properties Button Gi E References LinkButton E html xmlns http uvw u3 org 1999 xhtml gt E pee sam 8 Imagebutton 8j head runat server gt EY Web config A Hoe ee title Untitled Page lt title gt E Dropbowntist beni E body 2 lt form id formi runat server gt lt div gt CheckBoxList RadioButton RadioButtonList lt dive lt form gt L lt html gt Buletedlist HiddenField Bi uteral FS Calendar L AdRotator FileUpload A Wizard B xm IC Matiview E Panel 52 PlaceHolder iD View s Substitution Localize Data Validation Navigation Login WebParts HTML kk Pointer lt Input Button sul ta Design html body lt form form gt Solution Explorer Sf Properties Ready Lni3 Col tt chit You do not need to add anything to the Default aspx page Right click on the page and select View Code This brings up the code behind file Default aspx cs for the Default aspx page Add the following references in the using section at the top of the De
143. NumericLabel object used as a template for displaying calculated values in the table StringltemTemplate StringLabel The StringLabel object used as a template for displaying string values in the table SPC Variable Control Charts 169 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 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 170 SPC Variable Control Charts rom MN E Place
144. OTAL DEFECTIVE PARTS CALC Constant value for a total defective parts SPC calculation SPC TOTAL DEFECTS CALC Constant value for a total defects SPC 137 SPC Control Data and Alarm Classes SPC VARIANCE CALC Public Static Shared Methods CalculateHistoryStatistic Public Instance Constructors SPCCalculatedValueRecord Public Instance Properties Calculated Value CalculatedValues CalculationType MostRecentSampledV alues ValidValueFlags ValueDescription Public Instance Methods Copy GetCalculatedValueStatistic IsValueValid SetCalculatedValue 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 Copies the source object Returns the calculated value value based on the data in the calculated historical data array calculatedValues
145. PC Control Data and Alarm Classes 124 VB Public Sub InitializeChart Initialize the SPCTimeVariableControlChart Me InitSPCTimeVariableControlChart charttype numsamplespersubgroup _ numdatapointsinview timeincrementminutes 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 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 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 t
146. PCControlLimitAlarm don t generate alarms in initial data simulation this ChartData AlarmStateEventEnable false SimulateData 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 131 SPC Control Data and Alarm Classes 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 A
147. PCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND Me ChartTable BackgroundColorl Color LightGray Extracted from the TimeVariableControlCharts XBarSigma example program Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 12 21 2005 1 36 55 PM 166 SPC Variable Control Charts this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB Me ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND 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 00 0 0000000000000 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 0 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 100 9 9 76 11 5 9 7 113 108 9 5 11 8 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 140 4 163 8 151 2 147 3 151 4 162 4 Cpk 02 02 03 03 03 03 02 02 02 02 02 02 02 02 02 02 02 Cpm 0 3 103 0 3 0 3
148. Pareto Diagrams Probability Charts 321 double fregLbimits 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 2 5 51 3553 33 274 42 46 43 45 44 53 37 25 38 44 36 40 36 48 56 47 40 58 45 38 32 39 43 31 45 41 37 231 39 33 205450433 50 51 28 51 40 52 43 Initialize histogram this InitFrequencyHistogram freqLimits freqValues Set bar orientation this chartOrientation ChartObj VERT DIR Build chart this BuildChart 7 VB Public Class FrequencyHistogramUserControll Inherits com quinncurtis spcchartnet FrequencyHistogramChart 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 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 5425 59 5 data to be sorted into frequency bins Dim freqValues As Double _ 32 44 4d 42 37 26 Bl 23 334 2 42 46 43 45 44 53 37 25 38 44 36 40 36 48 56 47 40 5B 45 38 32 325 43 31 45 41 Bip Sly S3 S3 20 SO 3235 805 Sly 28 51 40 52 43 Me InitFrequencyHistogram freqLimits freqValues Me BuildChart End Sub InitializeChart End Class
149. 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 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 240 SPC Attribute Control Charts 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
150. ProcessCapabilityControlLimit 1 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpm New ChartAttribute Color Green 3 0 Me PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpm New ChartAttribute Color Yellow 3 0 314 Named and Custom Control Rule Sets Enable Alarm Highlighting The alarm status line above is turned on off using the EnableAlarmStatusValues property We have set it on by default so you will have to turn it off if you don t want it Each sample interval has two small boxes that are labeled using one of several different characters listed below The most common are an H signifying a high alarm a L signifying a low alarm and a signifying that there is no alarm When specialized control rules are implemented using the named rules or custom rules involving trending oscillation or stratification a T O or S may also appear Noalarm condition H High Measured value is above a high limit L Low Measured value falls below a low limit T Trending Measured value is trending up or down O Oscillation Measured value is oscillating alternating up and down S Stratification Measured value is stuck in a narrow band Trending Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero TIME 15 14 1529 1544 155
151. QCSPCChart SPC Control Chart Tools for Net Em Formi 10 x File Exit X Bar R EWMA Chart Variable Control Limits Dynamic SPC X Bar Sigma Individual Range MulisLimitx Bar R Median Range MA Chart Cusum 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 4 17 2008 5 56 42 PM a ee a oe ee 2 NEN TIME 17 11 1741 17 56 18 11 18 26 18 41 18 56 19 11 19 26 19 41 19 56 20 11 20 26 0 41 1 11 MEAN 34 4 28 5 30 7 29 0 29 4 25 4 32 4 32 8 31 4 26 8 27 4 32 6 24 8 27 2 32 3 RANGE 16 0 16 1 16 6 20 3 16 8 16 7 14 8 18 0 16 4 8 7 19 3 12 5 8 1 13 9 18 4 SUM 172 0 pem 147 2 127 2 161 9 164 2 156 9 133 8 137 2 163 2 124 0 135 8 Cpk 02 0 2 0 2 0 2 0 2 02 02 0 2 0 2 02 02 0 2 0 2 0 Cpm 0 2 02 o2 02 02 02 02 02 02 02 02 02 0 2 0 0 2 Ppk 0 2 02 02 02 02 02 02 02 02 02 02 02 02 0 0 2 ALARM 8I 7 o I HEFEHEHEFE HL HEFEEF HEFEEFEEEFH LM NOTES N NiN IN IN viviN iN viN N vI N N CL 35 2 LCL 23 7 40 30 20 10 0 18 00 19 00 20 00 21 00 RBAR 10 0 CL 0 0 40 30 20 10 0 18 00 19 00 20 00 21 00 Contact Information Company Web Site http www quinn curtis com Electronic mai
152. QCSPCChart Visual Csharp examples Asp Net SPCWebApplication2 VB Quinn Curtis DotNet QCSPCChart Visual Basic examples Asp Net VBSPCWebApplication Quinn Curtis DotNet QCSPCChart Visual Basic examples Asp Net VBSPC WebApplication2 ASP Net Programs can run on the built in VS 2005 Server Starting with VS 2005 our ASP Net example programs can run and be debugged locally under the built in web server that ships as part of VS 2005 development system Nothing special needs to be done Just load the project and run Each project is setup to display and run a local copy of a file named HTMLPage1 htm Start by creating your graph in a Windows form based application We strongly suggest that you develop and finalize the details of your chart by first creating it in a simple Windows form based application It is much easier to debug a Net Windows form based application than it is an Asp Net application Once you finalize the look of the graph create the shell of the Asp Net application and move the chart building code from the Windows form based application into the Asp Net application On Demand Creation of QCSPCChart Images from a Server Visual C for Net If you do not already have an application program project create one using the Visual Studio project wizard File New Project Visual C Projects ASP Net Web Application On the left select a project type of Visual C Projects Give the project a unique name our version of
153. R Part No 123456 Chart No 18 Operator T Moosey Machine 11 UCLX 74 015 XBAR 74 001 LCLX 73 988 RBAR 0 023 X Bar R Chart Also known as the Mean or Average and Range Chart The X Bar R chart monitors the trend of a critical process variable over time using a statistical sampling method that results in a subgroup of values at each subgroup interval The X Bar part of the chart plots the mean of each sample subgroup and the Range part of the chart monitors the difference between the minimum and maximum value in the subgroup X Bar Sigma Chart Very similar to the X Bar R Chart the X Bar Sigma chart replaces the Range plot with a Sigma plot based on the standard deviation of the measured values within each subgroup This is a more accurate way of establishing control limits if the sample size of the subgroup is moderately large gt 10 Though computationally more complicated the use of a computer makes this a non issue Standard SPC Control Charts 17 Fixed sample size X Bar Sigma Control chart with header information File Exit XBarR XBar Sigma Individual Range MuliiLimit Bar R Median Range Dynamic SPC Variable Control Limits Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Date 2 21 2008 5 33 43 PM Time 17 33 17 48 18 03 18 18 18 33 18 48 19 03 19 18 19 33 19 48 20 03
154. RAN RULES JURAN RULES AIAG RULES AIAG RULES HUGHES RULES DUNCAN RULES 3g 4 5 6 dj 4 12 8 WECO RULES 1 WECO RULES 2 NELSON RULES NELSON RULES JURAN RULES JURAN RULES AIAG RULES 3 AIAG RULES 4 HUGHES RULES DUNCAN RULES 3 d 5 6 12 8 to set custom rules for the secondary chart since all of the named rules apply to the Primary chart Nothing stops you from doing it though We can t say whether or not it makes sense statistically Creating Custom Rules Sets Based on a Template Add your own custom rule to the rule set using another version of the AddControlRuleRecord method This one specifies a template N out of M values a sigma level to attach the control rule to and a flag on whether or not to display a limit line for the control rule If you have multiple control rules attached to a given sigma level you should only display a control line for one of them SPCChartObjects AddControlRule Method Visual Basic Declaration Public Function AddControlRule _ template As Integer n As Integer m As Integer _ sigmavalue As Double displaylimitline As As Integer C public int AddControlRule Boolean _ Named and Custom Control Rule Sets 307 int template int n int m double sigmavalue bool displaylimitline Parameters template The m value for the n of m condition sigmavalue The sigma value associated with the li
155. RT NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART PERCENT DEFECTIVE PARTS CHART VSS FRACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types Class Architecture 51 Frequency Histograms used in Combination with a SPC Control Chart Rm Formi Static Dynamic Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 16 33 16 48 17 03 17 18 17 33 17 48 60 j 300 200 100 0 15 00 i j j 150 100 50 0 FrequencyHistogramChart A Frequency Histogram checks that the variation in a process variable follows the predicted distribution function normal Poisson chi squared etc The class includes all of the objects needed to draw a complete frequency histogram chart These objects include objects for data a coordinate system titles axes axes labels grids and a bar plot 52 Class Architecture Pareto Chart i Form1 ie xl Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 100 20 2 A a S a 4 50 i z 10 0 0 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category ParetoChart The Pareto Diagram is special type of bar graph combined with a line plot plotted in a chart that uses two different y axis scales The bar graph scale is a frequency scale that measures the numb
156. RTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART numcategories In Attribute Control Charts this value represents the number of defect categories used to determine defect counts numsamplespersubgroup In an Attribute Control chart it represents the total sample size per sample subgroup from which the defect data is counted numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time SPC Attribute Control Charts 233 timeincremenminutes Specifies the normal time increment between adjacent subgroup samples The image below further clarifies how these parameters affect the attribute control chart js Formi Tigi E Simple Attibute Control Chait Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 timeincrementminutes 30 Operator S Kafka Machine 1 Time 12 31 13 01 13 31 14 01 14 31 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 numcategories 5 0 0 0 NO DEFECTIVE 12 0 1 6 5 8 7 12 9 12 2 0 6 3 12 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 0 3 numdatapointsinview 17 UCLP 0 29 FRACT DEF Once the Init routine is called the chart can b
157. Record primarytarget 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 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 T primarylowercontrollimit ControlLimitValue 0 0 primarylowercontrollimit ControlLimitText LCL upper control limit primary chart Dim primaryuppercontrollimit As SPCControlLimitRecord _ ChartData GetControlLimitRecord
158. Record timestamp samples if updateCount 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 gt 50 Then After 50 sample groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart 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 256 SPC Attribute Control Charts for int i0 i 107 at 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 Fraction Defective Parts Number Defective Parts Number Defects Number Defects Per Unit Introduction to Statistical Quality Control by Douglas C
159. SPC Attribute Control Charts 277 Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals Defect 1 Defect 3 FRACT DEF The example above uses the ALARM HIGHLIGHT TEXT mode Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals TIME 5 19 5 49 6 19 6 49 7 19 7 49 8 19 11 19 11 49 12 19 12 49 13 19 Defect 1 5 3 1 2 1 2 0 3 0 5 3 0 3 5 6 Defect 3 3 3 9 3 0 8 1 5 1 4 4 2 4 3 4 FRACT DEF 0 160 0 240 0 260 0 120 0 040 0 240 0 020 0 200 0 040 0 180 0 180 0 260 0 140 0 260 0 220 ALARM es ST 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 Attribute Control Chart Both the SPCTimeAttributeContolChart and SPCBatchAttributeControlChart derive from the SPCChartBase and as a result the two classes are very similar and share 278 SPC Attribute Control Charts 95 of all properties in common Creat
160. 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 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 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 See the example program BatchVariableControlCharts BatchXBarRChart 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 221 Batch Control Chart X Axis User Defined String Labeling Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt peration Threading 00 Operator J Fenamore Machine 11 Date 2 25 2009 10 34 27 AM TIME 10 34 10 49 11 04 11 19 11 34 11 49 12 04 12 19 12 34 12 49 13 04 13 19 13 34 13 49 Sample 1 37 1 27 2 33 1 23 5 23 8 26 6 32 7 37 2 36 6 23 2 24 9 32 1 29 9 3
161. SPEC_LIMIT 18 3 L SPEC new ChartAttribute Color Green 3 0 Me PrimaryChart AddSpecLimit SPCChartObjects SPC_UPPER_SPEC_LIMIT 39 1 H SPEC new ChartAttribute Color Yellow 3 0 The second AddNumericControlLimit creates a limit which monitors the value of one of the charts SPCCalculatedValueRecord object values This is what you would use if you wanted to monitor a subgroup mean range sigma against some arbitrary control limit since in the appropriate charts the subgroup mean range and sigma are SPCCalculatedValueRecord objects The type and ordering of the SPCCalculatedValueRecord records is unique to each chart type Below is a list of the chart types and the calculated values for each MEAN RANGE CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC_RANGE CALC 2 SPCCalculatedValueRecord SPC SUM CALC MEDIAN RANGE CHART 0 SPCCalculatedValueRecord SPC MEDIAN CALC 1 SPCCalculatedValueRecord SPC_RANGE CALC MEAN SIGMA CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC STD DEVIATION CALC 2 SPCCalculatedValueRecord SPC SUM CALC MEAN SIGMA CHART VSS 0 SPCCalculatedValueRecord SPC MEAN VSS CALC 1 SPCCalculatedValueRecord SPC STD DEVIATION VSS CALC 310 Named and Custom Control Rule Sets 2 SPCCalculatedValueRecord SPC SUM CALC MEAN VARIANCE CHART 0 SPCCalculatedValueRecord SPC MEAN CALC 1 SPCCalculatedValueRecord SPC VARIANCE CALC 2 SPCCalculatedValueRecord SPC
162. Shared Fields CUSTOM ATTRIBUTE CONTROL CHART Chart type constant Custom SPC Attribute Control Chart unused CUSTOM VARIABLE CONTROL CHART Chart type constant Custom SPC Variable Control Chart not used DATALOG FILE ALL Datalog flag specifying that all available items should be logged to the file DATALOG FILE BATCH NUMBER Datalog flag specifying that the batch number should be logged to the file DATALOG FILE CALCULATED VALUES Datalog flag specifying that the SPC Control Data and Alarm Classes 102 DATALOG FILE COLUMN HEADS DATALOG FILE CONTROL LIMIT VALUES DATALOG FILE NOTES DATALOG FILE SAMPLED VALUES DATALOG FILE TIME STAMP DATALOG USER STRING ERACTION DEFECTIVE PARTS CHART HEADER STRINGS LEVELO HEADER STRINGS LEVELI HEADER STRINGS LEVEL2 HEADER STRINGS LEVEL3 INDIVIDUAL RANGE CHART calculated values should be logged to the file Datalog flag specifying that the column heads should be logged to the file Datalog flag specifying that the control limit values should be logged to the file Datalog flag specifying that the notes should be logged to the file Datalog flag specifying that the sampled values should be logged to the file Datalog flag specifying that the time stamp should be logged to the file Datalog flag specifying that the file prefix row ist NOT to be included Using this option will make the file incompatible with the SPCControlChartData routines that rea
163. Static Shared Fields SPC_GREATERTHAN LIMIT Specifies the alarm is a greater than alarm SPC LOWERTHAN LIMIT Specifies the alarm is a lower than alarm SPC NOTA LIMIT Specifies the limit is not an alarm just a 129 SPC Control Data and Alarm Classes Public Instance Constructors SPCControlLimitRecord Public Instance Properties AlarmDisplay AlarmEnable AlarmMessage AlarmState Calculated ValueSrc ControlLimitText ControlLimitType ControlLimitValue ControlLimitValues Hysteresis Value PrevAlarmState SPCProcess Var SymbolColor TextColor Public Instance Methods CheckAlarm Clone Copy ErrorCheck GetAlarm GetControlLimitHistory Value SetControlLimitValue value Overloaded Initializes a new instance of the SPCControlLimitRecord class Get Set the alarm display flag Get Set the alarm enable flag Get Set the current alarm message Get Set the alarm state true 1f the last call to CheckAlarm show that the process variable currently in alarm Set Get a reference to the SPCCalculatedValueRecord object associated with the control limit Get Set the Normal alarm message Get Set the alarm type SPC NOTA LIMIT SPC LOWERTHAN LIMIT or SPC GREATERTHAN LIMIT Get Set the alarm limit value Get Set the controlLimitValues array Get Set the alarm hysteresis value Get Set the previous alarm state Get Set the spcDataVar object Get Set the alarm symbol color Get Set the alarm text color
164. T 3 first followed by the next outer most limits SPC UPPER CONTROL LIMIT 2 and SPC LOWER CONTROL LIMIT 2 followed by the inner most control limits SPC UPPER CONTROL LIMIT 1 and SPC LOWER CONTROL LIMIT 1 This way the fill of the inner limits will partially cover the fill of the outer limits creating the familiar striped look you want to see UCL S3 68 82 Target 64 05 LCL S3 59 29 50 40 30 20 10 0 17 00 18 00 19 00 20 00 SIGMA NWeknanawod 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 196 SPC Variable Control Charts 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 Starting with Revision 3 0 we have added additional industry standard rules to the software Nelson AAIG Juran Hughes Gitlow Westgard and Duncan In addition you can mix and match rules from the different rule sets and you can create your own custom rules using o
165. 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 this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE this SecondaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE 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 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 l
166. The line plot scale is a cumulative percentage scale Pareto Chart LO 99 uim Pareto Diagram of Defects 10 13 2005 4 43 17 PM 30 20 9 o 3 c c 3 z S u amp 10 Holes Poor Mix Stains NotEnough Torn Others Component Defect Category The chart is easy to interpret The tallest bar the left most one in a Pareto diagram is the problem that has the most frequent occurrence The shortest bar the right most one is the problem that has the least frequent occurrence Time spend on fixing the biggest problem will have the greatest affect on the overall problem rate This is a simplistic view of actual Pareto analysis which would usually take into account the cost effectiveness of 336 Frequency Histograms Pareto Diagrams Probability Charts 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 public class ParetoPlotUserControll com quinncurtis spcchartnet ParetoChart lt summary gt Required designer variable lt summary gt private System ComponentModel C
167. TimeGroupDataset TimeSpan objects or milliseconds in place of the x or y values A subclass of SimpleDataset it adds a third dimension z values to the x and y values of the simple dataset Represents group data where every x value can have one or more y values A subclass of GroupDataset it uses ChartCalendar dates a wrapper around the System DateTime value class as the x values and floating point numbers as the y values ElapsedTimeGroupDataset A subclass of GroupDataset it uses TimeSpan objects or Scale Classes ChartScale LinearScale LogScale TimeScale ElapsedTimeScale milliseconds as the x values and floating point numbers as the y values QCChart2D Class Summary 61 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 ofa ChartScale derived object is to convert a dimension from the current pAysical 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 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
168. USumChart and MiscBatchBasedControlCharts CUSumChart2 Extracted from MiscTimeBasedControlCharts CUSumChart C int charttype SPCControlChartData TABCUSUM CHART double processMean 10 double kValue 0 5 double hValue Sr 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 D 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 Extracted from MiscTimeBasedControlCharts CUSumChart2 C int charttype SPCControlChartData TABCUSUM_CHART double processMean 10 double kValue Ono double hValue De Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement this ChartData CusumHValue hValue this ChartData CusumKValue kValue 188 SPC Variable Control Charts this ChartData ProcessMean processMean VB Private charttype As Integer SPCControlChartData
169. VALUE ABS RANGE SPCTimeVariableControlChart A Variable Control Chart class that uses a TimeCoordinate system with a time based X Axis This class creates MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS EWMA CHART TABCUSUM MA CHART MAMR CHART and MAMS CHART chart types Typical SPCBatchCusumControlChart with alarm limits Class Architecture 49 Typical Batch Attribute Control Chart Fraction Defective or p Chart EBlFormi xi Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 We 9 PUS FRACT DEF SPCBatchAttributeControlChart A Batch Attribute Control Chart class that uses a CartesianCoordinate system with a numeric X Axis This class creates PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART SPC NUMBER DEFECTS PER MILLION CHART PERCENT DEFECTIVE PARTS CHART VSS FRACTION DEFECTIVE PARTS CHART VSS NUMBER DEFECTS PERUNIT CHART VSS chart types 50 Class Architecture Typical Time Attribute Control Chart Fraction Defective or p Chart E Form1 ini x SPCTimeAttributeControlChart An Attribute Control Chartclass that uses a TimeCoordinate system with a time based X Axis This class creates PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHA
170. Y YOU 10 U S GOVERNMENT RESTRICTED RIGHTS The SOFTWARE is provided with RESTRICTED RIGHTS Use duplication or disclosure by the Government is subject to restrictions as set forth in subparagraph c 1 11 of The Rights in Technical Data and Computer SOFTWARE clause of DFARS 252 227 7013 or subparagraphs c 1 and 2 of the Commercial Computer SOFTWARE Restricted Rights at 48 CFR 52 227 19 as applicable Manufacturer is Quinn Curtis Inc 18 Hearthstone Dr Medfield MA 02052 USA 11 MISCELLANEOUS If you acquired 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 Lo NN hae aint ia neat es cher naa gente eat RSE IC ENA E T e p 1 Whats New m Rer i s IL LL M en 2 New Features found in the 2 1 version of OCSPCChart sc c sesessesersssasssssssneneostanacs 2 Directory Str ct re of OCSPC Chart Tor lel sie cia bono ilb e vb p mia ta erii 9 ee Critical Note j Runmne the Example Prostams s ac sec 11 Chapter NU
171. YRange 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 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 Process Capability Ratios and Process Performance Indices SPC Variable Control Charts 159 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
172. a AddNewSampleRecord override that has the batch number batchCounter below as the first parameter Even though a time stamp value is also used in the AddNewSampleRecord method it is not used in the actual graph Instead it is used as the time stamp for the batch in the table portion of the chart The following code is extracted from the Batch VariableControlChart BatchDynXBarSigmaChart example program 218 SPC Variable Control Charts Batch XBar R Batch Individual Range Batch Dyn Bar Sigma Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 18 12 33 12 48 13 03 13 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 32 25 27 32 29 29 23 24 35 28 31 26 31 C private void SimulateData batch number for a given sample subgroup int batchCounter 0 for int i0 i lt 200 Ix 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
173. 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 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 DataLogUserString DateHeader DateString DefaultDefectRowHeaderPrefix DefaultSampleRowHeaderPrefix DefectiveDecimalPrecision Gage GageHeader Machine MachineHeader NotesHeader NotesMessage NotesToolTips NumberSamplesValueRowHeader NumCalculatedValues NumRecordsPerChart NumSampleCategories Operation OperationHeader OperatorHeader PartName PartNameHeader PartNumber PartNumberHeader PrimaryCalculatedVariableIndex SPC Control Data and Alarm Classes 106 DATALOG FILE TIME STAMP DATALOG FILE SAMPLED VALUES DATALOG FILE CALCULATED VALUES DATALOG FILE CONTROL LIMIT VALUES DATALOG FILE NOTES DATALOG FILE COLUMN HEADS The dataLogUserString is output as the second line in a datalog file if the DATALOG USER STRING flag is set in dataLogFlags Set Get the header for the dateString field Set Get data table date string Set Get the
174. ab TextFont new Font Times 10 FontStyle Regular 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 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 calculated values in the table StringltemTemplate StringLabel The StringLabel object used as a template for displaying string values in the table NotesItemTemplate NotesLabel The NotesLabel object used as a te
175. 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 batch 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 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 216 SPC Variable Control Charts int timeincrementminutes 15 public BatchXBarRChart This call is required by the Windows Forms
176. ader TIME TIME row header alarmStatusValueRowHeader ALARM ALARM row header numberSamplesValueRowHeader NO INSP NO INSP row header titleHeader Title Title field caption partNumberHeader Part No Part number field caption chartNumberHeader Chart No Chart number field caption partNameHeader Part Name Part name field caption operationHeader Operation Operation field caption operatorHeader Operator Operator field caption machineHeader Machine Machine field caption dateHeader Date Date field caption specificationLimitsHeader Spec Limits Spec limits field caption gageHeader Gage Chart number field caption unitOfMeasureHeader Units Chart number field caption zeroEqualsHeader Zero Equals Chart number field caption defaultMean MEAN MEAN Calculated value row header defaultMedian MEDIAN MEDIAN Calculated value row header defaultRange RANGE RANGE Calculated value row header defaultVariance VARIANCE VARIANCE Calculated value row header defaultSigma SIGMA SIGMA Calculated value row header defaultSum SUM SUM Calculated value row header defaultSampleValue SAMPLE VALUE SAMPLE VALUE alculated value row header defaultAbsRange ABS RANGE ABS RANGE Calculated value row header defaultMovingA verage MA defaultCusumCPlus WC defaultCusumCMinus mcr defaultEWMA EWMA def
177. ader UnitOfMeasure UnitOfMeasureHeader ZeroEquals ZeroEqualsHeader Public Instance Methods AddNewSampleRecord Set Get the number of samples in a sample sub group for a Variable Control chart Set Get index in the calculatedValues array for the secondary calculated value data Set Get the control chart type use one of the SPCControlChartData chart type constants MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS MEAN VARIANCE CHART INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART TABCUSUM CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS PER MILLION CHART Set Get data table specification limits string Set Get the header for the specificationLimits field Set Get data table operator string Set Get the time stamp for the most recent sample data added to the class The data table time value row header Set Get data table title string Set Get the header for the title field Set Get data table unit of measure string Set Get the header for the unit of measure field Set Get data table zero equals string Set Get the header for the zeroEqulas field Overloaded Add a new sample record with notes to a time based SPC chart that plots variable control limits AppendCurrentRecordValuesToDataLog This methods will create
178. ader 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 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 x 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 for related chart objects and if you change them they need to be set before
179. al different ways You can trap the alarm condition using an event delegate log the alarm to the notes log highlight the data point symbol in the chart where the alarm occurs display an alarm status line in the data table or highlight the entire column of the sample interval where the alarm occurs 28 Standard SPC Control Charts Change the color of a data point that falls outside of alarm limits 40 30 20 10 0 40 30 20 10 0 2 00 3 00 4 00 5 00 Highlight the column of the sample interval where the alarm occurs Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 1 39 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 Semper 3 ma EM 5 30 v oo o BH Sample 1 19 24 25 37 MEN 4 30 Sempes2 33 ENN ss 05 26 20 22 MMM 28 23 19 309 Sample 3 32 32 34 MEM 21 21 31 o3 41 MEAN 27 8 MEN 304 26 7 31 0 M348 258 308 269 32 1 E 312 295 284 292 304 SUM 139 1 151 8 133 5 155 0 MMM 173 8 129 1 153 8 134 4 160 3 JBM 155 9 147 5 141 9 146 0 152 2 Standard SPC Control Charts 29 An alarm status line highlights an alarm condition and lets you know when chart the primary or secondary the alarm occurs in Tm Form J lx Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 TIME 15 29 15 44 15 59 16 14 16 29 16 44 16 59 17 14 17 29 17 44 17 59 18 14 18 29 18 44 18 59 19 14 19 29 Sompes 37 2 4i 29 3 19 38 33 I 20 21 28 34 3 1 X 3
180. alue Tables Standard worksheets used to gather and plot SPC data consist of three main parts The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important information specific to the chart The second part is the measurement data recording and calculation section organized as a table where the sample data and calculated values are recorded in a neat readable fashion The third part plots the calculated SPC values for the sample group variables as a SPC chart The chart includes options that enable the programmer to customize and automatically include header information along with a table of the measurement and calculated data in the SPC chart The following properties enable sections of the chart header and table EnableInputStringsDisplay EnableCategory Values EnableCalculated Values EnableTotalSamples Values EnableNotes EnableTotalSamples Values EnableTimeValues EnableProcessCapability Values SPC Variable Control Charts 157 XBarF X Bar Sigma Individual Range Mult LimitBar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 EnablelnputStringsDisplay true es Time 15 20 15 35 15 50 16 05 16 20 16 35 16 50 17 05 17 20 17 35 17 50 18 05 18 20 2 35 34 30 24 29 a 33 29 23 27 34 EnableCategoryValues true MEAN 280 30 9 30 5 25 3 T 304 335 26 8 29 2 28 5
181. ange EWMA MA or CuSum using the variable control charts SPC Variable Control Charts 217 InitSPCBatchVariableControlChart or InitSPCBatchCusumControlChart if you are creating a cusum chart initialization routine Note that the X Bar Sigma chart with a variable subgroup sample size is initialized using InitSPCBatchVariableControlChart with a charttype value of MEAN SIGMA CHART VSS X Bar Sigma charts with sub groups that use a variable sample size must be updated properly SPCBatchVariableControlChart InitS PCBatchVariableControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub InitSPCBatchVariableControlChart _ ByVal charttype As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ C public void InitSPCBatchVariableControlChart int charttype int numsamplespersubgroup int numdatapointsinview Parameters charttype The SPC chart type parameter Use one of the SPCControlChartData SPC chart types MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART or TABCUSUM CHART numsamplespersubgroup Specifies the number of samples that make up a sample subgroup numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time Update the chart data using a ChartDat
182. ange Chart is used when the sample size for a subgroup is 1 This happens frequently when the inspection and collection of data for quality control purposes is automated and 100 of the units manufactured are analyzed It also happens when the production rate is low and it is inconvenient to have sample sizes other than 1 The X part of the control chart plots the actual sampled value not a mean or median for each unit and the R part of the control chart plots a moving range calculated using the current value of sampled value minus the previous value Typical EWMA Chart using Batch Sampling 20 Standard SPC Control Charts ax EWMA Chart MA Chart CUSum Chart CUSum Chart 2 Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 4 2008 3 18 25 PM Time 15 18 15 48 16 18 16 48 17 18 17 48 18 18 18 48 19 18 19 48 20 18 20 48 21 18 21 48 22 18 22 48 23 18 Sample 0 9 45 7 99 929 11 66 12 16 10 18 804 1146 920 10 34 9 03 1147 10 51 39 40 10 08 937 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 45 7 99 9 29 11 66 12 16 10 18 804 1146 9 20 10 34 903 1147 10 51 940 10 08 9 37 10 62 x 8 EWMA Chart Exponentially Weighted Moving Average The EWMA chart is an alterna
183. 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 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 286 SPC Attribute Control Charts Header HeaderFont HistogramStartPos HistogramOffset MaxY MinY ParentSPCChartBase PlotBackground PlotMeasurementValues PPhysTransforml ProcessVariableData SampledDataData SubHead SubheadFont TableFont TextTempl
184. ansitionEventEnable true 133 SPC Control Data and Alarm Classes 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 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 private void SPCControlLimitAlarm object sender SPCControlLimitAlarmArgs e VB Private Sub SPCControlLimitAlarm ByVal sender As Object _ ByVal e As SPCControlLimitAlarmArgs End Sub SPCControlLimitAlarm SPC Control Data and Alarm Classes 134 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 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 SPCSampledVal
185. application resulting in an exe file you can run from Windows you are instead creating a Windows Control Library which results in a DLL file What you end up with is a user 390 Creating SPC Charts in Windows Applications control not an executable program The user control must be referenced in a specific way in an HTML file before you can display it The basic steps for creating the ChartView derived control are described below Start by creating a Windows Control Library project using the Visual Studio project wizard File New Project Visual C Projects Windows Control Library On the left select a project type of Visual C Projects Give the project a unique name our version of this example is WindowsControlLibrary1 You will end with the shell of a UserControl class with the name UserControll You will modify UserControll and turn it into an object derived from our ChartView object New Project Project types Visual C Windows Templates isual Studio installed templates Smart Device Starter Kits DocProject Remote Tools Framework Web E Other Languages Al Windows Application 7j Windows Control Library i Console Application My Templates se Search Online Templates Class Library 8 Web Control Library c8 Empty Project Other Project Types Platform Builder For CE 6 0 4 project For creating controls to use in Windows applications v Browse v Create dir
186. arPlot SimpleScatterPlot SimpleLineMarkerPlot SimpleVersaPlot GroupPlot ArrowPlot BubblePlot CandlestickPlot CellPlot ErrorBarPlot FloatingBarPlot FloatingStackedBarPlot GroupBarPlot HistogramPlot LineGapPlot MultiLinePlot OHLCPlot StackedBarPlot StackedLinePlot Box WhiskerPlot GroupVersaPlot PieChart PolarPlot PolarLinePlot PolarScatterPlot AntennaPlot AntennaLinePlot AntennaScatterPlot AntennaLineMarkerPlot Background ChartImage ChartShape ChartSymbol 98 SPC Control Data and Alarm Classes Marker ChartZoom SPC Control Data and Alarm Classes 99 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 table the raw sample data used to prepare the chart the calculated chart values used in the chart and the SPC control limits It contains array lists of SPCSampledValueRecord SPCControlLimitRecord and SPCCalculatedValueRecord objects The SPCGeneralizedTableDisplay class manages ChartText objects used to display data in the table portion of the SPC chart Class SPCControlChartData ChartObj SPCControlChartData The SPCControlChartData class is the core data storage objec
187. arPlot 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 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 84 QCChart2D Class Summary 270 AntennaLinePlot AntennaScatterPlot AntennaLineMarkerPlot AntennaAnnotation 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 QCChart2D Class Summary 85 Pie and
188. art 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 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 TnitParetoChart _ ByVal categoryitems As Double _ ByVal stringitems As String _ public void InitParetoChart double categoryitems string stringitems ae Parameters categoryitems The values for each category in the Pareto chart stringitems The strings identifying each category in the Pareto chart You can add the category item values and string item strings one by one using the AddCategoryItem method ParetoChart AddCategoryItem Method Add an item to the categoryValues and categoryStrings arrays 338 Frequency Histograms Pareto Diagrams Probability Charts VB Public Sub AddCategoryItem _ ByVal itemfreq As Double _ ByVal itemstring As String public void AddCategorylItem 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 DefaultAxisLabelsFont DefaultChartFontString DefaultFooter
189. art 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 gt 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 Individual Range Chart Also known as the X R Chart 144 SPC Variable Control Charts The Individual Range Chart is used when the sample size for a subgroup is 1 This happens frequently when the inspection and collecti
190. artOrientation CoordinateSystem Datatoolti Footer FrequencyHistogramPlot FrequencyLimits Frequency Values GraphBackground GraphBorder HistogramDataset MainTitle PlotBackground ResetOnDraw SubHead XAxis XAxisLab XAxisTitle XGrid YAxis YAxisLab Overloaded Initializes a new instance of the FrequencyHistogramChart class Set to true and a normal curve with the same area as the histogram is plotted in the chart Get the primary bar attribute object for the bars of the histogram Get the numeric label template object used to place numeric values on the bars Sets the fill color for the chart object Sets the line color for the chart object Sets the line width for the chart object Get Set the orientation of the histogram bars in the chart Get the coordinate system object for the histogram Get the data tooltip object for the chart Get the footer object for the chart Get the histogram plot object Get the DoubleArray object that holds the limit values for the frequency bins of the histogram Get the DoubleArray object that holds the values that are counted with 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 Set Get True the ChartView object list is cleared with each redraw Get th
191. artY Range Copy Draw InitSPCChartBase IsTimeScale MakeControlLinePlot RebuildChartUsingCurrentData RescaleGraphsToScrollbar ResetSPCChartData UpdateControlLimitLabel UseNoTable SPC Variable Control Charts 153 the primary chart using an algorithm appropriate to the SPC chart type Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the primary SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Overloaded Copies the source object Overrides the Draw method of the underlying ChartView class so that the scroll bar can be properly repositioned if the size of the window changes The graphics context the chart is drawn to This initialization method initializes the most important values in the creation of a 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 Rebuild the graph taking into account the most recent data values Rescale primary and secondary charts based on the position of the value of the scroll bar The thumb position of the scroll bar Res
192. at is because in the software we implement all rules as simple single condition rules The first rule in all of the named rule sets is implemented as two rules a single point greater than 3 sigma and a single point less than 3 sigma And WECO and Nelson rules 2 and 3 are implemented as four rules two N out of M greater than x sigma condition limits and two N out of M less than x sigma condition limits A complete cross reference to the named rules listed below and our own rule number system is found in Table 1 This is important because when you try to access a particular named rule within the software you must use our rule number system Basic Rules The Basic Rules are the default rules for all of the SPC charts They correspond to the 3 sigma rules used by almost every industry standard SPC chart implementation 1 One of one point is outside of 3 sigma control limits Nelson Rules The Nelson rules are almost identical to the combination of the WECO Runtime and Supplemental Rules The only difference is in Rule 74 4 Nine out of the last nine points plot on the same side of the center line or target value AIAG Rules 1 One of one point is outside of 3 sigma control limits 2 Seven out of seven are above or below center line 3 Seven points in a row increasing 4 Seven points in a row decreasing 292 Named and Custom Control Rule Sets Juran Rules Qe I grum o 9 One of one point is outside of 3 sigma
193. ata 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 lt 0 1 Then make a note on every tenth item on average notesstring Note for sample subgroup i ToString _ This sample is flagged as having some sort of problem Else notesstring End If Add the new sample subgroup to the chart 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 the AddNewSampleRecord method call generates an alarm event In the alarm event processing routine you can add code that adds a special note to the sample subgroup that generated the alarm Use the ChartData SetNotesString or ChartData AppendNotesString m
194. ate TimelIncrementMinutes ToolTipFont ToolTipSymbol XAXiS XAxisLab XGrid XValueTemplate Y Axisl Y Axis2 Y AxisLab 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 Get the array of the sample data Get a reference to the charts subhead Set Get the font used for the chart subhead Set Get the font used for the data table Get Set the text template for the data tooltip Get Set the increment between adjacent samples of charts that use a numeric x scale Set Get tooltip font Get a reference to the charts tooltip symbol Get a reference to the charts x axis Get a reference to the charts x axis labels Get a refer
195. atedValue ToString Dim message As String alarm AlarmMessage Dim timestamp As ChartCalendar spcData TimeStamp Dim timestampstring As String timestamp ToString Dim notesstring As String An timestampstring message _ do m p qu amp 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 LCLX 73 983 If you want the actual sample data plotted along with the mean or median of the sample data set the PrimaryChart PlotMeasurementValues to true 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 206 SPC Variable Control Charts Enable the Chart ScrollBar RBar HI x Bar Sigma Individual Range MultLimit X Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machine 11 Time 8 23 8 38 8 53 9 08 9 28 9 38 9 53 10 08 10 23 10 38 10 53 11 08 11 23 11 38 11 53 12 08 12 23 9 00 10 00 11 00 12 00 9 00 10 00 11 00 12 00 Scrollbar Set the EnableScrollBar property true to enable the chart scr
196. ator S Kafka Machine Date 12 21 2005 3 01 47 PM Time 15 01 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 21 01 21 31 22 01 22 31 23 01 Scratch 1 4 0 0 0 0 1 0 1 0 0 2 1 0 1 2 3 Burr 2 3 0 0 0 0 4 0 1 1 0 3 2 0 0 4 5 Dent 4 5 0 3 1 0 0 0 1 1 0 4 2 1 1 0 4 Seam 4 5 0 2 1 0 2 0 1 1 0 1 2 1 1 0 2 Other 1 1 1 2 1 0 5 1 1 1 1 1 0 0 2 4 2 NO DEFECTIVE 12 12 1 6 3 0 12 1 2 4 1 9 6 2 4 10 11 DEF 24 0 240 20 120 60 00 240 20 40 80 20 180 120 40 80 200 22 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 this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND VB Me ChartTable TableBackgroundMode _ SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND Title Variable Control Chart X Bar amp R i 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 100 99 76 11 5 9 7 11 3 108 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 140 4 163 8 151 2 147 3 151 4 162 4 Cpk 02 02 0
197. aultPercentDefective 96 DEF defaultFractionDefective FRACT DEF defaultNumberDefective NO DEF defaultNumberDefects NO DEF defaultNumberDefectsPerUnit NO DEF UNIT defaultNumberDefectsPerMillion DEF MILLION defaultPBar PBAR defaultAttributeLCL EGP defaultA ttributeUCL EICLP defaultAbsMovingRange MR Moving Range Calculated value row header defaultAbsMovingSigma MS Moving Sigam Calculated value row header defaultX X Default string used to label centerline value of I R chart defaultXBar XBAR Default string used to label centerline value for XBar chart defaultRBar RBAR Default string used to label centerline value for Range chart defaultTarget Target Default string used for target defaultLowControlLimit LCL Default string used to label low control limit line defaultLowAlarmMessage Low Alarm Default string used for low alarm limit message defaultUpperControlLimit UCL Default string used to label high control limit line defaultHighAlarmMessage High Alarm Default string used for high alarm limit message defaultSampleRowHeaderPrefix Sample Row header for Sample rows defaultDefectRowHeaderPrefix Defect 7 Row header for Defect rows batchColumnHead Batch Default string used as the batch number column head in the log file timeStampColumn Time Stamp Default string used as the time stamp column head
198. ays while the mouse button is held down as the data tooltips do set the ChartData NotesToolTips ToolTipMode property to NotesToolTip MOUSEDOWN_TOOLTIP as in the example below 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 Enable Alarm Highlighting 212 SPC Variable Control Charts EnableAlarmStatusValues EWMA Chart Variable Control Limits Dynamic SPC Bar Sigma Individual Range MultiLimit Bar A Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero 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 17 6 13 6 14 9 12 9 168 87 218 216 179 18 7 120 13 8 12 8 19 8 15 4 10 0 17 1 0 252 0 249 0 250 0 247 0 245 0 244 0 242 0 241 0 241 0 240 0 241 0 242 0 241 0 239 0 242 0 246 0 246 MEAN 14 00 15 00 16 00 17 00 RANGE 40 30 20 10 0 14 00 15 00
199. 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 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 M X 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 sub
200. be sorted into frequency bins Dim freqValues As Double _ igi 349 S45 322 ZTT L162 218 134 133 476 323 367 133 354 245 434 476 352 185 144 165 105 461 386 2063 476 304 I9D Baty 402 S27 2929 2239 SIS 231 218 272 215 18995 S38 DOS LUUD L37 S829 DIS 380 410 206 122 238 Frequency Histograms Pareto Diagrams Probability Charts 323 lolx File Exit Frequency Histogram of Selected Data 15 o Frequency Measurements Once the Init routine is called the chart can be further customized using the properties and methods below Public Static Shared Properties DefaultAxisLabelsFont DefaultChartFontString DefaultDataValueFont DefaultFooterFont DefaultMainTitleFont DefaultSubHeadFont DefaultToolTipFont Get Set the default font used for the axes labels and axes titles Set Get the default font used in the chart This is a string specifying the name of the font Get Set the default font used for the numeric values labeling the bars Get Set the font used for the chart footer Get Set the font used for the main title Get Set the font used for the main title Set Get the default font object used for the tooltip 324 Frequency Histograms Pareto Diagrams Probability Charts Public Instance Constructors FrequencyHistogramChart Public Instance Properties AutoNormalCurve BarAttrib BarDataValue BarFillColor BarLineColor BarLineWidth Ch
201. belMode 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 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 Parts p Chart Part No 321 Chart No 19 _ Part Name Pre paint touchup Operation 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 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 22 0 220 22 0 0 0 0 0 10 0 2 0 ALARM 30 PBAR 14 29 DEF 10 CLP 0 00 EC292 EC980 EC428 EC770 EC644 EC803 EC317 EC308 EC580 EC918 EC891 EC610 EC827 psu ss Ti Percent Defective Parts Chart using user defined string labeling of the x axis SPC Attribute Control Charts 283 Set the x axis labeling mode using the overall charts XAxisStringLabelMode property setting it SPCChartObjects AXIS LABEL MODE STRING C enable scrol
202. ber and other important information specific to the chart The second part is the measurement data recording and calculation section organized asa table recording the sample data and calculated values in a neat readable fashion S The third part plots the calculated SPC values as a SPC chart The chart includes options that enable the programmer to customize and automatically include header information along with a table of the measurement and calculated data in the SPC chart The following properties enable sections of the chart header and table EnableInputStringsDisplay EnableCategory Values EnableCalculated Values EnableTotalSamples Values EnableNotes EnableTimeValues The example code below is extracted from the TimeAttributeControlCharts SimpleAttributeControlChart example program 242 SPC Attribute Control Charts FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 160 0 120 0 160 0 220 0 EnableTotalSamplesValues true N N N N N N N NOTES EnableNotes true N N N N N FRACT DEF 13 00 18 00 C wold InitializeChart Initialize the SPCTimeAttributeControlChart this InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table his ChartData Title Fraction Defective p Chart his ChartData PartNumber 321 his ChartData ChartNumber 19 his Char
203. between the rows and columns of the table and the alternating stripe used as a background for the table 56 Class Architecture SPC Control Alarms SPCControlLimitAlarmArgs This class passes event information to a SPCControlLimitAlarmEventDelegate alarm processing delegate SPCControlLimitAlarmEventDelegate A delegate type for hooking up control limit alarm notifications Class Architecture 57 4 QCChart2D for Net Class Summary This chapter is a summary of the information in the QCChart2DNetManual PDF file It is not meant to replace that information Refer to that manual for detailed information concerning these classes QCChart2D for Net Class Summary The following categories of classes realize these design considerations Chart view class Data classes Scale transform classes The chart view class is a 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 co
204. ble recording the sampled and calculated data in a neat readable fashion 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 mS Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No Chart No Operator John Smith Machine 1 Time 17 16 17 31 17 46 18 001 18 16 18 31 18 46 19 01 19 16 19 31 19 46 20 01 20 16 20 31 20 46 21 01 200 100 0 26 Standard SPC Control Charts Scrollable Time Based XBar R Chart with frequency histograms header measurement and calculated value information PE Formi nl x Title Variable Control Chart X Bar amp R Part No 1234567 Chart No 17 Operator J Mills Machine 11 Time 17 26 17 41 17 56 18 11 18 26 18 41 18 56 19 11 19 26 19 41 19 56 20
205. bounded by the charts axes to include the complete graph area the area of the chart outside of the plot area This class is an abstract base class derived from WorkingCoordinates and defines the routines needed to map the physical coordinate system of a plot area into a working coordinate system Different scale objects ChartScale derived are installed for converting physical x and y coordinate values into working coordinate values This class is a concrete implementation of the PhysicalCoordinates class and implements a coordinate system used to plot linear logarithmic and semi logarithmic graphs This class is a concrete implementation of the PhysicalCoordinates class and implements a coordinate system used to plot GregorianCalenar time based data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot elapsed time data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot polar coordinate data This class is a subclass of the CartesianCoordinates class and implements a coordinate system used to plot antenna coordinate data The antenna coordinate system differs from the more common polar coordinate system in that the radius can have plus minus values the angular values are in QCChart2D Class Summary 63 degrees and the angular values increase in the clockwise direction Attribute Class ChartAttribute ChartGra
206. bove center line sigma levels and four for the below center line sigma levels There are also additional WE Rules for trending These are often referred to as WE Supplemental Rules Don t rely on the rule number often these are listed in a different order 5 Six points in a row increasing or decreasing The same logic is used here as for rule 4 above Sometimes this rule is changed to seven points rising or falling 6 Fifteen points in a row within one sigma In normal operation 68 of points will fall within one sigma of the mean The probability that 15 points in a row will do so is less than 1 SPC Variable Control Charts 197 7 Fourteen points in a row alternating direction The chances that the second point is always higher than or always lower than the preceding point for all seven pairs is only about 196 8 Eight points in a row outside one sigma Since 68 of points lie within one sigma of the mean the probability that eight points in a row fall outside of the one sigma line is less than 1 While the techniques in the previous section can be used to draw multiple SPC control limit lines on the graph at the 1 2 3 sigma levels for example they do not provide for the x out of y control criteria used in evaluating the WE rules The software can be explicitly flagged to evaluate out of control alarm conditions according to the WE Rules instead of the default 3 sigma control criteria It will create alarm lines at the
207. bute Control Charts Consist of Only One Graph 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 FractionDefectivePartsControlChart s 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
208. case the value n p represents the average number of defective parts per sample subgroup Since p is the estimate or average of the fraction defective per sample subgroup n p is the average number of defective per sample subgroup Or you can add up all the number defective parts in all subgroups and divide by the number of subgroups that to will reduce to the average number of defective per sample subgroup Number Defects Per Million Also known as DPMO 258 SPC Attribute Control Charts UCL up 3000 Sqrt up dopu n Centerline up LCL up 3000 Sqrt up dopu n Number of Defects Control Chart Also known as Number Nonconformities or c chart UCL c 3 Sqrt c Center line c LCL c 3 Sqrt c Number of Defects per Unit Control Chart Also known as Number Nonconformities per Unit or u chart UCL u 3 Sqrt u n Center line I e 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 SPC Attribute Control Charts 259 In the SPCChartObjects CONTROL LINE FIXED case the current SPC control limit plots as a horizontal straig
209. cept as expressly set forth in this license You agree that any copies of the SOFTWARE will contain the same proprietary notices which appear on and in the SOFTWARE 7 EXPORT RESTRICTIONS You agree that you will not export or re export the SOFTWARE to any country person entity or end user subject to U S A export restrictions Restricted countries currently include but are not necessarily limited to Cuba Iran Iraq Libya North Korea Sudan and Syria You warrant and represent that neither the U S A Bureau of Export 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 B
210. chBasedControlCharts a collection of batch variable control charts including EWMA MA and CuSum charts using the SPCTimeVariableControlChart class RulesRulesRules a collection of control charts demonstrating the the use of named WECO Nelson AIAG Juran Hughes Duncan Westgard and Gitlow and custom rule sets ProbabilityPlot a probability chart using the ProbabilityChart class ParetoDiagram a Pareto diagram chart using the ParetoChart class SPCApplicationl A simple X Bar R example program using SPCTimeVariableControlChart used in the tutorial 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 WindowsControlLibrary1 Create a QCSPCChart ChartView derived window that can be embedded in Windows Internet Explorer Visual Basic VB specific code Examples VB examples Same as the C examples above Critical Note Running the Example Programs The example programs for SPC Control Chart Tools for Net 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 ChartV
211. chart Get the default width value of the frequency histogram bars Set attributes before BuildChart Get the StringArray object holding the strings used to label the categories of the Pareto plot Set attributes before BuildChart Get the DoubleArray object holding the category values used in building the Pareto plot Set attributes before BuildChart Get the coordinate system object of the frequency histogram part of the chart Get the coordinate system object of the cumulative frequency part of the chart Get the dataset object used to hold the cumulative frequency values of the data plot Get the data tooltip object for the chart Get Set the default graph border object for the chart Set attributes before BuildChart Get the footer of the chart Get the dataset object used to hold the frequency histogram values of the bar plot Get the graph background object Get the default primary line attribute object for the line plot of the chart Set attributes before BuildChart Get the line marker plot object displaying the cumulative frequency part of the chart Get the default numeric template object used to label the line marker plot of the cumulative frequency part of the chart Set attributes before BuildChart Get main title object of the chart Get the plot background object Set Get True the ChartView object list is cleared with each redraw Set Get the starting y value for the cumulative frequency scale Get Set the en
212. click on an alarm a pop up box will show you details Optionally the entire column associated with a sample interval can be color highlighted to indicate an alarm condition SS Alarm details can be automatically logged to the notes log The symbol used to plot a process variable point in the primary and secondary charts can be made to change color in the event of an alarm DesignerSerializationVisibility We have long found the VS IDE habit of including long initialization lists for the ChartView and SPCBaseChart properties when a ChartView derived UserControl is added to a Form annoying We found it was very easy to initialize properties in a ChartView or SPCBaseChart subclass only to have them over ridden in hidden InitializeComponent code So we added the DesignerSerializationVisibility DesignerSerializationVisibility Hidden compiler flag in front of all ChartView and SPCBaseChart properties to force the VS IDE to ignore them Tutorials Chapter 12 is a tutorial that describes how to get started with the SPC Control Chart Tools for Net charting software Chapter 13 is a tutorial that describes how to use the software to create charts for web pages 6 Introduction Customer Support Use our forums at http www quinn curtis com ForumFrame htm for customer support Please do not post questions on the forum unless you are familiar with this manual and have run the examples programs provided We try to answer mo
213. d any constructor code after InitializeComponent call Create histogram user control frequencyHistogramUserControll new FrequencyHistogramUserControll Add control to form this Controls Add frequencyHistogramUserControll private void menultem2 Click object sender System EventArgs e if frequencyHistogramUserControll null this PageSetup frequencyHistogramUserControll sender e private void menuItem3 Click object sender System EventArgs e if frequencyHistogramUserControll null this PrinterSetup frequencyHistogramUserControll sender e private void menuItem4 Click object sender System EventArgs e if frequencyHistogramUserControll null this PrintPreview frequencyHistogramUserControll sender e private void menuItem5 Click object sender System EventArgs e if frequencyHistogramUserControll null this PrintPage frequencyHistogramUserControll sender e private void menuItem8 Click object sender System EventArgs e 346 File and Printer Rendering Applicatiob Exit This routine invokes the chart objects PageSetupItem method public void PageSetup ChartView charview object sender System EventArgs e if charview null if printobj null i printobj new ChartPrint charview TA printobj PrintChartView charview printobj PageSetupItem sender e This routine invokes the chart objects printer setup dialog method object sender System
214. d class for all plot objects except for bubble plots The legend item objects display in a row or column format Each legend item contains a symbol and a descriptive string The symbol normally associates the legend item to a particular plot object and the descriptive string describes what the plot object represents 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 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 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 90 QCChart2D Class Summary height of the plot area of the chart This class works in conjunction with the LinearAxis LogAxis and TimeAxis classes PolarGrid 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
215. d data files Chart type constant Fraction Defective Parts p chart Control Chart SPC Chart header level constant display no header strings SPC Chart header level constant display minimal header strings title partNumber chartNumber dateString SPC Chart header level constant display most header strings title partNumber chartNumber partName operation operator machine dateString SPC Chart header level constant display all header strings title partNumber chartNumber partName operation operator machine specification limits gage unitofMeasure zeroEqulas and dateString Chart type constant Individual Range Individual X SPC Variable Control Chart 103 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 NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART PERCENT DEFECTIVE PARTS CHART SPC PRIMARY CONTROL TARGET SPC PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT SPC SECONDARY CONTROL TARGET Chart type constant Mean and Range X Bar R SPC Variable Control Chart Chart type constant Mean and Sigma X Bar Sigma SPC Variable Control Chart Chart type constant Mean and Sigma X Bar Sigma SPC Variable Control Chart with variable sample size Chart type constant Mean and Variance X Bar Variance SPC Variable Control Chart
216. d from the example Extracted from the example TimeAttributeControlCharts PercentDefectiveChart 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 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 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 SPC Attribute Control Charts 251 VB Me InitSPCTimeAttributeControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes Me PrimaryChart XAxisLab TextFont Me PrimaryChart YAxisL
217. d 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 111 SPC Control Data and Alarm Classes Initializing the SPCControlChartData Class The control charts InitSPC method call initializes the SPCControlChartData object This establishes the SPC chart type how many samples per subgroup there are and how many SPCSampledValueRecord objects are stored internal to the 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 XBarR Chart example program Bar E X Bar Sigma Individual Range Mult LimitX Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 31 12 46 13 001 13 16 13 31 13 46 14 01 14 16 14 31 14 46 15 01 15 16 15 31 15 46 16 001 16 16 16 31 A A 0 8B 7 5 7 26 A A 23 24 26 1 I 235 4 B3 SN 2 36 25 37 31 34
218. daryChartYRange End If The AutoCalculateControlLimits method calculates the control limits for both the primary and secondary charts If you want to auto calculate the control limits for just one of the charts call the 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 C for int i0 i lt l0 i46 this ChartData ExcludeRecordFromControlLimitCalculations i true VB Dim i As Integer For i 0 To 9 SPC Variable Control Charts 177 Me ChartData ExcludeRecordFromControlLimitCalculations i True Next i Formulas Used in Calculating Control Limits for Variable Control Charts The SPC control limit formulas used by AutoCalculateControlLimits in the software derive from the following sources X Bar R X Bar Sigma EWMA MA and CuSum Introduction to Statistical Quality Control by Douglas C Montgomery John Wiley and Sons Inc 2001 Median Range Individual Range SPC Simplified Practical Steps to Quality by Robert T Amsden Productivity Inc 1998 SPC Control Chart Nomenclature UCL Upper Control Limit LCL Lower Control Limit Center line The target value for the process X X double bar Mean of sample subgroup means also called the grand average R R bar Mean of sample subgroup ranges
219. dds the following new features Ob Specification Limits Unique from control limits See page 212 Western Electric Trending or Supplemental Rules Rules 5 8 See page 207 Simpler way to set control limits for 1 2 and 3 sigma Add3SigmaControlLimits See page 201 Solid area fill between limit lines ControlLimitLineFillMode See page 206 New Features found in the 2 0 version of QCSPCChart Revision 2 0 follows Revision 1 7 Most new features associated with revision 2 0 are part of the QCChart2D software on top of which the QCSPCChart software is built As far this software goes only a few featues specific to Revision 2 0 of QCSPCChart have been added These include O O 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 The x axis labels can be rotated 360 degrees Introduction 3 Batch Individual Range Batch Dyn X Bar Sigma Variable Control Limits 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 2 0 3 9 46 1 6 2 0 3 9 9 9 5 7 5 8 14 3 123 14 0 AL
220. default symbol used for the row headers of the sample data items Set Get the default symbol used for the row headers of the sample data items Set Get the default value to use for the decimal precision used to display defective item counts 1 auto Set Get data table gage string Set Get the header for the gage field Set Get data table machine string Set Get the header for the machine field Set Get the data table notes header string Set Get data table notes message string Set Get the notes tool tip Get Set the data table number of samples row header Set Get number of calculated values for each record in the chart Set Get the maximum number of records displayable at one time in the chart Set Get the number of categories in an Attribute Control chart numSampleCategories sampleSubgroupSize for Variable 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 primary calculated value data 107 SPC Control Data and Alarm Classes SampleSubgroupSize SecondaryCalculatedVariableIndex SPCChartType SpecificationLimits SpecificationLimitsHeader TheOperator TimeStamp TimeValueRowHeader Title TitleHe
221. dient This class consolidates the common line and fill attributes as a single class Most of the graph objects have a property of this class that controls the color line thickness and fill attributes of the object The ChartGradient class expands the number of color options available in the ChartAttribute class ChartAttribute This class consolidates the common line and fill attributes associated with a GraphObj object into a single class ChartGradient A ChartGradient can be added to a ChartAttribute object defining a multicolor gradient that is applied wherever the color fill attribute is normally used Auto Scaling Classes AutoScale LinearAutoScale LogAutoScale TimeAutoScale ElapsedTimeAutoScale Usually programmers do not know in advance the scale for a chart Normally the program needs to analyze the current data for minimum and maximum values and create a chart scale based on those values Auto scaling and the creation of appropriate axes with endpoints at even values and well rounded major and minor tick mark spacing is quite complicated The AutoScale classes provide tools that make automatic generation of charts easier 64 QCChart2D Class Summary 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 a
222. ding y value for the cumulative frequency scale Get the default symbolAttrib attribute object 340 Frequency Histograms Pareto Diagrams Probability Charts XAxis XAxisLab XAxisTitle YAxisl YAxis2 YAxisLab1 YAxisLab2 Y AxisTitlel Y AxisTitle2 Y Grid Public Instance Methods AddCategoryItem BuildChart Copy InitParetoChart InitParetoChartsDatasets SortCategoryItems 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 histogramDataset using the values in frequencyValues and frequency
223. dividual Range Chart Also known as the X R Chart D3 0 0 0 0 0 0 0 0 D4 3 87 2S 2 38 2 18 Control Limits for the X Bar Chart UCL Center line LCL X E R 180 SPC Variable Control Charts 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 X in this case is the mean of the samples Where the constants E and D are tabulated in every SPC textbook for various sample sizes EWMA Chart Exponentially Weighted Moving Average SPC Variable Control Charts 181 4 EWMA chart showing the variable control limits actual values and EWMA values Title Variable Control Chart EWMA Part Name Transmission Casing Bolt Operator J Fenamore Date 3 5 2008 5 07 52 PM Time 17 07 17 37 18 07 18 37 Sample 0 9 45 7 99 929 11 68 EWMA 9 945 9 750 9 704 9 899 MEAN 9 45 7 99 929 11 66 12 A Chart CUSum Chart CUSum Chart 2 lolx Part No 283501 Chart No 17 Operation Threading Spec Limits Units 0 0001 inch Machine 411 Gage 8645 Zero Equals zero 19 07 19 37 20 07 20 37 21 07 21 37 22 07 22 37 23 07 23 37 0 07 0 37 1 07 12 16 10 18 804 1146 9 20 10 34 9 03 1147 10 51 940 10 08 9 37 10 62 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 12 16 10 18 804 1146 9 20 1034 9 03 1147 10 51 940 10 08 9 37 10 62 x UCL 10 7 10 0 LCL 9 3 T T T 1 T E
224. dler Named and Custom Control Rule Sets 317 9 Frequency Histogram Pareto Diagram and Normal Probability Charts FrequencyHistogramChart ParetoChart ProbabilityChart Frequency Histogram Chart An SPC control chart will allow you to track the trend of critical variables in a production environment It is important that the production engineer understand whether or not changes or variation in the critical variables are natural variations due to the tolerances inherent to the production machinery or whether or not the variations are due to some systemic assignable cause that needs to be addressed If the changes in critical variables are due to the natural variations then a frequency histogram of the variations will usually follow one of the common continuous normal exponential gamma Weibull or discrete binomial Poisson hypergeometric distributions It is the job of the SPC engineer to know what distribution best models his process Periodically plotting of the variation of critical variables will give SPC engineer important information about the current state of the process A typical frequency histogram looks like Frequency Histograms Pareto Diagrams Probability Charts 319 Frequency Histogram Chart HM Formi iB x Frequency Histogram of Selected Data Frequency 40 Measurements Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the secondary
225. doubles as internal storage 96 QCChart2D Class Summary A diagram depicts the class hierarchy of the QCChart2D for Net library ChartObj Arrow ChartCalendar CSV Dimension Point3D NearestPointData Polysurface ChartScale LinearScale LogScale TimeScale UserCoordinates WorldCoordinates WorkingCoordinates PhysicalCoordinates CartesianCoordinates PolarCoordinates AntennaCoordinates TimeCoordinates ChartDataset SimpleDataset TimeSimpleDataset ElapsedTimeSimpleDataset ContourDataset GroupDataset TimeGroupDataset ElapsedTimeGroupDataset AutoScale LinearAutoScale LogAutoScale TimeAutoScale ElapsedTimeAutoScale MouseListener MoveObj FindObj DataToolTip ChartZoom MagniView MoveCoordinates DataCursor MoveData ChartAttribute ChartGradient ChartPrint BufferedImage System Windows Forms UserControl ChartView Rectangle2D Point2D Point3D GroupPoint2D DoubleArray DoubleArray2D BoolArray Polysurface GraphObj AntennaAnnotation TickMark Axis LinearAxis PolarAxes AntennaAxes LogAxis TimeAxis ChartText ChartTitle AxisTitle ChartLabel NumericLabel BarDatapointValue TimeLabel ElapsedTimeLabel StringLabel AxisLabels NumericAxisLabels TimeAxisLabels ElapsedTimeAxisLabels StringAxisLabels PolarAxesLabels AntennaAxesLabels Grid PolarGrid AntennaGrid LegendItem BubblePlotLegendItem Legend StandardLegend BubblePlotLegend ChartPlot SimplePlot SimpleLinePlot SimpleB
226. e 11 Date 4 14 2008 12 57 51 PM TIME 12 57 13 12 13 27 13 42 13 57 14 12 14 27 14 42 14 57 15 12 15 27 15 42 15 57 16 12 16 27 16 42 16 57 MEAN 62 60 62 78 64 08 62 40 64 28 62 16 65 33 63 00 63 12 64 62 64 16 60 80 64 35 64 95 65 90 62 09 62 90 SIGMA 5 60 6 61 7 23 6 18 6 77 633 640 4 77 563 651 6 08 6 06 690 664 487 491 4 94 SUM 939 942 961 936 964 932 980 945 947 969 962 912 965 974 989 931 943 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 ALARM a NOTES N N N N N N N N N N N N N N N N N Probability Plots Another important tool the SPC engineer uses to model the process variation is the probability plot The probability plot tests whether control chart measurements fit a normal distribution Usually the SPC engineer plots probability plot graphs by hand using special probability plot graph paper We added probability scale and axis classes to the QCSPCChart software that plots probability plots directly on the computer Control chart measurements that follow a normal distribution curve plot as a straight line when plotted in a normal probability plot Standard SPC Control Charts 39 Cumulative Normal Probability Chart BlFormi 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
227. e PrevAlarmState SPCProcess Var SymbolColor TextColor Public Instance Methods CheckAlarm Clone Copy Copy inherited from ChartObj ErrorCheck GetAlarm GetControlLimitHistory Value SetControlLimitValue 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 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 SPC Control Data and Alarm Classes 136
228. e SPC Control Data and Alarm Classes chapter SPC Variable Control Charts 149 SPCTimeVariableControlChart InitSPCTimeVariableControlChart Method This initialization method initializes the most important values in the creation of a SPC chart If you are using the creating a cusum chart type TABCUSUM CHART your can use the similar InitSPCTimeCusumControlChart method instead That version of the Init routine has added parameters for the H and K value of the tabular cusum chart VB Overloads Public Sub InitSPCTimeVariableControlChart _ ByVal charttype As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ ByVal timeincrementminutes As Integer _ Cf 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 INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART and TABCUSUM CHART numsamplespersubgroup Specifies the number of samples that make up a sample subgroup numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time timeincrementminutes Specifies the normal time increment between adjacent subgroup samples The image below further clarifies how these
229. e return for int i 0 i lt 200 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 Add new sample record this ChartData AddNewSampleRecord timestamp samples Simulate 30 minute passing StartTime 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 SPC Attribute Control Charts 267 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 sam
230. e Control Charts 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 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 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 Set 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 SpecificationLimitss this ChartData Machine 11 this ChartData Gage this ChartData UnitOfMeasure this ChartData ZeroEquals this ChartData DateString DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVE
231. e SPC Control Limits discussed in the previous sections Specification limits are imposed externally and are not calculated based on the manufacturing process under control They represent the maximum deviation allowable for the process variable being measured They are calculated based on input from customers and or engineering Usually specification limits are going to be wider than the SPC 3 sigma limits because you want the SPC control limits to trip before you get to the specification limits The SPC control limits give you advance notice that the process is going south before you start rejecting parts based on specification limits You can display specification limits in the same chart as SPC control limits Use the AddSpecLimit method of the PrimaryChart or SecondaryChart C this PrimaryChart AddSpecLimit SPCChartObjects SPC_LOWER_ SPEC LIMIT 18 3 L SPEC new ChartAttribute Color Green 3 0 this PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC new ChartAttribute Color Yellow 3 0 VB Me PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC New ChartAttribute Color Green 3 0 Me PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPC Variable Control Charts 201 SPEC New ChartAttribute Color Yellow 3 0 Chart Y Scale You can set the minimum and maximum values of the two charts y scales manually using the PrimaryChart MinY Prima
232. e UserChartControll class that you already created Create an inherited control by selecting Project Add Inherited Control Give the inherited control a unique name i e UserChartInheritedControll When you select Open choose UserChartControll in the Inheritance Picker The result is new control added to the project Build the solution and the UserChartInheritedControll control is added to the Toolbox in addition to the UserChartControll Look at the UserChartControll class The chart is created in the InitializeGraph method Until this method is called the UserChartControll appears as an empty shell Sometimes it helps to call this method from somewhere outside of the class to avoid problems associated debugging errors in user controls at design time Click on the UserChartControll form in design mode and a load event will be added to the code You can add the InitializeGraph call there Private Sub UserChartControll Load ByVal sender As System Object ByVal e As System EventArgs Handles MyBase Load InitializeChart End Sub Go to the main form Form1 Go to the toolbox and select the UserChartControll from the Windows Forms list Drop it onto the main form and size it This will automatically create an instance of the UserChartControll class and initialize it Define the chart by customizing the UserChartControll InitializeChart method See the actual SPCApplicationl UserChartControll vb file for all of the actual code Pub
233. e application You will probably want to create a HTML page to host the call to the ASP page This can be done using FrontPage a simple editor and the Visual Studio IDE The complete source to a lt body gt for the HTMLPagel htm is seen below lt body gt en lt iframe name I1 width 920 height 650 src http quinn curtis com SPCWebApplicationl Default aspx WIDTH 880 amp HEIGHT 610 Your browser does not support inline frames or is currently configured not to display inline frames iframe 5 body 380 Creating SPC Charts in Windows Applications nl xi File Edit view Favorites Tools Help av Qs M o T x 2 JO search Se Favorites Ol B m L E 43 3 Address http www quinn curtis com SPCWebApplication1 HTMLPage1 htm j Go Links sad Google picationi HTMuPaget htm G Search x2 Sreqsblocked F Check Autolink Autoril feajoptions 2 htp E www aunn curtis Ecom E spcwebapplicationt gt Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator Roger Bacon Machine AB 276 Time 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 16 49 17 04 2 32 231 26 36 28 27 35 24 33 29 26 32 36 36 23 28 33 4 35 26 37 29 29 31 30 23 36 28 23 34 25 26 36 25 23 MEAN 30 1 30 5 33 4 292 267 29 7 317 27 6 332 284 27 4 310 29 8 287 28 6 29 8 28 6 SUM 150 3 152 3 167 0 146 2 133 3 148 3 158 7 138 0
234. e beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving range statistics SPC Variable Control Charts 145 MAMS Chart Moving Average Moving Sigma The MAMS chart combines our Moving Average chart with a Moving Sigma chart The Moving Average chart is primary topmost chart and the Moving Sigma chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EEWMA and Moving Average charts When calculating the Moving Sigma it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and moving sigma statistics CuSum Chart Tabular one sided upper and lower cumulative sum The CuSum chart is a specialized control chart which like the EWMA and MA charts is considered to be more efficient that the Shewhart charts at detecting small shifts in the process mean particularly if the mean shift is less than 2 sigma There are several types of CuSum charts but the easiest to use and the most accurate is considered the tabular CuSum chart and that is the one implemented in this software The tabular cusum works by accumulating deviations that are above
235. e cutting tool broke Replaced with new Aeon CL 35 5 BAR 29 8 C private void SimulateData String notesstring for int i0 i 200 i this ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes VB Private Sub SimulateData SPC Variable Control Charts 211 Dim notesstring As String Dim i As Integer For i e 0 To 199 Me ChartData AddNewSampleRecord timestamp samples notesstring increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData Both kinds of tooltips are on by default Turn the tooltips on or off in the program using the EnableDataToolTip and EnableNotesToolTip flags C Enable data and notes tooltips 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 displ
236. e fashion Phe 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 Typical Number of Defects c Chart with data table Title Number Defects c Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 6 29 6 59 7 29 7 59 8 29 8 59 9 29 9 59 10 28 10 59 11 29 11 59 12 29 12 59 13 29 13 59 Burr 6 3 2 2 4 2 4 3 2 2 5 4 3 5 6 1 36 Standard SPC Control Charts 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 critica
237. e further customized using properties inherited from SPCBaseChart described below Public Static Shared Properties DefaultChartFontString Set Get the default font used in the table display Public Instance Constructors SPCChartBase Overloaded Initializes a new instance of the SPCChartBase class Public Instance Properties 234 SPC Attribute Control Charts AutoLogAlarmsAsNotes Set to true to automatically log alarm details in the sample interval Notes record BottomLabelMargin ChartData ChartAlarmEmphasisMode ChartTable DefaultControlLimitSigma EnableAlarmStatus Values EnableCalculated Values EnableCategoryValues EnableDataToolTip EnableInputStringsDisplay EnableNotes EnableNotesToolTip EnableScrollBar EnableTimeValues EnableTotalSamplesValues GraphBottomPos GraphStartPosX GraphStartPosY 1 GraphStartPosY2 GraphStopPosX GraphStopPosY1 SPC Attribute Control Charts 235 Get Set an additional margin in normalized coordinates if only the primary graphs is displayed allowing for the x axis labels Get the object that holds the descriptive text sampled and calculated values associated with the control chart Set to SPCChartBaseALARM HIGHLIGHT SYMBOL to highlight the process variable symbol if an alarm condition exists Set to Set to SPCChartBase ALARM NO HIGHLIGHT SYMBO L to turn off alarm highlighting Get the object that holds the data table informatio
238. e 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 ending numeric value of the x scale for Batch type charts that use a numeric x scale Get a reference to the charts header Set Get the font used for the chart title Set Get the left edge using normalized coordinates of the frequency histogram plotting area Set Get the offset with respect to the GraphStartPosX value using normalized coordinates of the frequency histogram plotting area Set Get the maximum value used to scale the y axis of the chart Set Get the minimum value used to scale the y axis of the chart 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 m
239. e 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 charts is the display of complex numbers a bi and it is used in many engineering 74 QCChart2D Class Summary disciplines Antenna charts plot data organized as a simple set of data points where each data point represents a radius value and angle pair rather than xy Cartesian coordinate values The most common example of antenna charts is the display of antenna performance and specification graphs The contour plot type displays the iso lines or contours of a 3D surface using either lines or regions of solid color The last plot object category is the pie chart 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
240. e 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 private void SimulateData String notesstring j for int ise0 1 lt 200 i ChartCalendar timestamp ChartCalendar startTime Clone 204 SPC Variable Control Charts 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 make a note on every tenth item on average notesstring Note for sample subgroup 4 i TeStringi This sample is flagged as having some sort of problem else notesstring Add the new sample subgroup to the chart this ChartD
241. e 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 Title Fraction Defective Parts p Chart Part No 321 Chart No 19 Operator S Kafka Machine TIME 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 19 40 20 10 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N UCLP 0 279 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 pc ei jc 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 282 SPC Attribute Control Charts 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 XAxisStringLa
242. e 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 Frequency Histograms Pareto Diagrams Probability Charts 325 Y AxisTitle Y Grid Public Instance Methods AddFrequencyHistogramControlLine Copy InitFrequencyHistogram InitFrequencyHistogramDataset after BuildGraph Get the y axis title object Get the y axis grid object Add a control limit line to the frequency histogram Overloaded Copies the source FrequencyHistogramChart object Initializes the histogram frequency bin limits and the data values to be analyzed for the histogram Builds the histogram dataset histogramDataset using the values in frequencyValues and frequencyLimits Changing Default Characteristics of the Chart 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 326 Frequency Histograms Pareto Diagrams Probability Charts Form1 0 x Frequency Histogram of Selected Data 7 MainTitle YAxisLab MESI 15 YGrid F
243. e when it comes out of alarm If you want a continuous stream of alarm events as long as the SPCControlLimitRecord object is in alarm set the SPCControlChartData AlarmTransitionEventEnable to false and the SPCControlChartData AlarmStateEventEnable to true The alarm events will be generated at the same rate as the SPCControlChartData AddNewSampleRecord method is called SPCControlLimitAlarmArgs constructors You don t really need the constructors since SPCControlLimitAlarmArgs objects are created inside the SPCControlChartData class when an alarm event needs to be generated The most commonly used SPCControlLimitAlarmArgs properties are Selected Public Instance Properties Public Instance Properties AlarmChannel Get Set the alarm channel associated with the alarm EventAlarm Get Set the SPCControlLimitRecord object SPCSource Get Set the SPCCalculatedValueRecord object associated with the alarm A complete listing of SPCControlLimitAlarmArgs properties are documented in the QCSPCChartNetCompiledHelpFile 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 AlarmTr
244. e 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 of a 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 Rebuild the graph taking into account the most recent data values 238 SPC Attribute Control Charts RescaleGraphsToScrollbar Rescale primary and secondary charts based on the position of the value of the scroll bar The thumb position of the scroll bar ResetSPCChartData Reset the history buffers of all of the SPC data objects UpdateControlLimitLabel Creates a numeric label of the control limit and adds the numeric label to the spc chart Special Note for DPMO Charts The NUMBER DEFECTS PER MILLION CHART has an important parameter you may need to set DPMO charts use an important parameter known is the defect opportunites per unit The default value for the parameter is 1 So if you are using 1 as the the value of defect opportunites per unit in your chart you don t need to do anyt
245. eated In the example below parameters that were appended to the ASP page request are retrieved using the Request Params Get method The values define the size and data values of the graph This is just one way to pass data from the HTML page to the ASP page Using the behind code page you can query some database and get the data values from there without passing the data through the HTML page Once the chart is create and available as a ChartView derived object use the BufferedImage class to render the chart as a JPEG file and stream the image back in the response stream of the requesting HTML page private void Page Load object sender System EventArgs e Put user code to initialize the page here Get Input from HTML ASP page request String widthstring Request Params Get 0 String heightstring Request Params Get 1 int imagewidth int Parse widthstring int imageheight int Parse heightstring int options 15 enables all options SPCTimeVariableControlChart chartVu GetInitializeChart imagewidth imageheight options Stream chart back as a JPeg image BufferedImage chartimage new BufferedImage chartVu ImageFormat Jpeg get your binary image data here Response ContentType image jpeg chartimage SaveImage Response OutputStream chartVu Dispose Build the Solution Build Build Solution and resolve any errors that might have crept in This example was not designed to be a standalon
246. ect 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 object list is cleared with each redraw Get the sigma y axis object of the chart Get the sigma y axis labels object of the chart Get the chart subhead object Get Set the default symbol size Set attributes before BuildChart Get the default text object template for the data tooltip Get the tooltip symbol object for the data tooltip 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 Frequency Histograms Pareto Diagrams Probability Charts 333 Y Axis2 Y AxisLabl Y AxisLab2 Y AxisTitle Y Grid Y Values Y ValueTemplate Public Instance Methods BuildChart Copy InitProbabilityChart InitProbabilityDatasets 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
247. ectory For solution Mame WindowsControlLibrary1 Location C Quinn Curtis DotNet QCSPCChart visual CSharpyexamples Solution Create new Solution Solution Name WindowsControlLibrary1 S Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select the two DLLs QCChart2DNet DLL and QCSPCChartNet DLL View the UserControll cs code Change the base class of UserControll to com quinncurtis spcchartnet SPCTimeVariableControlChart The CZ form code should now look like namespace WindowsControlLibraryl using using using using using using using using using Creating SPC Charts in Windows Applications 391 summary Summary description for UserControll lt summary gt public class UserControll com com quinncurtis spcchartnet SPCTimeVariableControlChart public UserControll This call is required by the Windows Forms Form Designer InitializeComponent TODO Add any initialization after the InitForm call Critical Step Make sure you add the following lines to the top of the using using using using UserChartControll cs code to resolve the QCChart2D QCSPCChart and other graphics classes used in the example System Drawing System Drawing Drawing2D com quinncurtis chart2dnet com quinnourtis spochartnet Build the Solution Build Build Solution This will compile
248. ed on using the UseNamedRuleSet method and setting ruleflags array elements true for the additional rules Make sure you use our rule numbers and not the rule numbering above Control Rule Templates All of the named rules fall into one of our standard rule categories Each rule category is a flexible template which can be used to evaluate a test condition across a wide range of parameters A list of the template categories appears below 294 Named and Custom Control Rule Sets Standardized Templates for Control Rule Evaluation Template Standard Control Limit tests 1 N of M above X sigma from center line used for UCL tests 2 N of M below X sigma from center line used for LCL tests 3 Reserved 4 N of M beyond X sigma from center line either side or control limits points beyond the limit values don t have to all be on one side Trending 3 N of M trending up increasing 6 N of M trending down decreasing 7 N of M trending up increasing or down decreasing Hugging lack of variance 8 N of M within X sigma from center line either side 9 N ofr M within X sigma of each other no reference to center line Oscillation 10 N of M alternating about X sigma from center line 11 N of M alternating no reference to center line For example rule 1 for all of the named rules a single point plots outside of 3 sigma is implemented as one instance of template 1 N of M above X sigma where N 1 M 1 and X 3 a
249. edValue GetCalculatedValueRecord GetChartObjIDCntr inherited from ChartObj control limit calculations Get the group number value at the specified index Get a calcualted value at a specific row index and column time Get the calculated value record at the specified index Returns the current value of the chartObjIDCntr static counter GetChartObjType inherited from ChartObj Returns the chart object type GetControlLimit GetControlLimitRecord GetControlLimitString GetControlLimitText GetControlLimitValue Get the value of a specific SPC chart limit Get the control limit record at the specified index Get the text for a specific SPC chart limit Get the control limit text at the specified index Get a control limit value for charts with variable control limits at a specific row index and column time 109 SPC Control Data and Alarm Classes GetHashCode inherited from Object GetNotesString GetNumberOfSamplesPerSubgroup GetPrimaryControlLimits GetSampledValue GetSampleRowHeaderString GetSecondaryControlLimits GetThisChartObjID inherited from ChartObj GetTimeValue GetType inherited from Object GetY AxisTitle IsControlLimit OutputAllValuesToDataLog ReadAllValuesFromFile 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 o
250. edian values Gets a reference to the charts physical 226 SPC Variable Control Charts ProcessVariableData SampledDataData SubHead SubheadFont TableFont TextTemplate TimelIncrementMinutes ToolTipFont ToolTipSymbol XAXIS XAxisLab XGrid XValueTemplate Y Axisl Y Axis2 Y AxisLab Y AxisTitle Y Grid Y ValueTemplate coordinate system Holds a reference to an object encapsulating the plot object data associated with the main variable of the chart Get the array of the sample data Get a reference to the charts subhead Set Get the font used for the chart subhead Set Get the font used for the data table Get Set the text template for the data tooltip Get Set the increment between adjacent samples of charts that use a numeric x scale Set Get tooltip font Get a reference to the charts tooltip symbol Get a reference to the charts x axis Get a reference to the charts x axis labels Get a reference to the charts x axis grid Get Set the x value template for the data tooltip Get a reference to the charts left y axis Get a reference to the charts right y axis Get a reference to the charts left y axis labels Get a reference to the charts left y axis title Get a reference to the charts y axis grid Get Set the y value template for the data tooltip The main objects of the graph are labeled in the graph below YGrid XGrid GraphBackground YAxis2 35 YAxisTitle 25
251. ee the TimeAttributeControlCharts MultiControlLimitsChart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C double target 0 14 lowlim 0 highlim 0 28 bool limitcheck false this PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck this PrimaryChart ControlLimitLineFillMode true VB Dim target As Double 0 14 lowlim As Double 0 highlim As Double 0 28 Dim limitcheck As Boolean False Me PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck Me PrimaryChart ControlLimitLineFillMode True UCLP 0 279 UCL2 0 231 UCL1 0 183 PBAR 0 134 LCL1 0 086 LCL2 0 038 LCLP 0 000 12 00 13 00 14 00 15 00 16 00 17 00 18 00 Control Limit Fill Option used with 1 2 and 3 sigma control limits You can also add additional control limits one at a time By default you get the 3 sigma control limits So additional control limits should be considered 2 sigma and 1 sigma control limits Do not confuse control limits with specification limits which must be SPC Attribute Control Cha
252. em Windows Forms v2 0 507 System Windows Presentation v2 0 507z System Workflow Activities v2 0 5072 System Workflow ComponentModel v2 0 5072 System Workflow Runtime v2 0 5072 wvskem WnrkflnwServires v2 n snz V After these initial steps you should be able to compile the basic program shell Add a method that makes the chart and returns a SPCTimeVariableControlChart object it could also be SPCBatchVariableControlChart SPCTimeAttributeControlChart or SPCBatchAttributeControlChart of the chart In the example below this is the function GetInitializeChart It has arguments that that specify the desired height and width for the chart Imports System Drawing Imports System Drawing Drawing2D Imports System Drawing Imaging Imports com quinncurtis chart2dnet Imports com quinncurtis spcchartnet Partial Public Class Default Inherits System Web UI Page Dim startTime As ChartCalendar New ChartCalendar Dim timeincrementminutes As Integer 15 Private Sub Page Load ByVal sender As System Object ByVal e As System EventArgs Handles MyBase Load Put user code to initialize the page here Put user code to initialize the page here Get Input from HTML ASP page request Dim widthstring As String Request Params Get 0 Dim heightstring As String Request Params Get 1 Dim imagewidth As Integer Integer Parse widthstring Dim imageheight As Integer Integer Parse heightstring 384 Creating SPC Chart
253. ence 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 Attribute Control Charts 287 YAxisTitle Get a reference to the charts left y axis title YGrid Get a reference to the charts y axis grid Y ValueTemplate Get Set the y value template for the data tooltip The main objects of the graph are labeled in the graph below A GraphBackground BAR 30 0 YAxisTitle YAxisLab 20 1 T T T T T T T T T T T T T T T T T T T T 16 00 17 00 18 00 19 00 XAxis PlotBackground Named and Custom Control Rule Sets 289 8 Named and Custom Control Rule Sets Western Electric WECO Rules The normal SPC control limit rules display at the 3 sigma level both high and low In this case a simple threshold test determines if a process is in or out of control Once a process is brought under control using the simple 3 sigma level tests quality engineers often want to increase the sensitivity of the control chart detecting and correcting problems before the 3 sigma control limits are reached Other more complex tests rely on more complicated decision making criteria These rules utilize historical data and look for a non random pattern that can signify that the process is out of control before reaching the normal 3
254. enerally use a numeric based x axis with numeric axis labels Note Starting with Revision 2 0 batch control charts can label the x axis using one of three options numeric labeling the original and default mode time stamp labeling and user defined string labeling Since this affects batch control charts time stamps to not have to be equally spaced or even sequential SPC Analysis Charts Quality engineers use other specialized charts in the analysis of SPC data We have added chart classes that implement the following SPC analysis charts Frequency Histograms Probability Charts Pareto Charts OOo Variable Control Charts Variable Control Charts are for use with sampled quality data that can be assigned a specific numeric value other than just 0 or 1 This might include but is not limited to the measurement of a critical dimension height length width radius etc the weight a specific component or the measurement of an important voltage Common types of Variable Control Charts include X Bar R Mean and Range X Bar Sigma Median and Range X R Individual Range EWMA MA MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma and CuSum charts 16 Standard SPC Control Charts Typical Time Base Variable Control Chart X Bar R with header information Static with Freq Histograms Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp
255. equencyHistogram true SimulateData Calculate the SPC control limits for both graphs of the current SPC chart X Bar R his AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits his AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits his AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings his RebuildChartUsingCurrentData phos prt private void SimulateData for int i 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 increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Once you can compile the project copy the resulting WindowsControlLibrary1 DLL file to the desired folder on your web site In our example we copied the DLL to the http quinn curtis com UserControlTestRev2 QCSPC folder The DLL file size should be quite small since the underlying QCChart2DNet DLL and QCSPCChartNet DLL files are not included as part of the WindowsControlLihraryl DLL When Internet 394 Creating SPC Charts in Windows Applications Explorer views a web page t
256. er 5 Six points in a row increasing or decreasing The same logic is used here as for rule 4 above Sometimes this rule is changed to seven points rising or falling 6 Fifteen points in a row within one sigma In normal operation 68 of points will fall within one sigma of the mean The probability that 15 points in a row will do so is less than 1 Named and Custom Control Rule Sets 291 7 Fourteen points in a row alternating direction The chances that the second point is always higher than or always lower than the preceding point for all seven pairs is only about 1 8 Eight points in a row outside one sigma Since 68 of points lie within one sigma of the mean the probability that eight points in a row fall outside of the one sigma line is less than 1 The rules are described as they appear in the literature In many cases a given rule actually specifies two test conditions the first being a value N out of M above a plus sigma control limit and the second being a value N out of M below a minus sigma control limit Examples of this are rules 1 2 and 3 for WECO and Nelson rules In other cases similar rules only contain one test case N out of M above or below a given sigma control limit Example of this are the Juran rules 2 45 Hughes Rules 2 49 Gitlow Rules 2 45 and Duncan Rules 2 5 While the list of named rules below follow what is presented in the literature the actual rule numbering should be ignored Th
257. er Specify the component to inherit from Component Name Namespace Location FrequencyHistogr com quinncurtis spechartnet C Quinn Curtis D otN et lib GCSPCChartN et dll ParetoChart com quinncurtis spcchartnet C Quinn Curtis DotNet lib QGCSPCChartN et dll ProbabilityChart com quinncurtis spcchartnet C Quinn Curtis D otN et lib GCS PCChartNet dll SPCBatch ttribut com quinncurtis spechartnet C Quinn Curtis DotNet lib OCSPCChartN et dll SPCBatchVariabl com quinncurtis spechartnet C Quinn Curtis D otN et lib GCSPCChartN et dll SPCChartB ase com quinncurtis spcchartnet C Quinn Curtis D otN erMibQ CS PCChartNet dll SPCTimeAttribute com quinncurtis spcchartnet C Quinn Curtis D otN et lib GCSPCChartN et dll SPCTimeVariable com quinncurtis spcchartnet C Quinn Curtis D otNet lib QCS PCChartN et dll lt gt New component name UserChartControl1 Select OK This will create a class named UserChartControll derived from SPCTimeVariableControlChart and add it to the project It also adds the QCChart2DNet DLL and QCSPCChartNet DLL files to the References section of the project Important Note for VB programmers using VS 2005 or 2008 Starting with Visual Basic in VS 2005 when you use the project option to Add User Control to a project where you intend to change the Inherit UserControl line to Inherit ChartView you end up with TWO new VB files instead of just one The first is UserChartControll vb fi
258. er 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 53 Cumulative Normal Probability Chart iB xd 99 8 99 5 96 Population Under ul e Normal Probability Plot Showing Estimated Accumulated Frequencies 5 10 Frequency Bin Probability Plots ProbabilityScale The ProbabilityChart class is a highly specialized chart template used to plot cumulative frequency data using a coordinate system that has a cumulative probability y scale The class includes all of the objects needed to draw a complete Probability chart These objects include objects for data coordinate systems titles axes axes labels grids numeric labels and scatter plot New classes were developed for the QCChart2D charting software capable of rendering of probability chart coordinate systems ProbabilityScale ProbabilityAutoScale ProbabilityCoordinates and probability axes Probability Axis ProbabilitySigmaA xis 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 allow
259. ers chartpos specifiy either SPC PRIMARY CONTROL TARGET or SPC SECONDARY CONTROL TARGET mean specify the process mean sigma specify the process sigma double processMean your process mean double processSigma your process sigma this ChartData UpdateControlLimitsUsingMeanAndSigma SPCChartObjects PRIMARY CHART processMean processSigma The center line value and sigma have different meanings for the Primary and Secondary charts So the UpdateControlLimitsUsingMean and Sigma applies to only one at a time If you use it for the secondary chart control limits use your historical center line value for the secondary chart type you are using Calculate the sigma value as 1 3 UCL center line where UCL is your historical 3 sigma upper control limit for your secondary chart You can also auto calculate the control limits by adding test data to your application fed into the chart using the AddNewSampleRecord method and calling AutoCalculatedControlLimits This fills out the SPCControlLimit record for each control rule of the named rule set and makes control limit checking possible You will find the AutoCalculateControlLimits method used in all of SPC charts of the RulesRulesRules example program C this PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Must have data loaded before any of the Auto methods are called SimulateData 100 20 Calculate the SPC control limits for both graphs of the
260. es for these properties in order to emphasize the affect that these properties have on the resulting chart SPC Attribute Control Charts 253 S Formi mi xl TableStartPosY 0 1 J Part No 321 Title Fraction Defective p Chart Chart No 19 Operator S Kafka Machine 1 Time 11 10 11 40 12 10 12 40 13 10 13 40 14 10 14 40 15 10 15 40 16 10 16 40 17 10 17 40 18 10 18 40 19 10 2 4 FRACT DEF 0 100 0 040 0 240 0 060 0 220 0 180 0 180 0 160 0 100 0 240 0 060 0 240 0 100 0 200 0 140 0 120 0 160 N N N N N GraphStopPosX 0 9 CLP 0 29 NOTES N N N N N N N N N N N N GraphStartPosX 0 1 GraphTopTableOffset 0 1 FRACT DEF 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 SetControlLimitValues and ChartData SetControlLimitStrings methods This method only works for the default 3 sigma level control limits and not any others you may have added using the charts AddAdditionalControlLimit method discussed in the Multiple Control Limits section The data values in the controllimi
261. es parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart initialization call the first N 0 N 1 elements of the samples array holds the defect count for each category The N 1 th or element N in the array element of the samples array holds the total defective parts count For example if you initialized the chart with a numcategories parameter to five signifying that you had five defect categories you would use a samples array sized to six as in the code below C DoubleArray samples new DoubleArray 6 ChartCalendar initialized with current time by default ChartCalendar timestamp new ChartCalendar Place sample values in array samples 0 at 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 ll Bs Six samples 5 TOTAL number of defective parts in the sample 117 SPC Control Data and Alarm Classes 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 catego
262. es you can use to add a numeric control limit to a chart The first AddSpecLimit creates a specification limit which monitors the main variable of the chart and compares its value to the specified numeric threshold It will display in the chart as a line with a limit string to the right of the plot area SPCChartObjects AddSpecLimit Method Visual Basic Declaration Public Function AddSpecLimit _ speclimittype As Integer _ value As Double _ displaystring As String _ attrib As ChartAttribute _ As SPCControlPlotObjectData C public SPCControlPlotObjectData AddSpecLimit int speclimittype double value string displaystring ChartAttribute attrib Parameters speclimittype Specifiy either SPCChartObjects SPC LOWER SPEC LIMIT or SPCChartObjects SPC UPPER SPEC LIMIT value Named and Custom Control Rule Sets 309 Specifies the value of the specification limit displaystring The optional display string displayed to the right of the spec limit line attrib The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the specification limit C this PrimaryChart AddSpecLimit SPCChartObjects SPC LOWER SPEC LIMIT 18 3 L SPEC new ChartAttribute Color Green 3 0 this PrimaryChart AddSpecLimit SPCChartObjects SPC UPPER SPEC LIMIT 39 1 H SPEC new Ch rtAttribute Color Yellow 3 0 VB Me PrimaryChart AddSpecLimit SPCChartObjects SPC_LOWER_
263. et 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 UserControl class it acts as a container for other Net 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 60 QCChart2D Class Summary 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 SimpleDataset TimeSimpleDataset Represents simple xy data where for every x value there is one y value A subclass of SimpleDataset it is initialized using ChartCalendar dates a wrapper around the System DateTime value class in place of the x or y values ElapsedTimeSimpleDataset A subclass of SimpleDataset it is initialized with ContourDataset GroupDataset
264. et the history buffers of all of the SPC data objects Creates a numeric label of the control limit and adds the numeric label to the spc chart Specifies to create the primary and secondary charts without a table Just the charts chart title and optional histograms Adding New Sample Records for Variable Control Charts In variable control charts each data value in the samples array represents a specific sample in the sample subgroup In X Bar R X Bar Sigma and Median Range charts where the sample subgroup size is some fraction of the total production level there is one value in the samples 154 SPC Variable Control Charts 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
265. ethods to add notes to the current record separate from the AddNewSampleRecord method Extracted from the VariableControlCharts DynamicXBarR Chart example program 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 SPC Variable Control Charts 205 String notesstring An timestampstring message An alarmlimitvaluestring 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 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 Calcul
266. ethos Trial License eee ii EO tsa A 8 14 34 41 248 u chart 5 8 11 13 14 30 31 33 34 35 41 55 103 121 122 247 248 252 257 259 280 304 Use NoTable sinaoni tneen UseNoTable 159 177 179 UsetCorntrol 2 Senn ote RR I eres UserControl 4 5 43 58 59 97 347 348 358 359 365 366 375 376 378 398 401 405 408 427 429 430 431 434 435 436 437 439 440 441 UserCoordinates essere UserCoordinates 61 62 97 Variable Control Chart 8 15 47 48 148 Variable Control Chart 2 v vi 8 10 11 13 14 15 16 17 25 35 A1 42 46 47 48 101 102 103 106 107 110 111 112 113 114 115 116 134 148 150 151 152 153 154 155 159 160 161 164 165 170 178 179 187 192 193 196 198 203 210 225 232 233 234 241 249 283 387 396 403 406 407 414 415 422 423 432 433 438 variable sample subgroup see variable sample subgroup 11 119 120 121 122 148 Visual Basi i iens ede 13 Visual Basic vi 11 13 324 326 328 330 332 334 335 338 340 378 398 401 409 419 434 435 Waste GO MERE 13 Visual C vi 13 403 409 428 429 WE rules steer ee ai tbt WE Rules 11 209 210 316 Web Applications eeeeeeeeeeeeenrennene web applications vi 408 WBC
267. extend from 0 to 10 66 QCChart2D Class Summary Widget Tolerances by Worker Click on one of the buttons below to change the x axis range 600 1500 13 0K 60 400 1000 12 0K 40 200 500 11 0K 20 0 0 10 0K i i i i 0 0 20 40 60 80 100 Event Partition Graphs can have an UNLIMITED number of x and y axes Axis This class is the abstract base class for the other axis classes It contains data and drawing routines common to all axis classes Linear Axes 100 0 00004 50 0 00002 0 0 00000 go 001 0 02 0 03 0 04 0 05 0 00002 0 00004 2000 0 2000 4x10 100 0 4 0 2 0 0 0 2 0 4 gp ea fg 5 0 10000 20000 30000 40000 10 80 80 2800 45 20 40 40 E 2400 25 0 0 2000 0 20 40 60 80 100 0 5 10 45 The positioning of axes is very flexible Axes can have an inverted scale QCChart2D Class Summary 67 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 0 2 0 4 0 6 1 2 4 6 10 20 40 60 100 499 400600 1000 100 Time X 10 Log Y 1 8 01 02 9 01 02 10 01 02 Logarithmic axes can be combined with linear logarithmic and time axes LogAxis This class implements a logarithmic axis with major tick marks placed on logarithmic intervals for example 1 10 100 or 30 300 3000
268. f at any future time you change any of the chart properties you will need to call RebuildChartUsingCurrentData to force a rebuild of the chart taking into account the current properties RebuildChartUsingCurrentData invalidates the chart and forces a redraw Our examples that update dynamically demonstrate this technique The chart is setup with some initial settings and data values As data is added in real time to the graph the chart SPC limits and y scales are constantly recalculated to take into account new data values The code below is extracted from the TimeAttributeControlCharts DynamicAttributeControlChart example program C private void timerl Tick object sender System EventArgs e ChartCalendar timestamp ChartCalendar startTime Clone This simulates an assignable defect for each category 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 his AutoCalculatePrimaryControlLimits Scale the y axis of the SPC chart to display all data and control limits his AutoScalePrimaryChartYRange Rebuild the chart using the current data and settings his RebuildChartUsingCurrentData
269. f samples per subgroup value at the specified index Overloaded Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Get a sampled value at a specific row index and column time Get data table row header for the sampled or category item Overloaded Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Returns the chartObjID value for this specific object Get the time stamp value at the specified index Gets the Type of the current instance Get the y axis title or a specific index based description of the item in the 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 in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs Some localization for different operating systems and locales can be handled by the modifying the default csv CSV object Overloaded This methods will read a text file of SPC data records organized in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and Word processing programs Some localization for di
270. f the plotting area for the primary chart Get the top edge using normalized coordinates of the plotting area for the secondary chart Get Set the right edge using normalized coordinates of the plotting area for both primary and secondary charts Get the bottom edge using normalized coordinates of the plotting area for the primary chart Get the bottom edge using normalized coordinates of the plotting area for the secondary chart Get Set the offset of the top of the primary chart from the bottom of the data table using normalized coordinates Set Get the level of header strings to include in the chart Use one of the SPCControlChartData header strings constants HEADER STRINGS LEVELO HEADER STRINGS LEVELI HEADER STRINGS LEVEL2 or HEADER STRINGS LEVEL3 Get Set the margin in normalized coordinates between the 152 SPC Variable Control Charts MultipleMouseListener PrimaryChart ScrollBarBottomPosition ScrollBarPixelHeight SecondaryChart SPCChartType TableAlarmEmphasisMode TableStartPosY XScaleMode Public Instance Methods AddAnnotation AutoCalculateControlLimits AutoCalculatePrimaryControlLimits 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 ho
271. fault aspx cs file using System Drawing using System Drawing Drawing2D using System Drawing Imaging using com quinncurtis chartzdnet using com quinncourrtis spochartnet Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select the QCChart2DNet DLL and QCSPCChartNet DLL 376 Creating SPC Charts in Windows Applications Add Reference NET COM Projects Browse Recent Look jn lib QCSPCChartNet dll 9 QCRTGraphNet dll 8 ocmatviewNet dll QCMatPackNet dll QCChart2DNet dll aacutil exe File name QCChart2DNet dll 9CSPCChartNet dll Files of type Component Files dll tlb olb ocx exe manifest Also add System Windows Forms dll from the Net list box Add Reference NET COM_ Projects Browse Recent Component Name Version Runtime System Web Entity Design 3 5 0 0 v2 0 5072 System Web Extensions 3 5 0 0 v2 0 5072 System Web Extensions Design 3 5 0 0 v2 0 5072 System Web Mobile 2 0 0 0 v2 0 5072 System Web RegularExpressions 2 0 0 0 v2 0 5072 System Web Routing 3 5 0 0 v2 0 5072 System Web Services 2 0 0 0 v2 0 5072 System Windows Forms 2 0 0 0 v2 0 5073 System Windows Presentation 3 5 0 0 v2 0 5072 System Workflow Activities 3 0 0 0 v2 0 5072 System Workflow ComponentModel 3 0 0 0 v2 0 5072 Sy
272. fferent operating systems and locales can be handled by the ResetSPCChartData Save SetControlLimitString SetControlLimitStrings SetControlLimitValue SetControlLimitValues SetSampleRowHeaderString SimulateDefectRecord SimulateMeasurementRecord SortAlarmObjectsByValue ToString inherited from Object TransitionEventCondition Public Instance Events AlarmStateEventHandler AlarmTransitionEventHandler SPC Control Data and Alarm Classes 110 modifying the default csv CSV object Reset the history buffers of all of the SPC data objects Overloaded This methods will create a text file and output the SPC chart data to that file in a CSV Comma Separated Value format A CSV file can be read by popular spreadsheet and word processing programs 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 specifie
273. for a SPC chart in a table directly above the associated point in the SPC chart similar to standardized SPC worksheets 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 Automatic y Axis scaling Automatically calculated the y axis scale for SPC charts taking into account sampled and calculated data points and any control limit lines added to the graph Alarms When monitored value exceeds a SPC control limit it can trigger an event that vectors to a user written alarm processing delegate SPC Process Capability Calculations Variable Control Charts include Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk process capability statistics Notes The operator can view or enter notes specific to a specific sample subgroup using a special notes tooltip Data tooltips The operator can view chart data values using a simple drill down data tooltip display The Data tooltips can optionally display sample subgroup data values and statistics including process capability calculations Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk and customized using notes that have been entered for the sample subgroup 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 Cla
274. g Average Chart MAMR Moving Average Moving Range Chart MAMS Moving Average Moving Sigma Chart CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Sigma Mean and Sigma Chart Attribute Control Charts Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts np Chart Number of Defective Parts c Chart Number of Defects u Chart Number of Defects per Unit Number Defects per Million DPMO Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects per Unit Time Based and Batch Based SPC Charts We have further categorized Variable Control charts and Attribute Control Charts as either time or batch based While you may not find this distinction in SPC textbooks we didn t it makes sense to us as charting experts Quality engineers use time based SPC charts when data is collected using a subgroup interval corresponding to a specific time interval They use batch based SPC charts when the data subgroup interval is a Standard SPC Control Charts 15 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 g
275. gma Mean and Sigma Chart Attribute Control Charts Templates Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts np Chart Number of Defective Parts c Chart Number of Defects u Chart Number of Defects per Unit Number Defects per Million DPMO Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects per Unit Analysis Chart Templates Frequency Histograms Probability Charts Pareto Charts SPC Support Calculations Array statistics sum mean median range standard deviation variance sorting SPC Control Limit Calculations High and low limit control calculations for X Bar R X Bar Sigma Median and Range X R p np c and u charts SPC Process Capability Calculations Variable Control Charts include Cp Cpl Cpu Cpk Cpm Pp Ppl Ppu and Ppk process capability statistics SPC Control Named Rule Sets Introduction 9 Western Electric WECO Runtime and Supplemental Rules Nelson AIAG Juran Hughes Gitlow Westgard Duncan The SPC Control Chart Tools for Net is a family of templates that integrate the QCChart2D charting software with tables data structures and specialized rendering routines used for the static and dynamic display of SPC charts The SPC chart templates are pre programmed classes that create manage and display the graphs and tables corresponding to major SPC control chart types Each template can be f
276. gram plot First you can add control limit alarm lines to the histogram plot The control limit lines will be parallel to the frequency axis Second a normal distribution curve can be overlaid on top of the histogram data The parameters are selected to give the normal distribution curve the same mean standard deviation and area as the underlying histogram data If the underlying data is normal then there should be a relatively close fit between the normal curve and the underlying frequency data Histogram Control Limit Lines and Normal Curve fit EBlForm1 i O x File Exit Frequency Histogram of Selected Data 15 e Frequency 40 Measurements this AddFrequencyHistogramControlLine 20 0 new ChartAttribute Color LightGreen 2 35 this AddFrequencyHistogramControlLine 60 0 new ChartAttribute Color LightGreen 2 3 this AutoNormalCurve true Frequency Histograms Pareto Diagrams Probability Charts 329 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 is the probability plot The probability plot is a simple way to test whether control chart measurements fit a normal distribution Usually probability plot graphs are plotted by hand using special probability pl
277. group case filling out that array is EXACTLY the same as the fixed sample subgroup case The number of defects in each defect category go into the first N elements element 0 N 1 of the samples array Specify the size of the sample subgroup associated with a given update using the ChartData SampleSubgroupSize VSS property C DoubleArray samples new 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 SPC Control Data and Alarm Classes 120 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 ti
278. gsLevel SPCControlChartData HEADER STRINGS LEVELI rings used in the header section of the table ta Title Variable Control Chart X Bar amp R ta PartNumber 283501 ta ChartNumber 17 ta PartName Transmission Casing Bolt ta Operation Threading he Sampled value rows of the table his EnableInputStringsDisplay true he Sampled value rows of the table his EnableCategoryValues true he Calculated value rows of the table his EnableCalculatedValues true the total samples per subgroup value row his EnableTotalSamplesValues true he Notes row of the table his EnableNotes true the time stamp row of the table his EnableTimeValues true S You should be able to compile the project without error No chart will be visible yet S You should now be able to compile run and view the entire project Any changes you make in the UserChartControll form will be reflected in the application If you still have problems go back and study the many example programs we have provided 13 Using SPC Control Chart Tools for Net to Create Web Applications There are two ways you can integrate the QCSPCChart library in your web pages the first is to serve up an image file created using QCSPCChart from the server and the second is to actually embed a QCSPCChart UserControl derived from our ChartView class in the HTML web page In the first method you use a Image component in either a HTML web page
279. hStartPosX 0 2 Enable scroll bar this EnableScrollBar true this PrimaryChart DisplayFrequencyHistogram true this PrimaryChart XAxis LineColor Color Blue this PrimaryChart XAxis LineWidth 3 this PrimaryChart ProcessVariableData LineMarkerPlot LineAttributes PrimaryColor Color Black this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet 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 SPC Attribute Control Charts 285 The PrimaryChart object is an instance of the SPCChartObjects class The SPCChartObjects class contains the objects needed to display a single graph Below you will find a summary of the class properties Public Instance Properties AnnotationArray AnnotationFont AnnotationNudge AxisLabelFont AxisTitleFont ControlLabelPosition ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart GraphBackground BatchIncrement BatchStartValue BatchStop Value Get the array of TextObject objects representing the
280. hart displays the chart in its unmagnified state The target chart displays the chart in the magnified state The mouse positions a MagniView rectangle within the source chart and the target chart is re scaled and redrawn to 94 QCChart2D Class Summary MoveCoordinates O 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 File and Printer Rendering Classes ChartPrint BufferedImage ChartPrint BufferedImage This class implements printing using the Net System Drawing Printing print related services It can select setup and output a chart to a printer This class will convert a ChartView object to a Net Image object Optionally the class saves the buffered image to an image file Miscellaneous Utility Classes ChartCalendar CSV Dimension Point2D GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D ChartCalendar This class contains utility routines used to process ChartCalendar date objects CSV Dimension Point2D GroupPoint2D DoubleArray DoubleArray2D BoolArray Point3D NearestPointData TickMark Polysurface Rectangle2D QCChart2D Class Summary 95 This is a utility class for readi
281. hartBase table highlight constants ALARM HIGHLIGHT NONE ALARM HIGHLIGHT TEXT ALARM HIGHLIGHT OUTLINE ALARM HIGHLIGHT BAR Set Get whether the x axis 1s time based or numeric based Public Instance Methods AddAnnotation AutoCalculateControlLimits AutoCalculatePrimaryControlLimits AutoCalculateSecondaryControlLimits AutoScaleChartY Range AutoScalePrimaryChartY Range AutoScaleSecondaryChartY Range Copy Draw InitSPCChartBase IsTimeScale MakeControlLinePlot RebuildChartUsingCurrentData SPC Attribute Control Charts 237 Overloaded Add a simple annotation to a data point in the specified SPC chart Using the current sampled data values high target and low control limits are calculated for both primary and secondary charts using an algorithm appropriate to the SPC chart type Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type Auto scale the y range of the SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale the y range of the primary SPC chart so that all of the sampled data and chart control limits are within the bounds of the y axis Auto scale th
282. hat properly references the WindowsControlLihrary1 DLL and its internal UserControll user control it will download just that DLL Internet Explorer will not attempt to download the QCChart2DNet DLL and QCSPCChartNet DLL files and will look to the system GAC for the DLLs instead Visual Basic Create a Windows Control Library and User Control You need to create a ChartView derived user control that defines your chart and includes all of the properties that you need for interacting with your chart This is done almost exactly the same as described in the previous chapter Using QCSPCChart for Net to Create Windows Applications The difference is that instead of creating a Net application resulting in an exe file you can run from Windows you are instead creating a Windows Control Library which results in a DLL file What you end up with is a user control not an executable program The user control must be referenced in a specific way in an HTML file before you can display it The basic steps for creating the ChartView derived control are described below Start by creating a Windows Control Library project using the Visual Studio project wizard File New Project Visual Basic Projects Windows Control Library On the left select a project type of Visual Basic Projects Give the project a unique name our version of this example is WindowsControlLibrary1 You will end with the shell of a UserControl class with the name UserControll You
283. he file is a prefix of data that defines options and the number of columns associated with sample data calculated data and control limit data The second row of data are the column heads for each item in the data log Starting with the third row SPC data is output record by record If the data logging feature is turned on every call to the AddNewSampleRecord method will result in the output of that record and calculated values to the data log A typical datalog file both the width and length of the data file are truncated appears below File prefix 62 5 3 6 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 125 SPC Control Data and Alarm Classes The values in the file prefix have the following meaning 63 Data log options SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DATALOG FILE COLUMN HEADS SPCControlChartData DATALOG FILE NOTES 5 There are five sampled values per record 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 c
284. he mapping mode constants PRT MAX Print the view so that paper is used maximally Text prints proportional to other objects aspect ratio is NOT maintained PRT EXACT Print the view at the same size as the screen at least as far as Net maintains a one to one correspondence in the printing engine The aspect ration of the view is maintained PRT RECT Print the view to the specified rectangle specified using the SetPrintRect method and normalized coordinates Call the ChartPrint DoPrintDialog method after creating the ChartPrint object Then call the ChartPrint DoPrintPage method rendering the chart to the printer If the DoPrintDialog method is not called prior to DoPrintPage the DoPrintPage method File and Printer Rendering 345 automatically invokes the DoPrintDialog method Subsequent calls to DoPrintPage will not invoke the DoPrintDialog method ChartPrint example extracted from the example program FrequencyHistogram Form1 namespace FrequencyHistogram lt summary gt Summary description for Forml lt summary gt public class Forml System Windows Forms Form private FrequencyHistogramUserControll frequencyHistogramUserControll ChartPrint printobj null lt summary gt Required designer variable lt summi Cy private System ComponentModel Container components null public Forml Required for Windows Form Designer support 74 InitializeComponent ty TODO Ad
285. he 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 frequency histogram for both charts Me PrimaryChart DisplayFrequencyHistogram True Me SecondaryChart DisplayFrequencyHistogram True SimulateData Set the strings used in the header section of the table numdatapointsinview this PrimaryChart ProcessVariableData LineMarkerPlot LineAttributes PrimaryColor Color Black this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor Color BlueViolet this PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor Color Beige Calculate the SPC control limits for both graphs of the current SPC chart X Bar R 398 Creating SPC Charts in Windows Applications 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 Private Sub SimulateData For i As Integer 0 To 199 Dim timestamp As ChartCalendar DirectCast startTime Clone ChartCalendar Use the ChartData sample simulator to make an array of sample data Dim samples
286. hing If your value is greater than 1 you need to specify that using code similar to below C4 this ChartData DefectOpportunitiesPerUnit 5 VB Me ChartData DefectOpportunitiesPerUnit 5 Adding New Sample Records for Attribute Control Charts Attribute Control Chart Cross Reference p chart FRACTION DEFECTIVE PARTS CHART or PERCENT DEFECTIVE PARTS CHART np chart NUMBER DEFECTIVE PARTS CHART c chart NUMBER DEFECTS CHART u chart NUMBER DEFECTS PERUNIT CHART DPMO NUMBER DEFECTS PER MILLION CHART 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 1 e paint scratches dents burrs etc It is critical to understand that total number of defects 1 e the sum of the items in the defect categories for a give sample subgroup do NOT have to add up to SPC Attribute Control Charts 239 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 alwa
287. hlim limitcheck this SecondaryChart ControlLimitLineFillMode true VB Dim target As Double 75 lowlim As Double 74 highlim As Double 76 Dim limitcheck As Boolean False Me PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck Me PrimaryChart ControlLimitLineFillMode True target 1 lowlim 0 highlim 2 Me SecondaryChart Add3SigmaControlLimits target lowlim highlim limitcheck Me SecondaryChart ControlLimitLineFillMode True UCL 75 841 UCL2 75 554 UCL1 75 267 XBAR 74 980 LCL1 74 693 LCL2 74 406 LCL 74 119 75 5 75 0 MEAN 74 5 19 00 20 00 21 00 22 00 A i UCL 2 167 UCLR2 1 725 UCLR1 1 283 RBAR 0 842 LCLR1 0 561 LCLR2 0 281 LCL 0 000 tann 2n nn 21 nn 27 AN Control Limit Fill Option used with 1 2 and 3 sigma control limits You can also add additional control limits one at a time By default you get the 3 sigma control limits So additional control limits should be considered 2 sigma and 1 sigma control limits Do not confuse control limits with specification limits which must be added using the AddSpecLimit method There are two steps to adding additional control limits creating a SPCControlLimitRecord object for the new control limit and adding the control limit to the chart using the charts AddAdditionalControlLimit method It is critical that you add them in a specific order that order being Primary Chart SPC LOWER CONTROL LIMIT 2 2 sigma lo
288. ht click on the Show AII Files icon top second from left of the Solution Explorer You should see an associated UserControll Designer vb file as a node under UserControll vb If so go into that file and change the base class to com quinncurtis spcchartnet SPCTimeVariableControlChart Global Microsoft VisualBasic CompilerServices DesignerGenerated Partial Class UserControll Inherits com quinncurtis spcchartnet SPCTimeVariableControlChart S Critical Step Make sure you add the following lines to the top of the UserChartControll vb code to resolve the QCChart2D QCSPCChart and other graphics classes used in the example Imports Imports Imports Imports 396 Creating SPC Charts in Windows Applications Imports Imports Imports Imports o System System System Drawing System Drawing Drawing2D com quinncurtis chart2dnet com quinncurtis spcchartnet Build the Solution Build Build Solution This will compile the UserControl1 class and generate the WindowsControlLibraryl DLL file If the project fails to compile you need to go back and check the previous steps You will need to edit the AssemblyInfo vb file If you expect to be able to communicate using properties between your HTML page hosting the control and the control itself you must turn on COM compatibility This is turned off by default in the AssemblyInfo vb file Change the ComVisible line to show true Assembly ComVisible T
289. ht line for the entire width of the chart regardless if the control limit changes either explicitly or using the AutoCalculateControlLimits method If the ControlLineMode property is SPCChartObjects CONTROL LINE VARIABLE the SPC limit value plots at the value it had when the sample subgroup values updated If you change a control limit value the control limit line will no longer be a straight horizontal line instead it will be jagged or stepped depending on the changes made 0 3 UCLP 0 25 PBAR 0 11 FRACT DEF 0 0 LCLP 0 00 ao Le a pr 20 00 21 00 22 00 23 00 0 00 1 00 12 28 05 PTT 19 00 There are three ways to enter new SPC limit values See the example program TimeAttributeControlCharts VariableControlLimits for an example of all three methods First you can use the method ChartData SetControlLimitValues method C double 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 if i 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
290. iableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes 224 SPC Variable Control Charts ct his PrimaryChart XAxis LineColor Color Blue his PrimaryChart XAxis LineWidth 3 ct his SecondaryChart YAxisl LineColor Color Green his SecondaryChart YAxis2 LineColor Color Red his SecondaryChart YAxisl LineWidth 3 his SecondaryChart YAxis2 LineWidth 3 c tact vt his PrimaryChart ProcessVariableData LineMarkerPlot LineAttributes PrimaryColor olor Black his PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes PrimaryColor olor BlueViolet his PrimaryChart ProcessVariableData LineMarkerPlot SymbolAttributes FillColor olor Beige his PrimaryChart GraphBackground FillColor Color LightGray his PrimaryChart PlotBackground FillColor Color LightGoldenrodYellow vt ck Ort X vL LE rt 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 LineAttributes PrimaryColor Color Black Me PrimaryChart ProcessVariableData LineMar
291. ialControlLimits 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 SPC Variable Control Charts 191 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 TimeVariableControlCharts MultiLimitX BarR Chart Title Variable Control Chart Multi Limit Part No 123456 Chart No 18 Operator T Moosey Machine 11 UCLR2 74 013 74 01 Sa
292. iew derived control will not be visible on the main Form if you 12 Introduction 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 class library the 30 day trial versions and the developer version Each version has different characteristics that are summarized below 30 Day Trial Version The trial version of SPC Control Chart Tools for Net is downloaded in a file named Trial QCSPCChartR20x The 30 day trial version stops working 30 days after the initial download The trial version includes a version message in the upper left corner of the graph window that cannot be removed Developer Version The developer version of SPC Control Chart Tools for Net is downloaded in a file with a name similar to NETSPCDEV1UR2x2x561x1 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
293. illColor Color LightCoral Me FrequencyHistogramPlot SetSegmentFillColor 4 Color Blue Me BuildChart End Sub InitializeChart Special Considerations l C The FrequencyHistogramChart class uses the QCChart2D HistogramPlot plot object class to draw the histogram bars That class uses individually assignable colors for each bar of the bar plot The standard ChartObj LineColor and ChartObj FillColor properties do not work to change the color of the histogram bars in this case Instead you can change the histogram bar colors by calling SetSegmentLineColor and SetSegmentFillColor For int i0 i lt 9 itt 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 328 Frequency Histograms Pareto Diagrams Probability Charts Color Blue Color Black Me BarFillColor Me BarLineColor Adding Control Lines and Normal Curve to Histogram Plot Revision 1 7 adds a couple of new features to the histo
294. ime Go to the main form Form1 You can use either of the two following method to place the UserChartControllclass on the form 1 Inthe Form source file add a variable of type UserChartControll in the declaration section and in the Form constructor instantiate the class and add it to the Form controls list or 2 Go to the toolbox and select the UserChartControll from the Windows Forms list Drop it onto the main form and size it Define the chart by customizing the UserChartControll InitializeChart method See the SPCApplicationl UserChartControll cs file for the complete code listing ChartCalendar startTime new ChartCalendar The time increment between adjacent subgroups int timeincrementminutes 15 Number of samples per sub group int numsamplespersubgroup 5 public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 17 Creating SPC Charts in Windows Applications 371 Initialize the SPCTimeVariableControlChart his HeaderS ct Set the st his ChartDa his ChartDa his ChartDa his ChartDa his ChartDa CE ee ct et cr Display t Display t Display t Display Display t pr 3cpp SGP So ul 0E SS Display this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes trin
295. imit line will no longer be a straight horizontal line instead it will be jagged or stepped depending on the changes made SPC Variable Control Charts 189 40 35 E z UCL 33 0 lt 30 w z XBAR 28 0 25 LCL 23 0 20 17 00 18 00 19 00 20 00 RANGE 17 00 18 00 19 00 20 00 There are three ways to enter new SPC limit values See the example program TimeVaraibleControlCharts VariableControlLimits for an example of all three methods First you can use the method ChartData SetControlLimitValues method C double initialControlLimits 30 25 35 10 0 20 double changeControlLimits 28 23 33 9 0 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 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 you can use the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object bef
296. imple utility method which creates and fills out an appropriately sized BoolArray array with a default true or false value SPCChartObjects GetInitializedRuleBoolArray Method Visual Basic Declaration Public Function GetInitializedRuleBoolArray _ ruleset As Integer _ initialvalue As Boolean _ As BoolArray C public BoolArray GetInitializedRuleBoolArray int ruleset bool initialvalue Parameters ruleset One of the SPCControlLimitRecord named rule identifiers BASIC_RULES WECO_RULES WECOANDSUPP_RULES NELSON_RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES WESTGARD RULES and DUNCAN RULES initialvalue True or False all values of the returned BoolArray are initialized to this value Named and Custom Control Rule Sets 301 All rule numbering is based on our rule numbering which separates greater than and less than tests into separate rules as detailed in the previous tables C BoolArray ruleflags this PrimaryChart GetInitializedRuleBoolArray SPCControlLimitRecord NELSON RULES true ruleflags 9 false ruleflags 10 false this PrimaryChart UseNamedRuleSet SPCControlLimitRecord NELSON RULES ruleflags VB Dim ruleflags As BoolArray Me PrimaryChart GetInitializedRuleBoolArray SPCControlLimitRecord NELSON RULES True ruleflags 9 False ruleflags 10 False Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord NELSON RULES The example above
297. in the log file sampleValueColumn Sample Default string used as the sample value column head in the log file notesColumn Notes Default string used as the notes value column head in the log file defaultDateFormat M dd yyyy Default date format used by the software defaultTimeStampFormat M dd yyyy Default full date time format used by the software HH mm ss defaultDataLogFilenameRoot SPCDataLog Root string used for auto naming of log data file dataLogFilename SPCDataLog Datalog default file name frequencyHistogramX AxisTitle Measurements Frequency Histogram default x axis title frequencyHistogramY AxisTitle Frequency Frequency Histogram default y axis title frequencyHistogramMainTitle Frequency Frequency Histogram default main title Histogram paretoChartX AxisTitle Defect Category Pareto chart x axis title paretoChartY Axis Title Frequency Pareto chart left y axis title paretoChartY Axis2Title Cumulative Pareto chart right y axis title paretoChartMainTitle Pareto Diagram Pareto chart main title probabilityChartX AxisTitle Frequency Bin Probability chart x axis title probabilityChartY AxisTitle Population Probability chart y axis title Under probabilityChartMainTitle Normal Probability Probability chart main title Plot basic Basic Basic rules string weco WECO WECO rules string wecowsupp WECO SUPPLEMENTAL WECO and Supplementa
298. ing AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray variableControlLimits new DoubleArray changeControlLimits this ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring VB Dim initialControlLimits As Double 0 13 0 0 0 27 SPC Attribute Control Charts 261 Dim changeControlLimits As Double 0 11 0 0 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 line
299. ing 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 Cz ul 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 time increment between adjacent subgroups int timeincrementminutes 30 public SimpleAttributeControlChart 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 VB Public Class SimpleAttributeControlChart Inherits com quinncurtis spcchartnet SPCBatchAttributeControlChart Region Windows Form Designer generated code Public Sub Ne
300. ing steps in order to incorporate the QCSPCChart classes into your program This is not the only way to add charts to an application In general any technique that works with UserControl derived classes will work We found the technique described below to be the most flexible Visual Basic for Vet If you do not already have an application program project create one using the Visual Studio project wizard File New Project Visual Basic Projects Windows Application On the left select a project type of Visual Basic Projects Give the project a unique name our version of this example is SPCApplicationl You will end with a basic Form based application For purposes of this example the chart will placed in the initial default form 364 Creating SPC Charts in Windows Applications Add a User Control class to the project Project Add User Control Enter a class name of UserChartControll Select the template Inherited User Control We use the Inherited User Control because it makes it easier to specify one of our SPC Chart types as the base class of the user control The VB Inherits clause for a inherited user control shows up in the normally hidden UserChartControll Designer vb file Add New Item SPCApplication1 Templates Visual Studio installed templates ES Windows Form E Dialog Explorer Form EMDI Parent Form E About Box EE Login Form E Splash Screen ye Class 4g Module ES Interface d amp j Compone
301. ing the SPCTimeVariableControlChart and SPCBatchVariableControlChart classes MA Chart Moving Average The MA chartis another alternative to the preceding Shewhart type control charts X Bar Rand 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 SPCTimeVariableControlChartand SPCBatchVariableControlChartclasses MAMR Chart Moving Average Moving Range The MAMR chart combines our Moving Average chart with a Moving Range chart The Moving Average chart is primary topmost chart and the Moving Range chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When calculating the Moving Range it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at th
302. ing 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 C this XAxisLabelRotation 90 this InterGraphMargin 0 1 this GraphBottomPos 0 85 VB Me XAxisLabelRotation Me InterGraphMargin 0 1 Me GraphBottomPos 0 8 Cc Batch Control Chart X Axis Time Stamp Labeling 220 SPC Variable Control Charts 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 10 6 10 1 11 8 3 2 6 9 6 0 7 8 9 1 4 5 8 5 13 6 7 1 6 1 8 0 122 10 1 3 2 ALARM 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 RANGE 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 Eo gt l 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
303. ion of the ChartLabel class and it displays formatted numeric values This class is a concrete implementation of the ChartLabel class and it displays formatted ChartCalendar dates This class is a concrete implementation of the ChartLabel class and it displays numeric values formatted as elapsed time strings 12 32 21 This class is a concrete implementation of the ChartLabel class that formats string values for use as axis labels Miscellaneous Chart Classes Marker ChartImage ChartShape 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 ChartImage This class displays one of five marker types in a graph The marker is used to create data cursors or to mark data points 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 92 QCChart2D Class Summary using the System Drawing Image class and displayed in a chart ChartShape This class encapsulates a System Drawing Drawing2D 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 System Drawing Drawing2D GraphicsPath class ChartSymbol This class defines symbols used by the SimplePlot scatter plot functions Pre defined symbols include square triang
304. is 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 call Me Dock DockStyle Fill InitializeChart End Sub End Region 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 26 58 82 93 97 100 Me InitProbabllityChart xl yl Me BuildChart End Sub InitializeChart Frequency Histograms Pareto Diagrams Probability Charts 331 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 DefaultAxi
305. isplay some form of sampled data This class is a concrete implementation of the SimplePlot class and it displays simple datasets in a scatter plot format where each data point is represented using a symbol The SimpleVersaPlot is a plot type that can be any of the four simple plot types LINE MARKER PLOT LINE PLOT BAR PLOT SCATTER PLOT It is used when you want to be able to change from one plot type to another without deleting the instance of the old plot object and creating an instance of the new QCChart2D Class Summary 89 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 LegendItem BubblePlotLegendItem StandardLegend BubblePlotLegend Grid Classes Grid PolarGrid AntennaGrid This class is the abstract base class for chart legends 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 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 This class is a concrete implementation of the Legend class and it is the legen
306. itRecord SPCControlChartData SPC PRIMARY UPPER CONTROL LIMIT imit ControlLimitValue imit ControlLimitText F LimitRecord SPCControlChartData SPC SECONDARY CONTROL TARGET 10 ta SPC SECONDARY LOWER CONTROL LIMIT iy ti ta SPC SECONDARY UPPER CONTROL LIMIT F fts r SPC PRIMARY CONTROL TARGET limit ControlLimi ligait Controlbimai t primary chart trolChartData 24 LCL tValue tTex ChartData GetControlLimitRecord SPCControlChartData primaryuppercontrollimit ControlLimitValue 36 primaryuppercontrollimit ControlLimitText UCL Set control limits for secondary chart target control limit secondary char Dim secondarytarge ChartDa Secondary secondary ta Get target target Con Con Con lower control limi Dim secondarylowercon ChartData GetControl secondarylowercontrollimit secondarylowercontroll upper control limit trolLimitValue trolLimitText t secondary chart trollimit As secondary chart t As SPCControlLimitRecord _ trolLimitRecord SPCControlChartData 10 RBAR LimitRecord SPCControlChartDa t ControlLimitValue 0 imit ControlLimitText LCL SPC PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT SPC SECONDARY CONTROL TARGET SPCControlLimitRecord _ ta SPC SECONDARY LOWER CONTROL LIMIT Dim secondaryuppercontrollimit As SPCControlLimitRecord ChartData GetControl secondaryuppercontroll sec
307. ithin outside alternating _ center line Roe S B T SK TON MR Rule violation sigma Target UCL LCL _ Cp Cpl Cpu Cpk Cpm Pp PI pu Pp end SPCChartStrings SetCurrentDefaultStrings usEnglishStrings Return True End Function 12 Using SPC Control Chart Tools for Net to Create Windows Applications Critical Note Running the Example Programs The example programs for SPC Control Chart Tools for Net 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 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 follow
308. ity Management TQC Total Quality Control TQA Total Quality Assurance and CWQC Company Wide Quality Control These systems work on the principle that management must integrate quality into the basic structure of the company and not relegate it to a Quality Control group within the company Historically most of the innovations in quality systems took place in the 20 century with pioneering work carried out by Frederick W Taylor Principles of Scientific Management Henry Ford Ford Motor W A Shewhart Bell Labs W E Deming Department of Agriculture War department Census Bureau Dr Joseph M Juran Bell Labs and Dr Armand V Feigenbaum among others Most quality control engineers are familiar with the story of how the statistical quality control pioneer W E Deming frustrated that US manufactures only gave lip service to quality took the quality system he developed to Japan where it was embraced with almost religious zeal Japanese industry considers Deming a national hero where his quality system played a major role in the postwar expansion of the Japanese 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 p
309. kerPlot 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 AnnotationArray Get the array of TextObject objects representing the annotations of the chart AnnotationFont Set Get annotation font AnnotationNudge Set Get the x and y values use to offset a data points annotation with respect to the actual data point AxisLabelFont Set Get the font used to label the x and y axes AxisTitleFont Set Get the font used for the axes titles ControlLabelPosition Set Get that numeric label for a control limit is ControlLimitData Datatooltip DefaultChartBackgroundColor DefaultNumberControlLimits DefaultPlotBackgroundColor DisplayChart DisplayFrequencyHistogram FrequencyHistogramChart GraphBackground BatchIncrement BatchStartValue BatchStopValue Header HeaderFont HistogramStartPos HistogramOffset MaxY MinY ParentSPCChartBase PlotBackground PlotMeasurement Values PPhysTransform1 SPC Variable Control Charts 225 placed inside or outside the plot area INSIDE PLOTAREA Get the array of th
310. l General Information info quinn curtis com Sales sales quinn curtis com Technical Support Forum http www quinn curtis com ForumFrame htm Revision Date 12 23 2013 Rev 2 3 SPC Control Chart Tools for Net Documentation and Software Copyright Quinn Curtis Inc 2014 Quinn Curtis Inc Tools for Net 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 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
311. l UCLR1 74 007 z H a 74 00 XBAR 74 001 LCLR1 73 995 che LR2 73 989 LCL 73 983 73 99 73 98 re UCL 0 045 0 04 UCLR2 0 036 uj 0 03 1 S UCLR1 0 027 amp 0 02 RBAR 0 017 0 01 0 00 CL 0 000 12 00 13 00 14 00 15 00 a We also added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeVariableControlCharts MultiLimitX BarRChart example If you call the AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 192 SPC Variable Control Charts 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C double target 75 lowlim 74 highlim 76 bool limitcheck false this PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck this PrimaryChart ControlLimitLineFillMode true target 1 lowlim 0 highlim 2 this SecondaryChart Add3SigmaControlLimits target lowlim hig
312. l Chart Tools for Net examples High quality B amp W and color printing is an important feature of the charting library The resulting graph renders on the printer using the resolution of the output device for both text and graphical elements of the chart and does not transfer a grainy image from the computer to the printer The QCChart2D for Net software uses the Microsoft Net PrintDocument component to implement printing Since the aspect ratio of the printed page is different from the aspect ratio of common displays options are included that allow different modes for positioning and sizing the chart on the printed page The BufferedImage class converts a chart into a Net Bitmap object or saves the chart to a file in any of the graphics formats supported by the System Drawing Imaging ImageFormat class The image file is placeable in a web page or an application program 344 File and Printer Rendering Printing a Chart Class ChartPrint ChartObj ChartPrint The ChartPrint class uses the Microsoft Net PrintDocument component to implement printing The class selects setups and outputs a chart to a printer ChartPrint constructor Visual Basic Overloads Public Sub New _ ByVal component As ChartView _ ByVal nsizemode As Integer _ C public ChartPrint ChartView component int nsizemode component Specifies the ChartView object to be printed nsizemode Specifies the printer mapping mode Use one of t
313. l Rules string nelson Nelson Nelson rules string aiag AIAG AIAG rules string juran Juran Juran rules string hughes Hughes Hughes rules string gitlow Gitlow Gitlow rules string duncan Duncan Duncan rules string westgard Westgard Westgard rules string primarychart Primary chart Used in alarm messages to specify the Primary Chart variable chart is in alarm secondarychart Secondary chart Used in alarm messages to specify the Secondary Chart variable chart is in alarm greaterthan greater than Used in alarm messages to specify that a greater than alarm limit has been violated lessthan less than Used in alarm messages to specify that a less than alarm limit has been violated above above Used in alarm messages to specify that values above a limit below below Used in alarm messages to specify that values below a limit increasing increasing Used in alarm messages to specify that values are increasing decreasing decreasing Used in alarm messages to specify that values are decreasing trending trending Used in alarm messages to specify that values are trending within within Used in alarm messages to specify that values are within certain limits outside outside Used in alarm messages to specify that values are outside certain limits alternating alternating Used in alarm messages to specify that values are alternating about
314. l 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 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 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 Add a 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 BatchAttributeCo
315. l 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 Frequency Histogram Chart t Form1 EET ini x File Exit Frequency Histogram of Selected Data Frequency 40 Measurements Viewing frequency histograms of both the variation in the primary variable Mean Median count or actual value and the secondary variable Range Sigma or Moving Standard SPC Control Charts 37 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 38 Standard SPC Control Charts XBar Sigma Chart with Integral Frequency Histograms ini x File Exit Bar EWMA Chart Variable Control Limits Dynamic SPE Bar Sigma Individual Range MultiLimit Bar R Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Operator J Fenamore Machin
316. lChartData AddNewSampleRecord If the AddNewSampleRecord overload does not have an explicit ChartCalendar time stamp parameter as in the case several of the overloaded methods the current time as stored in the system clock is used as the time stamp Question How do you initialize the ChartCalendar object with your 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 SPC Control Data and Alarm Classes 122 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 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 RebuildChartUsi
317. 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 QCChart2D Class Summary 65 ChartAttribute and PhysicalCoordinates classes The ChartAttribute class contains basic color line style and gradient information for the object while the PhysicalCoordinates maintains the coordinate system used by object The majority of classes in the library derive from the GraphObj class each class a specific charting object such as an axis an axis label a simple plot or a group plot Background This class fills the background of the entire chart or the plot area of the chart using a solid color a color gradient or a texture Axis Classes Axis Linear Axis PolarAxes AntennaAxes ElapsedTimeAxis LogAxis TimeAxis Creating a PhysicalCoordinates coordinate system does not automatically create a pair of x and y axes Axes are separate charting objects drawn with respect to a specific PhysicalCoordinates object The coordinate system and the axes do not need to have 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
318. lculated for small 1 If the EWMA chart is used with subgroup sample sizes greater than 1 the value of Xi is replace by the mean of the corresponding sample subgroup and the value of __ replaced by the value _ Sir where in is the sample subgroup size You specify Constr 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 EWMAChart Specify L using the DefaultControlLimitSigma property and Cane ath e the EWMA_Lambda property You can optionally set the EWMA starting value EWMA StartingValue normally set to the process mean value and whether or not to use the steady state EWMA control limits UseSSLimits Extracted from the MiscTimeBasedControlCharts EWMAChart example SPC variable control chart type int charttype SPCControlChartData EWMA CHART Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview sampleincrement SPC Variable Control Charts 183 this ChartData EWMA StartingValue 10 Set to estimate of mean of process variable this ChartData EWMA Lambda 0 1 this DefaultControlLimitSigma 2 this ChartData EWMA UseSSLimits 7 Specifies L value false VB SPC variable control chart ty
319. lds he the chart objects needed to display the secondary chart Specifies the control chart type use one of the SPCControlChartData chart type constants MEAN RANGE CHART MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS CHART TABCUSUM CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART 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 Get the top edge using normalized coordinates of the SPC chart table Set Get whether the x axis is time based or numeric based Overloaded Add a simple annotation to a data point in the specified SPC chart Using the current sampled data values high target and low control limits are calculated for both primary and secondary charts using an algorithm appropriate to the SPC chart type Using the current sampled data values high target and low control limits are calculated for the primary chart using an algorithm appropriate to the SPC chart type AutoCalculateSecondaryControlLimits Using the current sampled data values high target and low control limits are calculated for AutoScaleChartY Range AutoScalePrimaryChartY Range AutoScaleSecondaryCh
320. le as described above But it no longer contains the Inherits statement Instead the Inherit statement is found in the second file UserChartControll Designer vb For some perverse reason this file is HIDDEN by default You must explicitly select the Show All Files option of the Solution Explorer second button from the left at the top of the Solution Explorer Now you will see the UserChartControl1 Designer vb file under the UserChartControll vb file in the Solution Explorer Select the UserChartControll1 Designer vb file to see how the Inherits statement is used Normally you don t edit the UserChartControll Designer vb file Critical Step Make sure you add the following lines to the top of the UserChartControll vb code to resolve the QCChart2D QCSPCChart and other graphics classes used in the example Creating SPC Charts in Windows Applications 367 Imports System Drawing Imports System Drawing Drawing2D Imports com quinncurtis chart2dnet Imports com quinncurtis spochartnet Build the Solution Build Build Solution This will compile the UserChartControll class and make it accessible as a component on the Toolbox If the project fails to compile you need to go back and check the previous steps You can create as many User Controls as your application requires Each custom chart control will inherit from the com quinncurtis chart2dnet ChartView control Or Optional You can create inherited controls from th
321. le diamond cross plus star line horizontal bar vertical bar 3D bar and circle Mouse Interaction Classes MouseListener MoveObj FindObj DataToolTip DataCursor MoveData MagniView MoveCoordinates ChartZoom Several classes implement delegates for mouse events The MouseListener class implements a generic interface for managing mouse events in a graph window The DataCursor MoveData MoveObj ChartZoom MagniView and MoveCoordinates classes also implement mouse event delegates that use the mouse to mark move and zoom chart objects and data MouseListener This class implements Net delegates that trap generic mouse events button events and mouse motion events that take place in a ChartView window A programmer can derive a class from MouseListener and override the methods for mouse events creating a custom version of the class MoveObj This class extends the MouseListener class and it can select chart objects and move them Moveable chart objects include axes axes labels titles legends arbitrary text FindObj DataCursor MoveData DataToolTip ChartZoom MagniView QCChart2D Class Summary 93 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 butt
322. leControlChart chartVu InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes chartVu HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL2 Set the strings used in the header section of the table hartVu ChartData Title Variable Control Chart X Bar amp R hartVu ChartData PartNumber 283501 hartVu ChartData ChartNumber 17 hartVu ChartData PartName Transmission Casing Bolt hartVu ChartData Operation Threading hartVu ChartData TheOperator Roger Bacon hartVu ChartData Machine AB 276 hartVu GraphStartPosX 0 175 hartVu GraphStopPosX 0 89 0 0 Q Uu OQ Q X X 0 Display the Sampled value rows of the table chartVu EnableInputStringsDisplay headersOption Display the Sampled value rows of the table chartVu EnableCategoryValues sampledValueOption Display the Calculated value rows of the table chartVu EnableCalculatedValues calculatedValueOption Display the total samples per subgroup value row chartVu EnableTotalSamplesValues calculatedValueOption Display the Notes row of the table chartVu EnableNotes False chartVu EnableTotalSamplesValues False Display the time stamp row of the table Creating SPC Charts in Windows Applications 385 chartVu EnableTimeValues sampledValueOption Or calculatedValueOption frequency histogram for both charts chartVu PrimaryChart DisplayFrequencyHistogram histogramOpti
323. lement the simulated defective parts count The defect category count data of the samples array is only used in the table part of the display the defect category counts play NO role in the actual SPC chart The only value plotted in the SPC chart is the last element in the samples array the defective parts count for the sample subgroup Updating p charts Variable Sample Subgroup Size p chart FRACTION DEFECTIVE PARTS CHART VSS or SPC Control Data and Alarm Classes 118 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 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 AddNewSa
324. lic Sub InitializeChart SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of datapoints in the view Dim numdatapointsinview As Integer 17 End Sub InitializeChart You should be able to compile the project without error 368 Creating SPC Charts in Windows Applications You should now be able to compile run and view the entire project Any changes you make in the UserChartControll form is reflected in the application If you still have problems go back and study the many example programs we have provided Visual CZ for Net If you do not already have an application program project create one using the Visual Studio project wizard File New Project Visual C Projects Windows Application On the left select a project type of Visual C Projects Give the project a unique name our version of this example is SPCApplicationl You will end with a basic Form based application For purposes of this example the chart is placed in the initial default form Add a User Control class to the project Project Add User Control Enter a class name of UserChartControll Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select and add BOTH the QCSPCChartNet DLL and QCChart2DNet DLL Add Reference NET COM Projects Browse Recent Look in G lib QCSPCChartNet dll
325. limits Eight points in a row increasing Eight points in a row decreasing Eight out of Eight are above center line Named and Custom Control Rule Sets 293 9 Fight out of Eight are below center line Duncan Rules One of one point is outside of 3 sigma control limits Two of three points above 2 sigma control limits Two of three points below 2 sigma control limits Four of five points is above 1 sigma control limits Four of five points is below 1 sigma control limits Seven points in a row increasing Seven points in a row decreasing SOO par poi s Westgard Rules One of one point is outside of 3 sigma control limits 13s Two of two points outside 2 sigma control limits 22s Four of four points outside 1 sigma control limits 41s Ten of ten points on one side of center line 10x Two adjacent points on opposite sides of 2 sigma R4s Seven of seven points in a trend increasing or decreasing 7T One of one point is outside of 2 sigma control limits 12s Two of three points outside 2 sigma control limits 20f32s Three of three points outside 1 sigma control limits 31s 10 Six of six points on one side of center line 6x 11 Eight of eight points on one side of center line 8x 12 Nine of nine points on one side of center line 9x 13 Twelve of twelve points on one side of center line 12x 9 o9 tU C By default only the first six Westgard rules described above are enabled The others can be turn
326. lly 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 Calculated 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 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 e e e a C 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 AutoScalePrimaryChart
327. lueRecord SPC NUMBER DEFECTS PER MILLION CALC Named and Custom Control Rule Sets 311 SPCChartObjects AddNumericControlLimit Method Visual Basic Declaration Public Function AddNumericControlLimit _ sourcevar As SPCCalculatedValueRecord _ limtype As Integer _ value As Double _ displaystring As String _ addline As Boolean _ attrib As ChartAttribute _ As SPCControlPlotObjectData C public SPCControlPlotObjectData AddNumericControlLimit SPCCalculatedValueRecord sourcevar int limtype double value string displaystring bool addline ChartAttribute attrib Parameters sourcevar The SPCCalculatedValue source of the item to test limtype Specifiy either SPCChartObjects SPC LOWERTHAN LIMIT or SPCChartObjects SPC GREATERTHAN LIMIT value Specifies the value of the control limit displaystring The optional display string displayed to the right of the limit line addline True and the limit is displayed as a line in the chart attrib 312 Named and Custom Control Rule Sets The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the numeric limit C this ChartData GetCalculatedValueRecord 0 returns the calcuated value which calculates the subgroup mean SPCCalculatedValueRecord cvr this ChartData GetCalculatedValueRecord 0 this PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC LOWER SPEC LIMIT 22 3 L CV 0
328. m will apply to the program as a whole not just the immediate class AxisLabelFont The font used to label the x and y axes AxisTitleFont The font used for the axes titles HeaderFont The font used for the chart title SubheadFont The font used for the chart subhead ToolTipFont The tool tip font AnnotationFont The annotation font ControlLimitLabelFont The font used to label the control limits Extracted from the example TimeVariableControlCharts DynamicX BarRChart 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 168 SPC Variable Control Charts 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 DynamicXBarR Chart C SP
329. maryChart UseNamedRuleSet SPCControlLimitRecord HUGHES RULES int M 18 int N 15 SPCControlLimitRecord clr this ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 15 clr SetCustomRuleParameters M N clr this ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 16 clr SetCustomRuleParameters M N VB Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord HUGHES RULES Dim M As Integer 18 Dim N As Integer is Dim clr As SPCControlLimitRecord Me ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 15 clr SetCustomRuleParameters M N clr Me ChartData GetNamedControlRuleRecord SPCControlLimitRecord HUGHES RULES 16 clr SetCustomRuleParameters M N When trying to access the SPCControlLimitRecord for a given control rule it is very important that you use the GetNamedControlRuleRecord method not the GetControlLimitRecord method This is because the array indexing of the ControlLimitRecords does not match the named control rule numbering i e GetNamedControlRuleRecord 15 and GetControlLimitRecord 15 return different SPCControlLimitRecords If you want to enable disable a specific rule after they have all been created C SPCControlLimitRecord clr this ChartData GetNamedControlRuleRecord SPCControlLimitRecord AIAG RULES 3 clr AlarmEnable false VB SPCControlLimitRecord clr Me ChartData GetNamedControlRuleRecord SPCCont
330. medRuleSet SPCControlLimitRecord Use the complete set of Gitlow rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of Westgard rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord Use the complete set of Duncan rules this PrimaryChart UseNamedRuleSet SPCControlLimitRecord VB Use the standard 3 sigma control limits Equivalent Equivalent to WECO control rules 1 and 2 BASIC RULES 4 which in our organization of the WECO RULES 8 which in our organization of the WECOANDSUPP RULES NELSON RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES WESTGARD RULES DUNCAN RULES to WECO control rules 1 and 2 300 Named and Custom Control Rule Sets Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord BASIC RULES Use the WECO rules This corresponds WECO rules 1 4 which in our organization of the rules is 1 to 8 Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord WECO RULES Use the complete set of Duncan rules Me PrimaryChart UseNamedRuleSet SPCControlLimitRecord DUNCAN RULES The named rule setup methods also come in variants which allow you to selectively enable diasble one or more rules from the named rule set You do that by building a BoolArray object containing true or false for each named rule in the rule set and calling UseNamedRuleSet method The GetInitializedRuleBoolA rray is just a s
331. mestamp As ChartCalendar New ChartCalendar Place sample values in array samples 0 3 Number of defects for defect category 1 samples 1 Number of defects for defect category 2 samples 2 Number of defects for defect category 3 samples 3 Number of defects for defect category 4 samples 4 Number of defects for defect category 5 0 4 2 3 Randomize the sample subgroup size to some value less than the maximum value entered in the call to InitSPCTimeAttributeControlChart v 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 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 Double
332. mit displaylimitline True to display a limit line for the control limit In your code it would something like int template 2 N of M Greater than limit value int N 10 int M 13 double sigmavalue 2 control limit value is the 2 sigma value bool displaylimitline false no limit line this PrimaryChart AddControlRule template N M sigmavalue displaylimitline VB Dim template As Integer 2 Nof M Greater than limit value Dim N As Integer 10 Dim M As Integer 13 308 Named and Custom Control Rule Sets Dim sigmavalue As Double 2 trending is not attached to a sigma value Dim displaylimitline As Boolean False no limit line Me PrimaryChart AddControlRule template N M sigmavalue displaylimitline Creating Custom Rules Not Associated With Sigma Levels Most of the preceding control rules are based on the mean and sigma of the current control chart The trending rules N of M increasing decreasing are an exception because they don t use the mean or sigma value anywhere in their evaluation Regardless since many of the named rules include trending rules they are included with the previous section There are a couple of other control rules not directly related to the mean and sigma value of the chart The first is a simple numeric limit The limit is meant to be independent of the mean and sigma level of the chart It can also be considered a specification limit We have three routin
333. mp 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 1 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 115 SPC Control Data and Alarm Classes 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 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
334. mplate 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 252 SPC Attribute Control Charts 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 these properties are TableStartPosY 0 00 GraphTopTableOffset 0 02 GraphBottomPos 0 925 The picture below uses different valu
335. mple 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 276 SPC Attribute Control Charts TableAlarmEmphasisMode Title Fraction Defective p Chart Part No 321 Chart No 19 Operator B Cornwall Machine 11 Gage Zero Equals 7 44 8 14 8 44 B 44 10 14 10 44 11 14 11 44 12 14 12 44 B 44 14 14 14 44 15 14 15 44 Defect 1 Defect 3 FRACT DEF 0 160 0 040 0 24q q 140 0 000 0 040 0 080 0 260 0 200 0 12p 0060 0 180 0 060 0 100 0 240 e iy FRACT DEF Ni 00 os m i i i i H i H gt CL 0 00 20 15 10 5 0 8 00 9 00 10 00 11 00 12 00 13 00 14 00 15 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
336. mpleRecord call this ChartData SampleSubgroupSize VSS numsamplespersubgroup int 25 ChartSupport GetRandomDouble 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 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 119 SPC Control Data and Alarm Classes initialized to five the total number of elements in the samples array should
337. mulateDefectRecord 50 0 134 _ SPCControlChartData PERCENT DEFECTIVE PARTS CHART Dim r As Double ChartSupport GetRandomDouble If r lt 0 1 Then make a note on every tenth item on average notesstring Note for sample subgroup i ToString _ 268 SPC Attribute Control Charts 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 passing StartTime Add ChartObj MINUTE 30 Next i End Sub SimulateData Scatter Plots of the Actual Sampled Data ST his 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 SPC Attribute Control Charts 269 E Formi o Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Title Fraction Defective p Chart Part No 321 Chart No 19 x
338. n 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 primary and secondary charts Get the bottom edge using normalized coordinates of 236 SPC Attribute Control Charts GraphStopPosY2 GraphTopTableOffset HeaderStringsLevel InterGraphMargin MultipleMouseListener PrimaryChart ScrollBarBottomPosi
339. n 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 updateCountt 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 Scale the y axis of the Range chart to display all data and control limits this AutoScaleSecondaryChartYRange VB updateCount 1 Me ChartData AddNewSampleRecord timestamp samples If updateCount gt 50 Then After 50 sample groups and calculate limits on the fly Calculate the SPC control limits for the X Bar part of the current SPC chart 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 AutoScaleSecon
340. ncurtis chart2dnet 392 Creating SPC Charts in Windows Applications using com quinncurtis spechartnet namespace WindowsControlLibraryl public partial class UserControll com quinncurtis spcchartnet SPCTimeVariableControlChart ChartCalendar startTime new ChartCalendar The time increment between adjacent subgroups int timeincrementminutes 15 publie UserControll This call is required by the Windows Forms Form Designer InitializeComponent TODO Add any initialization after the InitForm call Have the chart fill parent client area this Dock DockStyle Fill Define and draw chart InitializeChart lt summary gt Set Get the chart title lt summary gt public string ChartTitleText get return this ChartData Title set this ChartData Title value this RebuildChartUsingCurrentData lt summary gt Set Get the input string flag lt summary gt public bool EnableInputStrings return this EnableInputStringsDisplay this EnableInputStringsDisplay value this RebuildChartUsingCurrentData public void InitializeChart SPC variable control chart type int charttype SPCControlChartData MEAN RANGE CHART Number of samples per sub group int numsamplespersubgroup 5 Number of datapoints in the view int numdatapointsinview 17 Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart
341. nd 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 82 QCChart2D Class Summary Cumulative Plot of Noise vs Time from 7 Sources 10 15 20 Time The Stacked Line Plot will plot the cumulative sum of multiple y vectors vs a single x vector StackedLinePlot This class is a concrete implementation of the GroupPlot class and displays data in a stacked line format In a stacked line plot each group is stacked on top of one another each group line a cumulative sum of the related group items before it Polar Plot Classes PolarPlot PolarLinePlot PolarScatterPlot 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 QCChart2D Class Summary 83 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 Pol
342. nd one instance of template 2 N of M below X sigma where N 1 M 1 and X 3 Rule 2 for WECO and Nelson two of three point plots outside of 2 sigma is implemented as one instance of template 1 N of M above X sigma where N 2 M 3 and X 2 and one instance of template 2 N of M below X sigma where N 2 M 3 and X 2 Rule 4 and 5 for Hughes three of seven points above below 2 sigma control limit is implemented as one instance of template 1 N of M above X sigma where N 3 M 7 and X 2 and one instance of template 2 N of M below X sigma where N 3 M 7 and X 2 Rule 6 for Gitlow eight points in a row increasing is implemented as one instance of template 5 N of M trending up where N 8 and M 8 The templates are important because using them you can modify any existing named rule changing the M N or X parameter Or you can create completely new rules Taking these factors into account we have redefined and renumbered the rules identifying each with the template and parameters used by each rule Named and Custom Control Rule Sets 295 Standardized Template Parameters and Rule Cross Reference for Named Rules Basic Rules New Rule Description Rule Template Nof M X 1 l of 1 lt 3 sigma 1 1 1 1 3 1 of 1 gt 3 sigma 2 2 1 1 3 WECO New Rule Description Rule Template Nof M X 1 l of 1 lt 3 sigma 1 1 1 1 3 1 of 1 gt 3 sigma 2 2 1 1 3 2 2 of 3 lt 2 sigma 3 1 2 3 2 2 of 3 gt 2 sigma 4
343. nd calculating frequency bins for frequency histograms It also includes functions that compute cumulative probability values for normal Poisson and chi squared distributions SPCControlParameters Class Architecture 55 The SPCControlParameters class contains the factors and formulas for calculating SPC control chart limits for Variable and Attribute Control Charts It includes calculations for the most common SPC charts X Bar R Median and Range X Bar Sigma X R u chart p chart np chart and c chart Tabular Display Table Display of Sampled and Calculated SPC Control Chart Value Static Dynamic with Freq Histograms with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 14 03 14 18 14 33 14 48 15 03 15 18 15 33 15 48 16 03 16 18 16 33 16 48 17 03 17 18 17 33 17 48 18 03 2 39 23 41 43 41 22 39 48 140 33 51 47 51 43 20 44 27 4 27 46 28 19 40 24 24 26 38 51 48 37 29 27 19 39 33 39 4 31 2 30 0 348 42 9 29 6 34 8 43 2 36 9 44 9 43 3 356 40 2 324 323 35 1 30 3 197 1 156 2 150 2 173 8 214 6 148 0 173 8 215 9 184 6 224 4 216 7 178 1 201 1 162 1 161 5 175 6 151 3 SPCGeneralizedTableDisplay The SPCGeneralizedTableDisplay manages a list of ChartText objects NumericLabel StringLabel and TimeLabel objects that encapsulate each unique table entry in the SPC chart table This class also manages the spacing
344. nd control limits Me AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits SPC Variable Control Charts 203 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 is updated using the ChartData AddNewSampleRecord method In this case the chart data updates with each timer tick event though it could just as easily be any other type of event If you have already collected all of your data and just want to plot it all at once use a simple loop like most of our examples do to update the data C private void SimulateData for int i 0 i lt 200 i ChartCalendar timestamp ChartCalendar startTime Clone use this for time row not graphs Use the ChartData sample simulator to make an array of sample data DoubleArray samples this ChartData SimulateMeasurementRecord 33 9 Add the new sample subgroup to the chart this ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE sampleincrement VB Private Sub SimulateData Dim i As Integer For i 0 To 199 Dim timestamp As ChartCalendar CTyp
345. nd heights specified using the values of the associated group dataset The histogram bars share a common base value Sales vs Cost Gap Millions 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 MultiLinePlot OHLCPlot QCChart2D Class Summary 81 Characteristic Curves for Bipolar Transistor Collector Current mA 10 Collector Emitter Voltage The MultLinePlot will plot a multiple y vectors vs a single x vector This class is a concrete implementation of the GroupPlot class and displays group data in multi line 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 Price Volume NASDAQ Scroll Week 7 22 02 7 29 02 8 05 02 8 12 02 8 19 02 Press and hold left mouse button over a stock value to get details for that date 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 a
346. ng 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 Point and PointF classes This class encapsulates an x value and an array of y values representing the x and y values of one column of a group data set This class is used as an alternative to the standard Net Array class adding routines for resizing of the array and the insertion and deletion of double based data elements This class is used as an alternative to the standard Net 2D Array class adding routines for resizing of the array and the insertion and deletion of double based data elements This class is used as an alternative to the standard Net Array class adding routines for resizing of the array and the insertion and deletion of bool based data elements This class encapsulates an xyz set of double values used to specify 3D data values This is a utility class for returning data that results from nearest point calculations The axis classes use this class to to organize the location of the individual tick marks of an axis This is a utility class that defines complex 3D shapes as a list of simple 3 sided polygons The contour plotting routines use it This is a utility class that extends the RectangleF class using
347. ng at 0 limtype Specifiy either SPCChartObjects SPC LOWER PC LIMIT or SPCChartObjects SPC UPPER PC LIMIT value Specifies the value of the limit displaystring Text included with the alarm if it is triggered attrib The line attributes of the spec limit line Return Value The SPCControlPlotObjectData object of the specification limit C Attached control limits to the first Process Capability added to the chart this PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpk new ChartAttribute Color Green 3 0 this PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpk new ChartAttribute Color Yellow 3 0 Attached control limits to the second Process Capability added to the chart this PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC LOWER PC LIMIT 0 195 IL Cpm new ChartAttribute Color Green 3 0 this PrimaryChart AddProcessCapabilityControlLimit 1 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpm new ChartAttribute Color Yellow 3 0 VB Me PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC LOWER PC LIMIT 0 195 L Cpk New ChartAttribute Color Green 3 0 Me PrimaryChart AddProcessCapabilityControlLimit 0 SPCChartObjects SPC UPPER PC LIMIT 0 25 H Cpk New ChartAttribute Color Yellow 3 0 Me PrimaryChart Add
348. ng properties have names like Title PartNumber ChartNumber etc those names are arbitrary They are really just placeholders for the strings that are placed at the respective position in the table You can display any combination of strings that you want rather than the ones we have selected by default based on commonly used standardized SPC Control Charts 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 246 SPC Attribute Control Charts Title Number Defective per Unit u Chart Part Operator S Kafka Mac Time 12 01 12 31 13 01 13 31 14 01 14 31 Burr Seam Set the table row headers strings for gereci categories this ChartData SetSampleRowHeaderString 0 Scratch this ChartData SetSampleRowHeaderString 1 Bure this ChartData SetSampleRowHeaderString 2 Dent this ChartData SetSampleRowHeaderString 3 Seam this ChartData SetSampleRowHeaderString 4 Other VB Set the table row headers strings for i uice categories Me ChartData SetSampleRowHeaderString 0 Scratch Me ChartData SetSampleRowHeaderString 1 Burr Me ChartData SetSam
349. ngCurrentData call The example below is from the TimeVariableControlCharts XBarR Chart example program The AddNewSampleRecord routine is called in the SimulateData method 123 SPC Control Data and Alarm Classes XB Bar Sigma Individual Range Mult LimitX Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 12 331 12 46 13 001 13 16 13 31 13 46 14 01 14 16 14 31 14 46 15 01 15 16 15 31 15 46 16 01 16 16 16 31 2 36 25 37 31 34 35 27 29 28 28 27 25 33 27 31 25 24 C public void InitializeChart this InitSPCTimeVariableControlChart charttype numcategories numsamplespersubgroup numdatapointsinview timeincrementminutes SimulateData this AutoCalculateControlLimits this AutoScalePrimaryChartYRange this AutoScaleSecondaryChartYRange this RebuildChartUsingCurrentData private void SimulateData String notesstring for int i90 i 200 itt 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 S
350. nge Chart chart EWMA Exponentially Weighted Moving Average Chart MA Moving Average Chart MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma CuSum Tabular Cumulative Sum Chart Variable sample size subgroup control charts X Bar Sigma Mean and Sigma Chart Attribute Control Charts Fixed sample size subgroup control charts p Chart Fraction or Percent of Defective Parts Fraction or Percent Non Conforming np Chart Number of Defective Parts Number of Non Conforming c Chart Number of Defects Number of Non Conformities u Chart Number of Defects per Unit Number of Non Conformities Per Unit DPMO Number of Defects per Million Variable sample size subgroup control charts p Chart Fraction or Percent of Defective Parts u Chart Number of Defects per Unit 42 O O amp O O O amp Class Architecture SPC Analysis Charts Frequency Histograms Probability Charts Pareto Charts Minimal programming required create SPC charts with a few lines of code using our SPC chart templates Integrated frequency histograms support Display frequency histograms of sampled data displayed side by side sharing the same y axis with the SPC chart Charts Header Information Customize the chart display with job specific information for example Title Operator Part Number Specification Limits Machine ect Table display of SPC data Display the sampled and calculated values
351. ns 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 max 0 Xi K TC i1 Cj max 0 K Xjit C i1 where the starting values are C o C7 0 Gis 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 5 and the out of control process mean value F that you are trying to detect K ABS F F 2 SPC Variable Control Charts 187 The control limits used by the chart are H If the value of either C or C exceed H the process is considered out of control The software does not calculate an optimal H or K value that is up to you the programmer to supply based on your past experience with CuSum charts Typically H is set equal to 5 times the process standard deviation Typically K is selected to be one half the magnitude of the difference between the target value and the out of control process mean value F7 that you are trying to detect You specify H and K in the initialization call InitSPCTimeCusumControlChart for a time based variable control chart or InitSPCBatchCusumControlChart for a batch based variable control chart See the examples MiscTimeBasedControlCharts CUSumChart MiscTimeBasedControlCharts CUSumChart2 MiscBatchBasedControlCharts C
352. nt Class zh COM Class gu DataSet J SQL Database i Report E User Control Inherited Form sg Inherited User Control g Custom Control A Web Custom Control amp giResources File H Settings File Ye Code File Ba Class Diagram is ML File 3 XML Schema Ja XSLT File amp Text File 9 HTML Page 8 Bitmap File Cursor File nf Icon File Application Configuration File Transactional Component dj Installer Class dj Windows Service 4 new control based on an existing Windows Forms control Mame UserChartControll vb When you click Add you will see the Inheritance Picker Select Browse browse to the Quinn Curtis DotNet lib folder and select the QCSPCChart DLL file and select Open Creating SPC Charts in Windows Applications 365 Select a file that contains a component to inherit from Look in lib v Q f em S QCRTGraphNet dll 9 QcMatviewNet dll 9 QcMatPackNet dll 5 QCChart2DNet dll My Computer File name GCSPCChartNet dl My Network Files of type DII files dll Select the SPC Chart component you want to inherit from It should come from the following list SPCTimeVariableControlChart SPCTimeAttributeControlChart SPCBatchVariableControlChart SPCBatchAttributeControlChart FrequencyHistogramChart ProbabilityChart ParetoChart 9 amp 9 9 amp 9 9 366 Creating SPC Charts in Windows Applications Inheritance Pick
353. ntrolChart Me InitSPCTimeAttributeControlChart charttype numcategories _ numsamplespersubgroup numdatapointsinview timeincrementminutes Me RebuildChartUsingCurrentData End Sub DrawChart End Class SPCTimeAttributeControlChart Members 232 SPC Attribute Control Charts SPCTimeAttributeControlChart overview Public Instance Constructors SPCTimeAttributeControlChart Overloaded Initializes a new instance of the SPCTimeAttributeControlChart class Public Instance Methods InitSPCTimeAttributeControlChart Overloaded Initialize the class for a specific SPC chart type The control chart type p np c and u charts is established in the attribute control charts InitSPCTimeAttributeControlChart initialization routine SPCTimeAttributeControlChart InitSPCTimeAttributeControlChart Method This initialization method initializes the most important values in the creation of a SPC chart VB Overloads Public Sub InitSPCTimeAttributeControlChart _ ByVal charttype As Integer _ ByVal numcategories As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ ByVal timeincremenminutest As Integer _ public void InitSPCTimeAttributeControlChart int charttype int numcategories int numsamplespersubgroup int numdatapointsinview int timeincrementminutes Parameters charttype Specifies the chart type Use one of the SPC Attribute Control chart types PERCENT DEFECTIVE PA
354. ntrolCharts 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 284 SPC Attribute Control Charts Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 11 14 11 44 12 14 12 44 13 14 13 44 14 14 14 44 15 14 15 44 16 14 16 44 17 14 17 44 18 14 18 44 19 14 2 4 FRACT DEF 0 140 0 120 0 160 0 220 0 040 0 180 0 160 0 120 0 160 0 220 0 120 0 000 0 200 0 180 0 100 0 060 0 220 NOTES ee ee Can A aan 0 2 PBAR 0 14 FRACT DEF 0 0 12 00 13 00 14 00 15 00 16 00 17 00 18 00 19 00 EIL 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 this Grap
355. ntrolLimits 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 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 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 SPC Variable Control Charts 223 Formi lol xl X Bar R X Bar Sigma Individual Range MultiLimit X Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 C Initialize the SPCTimeVar
356. numeration The enumerated values can be used to access and modify any specific string String oldstring SPOChartStrings SetStringt SPCChartStrings SPCStringEnum defaultMean AVERAGE oldstring SPOChartStrings SetString SPCChartStrings SPCStringEnum defaultDateFormat dd M yyyy Where the static SetString method returns the previous value for the string The SPCChartStrings module is used to define default and static strings for the various QCSPCChart classes when those classes are initialized Trying to set the SPCChartStrings strings using SetString after any of the SPC charts have been instantiated will not have the desired effect Since the SPC charts classes are normally instantiated in the main Window xaml file you must change any strings before that intialization takes place The best way to do that 1s to initialize the string in a static method in the main Form file You will find an example in the TimeVariableControlCharts Form1 cs file Call the static method using an initialization of a static variable in the global variables section of the class This will guarantee that the strings get initialized first Since the SPCChartStrings class is static you can call it anytime It does not need instantiation public partial class Windowl Window DynamicXBarRChart dxbrc Static bool initStringsComplete InitStrings public Windowl InitializeComponent InitializeCharts Statio bool
357. ny initialization after the InitForm call double I xl 1 2 3 4 5 6 7 8 9 double yl 2 6 13 26 58 82 93 97 100 this InitProbabilityChart xl yl this ProbabilityPlot LineColor Color Red this ProbabilityPlot ChartObjAttributes SymbolSize 12 this YAxisl LineColor Color Green this YAxisl LineWidth 3 this YAxis2 LineColor Color Blue this YAxis2 LineWidth 3 this YAxisLabl LineColor Color DarkMagenta this BuildChart VB Sub InitializeChart TODO Add any initialization after the InitForm call Dim xl As Double 1 9 2 Sy d Sy 5 Vy 9 St Dim yl As Double 2 6 13 26 58 82 93 97 100 Me InitProbabilityChart xl yl Me ProbabilityPlot SetColor Color Red sets both line and fill color Me ProbabilityPlot ChartObjAttributes SymbolSize 12 Frequency Histograms Pareto Diagrams Probability Charts 335 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
358. o initialize the page here Get Input from HTML ASP page request String widthstring Request Params Get 0 String heightstring Request Params Get 1 int imagewidth int Parse widthstring int imageheight int Parse heightstring int options 15 enables all options SPCTimeVariableControlChart chartVu GetInitializeChart imagewidth imageheight options Stream chart back as a JPeg image BufferedImage chartimage new BufferedImage chartVu ImageFormat Jpeg get your binary image data here Response ContentType image jpeg chartimage SavelImage Response OutputStream chartVu Dispose private SPCTimeVariableControlChart GetInitializeChart int imagewidth int imageheight int SPCTimeVariableControlChart chartVu new SPCTimeVariableControlChart chartVu Size new Size imagewidth imageheight InitializeSPCChart chartVu options return chartVu private void InitializeSPCChart SPCTimeVariableControlChart chartVu int options 378 Creating SPC Charts in Windows Applications SPC variable control chart type int charttype Number of samples per sub group int numsamplespersubgroup 5 SPCControlChartData MEAN RANGE CHART Number of datapoints in the view int numdatapointsinview 17 intl masks 1 2 4 8 3 bool headersOption options amp masks 0 0 bool sampledValueOption options amp masks 1 0 bool calculatedVal
359. object in the chartLabelArray array list SPC Control Data and Alarm Classes 142 IncrementRow Overloaded Add another row to the table using the specified row spacing increment InitDefaults 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 X R Individual Range MA Move Average MAMR Moving Average Moving Range MAMS Moving Average Moving Sigma EWMA Exponentially Weighted Moving Average and CUSum charts X Bar R Chart Also known as the Mean or Average and Range Chart The X Bar R chart monitors the trend of a critical process variable over time using a statistical sampling method that results in a subgroup of values at each sample interval The X Bar part of the chart plots the mean of each sample subgroup and the Range part of the chart monitors the difference between the minimum and maximum value in the subgroup X Bar R charts are created using the SPCTimeVariableControlChart and SPCBatchVariableControlCh
360. 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 strings display level is set using the charts HeaderStringsLevel property Strings that can be displayed are Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString The four levels and the information displayed is listed below HEADER STRINGS LEVELO Display no header information HEADER STRINGS LEVEL Display minimal header information Title PartNumber ChartNumber DateString HEADER STRINGS LEVEL2 Display most header strings Title PartNumber ChartNumber PartName Operation Operator Machine DateString HEADER STRINGS LEVEL3 Display all header strings Title PartNumber ChartNumber DateString PartName Operation Machine SpecificationLimits Gage UnitOfMeasure ZeroEquals and DateString The example program TimeVariableControlCharts X BarRChart demonstrates the use of the HeaderStringsLevel property The example below displays a minimum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVELI Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 C Set the strings u
361. ole Out WriteLine timestampstring message alarmlimitvaluestring Current Value calculatedvaluestring Me ChartData AppendNotesString notesstring True End If End Sub SPCControlLimitAlarm If you want multiple alarms for a time interval vectored to the alarm processing routine i e it 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 200 SPC Variable Control Charts 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 X Bar R Bar Sigma Individual Range Median Range Dynamic SPC Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 16 15 16 30 16 45 17 00 17 15 17 30 17 45 18 00 18 15 18 30 18 45 19 00 19 15 19 30 19 45 20 00 20 15 NOTES 30 20 10 0 RANGE 17 00 18 00 19 00 20 00 Specification Limits Specification limits are not to be confused with th
362. ollbar 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 SPC Variable Control Charts 207 EBlFormi ME xj XBarR Individual Range Multi Limit Bar R Median Range Dynamic SPC Title Variable Control Chart X Bar amp Sigma Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Time 10 33 10 48 11 03 11 18 11 33 11 48 12 03 12 18 12 33 12 48 13 03 13 18 13 33 13 48 14 03 14 18 14 33 STDDEV 3 70 5 55 5 05 5 96 6 07 6 08 5 90 5 54 5 22 6 60 6 10 6 74 5 13 4 80 7 29 6 37 5 20 NO INSP 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 UCLX 68 7 LCLX 59 3 40 30 20 10 0 Euctr 9 3 RBAR 5 9 STDDEV NoObAMRIR OS ELCLR 2 5 Frequency Histograms 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
363. omplete 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 The following steps extracted from the TimeVariableControlChart VariableControlLimitsCharts example program turn on data logging C int datalogflags SPCControlChartData DATALOG FILE TIME STAMP SPCControlChartData DATALOG FILE SAMPLED VALUES SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData 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 126 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 Specif
364. on chartVu SecondaryChart DisplayFrequencyHistogram histogramOption SimulateData chartVu Calculate the SPC control limits for both graphs of the current SPC chart X Bar R chartVu AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control limits chartVu AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control limits chartVu AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings chartVu RebuildChartUsingCurrentData End Sub InitializeSPCChart Public Sub SimulateData ByVal chartVu As SPCTimeVariableControlChart Dim i As Integer For i 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 chartVu ChartData SimulateMeasurementRecord 30 10 Add the new sample subgroup to the chart chartVu ChartData AddNewSampleRecord timestamp samples increment simulated time by timeincrementminutes minutes StartTime Add ChartObj MINUTE timeincrementminutes Next i End Sub SimulateData End Class Modify the Page_Load method that was included by default when the behind code page was created In the example below parameters that were appended to the ASP page request are retrieved using the Request Params Get method The values define the size and data values of the graph This is just
365. on and the selected data cursor horizontal and or vertical line cross hairs or a small box appears at the point of the mouse cursor The data cursor tracks the mouse motion as long as the mouse button is pressed Release the button and the data cursor disappears This makes it easier to line up the mouse position with the tick marks of an axis 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 Multiple x and y axes OoOO 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 c
366. on 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 when sample subgroup sizes are greater than one EWMA charts are created us
367. on of this example is VBSPCWebApplicationl You will end with a basic WebForm based application with one System Web UI Page derived form Default aspx by default For purposes of this example the chart will placed in the initial default form Assume that you want to make an ASP Net application that streams an image file to an image component in a web page New Project Project types Templates Visual Cat Windows Smart Device Starter Kits DocProject Remote Tools Framework Web Other Languages visual Basic E Visual Jt Visual C E Other Project Types Platform Builder for CE 6 0 isual Studio installed templates a Windows Application EA Console Application e Device Application SRL ASP NET Web Service Application RDocSite Web Application MyTemplates a Search Online Templates Ea Class Library el Windows Control Library ER ASP NET Web Application e DocProject 4 project For creating an application with a Web user interface Name VBSPCW ebApplicationt B aos Location C Quinn Curtis DotNet OCSPCChart visual Basic examples Asp Net Solution Create new Solution i Create directory for solution Solution Name VESPCWebApplicationt You do not need to add anything to the Default aspx page Right click on the page and select View Code This brings up the code behind file Default aspx vb for the Default aspx page Add the following reference
368. onHeader 5OperatorHeader MachineHeader DateHeader pecificationLimitsHeader 5GageHeader GE nitOfMeasureHeader eroEqualsHeader NotesHeader Even though the input header string properties have names like Title PartNumber ChartNumber etc those names are arbitrary They are really just placeholders for the strings that are placed at the respective position in the table You can display any combination of strings that you want rather than the ones we have selected by default based on commonly used standardized SPC Control Charts Table Background Colors The ChartTable property of the chart has some properties that can further customize the chart The default table background uses the accounting style green bar striped background You can change this using the ChartTable TableBackgroundMode property Set the value to one of the TableBackgroundMode constants in the class SPCGeneralizedTableDisplay TABLE NO COLOR BACKGROUND Constant specifies that the table does not use a background color TABLE SINGLE COLOR BACKGROUND Constant specifies that the table uses a single color for the background backgroundColorl SPC Variable Control Charts 165 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 ove
369. ondaryuppercontrollimi LimitRecord SPCControlChartDa imit ControlLimitValue 22 t ControlLimitText UCL ta SPC SECONDARY UPPER CONTROL LIMIT We also added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color See the TimeVariableControlCharts MultiLimitX BarR Chart example If you call the SPC Variable Control Charts 175 AutoCalculateControlLimits method the initial 1 2 and 3 sigma control limit values will be altered to the new calculated values but the control limit lines remain with their new values Since you do not normally want to be generating alarm messages for excursions into the 1 and 2 sigma limit areas the Add3SigmaControl limits has the option of disabling alarm notification in the case of 1 and 2 alarm conditions C double target 75 lowlim 74 highlim 76 bool limitcheck false this PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck this PrimaryChart ControlLimitLineFillMode true target 1 lowlim 0 highlim 2 this SecondaryChart Add3SigmaControlLimits target lowlim highlim limitcheck this SecondaryChart ControlLimitLineFillMode true VB Dim ta
370. ontainer components null public ParetoPlotUserControll 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 this AddCategoryItem 5 Torn this AddCategoryItem 7 Not Enough nComponent this AddCategoryItem 2 Others this AddCategoryItem 11 Poor Mix this AddCategoryItem 27 Holes this AddCategoryItem 8 Stains Build chart this 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 Frequency Histograms Pareto Diagrams Probability Charts 337 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 BuildCh
371. ontrol Capturing the Chart as a Buffered Image Class BufferedImage ChartObj t BufferedImage File and Printer Rendering 349 The BufferedImage class creates a Bitmap object that renders a ChartView object into an image buffer The rendering takes place when the BufferedImage Render method or BufferedImage SaveImage method is called BufferedImage constructor VB Overloads Public Sub New _ ByVal component As ChartView _ ByVal imgformat As ImageFormat _ Visual Basic Overloads Public Sub New _ ByVal component As ChartView _ C4 public BufferedImage ChartView component ImageFormat imgformat public BufferedImage ChartView component component The ChartView object that is the source for the chart image imageformat An image format object specifying the format of the rendered image The BufferedImage GetBufferedImage method converts the chart to the Net Bitmap object specified by the imageformat object and returns a reference the resulting bitmap BufferedImage example extracted from the example program FrequencyHistogram Form1 C This routine displays a dialog box in response to an event that prompts the user for the name and file type of the image to be saved The file type is derived from the file extension The chart represented by this object is saved to the file using the specified format public void SaveAsFile ChartView chartview object sender Sys
372. ordinate system The attribute class encapsulates the most common attributes line color fill color line style line thickness etc for a chart object The coordinate transform classes use the auto scale classes to establish the minimum and maximum values used to scale a 2D coordinate system The axis classes also use the auto scale classes to establish proper tick mark spacing values The chart object classes includes all objects placeable in a chart That includes axes axes labels plot objects line plots bar graphs scatter plots etc grids titles backgrounds images and arbitrary shapes These classes directly and indirectly System EventHandler delegates that trap mouse events and permit the user to create and move data cursors QCChart2D Class Summary 59 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 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 System Windows Forms UserControl class where the UserControl class is the base class for the N
373. ore you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C 190 SPC Variable Control Charts this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits zt Li L9 this AutoCalculateControlLimits this ChartData AddNewSampleRecord timestamp samples notesstring VB Me PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE Variable Control Limits re calculated every update after 10 using AutoCalculateControlLimits If x 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 30 25 35 10 0 20 double changeControlLimits 28 23 33 9 0 18 DoubleArray variableControlLimits this PrimaryChart ControlLineMode SPCChartObjects CONTROL LINE VARIABLE JZ Variable Control Limits updated using AddNewSampleRecord if i 10 need to convert changeControlLimits to a DoubleArray variableControlLimits new DoubleArray changeControlLimits this ChartData AddNewSampleRecord timestamp samples variableControlLimits notesstring VB Dim init
374. ories As Integer _ ByVal numsamplespersubgroup As Integer _ ByVal numdatapointsinview As Integer _ public void InitSPCBatchAttributeControlChart int charttype int numcategories int numsamplespersubgroup int numdatapointsinview Parameters charttype Specifies the chart type Use one of the SPC Attribute Control chart types PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS CHART NUMBER DEFECTS PER MILLION CHART numcategories 280 SPC Attribute Control Charts In Attribute Control Charts this value represents the number of defect categories used to determine defect counts numsamplespersubgroup In an Attribute Control chart it represents the total sample size per sample subgroup from which the defect data is counted numdatapointsinview Specifies the number of sample subgroups displayed in the graph at one time 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 i20 i lt 200 i double batchnumber batchCounter ChartCalendar timestamp
375. ory QCChart2D QCChart2D examples for C and VB This directory contains many example programs for C and VB specific to the QCChart2D charting software but not specific to the QCSPCChart software QCSPCChart QCSPCChart examples for C and VB Visual CSharp C specific directory QCSPCChartClassLib contains the source code to the QCSPCChartNet dll library installed only if the source code has been purchased Examples C examples directory FrequencyHistogram a simple frequency histogram example using the FrequencyHistogramChart class BatchAttributeControlCharts a collection of batch attribute control charts including n np c and u charts using the SPCBatchAttributeControlChart class Batch VariableControlCharts 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 BatchVariableControlCharts 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 using the SPCTimeVariableControlChart class Introduction 11 MiscBat
376. ot graph paper We have added probability scale and axis classes that enable you to plot probability plots directly on the computer Control chart measurements that follow a normal distribution curve will plot as a straight line when plotted in a normal probability plot Creating a Probability Plot Cumulative Normal Probability Chart Normal Probability Plot Showing Estimated Accumulated Frequencies 99 8 99 5 96 Population Under 0 5 10 Frequency Bin 330 Frequency Histograms Pareto Diagrams Probability Charts 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 InitializeChart void InitializeChart TODO Add any initialization after the InitForm call double x1 1 2 3 4 5 6 7 8 9 double yl 2 6 13 25 50 82 93 97 1003 thisInitProbabilityChart xl vl this BuildChart VB Public Class ProbabilityPlotUserControll Inherits com quinncurt
377. ote 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 Simple Attribute Control Chart Fraction Defective Parts Percent Defective Parts Number Defective Parts Number Defects Percent Defects Number Defects Per Unit Dynamic Title Fraction Defective p Chart Part No 321 Chart No 19 Operator S Kafka Machine 1 Time 16 46 17 6 17 46 18 16 18 46 19 16 19 46 20 16 20 46 21 16 21 46 22 16 22 46 23 16 23 46 0 16 0 46 FRACT DEF w iul a E o x oa j u BEEN w i H H i H H CLP 0 00 20 15 10 5 0 22 00 0 00 12 02 05 1 C CS void SimulateData String notesstring if this IsDesignMode return for int i90 i lt 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 SPC Attribute Control Charts 273 End If Dim i As Integer For i 0 To 199 Add new sample record Me ChartData AddNewSampleRecord timestamp samples n
378. otesstring 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 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 NotesToolTip MOUSEDOWN_TOOLTIP as in the example below 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
379. oving Sigma Standard SPC Control Charts 23 MAMS Moving Average Moving Sigma Chart with Sample Values Plotted EE Form EWMA Chart MA Chart CuSum Chart CuSum Chart 2 MA MR Chart Title Variable Control Chart MAMS 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 10 26 2011 1 23 33 PM TIME 13 23 13 53 14 23 14 53 15 23 15 53 16 23 16 53 17 23 17 53 18 23 18 53 19 23 19 53 20 23 20 53 21 23 Sample 0 9 45 7 99 929 1166 12 16 10 18 804 1146 920 1034 29 03 1147 10 51 940 10 08 937 10 62 MA 945 872 8 91 9 60 10 11 10 12 982 1003 994 10 04 10 15 10 39 10 27 996 995 10 10 10 00 MS 0 00 1 08 0 80 152 1 75 1 71 1 69 1 66 1 67 1 29 1 32 1 18 1 01 0 97 O96 087 0 59 The MAMS chart combines our Moving Average chart with a Moving Sigma chart The Moving Average chart is primary topmost chart and the Moving Sigma chart is the secondary bottom chart It uses a single sample subgroup same as our standard Individual Range Moving Average EWMA and Moving Average charts When calculating the Moving Sigma it windows the same data values used in the Moving Average calculation Note that the limits are variable wider at the beginning taking into account the fewer samples in the start up of any type of SPC chart which uses a sliding window in the calculation of moving average and mo
380. pe 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 MA Chart Moving Average A MA chart showing the variable control limits actual values and moving average values ioii CUSum Chart CUSum Chart 2 Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 5 2008 5 06 19 PM Time 17 06 17 36 18 06 18 36 19 06 19 36 20 06 20 36 21 06 21 36 22 06 22 36 23 06 23 36 0 06 0 36 1 06 Sample 0 9 56 992 1043 9 71 10 05 10 03 952 999 10 68 934 1052 980 10 64 10 32 10 60 10 01 10 07 MA 9 560 9 742 9 972 9 906 9 935 10 029 9 949 9 861 10 055 9 913 10 010 10 066 10 195 10 124 10 377 10 275 10 328 i i LL S E S S S 18 00 19 00 20 00 21 00 22 00 23 00 0 01 1 00 3 06 08 The current value z for a MA chart is calculated as a weighted moving average of the N most recent samples Zi Xit Xit Rie xs Xin N where Xi is the sample value for time interval i and N is the length of the moving average
381. phasis 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 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 214 SPC Variable Control Charts TableAlarmEmphasisMode EWMA Chart Variable Control Limits Dynamic SPC X Bar Sigma Individual Range MultiLimitX BarR Median Range MA Chart Cusum Chart Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 6 01 6 16 6 31 6 46 7 01 7 16 7 31 01 8 16 8 31 8 46 9 01 9 16 17 5 13 8 17 1 9 9 144 19 0 16 9 0 0 17 9 13 1 166 98 19 6 20 j Zero Equals zero 0 202 0 201 0 201 0 203 0 201 0 200 0 198 1200 0 200 0 199 0 199 0 200 0 204 0 192 0 191 0 192 0 193 0 191 0 190 0 189 4190 0 190 0 190 0 190 0 190 0 194 40 30 20 10 0 RANGE 40 30
382. ple 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 i20 i lt 200 itt 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 double r ChartSupport GetRandomDouble if r 0 1 make a note on every tenth item on average notesstring Note for sample subgroup 4 i ToString 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 is assigned the total number of defective parts not defects Dim samples As DoubleArray Me ChartData Si
383. pleRowHeaderString 2 Dent Me ChartData SetSampleRowHeaderString 3 Seam Me ChartData SetSampleRowHeaderString 4 Other The ChartTable property of the chart has properties that further customize the chart The default table background uses the accounting style green bar striped background You can change this using the ChartTable TableBackgroundMode property Set the value to one of the TableBackgroundMode constants TABLE NO COLOR BACKGROUND Constant specifies that the table does not use a background color TABLE SINGLE COLOR BACKGROUND Constant specifies that the table uses a single color for the background backgroundColor1 TABLE STRIPED COLOR BACKGROUND Constant specifies that the table uses horizontal stripes of color for the background backgroundColorl and backgroundColor2 TABLE SINGLE COLOR BACKGROUND GRIDCELL Constant specifies that the table uses a grid background with backgroundColorl the overall SPC Attribute Control Charts 247 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
384. previous example The aspx page contains nothing and the aspx vb behind code page does all the work defining a chart and streaming the result back as a JPEG image The second WebForm page hosts a collection of Web controls place on the aspx page One of these Web controls is an Image web control The behind code page for this WebForm connects the URL of the Image control to the first WebForm page which does nothing be serve up charts Our example SPC WebApplication2 uses this approach The reason you might want to take this approach is that it is much easier to wire up the controls on a WebForm page using the aspx cs behind code as opposed to doing it on an HTML page The drawback is that the entire page redraws when anything is posted causing a momentary flash when the chart is redraw Using the HTML approach the chart redraws without the flash making it a better method for real time applications 388 Creating SPC Charts in Windows Applications Embedding a QCSPCChart Object into Internet Explorer Special Note This technique only works with the commercial version of the software It will NOT work with the trial version of the software In order to embed a QCSPCChart object into Internet Explorer the client must have the QCChart2DNet DLL and QCSPCChartNet DLL files installed in the system GAC Global Assembly Cache This gives the DLLs the necessary security clearance to run in a browser Perform the following steps Locate the Gacu
385. r 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 InitielizeChart Initialize the SPCTimeVariableControlChart this InitSPCTimeVariableControlChart charttype numsamplespersubgroup numdatapointsinview timeincrementminutes this RebuildChartUsingCurrentData VB Public Class XBarBChart Inherits com quinncurtis spcchartnet SPCTimeVariableControlChart 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 148 SPC Variable Control Charts 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 Designer generated code Public Sub New MyBase New This call is req
386. rall 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 Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 12 21 2005 1 31 18 PM Time 13 31 14 01 14 31 15 001 15 31 16 01 16 31 17 01 17 31 18 01 18 31 19 01 19 31 20 01 20 31 21 01 2131 C 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 Time VariableControlCharts 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 this ChartTable TableBackgroundMode SPCGeneralizedTableDisplay TABLE SINGLE COLOR BACKGROUND this ChartTable BackgroundColorl Color LightGray VB Me ChartTable TableBackgroundMode _ S
387. rd and Duncan control rules It also describes how to implement custom rules sets and how to define your own rules using our standardized templates Chapter 9 describes how the FrequencyHistogramChart ParetoChart and ProbabilityChart classes create ancillary SPC charts Chapter 10 describes how to print the SPC charts and save them to image files Chapter 11 describes how to regionalize the software for non USA English markets Chapter 12 is a tutorial that describes how to use SPC Control Chart Tools for Net to create Windows applications using Visual Studio Net Visual C and Visual Basic Chapter 13 is a tutorial that describes how to use SPC Control Chart Tools for Net to create SPC charts for web pages 2 Standard SPC Control Charts There are many different types SPC control charts Normally they fall into one of two major classifications Variable Control Charts and Attribute Control Charts Within each classification there are many sub variants Often times the same SPC chart type has two or even three different names depending on the software package and or the industry the chart is used in We have provided templates for the following SPC control charts Variable Control Charts 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 Movin
388. requencyHistogramPlot 10 n S 2 c 2 u 5 l lL YAxis Title YAxis 0 0 200 400 600 7 Measurements P d XAxis XAxisTitle XAxisLab GraphBackground PlotBackground C void InitializeChart Frequency bins double freqhimits 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins double freqValues 121 349 315 322 277 162 218 134 133 476 323 351 lap 3594 245 434 476 352 185 144 165 105 461 386 263 476 304 180 557 482 Baty 293 539 S18 251 218 472 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 BuildChart h VB Sub Frequency Histograms Pareto Diagrams Probability Charts 327 InitializeChart Frequency bins Dim freqLimits As Double _ 100 150 200 250 300 350 400 450 500 550 600 data to be sorted into frequency bins Dim freqValues As Double _ 121 949 343 See 277 LO02 219 19349 133 A76 323 367 133 354 245 434 476 352 185 144 165 105 461 386 263 476 304 180 557 4802 327 293 539 318 251 218 472 A218 199 330 109 TOT 137 300 T1319 38D 410 206 122 238 Me InitFrequencyHistogram freqLimits freqValues Me ChartOrientation ChartObj VERT DIR Me BarF
389. rget As Double 75 lowlim As Double 74 highlim As Double 76 Dim limitcheck As Boolean False Me PrimaryChart Add3SigmaControlLimits target lowlim highlim limitcheck Me PrimaryChart ControlLimitLineFillMode True target 1 lowlim 0 highlim 2 Me SecondaryChart Add3SigmaControlLimits target lowlim highlim limitcheck Me SecondaryChart ControlLimitLineFillMode True 2 UCL 75 841 UCL2 75 554 UCL1 75 267 XBAR 74 980 LCL1 74 693 LCL2 74 406 LCL 74 119 MEAN UCL 2 167 UCLR2 1 725 UCLR1 1 283 RBAR 0 842 LCLR1 0 561 LCLR2 0 281 LCL 0 000 1a nn n na 21 nn 22 nn Control Limit Fill Option used with 4 1 2 and 3 sigma control limits The second way to set the control limits is to call the AutoCalculateControlLimits method You must have already added a collection of sampled data values to the charts ChartData SPC data object before you can call this method since the method uses the internal ChartData object to provide the historical values needed in the calculation C 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 176 SPC Variable Control Charts VB Must have data loaded before any of the Auto methods are called SimulateData Y Calculate the SPC control limits for both graphs of the current SPC Me AutoCalculateControlLimits You ca
390. rimaryChart Datatooltip 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 Data Tooltip with optional display items File Exit XBarR X Bar Sigma Individual Range Multi Limit XBarR Median Range Dynamic SPC Variable Control Limits Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 23 02 23 17 23 32 23 47 0 02 0 17 0 32 0 47 1 02 1 17 1 32 1 47 2 02 2 17 2 32 2 47 3 02 RANGE 13 3 113 118 125 128 135 74 12 1 123 102 66 105 70 135 93 102 9 1 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 1 02 12 33 95 M Sample 0 35 02 Sample 1 25 25 2 30 Sample 2 2421 5 Sample 3 33 66 i I
391. rimaryChart UseWERuntimeRules Must have data loaded before any of the Auto methods are called SimulateData 100 20 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 wn PCControlChartData 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 An alarmlimitvaluestring Current Value calculatedvaluestring if alarm AlarmState Console Out WriteLine notesstring this ChartData AppendNotesString notesstring true SPC Variable Control Charts 199 VB AddHandler Me ChartData AlarmStateEventHandler AddressOf Me SPCControlLimitAlarm don t generate alarms in initial da
392. ring NotesColumString SPC Control Data and Alarm Classes 104 control limit in controlLimitData array Default string used as the batch number column head in the log file The default value is Batch Default string used to the y axis of secondary chart of I R charts Default string used as the default file name for data logging Only used if data logging turned on and the 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 used to title the y axis of median graphs Default string used to title the y axis of range graphs Default string used to the y axis of primary chart of I R charts Default string used to title the y axis of sigma graphs Default string used to title the sum table row Default string used to the label the target control limit line of the chart Default string used to the label the target upper control limit line of the chart Default string used to title the y axis of variance graphs Default string used to title primary chart Default string used to the primary chart of I R charts Defaul
393. rmal process 2 Two of the three most recent points plot outside and on the same side as one of the 2 sigma control limits The probability that any point will fall outside the warning limit is only 5 The chances that two out of three points in a row fall outside the warning limit is only about 1 3 Four of the five most recent points plot outside and on the same side as one of the 1 sigma control limits In normal processing 68 of points fall within one sigma of the mean and 32 fall outside it The probability that 4 of 5 points fall outside of one sigma is only about 3 4 Eight out of the last eight points plot on the same side of the center line or target value Sometimes you see this as 9 out of 9 or 7 out of 7 There is an equal chance that any given point will fall above or below the mean The chances that a point falls on the same side of the mean as the one before it is one in two The odds that the next point will also fall on the same side of the mean is one in four The probability of getting eight points on the same side of the mean is only around 1 These rules apply to both sides of the center line at a time Therefore there are eight actual alarm conditions four for the above center line sigma levels and four for the below center line sigma levels There are also additional WE Rules for trending These are often referred to as WE Supplemental Rules Don t rely on the rule number often these are listed in a different ord
394. roduce gradual improvements in quality While it is based on sophisticated mathematical analysis involving sampling theory probability distributions and statistical Introduction 7 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 this 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
395. rolLimitRecord AIAG RULES 3 clr AlarmEnable false Creating Custom Rules Sets Based on Named Rules Named and Custom Control Rule Sets 305 You can create your own custom set of rules mixing and matching rules from the standard named rule sets using the the AddControIRule method Also you can invent your own rules based on one of our standard templates and add those rules to your custom rule set SPCChartObjects AddControlRule Method Visual Basic Declaration Public Function AddControlRule _ ruleset As Integer _ rulenum As Integer _ As Integer C public int AddControlRule int ruleset int rulenum Parameters ruleset One of the SPCControlLimitRecord named rule indentifiers BASIC RULES WECO RULES WECOANDSUPP RULES NELSON RULES AIAG RULES JURAN RULES HUGHES RULES GITLOW RULES WESTGARD RULES and DUNCAN RULES rulenum The rule number our rule number Even if you do not call one of the Use Rules methods you still end up with four control limits These correspond to the 3 sigma control limits for both the Primary and Secondary were applicable chart So you do not need to add those to your custom set of rules Start with the rules you want to add after the standard 3 sigma rules If for some reason you cannot live with the default 3 sigma rules you can disable them with a call to EnableDefaultLimits false false Say you want to create custom rule set for the Primary chart combining
396. rolLimitRecord primaryuppercontrollimit 174 SPC Variable Control Charts ChartData GetControl primaryuppercontroll primaryuppercontroll 367 Set control limits for secondary chart target control limit secondary chart SPCControlLimitRecord secondarytarget ChartData GetControl secondarytarget ControlLimitValue secondarytarget ControlLimitText lower control limi SPCControlLimitRecord secondarylowercon L sec ChartData GetControlLimit secondarylowercontrollimit secondarylowercontrollimi RB ondary chart Record SPCCon ControlLimi upper control limit secondary chart SPCControlLimitRecord secondaryuppercontrol ChartData GetControlLimit secondaryuppercontrollimit secondaryuppercontrollimit VB Record SPCCon Cont roliims target control limit primary chart Dim primarytarget As primarytarget ControlLimi primarytarget ControlLimi lower control ChartData GetControlLimitRecord SPCCon primarylowercon primarylowercon upper control Dim primaryuppercontrollimit As SPCControlLimitRecord LEO ETOL limi tValue 30 tText limit primary chart Dim primarylowercontrollimit As SPCControlLimitRecord ControlLimit ControlLimit ri AR Lrodlimit trolChartDa tValue DI tText Llimit trolChartDa tValue Ede SPCControlLimitRecord _ ChartData GetControlLimitRecord SPCControlChartData XBAR UCL LCL dej UCL Lim
397. rollBar EnableTimeValues EnableTotalSamplesValues GraphBottomPos GraphStartPosX GraphStartPosY 1 GraphStartPosY2 GraphStopPosX GraphStopPosY1 GraphStopPosY2 GraphTopTableOffset HeaderStringsLevel InterGraphMargin SPC Variable Control Charts 151 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 o
398. roup 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 34 Standard SPC Control Charts Number of Defects per Unit Chart with variable sample size u chart ES Formi Percentage Defective Chart p chart X Bar Sigma Chart Fraction Defective Parts p chart Title Number Defective per Unit u Chart Part No 321 Chart No 19 Operator K Peterson Machine TIME 13 05 13 35 14 05 14 35 15 05 15 35 16 05 16 35 17 05 17 35 18 05 18 35 19 05 19 35 20 05 20 35 21 05 Burr Seam NO DEF UNIT ALARM L UCLP 0 462 PBAR 0 250 NO DEF UNIT L LCLP 0 038 14 00 15 00 16 00 17 00 18 00 19 00 DPMO Chart Also known as the Number of Defects per Million Chart EE Form1 Percent Defective Parts Number Defective Parts Number Defects Variable Control Limits Number Defects Per Unit Multiple Control Limits Dynamic Title Number Defects per Million DPMO Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Da
399. rrency formats StringAxisLabels This class labels the major tick marks of the LinearAxis and LogAxis classes using user defined strings TimeAxis Labels ElapsedTimeA xisLabels PolarAxesLabels AntennaAxesLabels Chart Plot Classes ChartPlot ContourPlot GroupPlot PieChart PolarPlot AntennaPlot SimplePlot QCChart2D Class Summary 73 This class labels the major tick marks of the associated TimeAxis object The class supports many time 23 59 59 and date 5 17 2001 formats It is also possible to define custom date time formats This class labels the major tick marks of the associated ElapsedTimeAxis object The class supports HH MM SS and MM SS formats with decimal seconds out to 0 00001 i e 12 22 43 01234 It also supports a cumulative hour format 101 51 22 and a couple of day formats 4 5 51 22 4D 5 51 22 This class labels the major tick marks of the associated PolarAxes object The x axis is labeled from 0 0 to the polar scale magnitude and the circular axis is labeled counter clockwise from 0 to 360 degrees starting at 3 00 This class labels the major tick marks of the associated AntennaAxes object The y axis is labeled from the radius 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 pi
400. rt software with VS 2003 or VS 2002 it is not something we support any more You should assume that as we continue to enhance the software we will use features not supported under VS 2003 2002 We can still sell you a Revision 1 7 version of the software with all of the original VS 2003 2002 projects however it will not include the features described above One difference betwee of VS 2005 and VS 2003 2002 is the VS 2005 creation of partial classes when using the Add User Control wizard The VS 2005 Add User Control wizard now creates two classes UserControlName cs and UserControlName Designer cs or UserControlName vb and UserControlName Designer vb by default The Designer specific code is now placed in the UserControlName Designer vb file In VS 2003 2002 where a separate UserControlName Designer cs file is NOT created the Designer code was placed in the main UserControlName cs file most of which was hidden using the region Windows Form Designer generated cod compiler directive Many of example programs still use this older style with the single UserControlName file The single file structure is forward compatible with the VS 2005 compiler All of the example programs demonstrating new features in the software use the split UserControlName cs UserControlName Designer cs file structure This split structure is NOT backward compaticle with VS 2003 2002 New Features added to the 1 7 version of QCSPCChart A large number of new feat
401. rtName Transmission Casing Bolt Threading Roger Bacon table headersOption table lueOption the table tedValueOption ay the total samples per subgroup value row latedValueOption e calculatedValueOption togram histogramOption histogramOption Calculate the SPC control limits for both graphs of the current SPC chartVu AutoCalculateControlLimits Scale the y axis of the X Bar chart to display all data and control chartVu AutoScalePrimaryChartYRange Scale the y axis of the Range chart to display all data and control chartVu AutoScaleSecondaryChartYRange Rebuild the chart using the current data and settings chartVu RebuildChartUsingCurrentData public void SimulateData SPCTimeVariableControlChart chartVu for int i 0 i 200 itt ChartCalendar timestamp ChartCalendar startTime Clone chart X Bar R limits limits Use the ChartData sample simulator to make an array of sample data DoubleArray samples chartVu ChartData SimulateMeasurementRecord 30 Add the new sample subgroup to the chart chartVu ChartData AddNewSampleRecord timestamp samples 198 Creating SPC Charts in Windows Applications 379 increment simulated time by timeincrementminutes minutes startTime Add ChartObj MINUTE timeincrementminutes 8 Modify the Page Load method that was included by default when the behind code page was cr
402. rts 263 added using the AddSpecLimit method There are two steps to adding additional control limits creating a SPCControlLimitRecord object for the new control limit and adding the control limit to the chart using the charts AddAdditionalControlLimit method It is critical that you add them in a specific order that order being Primary Chart SPC LOWER CONTROL LIMIT 2 2 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 2 2 sigma upper limit Primary Chart SPC LOWER CONTROL LIMIT 1 1 sigma lower limit Primary Chart SPC UPPER CONTROL LIMIT 1 1 sigma upper limit C double sigma2 2 0 double sigmal 1 0 Create multiple limits For PrimaryChart SPCControlLimitRecord 1c12 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC_LOWERTHAN LIMIT 0 LEL2 LCL2 SPCControlLimitRecord ucl2 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC_GREATERTHAN LIMIT 0 28 UCL2 UCL2U this PrimaryChart AddAdditionalControlLimit 1c12 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 this PrimaryChart AddAdditionalControlLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1cl3 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT UJ LCLLI LOBI se SPCControlLimitRecord ucl3 new SPCControlLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT Ose UCLI CCL hs this
403. rue gt You can add as many custom chart controls as you need for the given HTML page you plan to display charts in Each custom chart control will inherit from the com quinncurtis spcchartnet SPCTimeVariableControlChart control Or Optional You can create inherited controls from the UserChartControll class that you already created Create an inherited control by selecting Project Add Inherited Control Give the inherited control a unique name i e UserInheritedControll When you select Open choose UserControll in the Inheritance Picker The result is new control added to the project Build the solution and the UserInheritedControll control will be added to the WindowsControlLibraryl DLL in addition to the UserControll View the UserChartControll vb underlying VB code We placed all of the chart creation code in the InitializeChart method This method is called in the UserControll1 Load event otherwise the UserControll appears as an empty shell Add whatever properties you need to get data from the HTML file into the chart control ChartTitleText and EnableInputStrings in the example below Drawing Drawing Drawing2D com quinncurtis chartzdnet com quinncurtis spcchartnet Public Class UserControll Private startTime As New ChartCalendar The time increment between adjacent subgroups Private timeincrementminutes As Integer 15 Summary Set Get the chart title summary Public Property ChartTitleText As String
404. rules from Nelson 3 4 Juran 5 5 AIAG 23 74 Hughes 12 and Duncan 8 Make the following calls in the setup portion of your program 306 Named and Custom Control Rule Sets C this PrimaryChart this Primarychart this PrimaryChart this PrimaryChart this PrimaryChart this PrimaryChart this PrimaryChart this PrimaryChart VB Enable AddCon AddCon AddCon AddCon AddCon AddCon AddCon AddCon AddCon AddCon Fa Limi Limi Limi Limi Limi Limi Limi Limi Limi Limi PrimaryChar PrimaryChar FrimaryChar PrimaryChar PrimaryChar PrimaryChar PrimaryChar PrimaryChar PrimaryChar PrimaryChar PrimaryChar DefaultLimits False trolRule SPCControl trolRule SPCCentrol LrolRule SPOControl trolRule SPCControl trolRule SPCControl trolRule SPCControl trolRule SPCControl trolRule SPCControl trolRule SPCControl trolRule SPCControl ooo O O00 0 0 0 0 0 a eR t x o Normally there will be no reason AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord AddControlRule SPCControlLimitRecord lse tRecord tRecord tRecord tRecord tRecord tRecord tRecord tRecord tRecord tRecord NELSON RULES NELSON RULES JU
405. ry 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 Me ChartData AddNewSampleRecord timestamp samples 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 e
406. ryChart 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 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 AutoScalePrimaryChartYRange 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
407. s low target and high There are many other overloaded versions of AddNewSampleRecord Use the one most appropriate to your application Adding New Sample Records for Variable Control Charts Fixed Subgroup Sample Size Applies to variable control charts of type MEAN RANGE CHART MEDIAN RANGE CHART INDIVIDUAL RANGE CHART MEAN SIGMA CHART INDIVIDUAL RANGE CHART EWMA CHART MA CHART MAMR CHART MAMS 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 timesta
408. s 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 chart using the current data and settings this RebuildChartUsingCurrentData VB 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 Designer generated code Public Sub New InitializeChart End Sub End Region Public Sub InitializeChart Initialize the SPCTimeVariableControlChart 113 SPC Control Data and Alarm Classes Me InitSPCTimeVariableControlChart charttype _ numsamplespersubgroup numdatapointsinview timeincrementminutes Set the strings used in the header section of the table Me ChartData Title Variable Control Chart Median 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
409. s zero this ChartData DateString DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 E n 0 t the strings used in the header section of the table hartData Title Variable Control Chart X Bar amp R hartData PartNumber 283501 hartData ChartNumber 17 hartData PartName Transmission Casing Bolt hartData Operation Threading hartData SpecificationLimits hartData TheOperator J Fenamore hartData Machine 11 hartData Gage 8645 hartData UnitOfMeasure 0 0001 inch hartData ZeroEquals zero hartData DateString DateTime Now ToString Me HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 zZ oO Gi E oO CC 423 2 OP CP ES 2 02 The identifying string displayed in front of the input header string can be any string that you 163 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 164 SPC Variable Control Charts 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 S TitleHeader PartNumberHeader ChartNumberHeader PartNameHeader SOperati
410. s 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 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 SPC Control Data and Alarm Classes 132 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 on
411. s 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 Me PrimaryChart UseWERuntimeAndSupplementalRules 198 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 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 data simulation this ChartData AlarmStateEventEnable false this P
412. s for different x and y scale types linear cumulative normal probability time to be installed independently for x and y coordinates 54 Class Architecture Probability AutoScale The Probability AutoScale class is used with cumulative normal probability coordinates and auto scales the plotting area of graphs and to set the minimum and maximum values of the axes displayed in the graphs Probability Coordinates The ProbabilityCoordinates class extends the PhysicalCoordinates class to support a y axis probability scale in an xy coordinate plane Probability Axis The Probability Axis class implements a probability axis where the major tick marks are placed at intervals appropriate to a cumulative probability scale ProbabilitySigmaAxis The ProbabilitySigmaAxis class implements a linear axis where the tick marks are placed at linear intervals on the sigma levels of the associated probability scale NotesLabel The NotesLabel class displays the Notes items in the SPC table NotesToolTip The NotesToolTip displays the Notes tooltip for the notes items in the SPC table SPCDataToolTip The SPCDataTooTip displays the data tooltip for SPC Charts SPC Calculations SPCArrayStatistics SPC involves many statistical calculations The SPCArrayStatistics class includes routines for the calculation of sums means medians ranges minimum values maximum values variances and standard deviations It also includes routines for array sorting a
413. s in Windows Applications Turn om all options Dim options As Integer 15 Dim chartVu As SPCTimeVariableControlChart GetInitializeChart imagewidth imageheight options Stream chart back as a JPeg image Dim chartimage As New BufferedImage chartVu ImageFormat Jpeg get your binary image data here Response ContentType image jpeg chartimage SavelImage Response OutputStream chartVu Dispose End Sub Private Function GetInitializeChart ByVal imagewidth As Integer ByVal imageheight As Integer ByVal options As Integer As SPCTimeVariableControlChart Dim chartVu As New SPCTimeVariableControlChart chartVu Size New Size imagewidth imageheight InitializeSPCChart chartVu options Return chartVu End Function GetInitializeChart Private Sub InitializeSPCChart ByVal chartVu As SPCTimeVariableControlChart ByVal options As Integer SPC variable control chart type Dim charttype As Integer SPCControlChartData MEAN RANGE CHART Number of samples per sub group Dim numsamplespersubgroup As Integer 5 Number of datapoints in the view Dim numdatapointsinview As Integer 17 Dim masks As Integer 1 2 4 8 Dim headersOption As Boolean options And masks 0 lt gt 0 Dim sampledValueOption As Boolean options And masks 1 lt gt 0 Dim calculatedValueOption As Boolean options And masks 2 lt gt 0 Dim histogramOption As Boolean options And masks 3 lt gt 0 Initialize the SPCTimeVariab
414. s in the using section at the top of the Default aspx vb file Imports System Drawing 382 Creating SPC Charts in Windows Applications Imports System Drawing Drawing2D Imports System Drawing Imaging Imports com quinncurtis chart2dnet Imports com quinncurtis spcchartnet Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select the QCChart2DNet DLL and QCSPCChartNet DLL Add Reference eT com Projects Browse Recent Look in lib v Q e fie I ocsPCChartNet dll S QCRTGraphNet dll 55 QCMatviewNet dll 2 QCMatPackNet dll QCChart2DNet dll P gacutil exe File name QCChart2DNet dll GCSPCChartNet dll Files of type Component Files dll tlb olb ocx exe manifest Also add System Windows Forms dll from the Net list box Creating SPC Charts in Windows Applications 383 Add Reference NET COM Projects Browse Recent Component Mame Version Runtime System Web DynamicData Design 3 5 0 0 v2 0 5072 System Web Entity 3 5 0 0 v2 0 507z System Web Entity Design 3 5 0 0 v2 0 5072 System Web Exkensions 3 5 0 0 v2 0 507z System Web Exkensions Design 3 5 0 0 v2 0 507z System Web Mobile 2 0 0 0 v2 0 5072 System Web RegularExpressions 2 0 0 0 v2 0 507z System Web Routing 3 5 0 0 v2 0 5072 System Web Services 2 0 0 0 v2 0 5072 Syst
415. s 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 70 QCChart2D Class Summary Polar Axes A 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 spaced at equal degree intervals QCChart2D Class Summary 71 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 NumericA xis Labels StringAxisLabels PolarAxesLabels AntennaAxesLabels 72 QCChart2D Class Summary TimeAxisLabels ElapsedTimeAxisLabels Axis labels inform the user of the x and y scales u
416. s to an attribute control chart as in the example program TimeAttributeControlCharts MultipleControlLimitsChart Title Fraction Defective p Chart Part No 321 Chart No 19 Part Name Pre paint touchup Operation Operator S Kafka Machine Date 12 28 2005 1 21 14 PM Time 13 21 13 51 14 21 14 51 15 21 15 51 16 21 16 51 17 21 17 51 18 21 18 51 19 21 19 51 20 21 20 51 21 21 Scratch 2 1 4 0 1 0 4 0 2 0 2 0 5 1 0 5 6 Burr 2 1 4 0 0 2 0 0 2 1 2 5 0 1 5 0 4 Dent 2 1 4 0 1 2 1 0 1 1 1 3 0 1 2 4 5 Seam 2 1 1 1 1 0 1 0 1 4 0 6 1 0 5 4 4 Other 2 1 4 1 1 1 5 1 1 5 4 3 5 1 1 5 3 NO DEFECTIVE 4 3 10 2 2 5 11 1 5 11 9 12 11 2 12 13 13 FRACT DEF 0 080 0 060 0 200 0 040 0 040 0 100 0 220 0 020 0 100 0 220 0 180 0 240 0 220 0 040 0 240 0 260 0 260 NO INSP 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 NOTES N N N N N N N N N N N N N N N N N OS RUM CEDE es UCLP 0 28 UCLR2 0 23 02 E m m it UCLR1 0 18 a H o PBAR 0 13 lt L a 1 064 L sabes LCLR1 0 09 LCLR2 0 04 0 0 CLP 0 00 14 00 15 00 16 00 17 00 18 00 19 00 20 00 21 00 uj E 262 SPC Attribute Control Charts We added a method Add3SigmaControlLimits which will generate multiple control limits for 1 2 and 3 sigma levels based on an initial specification of the target value and the 3 sigma control limits This is most useful if you want to generate 4 1 2 and 3 sigma control limits in order to fill in between them with a zone fill color S
417. sLabelsFont Set Get default font object used for the axes labels DefaultAxisTitleFont Set Get the default font object used for the axes titles Set this properties BuildGraph DefaultChartFontString Set Get the default font used in the chart This is a string specifying the name of the font DefaultFooterFont Set Get the default font object used for the chart footer DefaultMainTitleFont Set Get the default font object used for the main chart title DefaultSigmaFont Set Get the default font object used for the axis labels sigma character DefaultSubHeadFont Set Get the default font object used for the subhead title DefaultToolTipFont Set Get the default font object used for the 332 Frequency Histograms Pareto Diagrams Probability Charts Public Instance Constructors ProbabilityChart Public Instance Properties CoordinateSystem Datatooltip DefaultGraphBorder Footer GraphBackground MainTitle PlotAttrib PlotBackground ProbabilityDataset ProbabilityPlot ResetOnDraw SigmaAxis SigmaAxisLab SubHead SymbolSize TextTemplate ToolTipSymbol XAXiS XAxisLab XAxis Title XGrid XValues XValueTemplate Y Axisl 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 obj
418. second copy for his or her exclusive use on a portable computer Under no other circumstances may the SOFTWARE be operated at the same time on more than the number of computers for which you have paid a separate license fee You may not duplicate the SOFTWARE in whole or in part except that you may make one copy of the SOFTWARE for backup or archival purposes You may terminate this license at any time by destroying the original and all copies of the SOFTWARE in whatever form B 30 Day Trial License You may download and use the SOFTWARE without charge on an evaluation basis for thirty 30 days from the day that yu DOWNLOAD the trial version of the SOFTWARE The termination date of the trial SOFTWARE 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 SOFTWAR
419. sed 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 July 18 2002 15 35 11 24 Hour Mode 12340 0 Decimal 2002 15 15 24 Hour Mode 1 2340E4 Scientific 7 2002 15 11 Minute Second 12 340K Business 7 19 2002 3 15 11 12 Hour Mode 1234000 Percent 19 07 2002 3 15 12 Hour Mode 1 23401 04 Exponent 02 o 12340 Currency 7102 ca 719 02 18 07 02 xe Multi line and rotated 0 360 degrees July gor axis labels are supported Jul i J A9 Friday Western Eastern Southern Northern Sales Sales Sales Sales Region Region Region Region Fri F In addition to the predefined formats programmers can define custom time date and numeric formats 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 axis label text can be rotated 360 degrees in one degree increments 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 cu
420. sed in the header section of the table SPC Variable Control Charts this ChartData Title Variable Control Chart X Bar amp R this ChartData PartNumber 283501 this ChartData ChartNumber 17 this ChartData DateString DateTime Now ToString this HeaderStringsLevel SPCControlChartData HEADER_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 LEVEL1 The example below displays a maximum set of header strings HeaderStringsLevel SPCControlChartData HEADER STRINGS LEVEL3 Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Dete 12 21 2005 10 45 58 AM 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 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 ZeroEqual
421. ser This can be done using either C or VB And you must create a HTML page that displays the chart and provides whatever interaction you expect The ChartView derived UserControl cannot do anything that would violate the security policy of the browser This would include all forms of disk I O and anything in general that tries to access anything on the client computer Creating SPC Charts in Windows Applications 389 Embed a QCSPCChart User Control In Internet Explorer Windows Internet Explorer ni xj Gc a e http www quinn curtis com UserControlTest QCSPC IEQCSPCChart htm 4 X aoogle File Edit View Favorites Tools Help w dr e Embed a QCSPCChart User Control In Internet Explorer Hello this page includes a windows user control Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Time 13 4313 5814 1314 2814 4314 5815 1315 2815 4315 5816 1316 2816 4316 5817 1317 28 17 43 Sample 1 Sample 3 MEAN SUM 60 40 20 0 Change Title EnablelnputStrings Internet 100 A Visual C Create a Windows Control Library and User Control You need to create a ChartView derived user control that defines your chart and includes all of the properties that you need for interacting with your chart This is done almost exactly the same as described in the previous chapter Using QCSPCChart for Net to Create Windows Applications The difference is that instead of creating a Net
422. sigma limits The most popular of these are the Western Electric Rules also know as the WECO Rules or WE Runtime Rules First implemented by the Western Electric Co in the 1920 s these quality control guidelines were codified in the 1950 s and form the basis for all of the other rule sets Different industries across the globe have have developed their own variants on the WECO Rules Other sets of rules common enough to have an identifying name i e named rules are listed below WECO Runtime and Supplemental Rules Western Electric Co Western Electric Company 1956 Statistical Quality Control handbook 1 ed Indianapolis Indiana Western Electric Co p v OCLC 33858387 Sometimes the Supplemental Rules are referred to as the Montgomery Rules after the statistical quality control expert Douglas Mongtomery Introduction to Statistical Quality Control 5 ed Hoboken New Jersey John Wiley amp Sons ISBN 9780471656319 Nelson Rules The Nelson rules were first published in the October 1984 issue of the Journal of Quality Technology in an article by Lloyd S Nelson AIAG Rules The AIAG Automotive Industry Action Group control rules are published in the their industry group Statistical Process Control Handbook Juran Rules Joseph M Juran was an international expert in quality control and defined these rules in his Juran s Quality Handbook McGraw Hill Professional 6 edition May 19 2010 ISBN 10 0071629734
423. ss Architecture 43 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 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 library SPC Control Chart Tools for Net Class Summary The SPC Control Chart Tools for Net library is a super set of the QCChart2D library The classes of the QCChart2D library are an integral part of the software A summary of the QCChart2D classes appears below QCChart2D Class Summary Chart view class The chart view class 1s a UserControl subclass that manages the graph objects placed in the graph Data classes There are data classes for simple xy and group data types There are also data classes that handle System DateTime date time data and contour data Scale transform classes The scale transform classes handle the conversion of physical coordinate values to working coordinate values for a single dimension Coordinate transform classes The coordinate transform classes handle the conversion of physical coordinate values to working coordinate values for a parametric 2D coordinate system
424. st 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 Background In a competitive world environment where there are many vendors selling products and services that appear to be the same quality both real and perceived is often the critical factor determining which product wins in the marketplace Products that have a reputation for higher quality command a premium resulting in greater market share and profit margins for the manufacturer Low quality products not only take a big margin hit at the time of sale but also taint the manufacturer with a reputation that will hurt future sales regardless of the quality of future products Users have a short memory A company s quality reputation is only as good as the quality of its most recent product The measurement control and gradual improvement of quality is the goal of all quality systems no matter what the name Some of the more common systems are known as SCC Statistical Quality Control Quality Engineering Six Sigma TQM Total Qual
425. stem Workflow Runtime 3 0 0 0 v2 0 5072 System WorkflowServices 3 5 0 0 v2 0 5072 System xml 2 0 0 0 v2 0 507z qi demi Linn 3 5 0 0 v2 n 5nzz V using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys using Sys Creating SPC Charts in Windows Applications 377 After these initial steps you should be able to compile the basic program shell Add a method that makes the chart and returns a SPCTimeVariableControlChart object it could also be SPCBatchVariableControlChart SPCTimeAttributeControlChart or SPCBatchAttributeControlChart of the chart In the example below this is the function GetInitializeChart It has arguments that that specify the desired height and width for the chart tem tem tem tem tem tem tem tem tem tem cem Lem cem Data Configuration Collections Web Web Security Web UI Web UI WebControls Web UI WebControls WebParts Web UI HtmlControls Drawing Drawing Drawing2D Drawing Imaging using com quinnecurtis chart2dnet using com quinncurtis spcchartnet namespace SPCWebApplicationl public partial class Default System Web UI Page options ChartCalendar startTime new ChartCalendar The time increment between adjacent subgroups int timeincrementminutes 15 private void Page Load object sender System EventArgs e Put user code t
426. sured and plotted as either a percentage of the total subgroup sample size or a fraction of the total subgroup sample size Since the plotted value is a fraction or percent of the sample subgroup size the size of the sample group can vary without rendering the chart useless The p Chart chart can also be used if the sample subgroup size varies from sampling interval to sampling interval In this case the control chart high and low limits vary from sample interval to sample interval depending on the number of samples in the associated sample subgroup A low number of samples in the sample subgroup make the band between the high and low limits wider than if a higher number of samples are available Both the Fraction Defective Parts and Percent Defective Parts control charts come in versions that support variable sample sized for a subgroup Fraction Defective Parts p Chart with variable sample size i Number Defects Per Unit u chart Batch X Bar Sigma Title Fraction Defective p Chart 321 Chart No 19 Part Name Pre paint touchup Operation Operator K Peterson Machine Date 3 20 2009 1 05 12 PM TIME 13 05 13 35 14 05 14 35 15 05 15 35 16 05 16 35 17 05 17 35 18 05 18 35 19 05 19 35 20 05 20 35 21 05 Scratch 0 Burr 1 Dent 2 Seam 1 Other 6 1 6 NO DEFECTIVE 13 5 4 1 13 2 11 5 10 10 1 13 6 5 FRACT DEF 0 243 0 265 0 143 0 089 0 379 0 000 0 310 0 049 0 234 0 119 0 238 0 303 0 200 0 029 0 317 0 122 0 147 NO INSP 37 49 35 45 29 33 42
427. t 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 101 SPC Control Data and Alarm Classes the calculated chart values used in the chart and the SPC control limits Calculated Values MEAN 295 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 base class for the four major SPC Control Charts SPCBatchAttributeConrolChart SPCBatchVariableControlChart SPCTimeAttributeConrolChart SPCTimeVariableControlChart it is accessible from those classes The data elements of the SPCControlChartData class are accessible to the programmer SPCControlChartData Methods The SPCControlChartData object is automatically created when the parent SPCChartBase object is created The programmer does not need to instantiate it Public Static
428. t string used as the notes column head 105 SPC Control Data and Alarm Classes SampleValueColumnString TimeStampColumnString Public Static Shared Methods CalcRangeBasedDecimalPos Public Instance Constructors SPCControlChartData Public Instance Properties AlarmStateEventEnable AlarmTransitionEventEnable ChartNumber ChartNumberHeader CurrentNumberRecords DatalLogEnable DataLogCS V DataLogFilename DataLogFlags in the log file The default value is Notes Default string used as the sample value column head in the log file The default value is Sample 7 Default string used as the time stamp column head in the log file The default value is Time Stamp Calculate the decimal precision used to display calculated values in the data table Overloaded Initializes a new instance of the 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
429. tCalendar 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 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 subgroup 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 a
430. tData PartName Pre paint touchup his ChartData TheOperator S Kafka SOM SS SLUG a Se Display the Sampled value rows of the table this EnableInputStringsDisplay true Display the Sampled value rows of the table this EnableCategoryValues true Display the Calculated 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 this RebuildChartUsingCurrentData SPC Attribute Control Charts 243 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
431. tRecord class specifies the type of the alarm the alarm limit value alarm text messages and alarm hysteresis value The SPCControlChartData classes store the SPCControlLimitRecord objects in the SPCControlChartData ControlLimitValues array list SPC Control Data and Alarm Classes 128 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 Parameters processvar Specifies the process variable that the alarm is attached to clr Specifies the calculated value record the alarm is attached to parametertype Specifies the alarm type SPC_NOTA_LIMIT SPC_LOWERTHAN LIMIT or SPC_GREATERTHAN LIMIT alarmlimitvalue Specifies the alarm limit value normalmessage Specifies display message when no alarm present alarmmessage Specifies the alarm message The most commonly used SPCControlLimitRecord properties are Public
432. ta 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 46 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 description and the hysteresis value for alarm checking SPCCalculatedValueRecord The record class for a calculated SPC statistic It holds the calculated value type mean median sum variance standard deviation etc value description and historical data SPCProcessCapabilityRecord The record 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 SP
433. ta 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 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 An timestampstring message An _ alarmlimitvaluestring Current Value calculatedvaluestring If alarm AlarmState Then Cons
434. te 10 26 2011 1 27 02 PM TIME 13 27 13 57 14 27 14 57 15 27 15 57 16 27 16 57 17 27 17 57 18 27 18 57 19 27 19 57 20 27 20 57 21 27 Scratch 4 4 1 4 Burr 2 5 0 2 Dent 1 2 1 5 Seam 2 6 0 2 3 Other 8 5 10 2 8 1 9 11 NO DEF 17 11 16 27 4 16 1 1 20 30 22 4 2 14 22 31 DEF MILLION 3400 2200 3200 5400 800 3200 3600 2600 4000 6000 4400 3600 800 400 2800 4400 6200 NO INSP 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 ALARM NOTES 1 2 3 1 7 UCL 3 546 PBAR 3103 DEF MILLION LCL S3 743 15 00 16 00 17 00 18 00 19 00 20 00 21 00 E Standard SPC Control Charts 35 This Attribute Control chart is a combination of the u chart and the c chart The chart normalizes the defect rate expressing it as defects per million The chart displays the defect rate as defects per million The table above gives the defect count in both absolute terms and in the normalized defects per million used by the chart Defect and Defect Category Data Tables As discussed under the Variable Control Chart section standard worksheets used to gather and plot SPC data consist of three main parts SIT he 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 he second part records the defect data organized as a table recording the defect data and SPC calculations in a neat readabl
435. te implementation of the GroupPlot class and it displays a collection of arrows as defined by the data in a group dataset The position size and rotation of each arrow in the collection is independently controlled BubblePlot This class is a concrete implementation of the GroupPlot class and displays bubble plots The values in the dataset specify the position and size of each bubble in a bubble chart Box and Whisker Plots are used in Descriptive Statistics New York Houston San Francisco Boston Pittsburgh BoxWhiskerPlot This class is a concrete implementation of the GroupPlot class and displays box and whisker plots The BoxWhiskerPlot class graphically depicts groups of numerical data through their five number summaries the QCChart2D Class Summary 77 smallest observation lower quartile Q1 median Q2 upper quartile Q3 and largest observation Technical Analysis Uses Candlestick Plots CandlestickPlot CellPlot The Open Close box is filled if the open price is greater than the close price 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 Cell Plot of Population Density Distance from Closest Walmart Miles Mean Family Income 1000 The Cell plot will plot rectangles of any size color and postion This class is a concrete implementation of the GroupPlot class and displays cell
436. tem EventArgs e String filename this Name SaveFileDialog imagefilechooser new SaveFileDialog imagefilechooser Filter Image Files BMP JPG GIF TIFF PNG BMP JPG GIF TIFF PNG ALII files Q y e imagefilechooser FileName filename 350 File and Printer Rendering if imagefilechooser ShowDialog DialogResult OK filename imagefilechooser FileName FileInfo fileinformation new FileInfo filename String fileext fileinformation Extension fileext fileext ToUpper ImageFormat fileimageformat if fileext BMP fileimageformat ImageFormat Bmp else if fileext JPG fileext JPEG fileimageformat ImageFormat Jpeg else if fileext GIF fileimageformat ImageFormat Gif else if fileext TIF fileext TIFF fileimageformat ImageFormat Tiff else if fileext PNG fileimageformat ImageFormat Png else fileimageformat ImageFormat Bmp BufferedImage savegraph new BufferedImage chartview fileimageformat savegraph Render savegraph SavelImage filename VB This routine displays a dialog box in response to an event that prompts the user for the name and file type of the image to be saved The file type is derived from the file extension The chart represented by this object is saved to the file using the specified format Public Sub SaveAsFile ByVal chart
437. ternet Explorer lt title gt 400 Creating SPC Charts in Windows Applications meta http equiv Content Language content de gt meta http equiv Content Type content text html charset windows 1252 lt head gt scripts function ChangeTitle MyTestUserControll ChartTitleText textl value function EnableInputStrings MyTestUserControll EnableInputStrings text2 value lt script gt lt body gt lt p gt lt b gt lt font face Arial size 4 gt Hello this page includes a windows user control lt font gt lt be lt p gt lt OBJECT id MyTestUserControll height 600 width 800 classid WindowsControlLibraryl d1ll WindowsControlLibraryl UserControlli gt lt OBJECT gt lt P gt lt input type text id textl gt amp nbsp amp nbsp nbsp input type button value Change Title onclick ChangeTitle ID Button1 NAME Buttonl P lt P gt lt P gt lt P gt lt input type text id text2 NAME text2 gt amp nbsp lt input type button value EnableInputStrings onclick EnableInputStrings ID Button2 NAME Button2 gt lt P gt lt body gt lt html gt Index Adding new new data using AddNewSampleRecord AddNewSampleRecord107 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 136 159 160 162 186 200 201 202 217 218 219 220 226 227 228 235 236 237 239 241 258 259 260 277 281 282 283 289 290 291 292
438. the SPCGeneralizedTableDisplay class Set Get the background bar left offset in normalized coordinates Set Get the first of two colors used in the alternating background colors used to delineate the table rows 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 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 Get Set the numeric column spacing Get Set the numeric row spacing Get Set the SampleItemTemplate object used as a template for displaying numeric values in the table Get Set the font used in the display of sample numeric values in the table Get Set the starting x position in normalized coordinates of the left most column of the table Get Set the starting y position in normalized coordinates of the first row of the table 141 SPC Control Data and Alarm Classes StringltemTemplate StringLabelFont TableBackgroundMode TextColumnSpacing TextRowOffset TextRowSpacing TimeColumnSpacing TimeltemTemplate TimeLabelFont TimeRowSpacing Public Instance
439. the UserControll System System System System System System System System class and generate the WindowsControlLibrary1 DLL file If the project fails to compile you need to go back and check the previous steps You can add as many custom chart controls as you need for the given HTML page you plan to display charts in Each custom chart control will inherit from the com quinncurtis spcchartnet SPCTimeVariableControlChart control Or Optional You can create inherited controls from the UserChartControll class that you already created Create an inherited control by selecting Project Add Inherited Control Give the inherited control a unique name i e UserInheritedControll When you select Open choose UserControll in the Inheritance Picker The result is new control added to the project Build the solution and the UserInheritedControll control will be added to the WindowsControlLibrary DLL in addition to the UserControll View the UserChartControll cs underlying C code We placed all of the chart creation code in the InitializeChart method This method is called in the UserControll constructor otherwise the UserControll appears as an empty shell Add whatever properties you need to get data from the HTML file into the chart control ChartTitleText and EnableInputStrings in the example below Collections Generic ComponentModel Drawing Data Text Windows Forms Drawing Drawing2D com quin
440. the display of notes values in the table Extracted from the example BatchVariableControlCharts BatchIndividualRangeChart C this ChartTable SampleLabelFont new Font Times 12 FontStyle Regular SPC Variable Control Charts 167 VB 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 Batch VariableControlCharts 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 the
441. 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 250 SPC Attribute Control Charts AnnotationFont The annotation font ControlLimitLabelFont The font used to label the control limits Extracted from the example TimeAttributeControlCharts PercentDefectiveChart 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 name of the font This static property must be set BEFORE the charts Init routine Extracte
442. 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 146 SPC Variable Control Charts FUCLR 21 5 RBAR 10 2 CLR 0 0 14 00 15 00 16 00 17 00 Note the time based x axis for both charts
443. tial 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 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 SPC Attribute Control Charts 265 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 C Rebuild the chart using the current data and settings this RebuildChartUsingCurrentData VB Rebuild the chart using the current data and settings Me RebuildChartUsingCurrentData I
444. til exe found in your Visual Studio installation program and copy it to our Quinn Curtis DotNet Lib S Run Gacutil exe from the DOS prompt while you are in the Quinn Curtis DotNet Lib directory using the following command line Gacutil i QCChart2DNet DLL Gacutil i QCSPCChartNet DLL You will find an endless source of information about the GAC on the web and there is no need to repeat it Here is a starting point http www codeproject com dotnet DemystifyGAC asp In general you should not be installing any of our Net DLL s in the system GAC unless you have an overriding reason to so In general our Net DLLs should just be distributed as part of an application program and would normally reside in the same folder as the application programs executable One exception is if you expect a QCSPCChart derived UserControl to run in Internet Explorer In that case the QCChart2DNet DLL and QCSPCChartNet DLL files must be installed as part of the GAC so that it has the necessary security clearance and so that IE can find it when it has to display the control If you have installed it correctly you should be able to view the web page below that references a QCSPCChart derived user control http www quinn curtis com UserControlTestRev2 QCSPC IEQCSPCChart htm Once the QCSPCChartNet DLL has been successfully installed in the system GAC you must create a ChartView derived UserControl that creates the chart you want to display in the brow
445. tion ScrollBarPixelHeight SecondaryChart SPCChartType TableAlarmEmphasisMode XScaleMode 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 MEDIAN RANGE CHART MEAN SIGMA CHART MEAN SIGMA CHART VSS INDIVIDUAL RANGE CHART CUSTOM ATTRIBUTE CONTROL CHART PERCENT DEFECTIVE PARTS CHART FRACTION DEFECTIVE PARTS CHART NUMBER DEFECTIVE PARTS CHART NUMBER DEFECTS CHART NUMBER DEFECTS PERUNIT CHART NUMBER DEFECTS PER MILLION CHART Set the table alarm highlighting to one of the SPCC
446. tion or stratification a T O or S may also appear No alarm condition H High Measured value is above a high limit L Low Measured value falls below a low limit T Trending Measured value is trending up or down O Oscillation Measured value is oscillating alternating up and down S Stratification Measured value is stuck in a narrow band Alarm status line this EnableAlarmStatusValues false VB Alarm status line Me EnableAlarmStatusValues False SPC Attribute Control Charts 275 ChartAlarmEmphasisMode 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 6 4 0 0 5 1 4 1 3 1 8 1 0 1 7 Defect 43 1 1 4 0 3 5 9 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 UCL 0 28 iB iy FRACT DEF 25 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 sa
447. tion and display of the statistics is automatic 160 SPC Variable Control Charts Bar Sigma Individual Range MultiLimit Bar R Median Range Dynamic SPC Variable Control Limits Title Variable Control Chart X Bar amp R Part No 283501 Chart No 17 Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Time 18 44 18 59 19 14 19 29 19 44 19 59 20 14 20 29 20 44 20 59 21 14 21 29 21 44 21 59 22 14 22 29 22 44 RANGE 113 9 1 107 120 87 57 110 135 127 121 98 82 84 104 45 13 3 10 7 0 243 0 218 0 233 0 248 0 249 0 250 0 211 0 218 0 209 0 203 0 203 0 220 0 241 0 250 0 235 0 228 0 218 0 246 0 210 0 239 0 262 0 265 0 263 0 219 0 228 0 218 0 214 0 216 0 231 0 251 0 260 0 233 0 231 0 220 Formulas Used in Calculating the Process Capability Ratios The formulas used in calculating the process capability statistics vary We use the formulas found in the textbook Introduction to Statistical Quality Control by Douglas C Montgomery John Wiley and Sons Inc 2001 SPC Control Chart Nomenclature USL Upper Specification Limit LSL Lower Specification Limit Tau Midpoint between USL and LSL 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 161 S Sigma
448. tive 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 I R chart it can also be used when sample subgroup sizes are greater than one MA Moving Average Chart with Sample Values Plotted Standard SPC Control Charts 21 Hox EWMA Chart CUSum Chart CUSum Chart 2 Title Variable Control Chart EWMA Part No 283501 Chart No 17 Part Name Transmission Casing Bolt Operation Threading Spec Limits Units 0 0001 inch Operator J Fenamore Machine 11 Gage 8645 Zero Equals zero Date 3 4 2008 3 36 58 PM Time 15 36 16 06 16 36 17 06 17 36 18 06 18 36 19 06 19 36 20 06 20 36 21 06 21 36 22 06 22 36 23 06 23 36 Sample 0 9 71 10 64 29 39 1049 945 951 9 79 10 05 10 18 971 942 938 10 15 10 53 29 51 988 10 08 Sample 1 9 98 9 28 967 10 13 958 9 74 9 61 10 23 10 33 10 18 10 43 10 47 10 04 9
449. to the outermost edge of the polar plot circle passing through the major and minor tick marks of the polar angle circular axis This class works in conjunction with the PolarAxes class AntennaGrid Analogous to the PolarGrid this class draws radial and circular grid lines for an Antenna chart Chart Text Classes ChartText ChartTitle AxisTitle ChartLabel 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 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 Axis Title ChartLabel NumericLabel TimeLabel ElapsedTimeLabel StringLabel QCChart2D Class Summary 91 This class displays a text string as the title or footer of the chart This class displays a text string as the title for an axis The axis title position is outside of the axis label area Axis titles for y axes are rotated 90 degrees This class is the abstract base class of labels that require special formatting This class is a concrete implementat
450. tons force the changes to go into affect Note how the buttons are hooked into the JavaScript event handlers ChangeTitle and EnableInputStrings and how they in turn interact with the properties ChartTitleText and EnableInputStrings you wrote for the user control The user control in this HTML file has the id MyTestUserControll and the properties for the user control are accessed using that id Note that an automatic string to double conversion takes place in the case of the EnableInputStrings property since EnableInputStrings is a boolean and text2 is a string lt ecript gt function ChangeTitle MyTestUserControll ChartTitleText textl value function EnableInputStrings MyTestUserControll EnableInputStrings text2 value scripto P lt input type text id textl amp nbsp amp nbsp amp nbsp input type button value Change Title onclick ChangeTitle ID Buttonl NAME Buttonl gt lt P gt lt P gt lt P gt lt P gt lt input type text id text2 NAME text2 amp nbsp lt input type button value EnableInputStrings onclick EnableInputStrings ID Button2 NAME Button2 gt lt P gt See the complete HTML file below It is probably easier to view the IEQCSPCChart HTM file in the WindowsControlLibaryl project folder lt html gt lt head gt lt meta name vs_targetSchema content http schemas microsoft com intellisense ie5 gt lt title gt Embed a QCSPCChart User Control In In
451. trolLimits method the 264 SPC Attribute Control Charts control limit will be displayed at that value If you do call AutoCalculateControlLimits method the auto calculated value overrides the initial value 0 0 in the examples above When you call the charts AddAdditionalControlLimits method you specify the sigma level that is used by the AutoCalculateControlLimits to calculate the control limit level If you want the control limits displayed as filled areas set the charts ControlLimitLineFillMode property True C SpcChart PrimaryChart ControlLimitLineFillMode true This will fill each control limit line from the limit line to the target value of the chart In order for the fill to work properly you must set this property after you define all additional control limits Also you must add the outer most control limits SPC UPPER CONTROL LIMIT 3 and SPC LOWER CONTROL LIMIT 3 first followed by the next outer most limits SPC UPPER CONTROL LIMIT 2 and SPC LOWER CONTROL LIMIT 2 followed by the inner most control limits SPC UPPER CONTROL LIMIT 1 and SPC LOWER CONTROL LIMIT 1 This way the fill of the inner limits will partially cover the fill of the outer limits creating the familiar striped look you want to see Chart Y Scale You can set the minimum and maximum values of the two charts y scales manually using the PrimaryChart MinY PrimaryChart MaxY SecondaryChartMinY and SecondaryChartMaxY properties C Set ini
452. true new ChartAttribute Color Green 3 0 this PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC UPPER SPEC LIMIT 32 1 H CV 0 true new ChartAttribute Color Yellow 3 0 VB Me ChartData GetCalculatedValueRecord 0 returns the calcuated value which calculates the subgroup mean Dim cvr As SPCCalculatedValueRecord Me ChartData GetCalculatedValueRecord 0 Me PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC LOWER SPEC LIMIT 22 3 L CV 0 True New ChartAttribute Color Green 3 0 Me PrimaryChart AddNumericControlLimit cvr SPCChartObjects SPC UPPER SPEC LIMIT 32 1 H CV 0 True New ChartAttribute Color Yellow 3 0 The third AddProcessCapability Limit creates a limit which monitors the value of one of the charts SPCProcessCapabilityRecord object values SPCChartObjects AddProcessCapabilityControlLimit Method Visual Basic Declaration Public Function AddProcessCapabilityControlLimit _ pcindex As Integer limtype As Integer value As Double _ displaystring As String _ attrib As ChartAttribute _ As SPCControlPlotObjectData C public SPCControlPlotObjectData AddProcessCapabilityControlLimit int pcindex int limtype double value string displaystring ChartAttribute attrib Named and Custom Control Rule Sets 313 Parameters pcindex Specify the process capability limit index based on the order the process capabilities were added to the chart starti
453. tvalues and controllimitstrings arrays used to pass the control limit information must be sorted in the following order SPC_PRIMARY CONTROL TARGET SPC PRIMARY LOWER CONTROL LIMIT SPC PRIMARY UPPER CONTROL LIMIT C double controllimitvalues 0 13 0 0 0 25 this ChartData SetControlLimitValues controllimitvalues string controllimitstrings PBAR LCL UCL 7 254 SPC Attribute Control Charts this ChartData SetControlLimitStrings controllimitstrings VB Dim controllimitvalues As Double 0 13 0 0 0 25 Me ChartData SetControlLimitValues controllimitvalues Dim controllimitstrings As String PBAR LOL 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 1f 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 SPCControlLimit
454. ueOption options amp masks 2 0 bool histogramOption options amp masks 3 0 Initialize the SPCTimeVariableControlChart chartVu InitSPCTimeVariableControlChart charttype numsamplespersubgroup chartVu HeaderStringsLevel numdatapointsinview timeincrementminutes SPCControlChartData HEADER STRINGS LEVEL2 Set the strings used in the header section of the table Title PartNumber ChartNumber chartVu ChartData chartVu ChartData chartVu ChartData chartVu ChartData cGhartVu ChartData chartVu ChartData chartVu ChartData chartVu GraphStartPosX chartVu GraphStopPosX W283 0 04 woe Operation TheOperator Machine AB 276 0 175 0 89 Display the Sampled value rows of the chartVu EnableInputStringsDisplay Display the Sampled value rows of the chartVu EnableCategoryValues sampledVa Display the Calculated value rows of chartVu EnableCalculatedValues calcula Displ cGhartVu Displ chartVu chartVu Display chartVu EnableTimeValues frequency histogram for both charts chartVu PrimaryChart DisplayFrequencyHis EnableTotalSamplesValues calcu ay the Notes row of the table EnableNotes false EnableTotalSamplesValues false chartVu SecondaryChart DisplayFrequencyHistogram SimulateData chartVu Variable Control Chart the time stamp row of the tabl sampledValueOption X Bar amp R Pa
455. ueRecord Overloaded Initializes a new instance of the SPCSampledValueRecord class Public Instance Properties SampledValue Get Set the current value for this record SampledValues Get Set the historical array of the sampled value record ValueDescription Get Set the description of sampled value record Public Instance Methods Copy Copies the source object GetCalculatedValueStatistic Calculate a statistic for the historical data associated with the sample item SetSampledValue Set the current value of the record and adds the value to the historical array of the sampled value record SPCControlLimitRecord This class holds information specific to a SPC control limit including the current value of the control limit a history of control limit values description and the hysteresis value for alarm checking Public Static Shared Fields SPC GREATERTHAN LIMIT Specifies the alarm is a greater than alarm SPC LOWERTHAN LIMIT Specifies the alarm is a lower than alarm SPC NOTA LIMIT Specifies the limit is not an alarm just a value Public Instance Constructors SPCControlLimitRecord Overloaded Initializes a new instance of the SPCControlLimitRecord class 135 SPC Control Data and Alarm Classes Public Instance Fields controlLimitValues Public Instance Properties AlarmDisplay AlarmEnable AlarmMessage AlarmState ControlLimitText ControlLimitType ControlLimitValue ControlLimitV alues Hysteresis Valu
456. uired 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 SPCTimeVariableControlChart Overloaded Initializes a new instance of the SPCTimeVariableControlChart class Public Instance Methods InitSPCTimeVariableControlChart Overloaded Initialize the class for a specific SPC chart type InitSPCTimeCusumControlChart Overloaded Initialize the class a cusum chart type The control chart type X Bar R Median Range X Bar Sigma Individual Range EWMA MA establishes the variable control charts InitSPCTimeVariableControlChart initialization routine Note that the X Bar Sigma chart with a variable subgroup sample size is initialized using InitSPCTimeVariableControlChart with a charttype value of MEAN SIGMA CHART VSS X Bar Sigma charts with sub groups that use a variable sample size must be updated properly See the section Adding New Sample Records to a X Bar Sigma Chart Variable Subgroup Sample Size in th
457. umber of defects for defect category 5 S ac Ma 0 4 2 3 M 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 Number of defects for defect category 2 samples 2 Number of defects for defect category 3 samples 3 Number of defects for defect category 4 samples 4 Number of defects for defect category 5 N 0 4 2 3 SPC Attribute Control Charts 241 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 The first part is the header section identifying the title of the chart the monitored process the machine operator part num
458. ur standardize rule templates See Chapter 8 for more information 1 The most recent point plots outside one of the 3 sigma control limits If a point lies outside either of these limits there is only a 0 3 chance that this was caused by the normal process 2 Two of the three most recent points plot outside and on the same side as one of the 2 sigma control limits The probability that any point will fall outside the warning limit is only 5 The chances that two out of three points in a row fall outside the warning limit is only about 1 3 Four of the five most recent points plot outside and on the same side as one of the 1 sigma control limits In normal processing 68 of points fall within one sigma of the mean and 32 fall outside it The probability that 4 of 5 points fall outside of one sigma is only about 3 4 Eight out of the last eight points plot on the same side of the center line or target value Sometimes you see this as 9 out of 9 or 7 out of 7 There is an equal chance that any given point will fall above or below the mean The chances that a point falls on the same side of the mean as the one before it is one in two The odds that the next point will also fall on the same side of the mean is one in four The probability of getting eight points on the same side of the mean is only around 1 These rules apply to both sides of the center line at a time Therefore there are eight actual alarm conditions four for the a
459. ures were added to QCSPCChart in the change from Revision 1 6 to 1 7 These are summarized below Eliminated the QCLicense License Fle We have eliminated the QCLicense license file from the software and with it the need to purchase additional Redistributable Licenses Once you purchase the software you the developer can create application programs that use this software and redistribute the programs and our libraries royalty free As a development tool i e using this software in conjunction with a compiler the software is still governed by a single user license and cannot be shared by multiple individuals unless additional copies or a site license have been purchased New SPC Chart Types and Features Three new charts have been added to the software EWMA Exponentially Weighted Moving Average MA Moving Average and CuSum Cumulative Sum charts Introduction 5 Three variants of existing charts have been adapted to support variable subgroup sample sizes X Bar Sigma p Chart Fraction or Percent of Defective Parts and u Chart Number of Defects per Unit The FrequencyHistogramChart now includes optional limit lines and an optional fit and overlay of a normal curve to the frequency data New Alarm Features There is a new status line in the table section that gives a direct indication of whether or not the corresponding process variable is in or out of alarm The status line has a tooltip so if you
460. urther customized using method and properties The programmers can customize the plot objects created in the template allowing tremendous flexibility in the look of the SPC charts Like the QCChart2D software the SPC Control Chart Tools for Net uses the graphics features found in the Microsoft Net API These include S Arbitrary line thickness and line styles for all lines Printer and image output support Font support for a large number of fonts using a variety of font styles size and rotation attributes imaging support for a large number of image formats SPC Control Chart Tools for Net Dependencies The SPC Control Chart Tools for Net class library builds on the QCChart2D software package It uses the classes found in that software and standard classes that ship with the Microsoft Net API No other software is required Directory Structure of QCSPCChart for Net The SPC Control Chart Tools for Net class library uses the standard directory structure also used by the QCChart2D and QCRTGraphics software It adds the QCSPCChart directory structure under the Quinn Curtis DotNet folder For a list of the folders specific to QCChart2D see the manual for QCChart2D QCChart2DNetManual pdf Drive 10 Introduction Quinn Curtis Root directory DotNet Quinn Curtis Net based products directory Docs Quinn Curtis Net related documentation directory Lib Quinn Curtis Net related compiled libraries and components direct
461. using the ChartData ProcessCapabilityLSL Value and ChartData ProcessCapabilityUSL Value properties of the chart The code below is from the TimeVariableControlCharts XBarR Chart example this ChartData ProcessCapabilityLSLValue this ChartData ProcessCapabilityUSLValue 21 394 Use the ChartData addProcessCapabilityValue method to specify exactly which process capability statistics you want to see in the table Use one of the SPCProcessCapabilityRecord constants below to specify the statistics that you want displayed SPC CP CALC Constant value Cp calculation SPC CPL CALC Constant value Cpl calculation SPC CPU CALC Constant value Cpu calculation SPC CPK CALC Constant value Cpk calculation SPC CPM CALC Constant value Cpm calculation SPC PP CALC Constant value Pp calculation SPC PPL CALC Constant value Ppl calculation SPC PPU CALC Constant value Ppu calculation SPC PPK CALC Constant value PPK calculation The code below is from the TimeVariableControlCharts XBarR Chart example 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 calcula
462. 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 320 Frequency Histograms Pareto Diagrams Probability Charts XBar R Chart with Integral Frequency Histograms EElFormi Static with 3 Dynamic with Table Variable Control Limits with Annotations Title Variable Control Chart X Bar amp R Part No Chart No Operator John Smith Machine 1 Time 10 28 10 43 10 58 11 13 11 28 11 43 11 58 12 13 12 28 12 43 12 58 13 13 13 28 13 43 13 58 14 13 60 mi 4 iml Creating an Independent not part of a SPC chart Frequency Histogram The FrequencyHistogram Chart 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 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 j void InitializeChart Frequency bins Frequency Histograms
463. ve been moved to the static class SPCChartStrings which can be modified at run time or if you have the QCSPCChartNet dll source code at compile time You can create multiple sets of strings one for each unique region you sell to and initialize the software to that set at run time While something similar is often done using resource files in the final Net application program it was not possible to add a user customizable resource file to a pre compiled library like our QCSPCChartNet dll Apart from the strings there are a couple other areas which benefit from regionalization First is the use of the comma in some locales as the decimal separator in place of the period Our software uses the standard numeric conversion routines found in Net for converting numeric values to strings and these automatically take into account the proper format for the region recognized by the computer So you shouldn t have to do anything there Also date time values are subject to regional differences specifically the order of the month day year in short form strings of the form 10 1 2011 M dd yyyy US English format compared to 1 10 2011 dd M yyyy European format There a couple of date time formats in the list below located at the enumerated values defaultDateFormat and defaultTimeStampFormat You should change those to whatever time format you want The format specification is that used by the Net DateTime ToString method
464. view Else printobj PrintChartView charview 348 File and Printer Rendering End If printobj PageSetupItem sender e End If End Sub PageSetup This routine invokes the chart objects printer setup dialog method Public Sub PrinterSetup ByVal charview As ChartView _ ByVal sender As Object ByVal e As System EventArgs If Not charview Is Nothing Then If printobj Is Nothing Then printobj New ChartPrint charview Else printobj PrintChartView charview End If printob DoFrintDialoeg End If End Sub PrinterSetup This routine invokes the chart objects PrintPreviewItem method Public Sub PrintPreview ByVal charview As ChartView _ ByVal sender As Object ByVal e As System EventArgs If Not charview Is Nothing Then If printobj Is Nothing Then printobj New ChartPrint charview Else printobj PrintChartView charview End If printobj PrintPreviewItem sender e End If End Sub PrintPreview method Public Sub PrintPage ByVal charview As ChartView _ ByVal sender As Object ByVal e As System EventArgs If Not charview Is Nothing Then If printobj Is Nothing Then printobj New ChartPrint charview printob DoFrintDialoeg This routine prints a chart by invoking the chart objects DocPrintPage Else printobj PrintChartView charview End If printobj DocPrintPage sender e End If End Sub PrintPage End Class The example TimeVariableControlCharts demonstrates how to one chart among many displayed in a Tab c
465. view As ChartView _ ByVal sender As Object ByVal e As System EventArgs Dim filename As String Me Name Dim imagefilechooser As New SaveFileDialog imagefilechooser Filter Image Files BMP JPG GIF TIFF PNG BMP JPG GIF TIFF PNG All files imagefilechooser FileName filename If imagefilechooser ShowDialog DialogResult OK Then filename imagefilechooser FileName Dim fileinformation As New FileInfo filename Dim fileext As String fileinformation Extension fileext fileext ToUpper Dim fileimageformat As ImageFormat If fileext BMP Then fileimageformat ImageFormat Bmp Else If fileext JPG Or fileext JPEG Then fileimageformat ImageFormat Jpeg Else If fileext GIF Then fileimageformat ImageFormat Gif Else If fileext TIF Or fileext TIFF Then fileimageformat ImageFormat Tiff Else If fileext PNG Then fileimageformat ImageFormat Png Else fileimageformat ImageFormat Bmp End If End If End If File and Printer Rendering 351 End If End If Dim savegraph As New BufferedImage chartview fileimageformat savegraph Render savegraph SaveImage filename End If End Sub SaveAsFile 11 Regionalization for non USA English Markets SPCChartStrings Starting with Revision 3 0 we provide a much improved structure for adjusting the software for different cultures and languages All of the pre defined strings in the software ha
466. ving sigma statistics Tabular CuSum Chart 24 Standard SPC Control Charts ipi xi EWMA Chart M Chart CUSum Chart Title Variable Control Chart EWMA Part No 283501 Chart No 17 Date 3 4 2008 3 36 58 PM 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 The first part is the header section identifying the title of the chart the monitored process the machine operator part number and other important information specific to the chart Standard SPC Control Charts 25 The second part is the measurement data recording and calculation section organized _ as a ta
467. w 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 InitlslizeCchart End Sub End Region SPC Attribute Control Charts 279 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 adjacent subgroups Dim timeincrementminutes As Integer 30 Sub InitializeChart Initialize the SPCBatchAttributeControlChart 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 InitSPCBatchAttributeControlChart 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 numcateg
468. wer limit Primary Chart SPC UPPER CONTROL LIMIT 2 2 sigma lower limit Primary Chart SPC LOWER CONTROL LIMIT 1 1 sigma lower limit Primary Chart C double sigma2 2 0 double sigmal 1 0 this PrimaryChart GetControlLimitData SPCChartObj 74 this PrimaryChart GetControlLimitData SPCChartObj 76 this PrimaryChart GetControlLimitData SPCChartObj Create multiple limits For PrimaryChart SPCControlLimitRecord 1cl2 new SPCC SPC UPPER CONTROL LIMIT 1 Secondary Chart SPC LOWER CONTROL LIMIT 2 Secondary Chart SPC UPPER CONTROL LIMIT 2 Secondary Chart SPC LOWER CONTROL LIMIT 1 Secondary Chart SPC UPPER CONTROL LIMIT 1 SPC Variable Control Charts 193 ontrolLimitRecord this ChartData SPCControlLimitRecord SPC LOWERTHAN LIMIT 74 33 LCL2 LCL2 SPCControlLimitRecord ucl2 new SPCC ontrolLimitRecord this ChartData SPCControlLimitRecord SPC GREATERTHAN LIMIT 75 66 UCL2 UCL2 this PrimaryChart AddAdditionalControl ILimit lcl2 SPCChartObjects SPC LOWER CONTROL LIMIT 2 sigma2 this PrimaryChart AddAdditionalControl LLimit ucl2 SPCChartObjects SPC UPPER CONTROL LIMIT 2 sigma2 SPCControlLimitRecord 1cl3 new SPCC SPCControlLimitRecord SPC_LOWERTHAN L SPCControlLimitRecord ucl3 new SPCC SPCControlLimitRecord SPC_GREATERTHAN _ this PrimaryChart AddAdditionalControl SPCChartObjects SPC LOWER CONTROL LIM ontrolLimitRecord this ChartData MIT
469. will modify UserControll and turn it into an object derived from our ChartView object Creating SPC Charts in Windows Applications 395 New Project Project types Templates Windows E Smart Device cg Windows Application E Class Library Starter Kits EA Console Application DocProject cx Device Application e ASP NET Web Application Remote Tools Framework ASP NET Web Service Application ye DocProject Web ci DocSite Web Application Other Languages Visual Basic MyTemplates t Visual J EEG Visual C ga Search Online Templates E Other Project Types Platform Builder For CE 6 0 Visual Ct Visual Studio installed templates 4 project For creating controls to use in Windows applications Name WindowsControlLibrary1 Location C Quinn Curtis DotNet QCsPCChart visual Basic examples v Solution Create new Solution v Create directory For solution Solution Name WindowsControlLibrary1 Right click on Reference in the Solution Explorer window and select Add Reference Browse to the Quinn Curtis DotNet lib subdirectory and select the QCChart2DNet DLL and QCSPCChartNet DLL files View the UserControll vb code It should look like this Public Class UserControll End Class Change the base class of UserControll to com quinncurtis spcchartnet SPCTimeVariableControlChart You do this by changing the base class of the associated UserControl1 Designer vb file Rig
470. 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 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 Number of defects for defect category 2 samples 2 Number of defects for defect category 3 samples 3 Number of defects for defect category 4 samples 4 N
471. xes 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 class It calculates scaling values based on the numeric values in ElapsedTimeSimpleDataset and ElapsedTimeGroupDataset objects The elapsed time classes use it for auto scale calculations Chart Object Classes Chart objects are graph objects that can be rendered in the current graph window This is in comparison to other classes that are purely calculation classes such as the coordinate conversion classes All chart objects have certain information in common This includes instances of ChartAttribute and PhysicalCoordinates classes The ChartAttribute class contains basic color line style and gradient information for the object while 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
472. y what items are logged to the datalog file using the DataLogFlag property OR the datalog flags constants together to form the final DataLogFlags value DATALOG FILE ALL Datalog flag specifying that all available items should be logged to the file DATALOG FILE BATCH NUMBER Datalog flag specifying that the batch number should be logged to the file DATALOG FILE CALCULATED VALUES Datalog flag specifying that the calculated values should be logged to the file DATALOG FILE 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 x i zx SPCControlChartData DATALOG FILE CALCULATED VALUES SPCControlChartData DATALOG FILE COLUMN HEADS 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
473. ys be equal to or greater than the number of defective parts When using p and np charts that display defect category counts as part of the table where N is the numcategories parameter in the InitSPCTimeAttributeControlChart or InitSPCBatchAttributeControlChart initialization call the first N elements of the samples array holds the defect count for each category The N 1 element of the samples array holds the total defective parts count For example if you initialized the chart with a numcategories parameter to five signifying that you had five defect categories you would use a samples array sized to six as in the code below C DoubleArray samples new DoubleArray 6 ChartCalendar initialized with current time by default 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
Download Pdf Manuals
Related Search
Related Contents
HI 98311 - HI 98312 - Hanna Instruments Canada Muvit MUSLI0412 mobile phone case 説明書 KDC-BT45U - Billiger.de Scarlett SC-285 Chapter 3: Object-Oriented Programming Taylor 1524 User's Manual Modelo No.: PDU1215 説 明 書 Copyright © All rights reserved.
Failed to retrieve file