警報腳本未寫入檔案。你好呀,
我正在努力處理警報腳本,如下所示。此 CuSum 圖表生成 7 個警報,因此應該生成日誌文件,但事實並非如此,或者不是每次運行腳本時都會生成,這很奇怪。對發生的事情有什麼想法嗎?我使用的是17.2專業版。
名稱預設為此處( 1 );
dt = Open( "$SAMPLE_DATA/Quality Control/Oil1 Cusum.jmp" );
obj = dt << 累積和控制圖(
Y(:重量),
H(2),
下側( 1 ),
目標(8.1),
K(0.025),
西格瑪(0.02),
領先優勢( 0.05 ),
警報腳本(
內容 = Substitute( "樣本 ^QCSAMPLE 中列 ^QCCOL 中的 ^QCTEST。",
"^QCTEST", 選擇( qc_test,
「超出控制限的一點」),
“^QCCOL”,qc_col,
"^QCSAMPLE", char( qc_sample ));
filename = 轉換檔案路徑("$TEMP/test log.txt", 絕對);
if (檔案存在( 檔案名稱 ), 儲存文字檔案( 檔案名稱, 內容, 模式("追加") ), 儲存文字檔案( 檔案名稱, 內容) );
),
);
// 開啟測試 1
obj << 測試 1(1);
自動化和腳本編寫回覆:警報腳本未寫入檔案。我不是控製圖專家,但是,我能夠透過添加來觸發文件的寫入
Test beyond limits( 1 )
符合 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 新增 JMP 程式碼時,請使用預覽頁面頂部的 JSL 圖示。它提供了更容易閱讀和理解的 JSL 顯示。
回覆:警報腳本未寫入檔案。嗨吉姆,
謝謝你。但這並不完全是我想要的。在下面的控製圖中,有 7 個點偵測到偏移,如下面的垂直線所示。 
然後,我期望下面的程式碼能夠填充 ReportOut 數據表,其中包含 7 行數據,並為偵測到的每個班次執行一次警報腳本。
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?
回覆:警報腳本未寫入檔案。也許班次「測試」不被視為警報,因此它不會觸發警報腳本。
回覆:警報腳本未寫入檔案。可能,但看起來很奇怪,因為 CuSum 圖的目的是檢測數據的變化,這在 Jmp 中以上面的垂直紫色線表示。用戶希望在資料發生變化時運行警報腳本。
回覆:警報腳本未寫入檔案。可能是這樣,但目前看來它只在警報時觸發,而不是在換班時觸發。也許創建一個願望清單項,希望獲得對「班次更改腳本」或類似內容的支援?目前,您可以將它們放入單獨的表中,並根據該表觸發您自己的操作
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)