Lo script di allarme non scrive su un file.Ciao,
Sto lottando con uno script di allarme, come quello qui sotto. Questo grafico CuSum sta generando 7 allarmi e quindi dovrebbe generare il file di registro, tuttavia non lo fa, o non lo fa ogni volta che lo script viene eseguito, il che è strano. Avete qualche idea su cosa sta succedendo? Sto usando la versione 17.2 pro.
I nomi predefiniti sono qui (1);
dt = Open( "$SAMPLE_DATA/Controllo qualità/Oil1 Cusum.jmp" );
obj = dt << CUSUM grafico di controllo(
Y( :peso ),
E(2),
Lato inferiore (1),
Obiettivo (8.1),
K(0,025),
Sigma(0,02),
Vantaggio iniziale (0,05),
Script di allarme (
contenuto = Sostituisci( "^QCTEST nella colonna ^QCCOL nel campione ^QCSAMPLE.",
"^QCTEST", Scegli( qc_test,
"Un punto oltre i limiti di controllo")
"^QCCOL", qc_col,
"^QCSAMPLE", char( qc_sample ));
filename = Converti percorso file("$TEMP/test log.txt", assoluto);
se (il file esiste(nome file), Salva file di testo(nome file, contenuto, Modalità("Aggiungi") ), Salva file di testo(nome file, contenuto) );
),
);
// Attiva il test 1
oggetto << Test 1(1);
Automazione e scriptingRe: Lo script di allarme non scrive su un file.Non sono un esperto di carte di controllo, tuttavia, sono riuscito a innescare la scrittura del file aggiungendo
Test beyond limits( 1 )
alla specifica della carta di controllo CUSUM
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
obj = dt << CUSUM Control Chart(
Y( :weight ),
H( 2 ),
Lower Side( 1 ),
Target( 8.1 ),
K( 0.025 ),
Sigma( 0.02 ),
Head Start( 0.05 ),
Test beyond limits( 1 ),
Alarm Script(
contents = Substitute( "^QCTEST in column ^QCCOL in sample ^QCSAMPLE.",
"^QCTEST", Choose( qc_test, "One point beyond the control limits" ),
"^QCCOL", qc_col,
"^QCSAMPLE", Char( qc_sample )
);
filename = Convert File Path( "$TEMP/test log.txt", absolute );
If( File Exists( filename ),
Save Text File( filename, contents, Mode( "Append" ) ),
Save Text File( filename, contents )
);
),
);
// Turn on Test 1
obj << Test 1( 1 );

PS Si prega di utilizzare l'icona JSL in cima alla pagina di anteprima quando si aggiunge il codice JMP. Fornisce una visualizzazione del JSL molto più facile da leggere e comprendere.
Re: Lo script di allarme non scrive su un file.Ciao Jim,
Grazie per questo. Ma non è proprio quello che cercavo. Nel grafico di controllo come di seguito, ci sono 7 punti su cui viene rilevato uno spostamento, come indicato dalle linee verticali sottostanti. 
Mi aspettavo quindi che il codice riportato di seguito popolasse la tabella dati ReportOut con 7 righe di dati, con lo script di allarme eseguito una volta per ogni spostamento rilevato.
Names Default To Here( 1 );
ReportOutDataTable = New Table( "ReportOut",
//Add Rows(1),
New Column( "Name",
Character,
"Nominal",
)
);
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
ReportOUtDataTable = Data Table("ReportOut");
obj = dt << CUSUM Control Chart(
Y( :weight ),
H( 2 ),
Lower Side( 1 ),
Target( 8.1 ),
K( 0.025 ),
Sigma( 0.02 ),
Head Start( 0.05 ),
//Test beyond limits( 1 ),
Alarm Script(
ReportOutDataTable<<ADD rows=""></ADD>However looks like the alarm script wont run at all, unless Test beyond limits (1) is used. This then results in all points out of control in the chart being circled (71 in my example) , and therefore 71 rows of data being added to my ReportOut Data table.
Ultimately, I want the alarm script to run only when a shift is detected, and then output information on the shift to a ReportOut Data table, with information like the Sample Number on which the shift was detected. Maybe I'm misunderstanding how the Alarm script is indented to function?
Re: Lo script di allarme non scrive su un file.Forse shift "test" non è considerato un allarme, quindi non attiverà lo script di allarme.
Re: Lo script di allarme non scrive su un file.forse, ma sembrerebbe strano, dato che lo scopo di un grafico CuSum è di rilevare uno spostamento nei dati, e questo è indicato in Jmp con le linee verticali viola come sopra. È su uno spostamento nei dati che un utente vorrebbe che lo script di allarme venisse eseguito.
Re: Lo script di allarme non scrive su un file.Potrebbe essere, ma al momento sembra che si attivi solo con gli allarmi, non con il cambio turno. Forse creare un elemento della lista dei desideri nella speranza di ottenere un supporto per "script cambio turno" o qualcosa di simile? Al momento puoi inserirli in una tabella separata e attivare le tue azioni in base alla tabella
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp");
obj = dt << CUSUM Control Chart(
Y(:weight),
H(2),
Lower Side(1),
Target(8.1),
K(0.025),
Sigma(0.05),
Head Start(0.05)
);
dt_summary = obj << Save Summaries;
r = dt_summary << Get Rows Where(Is Missing(:Shift Start));
dt_summary << Delete Rows(r)