T O P I C R E V I E W |
YanNes |
Posted - 23 May 2012 : 04:26:53 Hello,
I'm trying to make a Chart and am encountering several difficulties. We don't use sigma levels for controls, we only use user defined levels.
I want to make a Chart with 4 limits (2 on each side of center value). The 2 limits farthest from the center value should trigger an alarm if 1 point of 1 is beyond them. And the 2 limits close to the center value should trigger an alarm if 2 points of 3 are beyond them.
I've tried writing this code :
this.ChartData.SetControlLimitValues(new double[] { 20, 12, 28, 5, 0, 10 });
string[] controllimitstrings = { "VC", "LSI", "LSS", "EC", "LCL", "UCL" }; this.ChartData.SetControlLimitStrings(controllimitstrings);
ArrayList controlLimitData = this.PrimaryChart.ControlLimitData; SPCControlPlotObjectData plotObject = (SPCControlPlotObjectData)controlLimitData[1]; plotObject.PlotLineAttrib.PrimaryColor = Color.Red; plotObject.ControlLimitRecord.AlarmMessage = "Valeur hors limite de surveillance infrieure"; plotObject = (SPCControlPlotObjectData)controlLimitData[2]; plotObject.PlotLineAttrib.PrimaryColor = Color.Red; plotObject.ControlLimitRecord.AlarmMessage = "Valeur hors limite de surveillance suprieure";
this.PrimaryChart.AddControlRule(1, 2, 3, 0, true); plotObject = (SPCControlPlotObjectData)controlLimitData[controlLimitData.Count - 1]; plotObject.LimitValue = 15; plotObject.PlotLineAttrib.PrimaryColor = Color.Orange; plotObject.ControlLimitRecord.ControlLimitValue = 15; plotObject.ControlLimitRecord.AlarmMessage = "2 points sur 3 en dehors de LCI"; plotObject.ControlLimitRecord.ControlLimitText = "LCI"; plotObject.Enable = true;
this.PrimaryChart.AddControlRule(2, 2, 3, 0, true); plotObject = (SPCControlPlotObjectData)controlLimitData[controlLimitData.Count - 1]; plotObject.LimitValue = 25; plotObject.PlotLineAttrib.PrimaryColor = Color.Orange; plotObject.ControlLimitRecord.ControlLimitValue = 25; plotObject.ControlLimitRecord.AlarmMessage = "2 points sur 3 en dehors de LCS"; plotObject.ControlLimitRecord.ControlLimitText = "LCS"; plotObject.Enable = true;
this.RebuildChartUsingCurrentData();
Here are the problems I've encountered from the most critical to the least :
1. Both LCS and LCI limits (the ones close to the center line) trigger when 1 out of 1 point is beyond them, even though I created them using "this.PrimaryChart.AddControlRule(2, 2, 3, 0, true);"
2. The LCS line is not ploted but the LCI is. I used the same code for both and can't find the reason for this issue.
3. Changing the PlotLineAttrib primary color has no effect whatsoever.
Here is an image of what I currently have.
|
5 L A T E S T R E P L I E S (Newest First) |
quinncurtis |
Posted - 25 May 2012 : 08:10:33 We cannot reproduce the range error you describe. Can you reference a specific chart in one of our example program where you are able to induce a range error by clicking on one of the histogram charts? |
YanNes |
Posted - 25 May 2012 : 06:59:07 It works fine now thank you for your fast reaction.
I don't know if you are aware of that or if it's just because of the trial version, but if you display the Histograms and you if you click randomly on it, it will trigger an index out of range exception.
|
quinncurtis |
Posted - 24 May 2012 : 08:48:28 You are correct about the duplicate sigma level being the cause of the LCS not being plotted. That was a very astute observation.
We have lifted the restriction on N of M testing of explicit (non-sigma) numeric limits . So go ahead and download the trail version again and try it in your program.
Sorry, but the software has no way of saving or restoring the chart data from a file. You would have to handle that externally as you describe. We would like to have a version in the future which could do that from an SQL database, but it is nothing we are going to have in the near term. |
YanNes |
Posted - 24 May 2012 : 03:17:56 I'm using the trial version of your software to see if it corresponds to our needs.
Regarding issue number 2, I assume it occurred because I used "this.PrimaryChart.AddControlRule(1, 2, 3, 0, true);" 2 times in a row on the same sigma level and it automatically changed the LimitType to not visible.
Is there a way to save and reload the ChartData (other than csv), or should I save the data separately and just rebuild the Chart every time ? |
quinncurtis |
Posted - 23 May 2012 : 12:47:01 1. In theory, most of what you show should work. But there is a test in our code however, that does not permit custom, numeric, control limits of type 1 and 2 (> or < tests) of working with N of M tests. Only simple limits. We will have to investigate this and see if we can lift this restriction.
2. We could not reproduce problem 2, the LCS control limit shows up fine. Perhaps it is related to item 3.
3. Set the color of the control limit line using this code. plotObject.LinePlot.ChartObjAttributes.PrimaryColor = Color.Orange;
Are you using a trial, or a commercial version of the software?
|
|
|