Cara comunità,
Eseguo analisi delle tendenze utilizzando carte di controllo per diversi prodotti della stessa famiglia, che condividono controlli di processo comuni (pH, tempo di produzione...), ma che hanno limiti di specifica diversi.
Vorrei avere solo una colonna con i dati comuni di controllo del processo (col 3 nell'esempio) e tramite uno script applicare i diversi limiti delle specifiche per prodotto (attualmente sto utilizzando i limiti di controllo automatico a 3 sigma, ma sarebbe interessante poterlo fare per definirli anche)
Il mio modo attuale di farlo è avere colonne diverse e salvare i limiti delle specifiche nelle proprietà della colonna e quindi dover collegare il prodotto 1 con la colonna temporale 1, il prodotto 2 con la colonna temporale 2 ecc. Ma questo crea un'enorme tabella di dati.
Immagino che debba utilizzare una tabella dei limiti delle specifiche, ma non è nemmeno possibile scriptare il processo attraverso di essa.

Il DT è allegato
Grazie
@Ben_Ingham @Danny _sierra
Ciao Andeka,
Grazie per la pubblicazione. Prefazione dicendo che non sono uno scripter ma ho trovato un modo per risolverlo utilizzando JMP di cui puoi creare script. Ho preso molti di questi dettagli dall'esempio descritto qui: https://community.jmp.com/t5/Discussions/Setting-Spec-Limits-using-Column-Data/td-p/392499
In questa soluzione è possibile memorizzare ciascun controllo di prodotto e processo e i limiti delle specifiche in una tabella dati separata, in questo caso ho creato una tabella dati dei limiti delle specifiche con UCL/LCL generati dai riepiloghi dei limiti generati dal controllo Costruttore di grafici. Ho aggiunto valori USL casuali per dimostrarne l'utilizzo. Se hai più processi che desideri analizzare, devi solo annotarlo nella colonna "Processo" (importante per dopo).

Utilizzando questa tabella di dati, è possibile utilizzare la piattaforma Process Screening (Analizza>Qualità e processo>Screening del processo in JMP 17) per creare un'unica "pagina" per esaminare le carte di controllo. Per iniziare, inserisci i dati di controllo del processo in "Variabili di processo" e separa i dati in base al prodotto utilizzando la selezione "Per" (vedi sotto). Assicurati di selezionare "Usa tabella limiti", quindi premi OK e seleziona la tabella delle specifiche.


Da qui, la piattaforma di screening del processo ti chiederà di selezionare la variabile del processo (Processo) e il Raggruppamento (il tuo "Prodotto"/la variabile "per" precedente) e i limiti delle specifiche LCL/UCL e USL/LSL. Premi OK, quindi è sufficiente attivare "seleziona grafico come selezionato" ed evidenziare la tabella di riepilogo.


Process Screening(
SendToByGroup( Bygroup Default ),
Process Variables( :"Total Time (min)"n ),
Control Chart Type( "Indiv and MR" ),
SendToByGroup( {:Product == "Product 1"}, Cp( 1 ) ),
Show Charts as Selected( 1 ),
SendToByGroup(
{:Product == "Product 1"},
Chart Options as Selected( Show Zones( 1 ), Show Spec Limits( 1 ) )
),
Use Limits Table(
1,
Data Table( "Spec Table" ),
Process Variables( :Process ),
Grouping( :Product ),
LSL( :LSL ),
USL( :USL ),
Target( :Target ),
Go
),
SendToByGroup( {:Product == "Product 1"}, RowStates( [0 1] ) ),
SendToByGroup( {:Product == "Product 2"}, RowStates( [0 1] ) ),
SendToByGroup( {:Product == "Product 3"}, RowStates( [0 1] ) ),
By( :Product ),
SendToByGroup(
{:Product == "Product 1"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 1", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
),
SendToByGroup(
{:Product == "Product 2"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 2"},
"",
TableBox,
{set height( 69 ), set width( 830 )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 2", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
),
SendToByGroup(
{:Product == "Product 3"},
SendToReport(
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
ListBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
TextBox,
{Set Wrap( 520 ), Set Base Font( "Small" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
PictureBox,
{Horizontal Alignment( "Right" )}
),
Dispatch(
{"Process Screening Product=Product 3", "Charts as Selected"},
"",
TextEditBox,
{Rotate Text( "Left" ), Set Wrap( 170 ),
Set Base Font( "Axis Title" )}
)
)
)
)
Ho allegato la tabella dati e lo script per questo processo (salvato selezionando "Salva per script di gruppo" nel menu a discesa rosso). Fammi sapere se questa soluzione funziona per te!
Saluti,
Ben