Le générateur Carte de contrôle ne capture pas les détails dans le script?J'essaie donc d'automatiser un peu mon analyse de tous mes diagrammes de processus pour les changements de limites.
Donc, quelques problèmes que je rencontre avec le générateur de cartes de contrôle:
1. Lors de la scission des données du graphique par type de processus, mes paramètres de graphique (Plage de déplacement, Dev standard) ne sont pas transférés aux dizaines de graphiques nouvellement créés.
2 Lors de la capture du script à cet effet, il ne spécifie pas les types de graphiques, tels que la plage mobile.
3 Une fois l’opération terminée, j’aimerais exporter cette information sous forme de tableau des limites des contrôles tracés et de l’axe de ligne, par ProcessChart.
Je configure donc ControlChartBuilder comme ceci:
- axe des ordonnées = mes données de valeur
- axe des x = date / exécution unique / horodatage
J'ai ensuite configuré le constructeur en tant que:
- Shewhart Variables
- Statistique = moyenne
- Limites [1] = plage mobile
- Points [2] = écart type
- Limites [2] = écart type
Et puis je sélectionne mon type de processus et cliquez sur "BY" pour scinder les données en groupes. Les dizaines de les nouveaux graphiques n'ont pas les mêmes paramètres et quand je regarde le script, il ne contient pas les paramètres de graphique.
Control Chart Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Show Capability( 0 ),
Variables(
Subgroup( :Timestamp ),
Subgroup( :Lot_Slot, Position( 1 ) ),
Y( :Value )
),
Chart( Position( 1 ), Limits( Sigma, Zones( 1 ) ) ),
Chart(
Position( 2 ),
Points( Statistic( "Standard Deviation" ) ),
Limits( Sigma, Show Center Line( 0 ) )
),
Where( :ProcessStep == "UniqueProcess1" )
);
SO voici donc le script qui en découle, mais il ne capture pas "Moving Range" comme sélection de Limits [1] sur le graphique principal.
Comment pourrais-je résoudre ce problème?
Et pour répondre au premier problème, comment pourrais-je modifier ce script pour qu'il passe par tous mes types "UniqueProcess" dans la dernière ligne (Where ....), afin de créer un graphique distinct pour chaque type de processus? Et puis aussi sortir un tableau avec les valeurs limites pour chaque diagramme de processus?
Re: Le générateur Carte de contrôle ne capture pas les détails dans le script?Certaines des exigences que vous avez mentionnées peuvent être satisfaites avec certains JSL, et de nombreuses personnes ont déjà fait la même chose. Mais les détails dépendront du flux de travail souhaité, du lieu où les limites sont stockées, etc. Si vous n'êtes pas déjà, vous devriez être au courant de la merveilleuse ajouter à de txnelson pour gérer les limites Spec. Vous pouvez facilement ajouter les limites à un histogramme en ajoutant des lignes de référence à l'axe.
Re: Le générateur Carte de contrôle ne capture pas les détails dans le script?Impressionnant. Cela fonctionne presque pour ce dont j'ai besoin. J'ai édité un peu et ça marche très bien jusqu'à présent, il me manque juste quelques petites choses en plus. Dans l'exemple de script, il semble que les limites SPEC soient incorporées dans les colonnes de valeurs. Il semble que cela permette au script de générer également des histogrammes. Je suppose que je dois lire comment intégrer mes limites. Je suis en train d'extraire plusieurs données de produit avec des limites différentes, donc cela pourrait ne pas bien fonctionner.
Peut-être faut-il simplement qu'il fasse référence à d'autres colonnes (j'ai USL, Target, LSL déjà tiré) plutôt que d'incorporer. De même, existe-t-il un moyen d'afficher les limites de contrôle proposées / calculées sur la sortie de cet histogramme?
J'ai donc des colonnes:
axe des Y: valeurs / données
axe des abscisses: 2 couches. Lot_slot unique & TimeStamp
diviser par: type de produit
J'ai changé les graphiques en un graphique Xbar / MR et un graphique Standard Dev. -> ceci correspond au constructeur de carte de contrôle d'origine
NamesDefaultToHere(1);
// Get some semiconductor data
dt = Open("C:\Limit Changes\t-90 data.jmp");
// Make some charts for each lot using the 'By' role
cb = dt << Control Chart Builder(
Show Control Panel( 0 ),
Variables(
Subgroup( :TimeStamp ),
Subgroup( :Lot_Slot, Position( 1 ) ),
Y( :Value )
),
Chart( Position( 1 ), Limits( Sigma( Moving Range ), Spec Limits( 0 ) ) ),
Chart( Position( 2 ), Points( Statistic( "Standard Deviation" ) ), Limits( Sigma, Spec Limits( 0 ), Show Center Line( 0 ) ) ),
By( :Product )
);
// Get the report for the first level of the 'By' variable
ccRep1 = Report(cb[1]);
// Get the limits table for ALL levels of the 'By' variable
dtLimits = ccRep1[TableBox(1)] << makeCombinedDataTable;
dtLimits << setName("Limits Table for All Lots");Je suppose que je dois aussi ajouter:
- fenêtre contextuelle pour sélectionner le fichier de données
- popup pour sélectionner les colonnes de l'axe des y
- popup pour sélectionner les multiples niveaux de colonnes de regroupement d'axes x
- popup pour sélectionner la colonne "BY" (sélections multiples? By1, By2, ...)
- extraire / afficher les limites actuelles SPEC, cible dans le tableau récapitulatif des limites
Re: Le générateur Carte de contrôle ne capture pas les détails dans le script?Je n'ai pas compris toutes les nuances de ce que vous demandez, mais ce code pourrait vous aider:
NamesDefaultToHere(1);
// Get some semiconductor data
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
// Make some charts for each lot using the 'By' role
cb = dt << Control Chart Builder(
Show Control Panel( 0 ),
Variables( Y( :NPN1 ) ),
Chart( Position( 1 ), Limits( Sigma( Moving Range ), Spec Limits( 0 ) ) ),
Chart( Position( 2 ), Limits( Sigma( Moving Range ), Spec Limits( 0 ) ) ),
By( :lot_id )
);
// Get the report for the first level of the 'By' variable
ccRep1 = Report(cb[1]);
// Get the limits table for ALL levels of the 'By' variable
dtLimits = ccRep1[TableBox(1)] << makeCombinedDataTable;
dtLimits << setName("Limits Table for All Lots");Re: Le générateur Carte de contrôle ne capture pas les détails dans le script?
c'est ce que je regarde
