Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede PhaseIn meinem Blogbeitrag " Vier Möglichkeiten zur Verwendung fester / historischer (historischer) Kontrollgrenzen im Control Chart Builder ", Habe ich vier verschiedene Methoden zur Eingabe historischer Kontrollgrenzen diskutiert. In diesem Blogbeitrag werde ich speziell das Festlegen historischer Grenzwerte für eine Kontrollkarte besprechen, wenn eine Phasenvariable involviert ist.
Die Spalteneigenschaft, Steuerelementgrenzwerte und ausgeschlossene Zeilenstatusmethoden funktionieren in diesem Szenario nicht, da JMP nur zulässt, dass ein Satz von Steuergrenzwerten für das gesamte Diagramm mit diesen Methoden definiert wird. Die einzige Methode, die für ein Phasensteuerungsdiagramm funktioniert, in der Sie für jede Phase unterschiedliche Grenzwerte wünschen, ist die Get-Limits-Methode. Dieser Blogbeitrag geht detailliert auf die Get-Limits-Methode in Bezug auf eine Phasensteuerungskarte ein.
Beispiel
In meinem Blogbeitrag " Kontrollgrenzen mit dem Control Chart Builder erzeugen "Ich habe einen Druckprozess eingeführt. Für die Zwecke dieses Blogbeitrags möchte die Druckerei die Variabilität der Kraft verringern, die erforderlich ist, um die Bindung zwischen Papier und Buchrücken zu lösen. Sie möchten dies für jede der drei verschiedenen Fabriken tun. Ein neuer Prozess wird basierend auf einem geplanten Experiment entschieden. Daten werden aus dem neuen Prozess gesammelt. Ziel ist es, die neuen Daten auf einer Kontrollkarte mit historischen Grenzwerten aus dem alten Prozess darzustellen. Auf diese Weise kann die Druckerei den neuen Prozess mit den alten Prozessgrenzen vergleichen.
Jede Fabrik verfügt über verschiedene Maschinen, verschiedene Bediener und befindet sich in verschiedenen Ländern. Daher verfügt jede Fabrik über einzigartige historische Grenzwerte und Informationen. Historische Kontrollgrenzen wurden mit alten Daten (vor der Prozessänderung) berechnet. Diese Phasenregelkarte ist unten zu sehen.
Figure 1: Phase control chart with historical dataFigure 1: Phase control chart with historical dataFigure 1: Phase control chart with historical dataAbbildung 1: Phasenregelkarte mit historischen Daten
Grenzwerttabelle
Um die Methode get limits verwenden zu können, müssen wir eine Grenzwerttabelle haben. In dieser Grenzwerttabelle sind drei Spalten erforderlich:
- Eine _LimitsKey-Spalte, die die Statistik definiert.
- Eine Spalte mit demselben Namen wie die Prozessvariable, die den Wert der in der Spalte _LimitsKey aufgelisteten Statistik enthält.
- Eine Spalte mit demselben Namen wie die Phasenvariable, die identifizierende Informationen darüber enthält, für welche Phase die Statistik gilt.
JMP 13.1 und höher erstellt diese Tabelle für Sie, wenn Sie auf das rote Dreieck neben Control Chart Builder klicken und "Limits speichern" in der neuen Tabelle auswählen. Bei Softwareversionen vor JMP 13.1 können Sie diese Tabelle einfach selbst aus der Tabelle Limit Summaries eines Control Chart Builder-Berichts erstellen. Um diese Tabelle zu erstellen, klicken Sie mit der rechten Maustaste in die Tabelle der Force Limit Summaries (siehe Abbildung 1) und wählen Sie In Datentabelle erstellen.
Figure 2: Force Limits Summary tableFigure 2: Force Limits Summary tableFigure 2: Force Limits Summary tableAbbildung 2: Tabelle der Kraftgrenzwerte
Sie müssen einige Datentabellen bearbeiten, um diese Tabelle im richtigen Format zu erhalten. Wählen Sie Tabellen-> Stapel. Wählen Sie LCL, Avg und UCL aus und klicken Sie auf Stack Columns. Geben Sie im Feld neben dem Namen der Ausgabetabelle Force Limits ein. Ändern Sie den Stacked Data Column-Namen in Force.
Figure 3: Stack dialogFigure 3: Stack dialogFigure 3: Stack dialogAbbildung 3: Stapeldialog
OK klicken. Wir müssen die Spalte _LimitsKey erstellen. JMP sucht _LCL, _Avg und _UCL anstelle von LCL, Avg und UCL. Für das Dispersionsdiagramm sucht JMP nach _LCLR, _AvgR und _UCLR. Wir können dies mit einer Formel tun. Wählen Sie in der neu erstellten Phasengrenzwerttabelle Spalten-> Neue Spalte aus. Benennen Sie die Spalte _LimitsKey. Klicken Sie auf Spalteneigenschaften und wählen Sie Formel. Geben Sie die folgende Formel ein.
Figure 4: Formula for the _LimitsKey columnFigure 4: Formula for the _LimitsKey columnFigure 4: Formula for the _LimitsKey columnAbbildung 4: Formel für die Spalte _LimitsKey
OK klicken.
Figure 5: New Column dialogFigure 5: New Column dialogFigure 5: New Column dialogAbbildung 5: Dialog Neue Spalte
OK klicken. Ihre neue Grenzwerttabelle sollte wie folgt aussehen.
Figure 6: Force limits data tableFigure 6: Force limits data tableFigure 6: Force limits data tableAbbildung 6: Datentabelle für Kraftgrenzen
Phasenregelkarte mit historischen Grenzwerten
Es wurde eine Änderung in dem Prozess vorgenommen, von der die Druckerei hofft, dass sie die Variabilität der Kraft verringert, die erforderlich ist, um die Verbindung zwischen den Seiten und dem Buchrücken zu lösen. Wir haben eine neue Datentabelle, die 70 Datenzeilen enthält, die nach dieser Änderung aufgezeichnet wurden. Wir möchten die historischen Grenzwerte der neuen Grafik verwenden, um zu sehen, wie die neuen Daten (nach der Prozessänderung) mit unseren historischen Informationen (vor der Prozessänderung) verglichen werden.
Figure 7: Data from new processFigure 7: Data from new processFigure 7: Data from new processAbbildung 7: Daten aus neuem Prozess
Um die Kontrollkarte zu erstellen, gehen Sie zu Analyse-> Qualitäts- und Prozess-> Kontrolldiagramm-Generator. Ziehen Sie Site in die Phasenrolle. Ziehen Sie Force auf die Y-Rolle. Lauf auf die X-Achse ziehen.
Figure 8: Force control chart with new dataFigure 8: Force control chart with new dataFigure 8: Force control chart with new dataAbbildung 8: Kontrollkarte mit neuen Daten erzwingen
Um Ihre historischen Grenzwerte auf dieses Diagramm anzuwenden, klicken Sie auf das rote Dreieck neben "Kontrolldiagramm-Generator" und wählen Sie "Grenzwerte abrufen". Wählen Sie die in Abbildung 6 erstellte Force Limits.jmp-Tabelle aus.
Figure 9: Force control chart with historical limitsFigure 9: Force control chart with historical limitsFigure 9: Force control chart with historical limitsAbbildung 9: Kraftsteuerungskarte mit historischen Grenzwerten
Schlussfolgerungen
Keiner der Punkte liegt außerhalb der Kontrollgrenzen des Orts- oder Ausbreitungsdiagramms. Ziel war es, die Variabilität zu reduzieren. Betrachtet man das Moving Range Diagramm, so sehen wir, dass die meisten Punkte unter die durchschnittliche Linie fallen. Insbesondere für die Standorte 1 und 2 wurde deutlich, dass die Variabilität der Kraft, die erforderlich ist, um die Bindung zwischen den Seiten und dem Buchrücken zu lösen, verringert wurde. Site 3 ist nicht so offensichtlich wie Site 1 und 2. Es scheint, dass die Variabilität etwas reduziert worden sein könnte. Es ist jedoch unklar, ob dies eine wesentliche Änderung ist oder nicht. Durch die Verbesserungen des Druckprozesses konnte die Variabilität reduziert werden.
Verweise
JMP-Software: Notizen für statistische Prozesskontrolle
Phase control chart with historical limitsPhase control chart with historical limitsPhase control chart with historical limitsPhasenregelkarte mit historischen Grenzwerten
Hier erfahren Sie, wie Sie historische Grenzwerte für eine Regelkarte festlegen, wenn eine Phasenvariable beteiligt ist.
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede PhaseNein, ich kenne keinen eleganteren Weg. Leider verwendet der Befehl Limits abrufen nur eine zuvor gespeicherte Datentabelle.
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede PhaseOK. Vielen Dank. Ich werde es auf diese Weise beim Scripting tun. Das bedeutet, ich werde alle "by" -Kategorien in einer Tabelle T1 durchlaufen und bei jeder Iterations-Save-Limit-Tabelle L1 von der Datei T1 zu einem temporären Verzeichnis. Dann werde ich den Steuerkartenbefehl ausführen und die Datei L1 löschen. Gibt es eine elegantere Methode, um all dies auszuführen, ohne die Begrenzungstabelle bei jeder Wiederholung zu speichern?Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede PhaseJa, das kannst du tun. Sie benötigen für jede Ebene der by-Variablen eine eigene Tabelle. Jede der Tabellen würde genauso aussehen wie im Blogbeitrag.
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede PhaseHallo Tonya, es war sehr hilfreich, danke für deinen Blog. Ist es möglich, mehrere Regelkarten mit "By" einer Kategorie und "Get Limits" aus einer Tabelle mit unterschiedlichen Grenzwerten für die Phasen der einzelnen Kategorien zu erstellen? Wenn ja, wie muss die Limits-Tabelle aussehen?Betreff: Erstellen eines Phasenregelungsdiagramms mit historischen Grenzwerten für jede PhaseHallo zusammen, ich freue mich, Ihnen mitteilen zu können, dass mit JMP 15.0 und höher mit dem Befehl Grenzwerte abrufen jetzt entweder eine zuvor gespeicherte Tabelle oder eine aktuell geöffnete Datentabelle akzeptiert wird.
Betreff: Erstellen eines Phasenregelungsdiagramms mit historischen Grenzwerten für jede PhaseDies ist eine GROSSARTIGE Funktion, mit der ich zu 90% dort bin, wo ich mit etwas sein möchte. Ich habe ein System, in dem ich ein paar hundert Regelkarten überwache. Die Grenzwerte ändern sich mit der Zeit, wenn sich der Benchmarking-Standard ändert. Dadurch kann ich die Benchmarking-Standards als Phasen festlegen.
Hier ist die Herausforderung. Ich hatte die Hoffnung, mit einem lokalen Datenfilter zwischen den wenigen hundert Regelkarten zu wechseln. Dies funktioniert gut, wenn ich mit Graph Builder arbeite, aber ich sehe keine Möglichkeit, meine Grenzen und die Daten zu filtern.
Hat jemand eine einfache Möglichkeit gefunden, dies zu erreichen?
Betreff: Erstellen eines Phasenregelungsdiagramms mit historischen Grenzwerten für jede Phase @Evan_Morris Ich bin nicht sicher, ob ich Ihre Daten verstanden habe oder was Sie erreichen wollen. Vielleicht ist die Process Screening-Plattform besser für Ihre Anforderungen geeignet, wenn Sie Hunderte von Kontrolldiagrammen haben. Ich schlage vor, einen Blick auf den folgenden Blog-Beitrag zu werfen: Prozessspezifikationsgrenzen, die sich basierend auf einer Gruppierungsspalte unterscheiden . Wenn Sie sich den vierten Screenshot in diesem Blog-Beitrag ansehen, werden Sie sehen, dass Sie die Mittellinie und das Sigma für die Kontrollgrenzen eingeben können. Die Spezifikationsgrenzen sind für diese Plattform nicht erforderlich.
Betreff: Erstellen eines Phasenregelungsdiagramms mit historischen Grenzwerten für jede PhaseTonya
Ich überwache einige hundert Herstellungsprozesse, bei denen jeder seinen eigenen Mittelwert hat, der sich von Zeit zu Zeit ändert. Ich verwende das Phasendiagramm, um diese mittlere Änderung zu verwalten. Ich hatte Glück, die lokalen Datenfilter in der normalen Diagrammstruktur zu verwenden, um eine schnelle Erkundung der über 100 Datensätze zu ermöglichen, aber wenn ich das tue, kann ich die Kontrollgrenzen nicht einhalten.
Trotzdem ist Ihr Standpunkt zum Prozess-Screening AUSGEZEICHNET. Ich denke, das ist die Route, nach der ich suchen sollte.
Vielen Dank
Evan
Betreff: Creating a phase control chart with historical limits for each phaseHello,
the last question I had in the discussion group was to build a "Dashboard filter dynamic X-axis but fixed limits of control charts". This time I tried to enhance my dashboard by also implementing a phase to my control charts as I got three machines and four parameters I like to see in my dashboard. My plan was to follow your article here but I have some problems. I will explain my idea first. I have an excel table with four parameters in colum formate and one column defining on which machine the production was running. I import the table into jmp, run my 4 scripts to make a control chart for each parameter defining the machine column as phase. Then I go via red triangle and save limits into 4 tables (1). That way I have the limits saved for the situation untill new data arrives. Once my original excel table has new data I update my jmp table from the excel. I run my scripts for the 4 parameters and via red triangle I get my limits from the tables I saved earlier into these 4 control charts. Then I run my script for the dashboard containing all four control charts.
So now I can see if anything changed in terms of parameters or machines. What's missing at the moment for me is that I do not know how to rename the tables in (1) to a name like "Limits Parameter 1" , which would make it easier for me to put it all into a script. The tables I get from (1) do not include a script how they were built.
I could use the way you described getting the limits table and transforming it, but I did not succeed and thought there must be a new command maybe since your article is from 2017 and using JMP 13 and commands behind the red triangle menu must be somewhere. So with that command I could create my scrip I guess.
Best regards,
Jan
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede Phase@jan_kreuzmann Ich bin verwirrt, was Sie um Hilfe bitten. Es hört sich so an, als würden Sie immer noch den Control Chart Builder anstelle von Process Screening verwenden. Es klingt auch so, als ob Sie wissen möchten, wie Sie Ihre Limits-Tabelle umbenennen. Dies können Sie mit dem Befehl set name tun. Wenn ich das falsch verstanden habe, bitte um weitere Informationen. Etwas Beispielcode und vielleicht Bilder von dem, was Sie wollen, wären hilfreich.
dt=Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj=dt<<CONTROL chart="" builder=""></CONTROL>Betreff: Creating a phase control chart with historical limits for each phase@tonya_mauldin the script you sent worked well. Thanks.
As I am not familiar with Process Screening I was trying to implement phases into my control charts (the ones I used to setup in the post "Dashboard filter dynamic X-axis but fixed limits of control charts"), which I then use to setup the dashboard.
I got as fare as this:
// get the open table as current one
dt = current data table();
// make control charts for all parameters with machine as phase and save the limits into data table
obj=dt<Size( 528, 464 ),
Show Two Shewhart Charts( 0 ),
Test Excluded Subgroups( 0 ),
Show Control Panel( 0 ),
Include Missing Categories( 0 ),
Show Excluded Region( 0 ),
Show Limit Summaries( 0 ),
Variables( Subgroup( :Lot Nr. ), Y( :Parameter 1 ), Phase( :Machine ) ),
Chart(
Points( Statistic( "Individual" ) ),
Limits( Sigma( "Moving Range" ), Zones( 1 ), Shade Zones( 1 ) )
),
SendToReport(
Dispatch(
{},
"Control Chart Builder",
FrameBox,
{DispatchSeg(
TextSeg( 1 ),
{Line Color( "None" ), Fill Color( "None" )}
), DispatchSeg(
TextSeg( 2 ),
{Line Color( "None" ), Fill Color( "None" )}
), DispatchSeg(
TextSeg( 3 ),
{Line Color( "None" ), Fill Color( "None" )}
)}
)
)
);
dtLimits=obj<dtLimits<<Set Name("Limits Parameter 1");
I would do this for all my parameters.
Then I was thinking:
With the control charts I setup a Dashboard,
then update my jmp table.
dt1 = Current Data Table();
n_rows = N Rows();
dt2 = Open(
"//Dashoardtest.xlsx",
Worksheets( "Tabelle1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 1 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 0 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
dt2 << DeleteRows( Index( 1, n_rows ) );
dt1 << Concatenate( dt2, Append to first table );
Close( dt2 );
Names Default To Here( 1 );
dt = Current Data Table();
this would automatically update my dashbaord which in turn will calculated new limits.
In this dashboard I now have the same problem I had with the earlier one, as limits will be calculated according to the Lot number I choose. Last time you help with the command to save the limits into the column properties, but this only works without a phase.

I can still get the old limits from the tables into the control chart of my open dashboard manually using the red triangle menu, but I have not see the possibility to do it with a script.
I other words how can I get the limits from the first control charts into my now updated dashboard?
And how can I get the dashboard to keep the limits no matter what lot number I pick? like I had it running in the other dashboard:

Here you can see I only picked one lot and still have all limits shown.
Maybe you have an idea what I could do.
Best regards
Jan
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede Phase@jan_kreuzmann Sie müssen den Befehl Get Limits verwenden, wie im Blogbeitrag gezeigt. Ein Beispiel für das Skripting finden Sie im Object Scripting Index.
dt = Open(<BR />"$SAMPLE_DATA/Quality Control/Coating.jmp"<BR />);<BR />obj = dt <<<BR />Control Chart Builder(<BR />Variables( Subgroup( :Sample ), Y( :Weight ) ),<BR />Chart(<BR />Position( 1 ),<BR />Points( Statistic( "Average" ) ),<BR />Limits( Sigma( "Range" ) )<BR />),<BR />Chart(<BR />Position( 2 ),<BR />Points( Statistic( "Range" ) ),<BR />Limits( Sigma( "Range" ) )<BR />),<BR />Get Limits(<BR />"$SAMPLE_DATA/Quality Control/CoatingLimits.jmp"<BR />)<BR />);
Da Sie Ihre Tabelle dtLimits genannt haben, können Sie
Get Limits(dtLimits)
Betreff: Erstellen einer Phasenregelkarte mit historischen Grenzwerten für jede Phase@jan_kreuzmann Ich bin mir nicht sicher, ob ich das richtig verstanden habe, aber vielleicht hilft dieser Weg, die Grenzwerttabelle einschließlich der Phasen zu erhalten:
obj = Open( "$SAMPLE_DATA/Cities.jmp" ) << Control Chart Builder(
Test Excluded Subgroups( 1 ),
Variables( Y( :OZONE ), Phase( :Region ) )
);
obj << Save Limits ( in New Table);
Ist das (eines der Dinge) das, was Sie brauchen?