Alarmskript schreibt nicht in eine Datei.Hallo,
Ich habe Probleme mit einem Alarmskript wie dem folgenden. Dieses CuSum-Diagramm generiert 7 Alarme und sollte daher die Protokolldatei generieren, tut dies jedoch nicht oder nicht jedes Mal, wenn das Skript ausgeführt wird, was seltsam ist. Irgendwelche Ideen, was los ist? Ich verwende Version 17.2 Pro.
Namen werden standardmäßig hier verwendet (1);
dt = Öffnen( "$SAMPLE_DATA/Qualitätskontrolle/Oil1 Cusum.jmp" );
obj = dt << CUSUM-Kontrollkarte(
Y( :Gewicht ),
H( 2 ),
Unterseite( 1 ),
Ziel( 8.1 ),
K( 0,025 ),
Sigma (0,02),
Vorsprung (0,05),
Alarmskript(
Inhalt = Ersetzen( "^QCTEST in Spalte ^QCCOL in Probe ^QCSAMPLE.",
"^QCTEST", Wählen Sie( qc_test,
„Ein Punkt außerhalb der Kontrollgrenzen“)
"^QCCOL", qc_col,
"^QCSAMPLE", char( qc_sample ));
Dateiname = Dateipfad konvertieren("$TEMP/test log.txt", absolut);
if (Datei existiert (Dateiname), Textdatei speichern (Dateiname, Inhalt, Modus("Anhängen")), Textdatei speichern (Dateiname, Inhalt));
),
);
// Test 1 einschalten
obj << Test 1(1);
Automatisierung und SkriptingBetreff: Alarmskript schreibt nicht in eine Datei.Ich bin kein Experte für Kontrollkarten, aber ich konnte das Schreiben der Datei auslösen, indem ich hinzufügte
Test beyond limits( 1 )
zur CUSUM Control Chart Spezifikation
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: Bitte verwenden Sie das JSL-Symbol oben auf der Vorschauseite, wenn Sie Ihren JMP-Code hinzufügen. Es bietet eine Anzeige Ihres JSL, die viel einfacher zu lesen und zu verstehen ist.
Betreff: Alarmskript schreibt nicht in eine Datei.Hallo Jim,
Danke dafür. Aber es ist nicht ganz das, was ich gesucht habe. In der Kontrollkarte unten gibt es 7 Punkte, an denen eine Verschiebung erkannt wird, wie durch die vertikalen Linien unten angezeigt. 
Ich habe dann erwartet, dass mein unten stehender Code die ReportOut-Datentabelle mit 7 Datenzeilen füllt, wobei das Alarmskript einmal für jede erkannte Schicht ausgeführt wird.
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?
Betreff: Alarmskript schreibt nicht in eine Datei.Möglicherweise wird die Schicht „Test“ nicht als Alarm betrachtet und löst daher das Alarmskript nicht aus.
Betreff: Alarmskript schreibt nicht in eine Datei.möglicherweise, aber es würde seltsam erscheinen, da der Zweck eines CuSum-Diagramms darin besteht, eine Datenverschiebung zu erkennen, und dies wird in Jmp wie oben durch die vertikalen violetten Linien angezeigt. Bei einer Datenverschiebung möchte ein Benutzer, dass das Alarmskript ausgeführt wird.
Betreff: Alarmskript schreibt nicht in eine Datei.Das könnte sein, aber derzeit scheint es, dass es nur bei Alarmen ausgelöst wird, nicht bei Schichtwechsel. Vielleicht erstellen Sie ein Wunschlistenelement in der Hoffnung, Unterstützung für „Schichtwechselskript“ oder etwas Ähnliches zu erhalten? Derzeit können Sie diese in eine separate Tabelle einfügen und basierend auf der Tabelle Ihre eigenen Aktionen auslösen
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)