JSLを使用して、管理図を作成したり、テストをカスタマイズしたり、警告スクリプトを実行したりできます。
JSLを使って、管理図ビルダーでカスタムの参照線を追加する場合は、参照線のラベルに“LSL”、“USL”、“AVG”を使用しないでください。これらの名前は、「管理図ビルダー」プラットフォームで使用されているキーワードです。
次の例では、独自のラベルを使って、カスタムの参照線を作成しています。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = dt << Control Chart Builder(
Variables( Y( :"身長(インチ)"n) ),
SendToReport(
Dispatch(
{},
"身長(インチ)",
ScaleBox,
{Add Ref Line( 70, "Solid", "Black", "Upper Limit", 1 ),
Add Ref Line( 55, "Solid", "Black", "Lower Limit", 1 )}
)
)
);
Customize Testsオプションによって、テストをカスタマイズしたり、複数のテストを一度に選択または選択解除したりできます。このオプションでは、テスト名、n、ラベルを指定できます。このオプションは、計量値または計数値の管理図でのみ使用できます。
次の例は、「テスト 1」というテストをカスタマイズし、そのカスタマイズされた「テスト 1」をオンにします。
dt = Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
dt << Control Chart Builder(
Variables( Subgroup( :日付 ), Y( :直径 ) ),
Customize Tests( Test 1( 2, "1" ) ), // テスト番号、n、ラベル
Chart( Position( 1 ), Warnings( Test 1( 1 ) ) ), // 「テスト1」をオンにする
Chart( Position( 2 ) )
);
警告スクリプトは、1つ以上のテストで異常が検出された場合に警告をします。警告スクリプトおよびそれに続くJSLスクリプトでは、次の変数を使用できます。
qc_col(列の名前)
qc_test(異常が検出されたテスト)
qc_sample(標本番号)
qc_phase(異常が発生したフェーズのラベル)
qc_firstRow(標本の第1行)
qc_lastRow(標本の最終行)
警告が自動的に実行されるようにする1つの方法は、作成したスクリプトを「QC Alarm Script」という名前のデータテーブルスクリプト、または列プロパティとして格納することです。
次の例では、テストで異常が検出されるたびに、メッセージがログに自動的に書き込まれます。
dt = Open( "$SAMPLE_DATA/Quality Control/Coating.jmp" );
obj = dt << Control Chart(
Sample Size( :サンプル ),
KSigma( 3 ),
Chart Col( :重量, XBar, R ),
Alarm Script(
Write(
"テストで異常, テスト番号=",
qc_test,
" ,列=",
qc_col,
" 標本番号=",
qc_sample
)
)
);
obj << Test 1( 1 );
Speak関数を使って、管理図のテスト結果を音声で通知させることもできます。以下に例を示します。
dt = Open( "$SAMPLE_DATA/Quality Control/Coating.jmp" );
dt << Control Chart(
Alarm Script(
Speak(
Match( QC_Test,
1, "1点がAゾーンを超えています",
QC_Test, 2,
"連続した9点がCゾーン以上にあります", QC_Test,
5,
"連続した3点のうち2点がAゾーン以上に
あります"
)
)
),
Sample Size( :サンプル ),
Ksigma( 3 ),
Chart Col( :重量, Xbar( Test 1( 1 ), Test 2( 1 ), Test 5( 1 ) ), R )
);
これらのスクリプトで、JSL警告コマンドのSpeak、Write、Mailを使用することができます。
「フェーズ(phase)」とは、データテーブル内の連続する観測値をグループにまとめたものです。たとえば、新しい工程で生産を開始する前と後は異なるフェーズだと定義できます。指定したフェーズ変数の水準ごとに、シグマや限界値が新たに計算され、また、ゾーンやテストの結果が新たに計算されます。
「Diameter.jmp」の各フェーズに対し、限界値を設定する例を次に示します。
dt = Open( "$SAMPLE_DATA/Quality Control/Diameter.jmp" );
dt << Control Chart(
Phase( :フェーズ ),
Sample Size( :日付 ),
KSigma( 3 ),
Chart Col(
:直径,
XBar(
Phase Level(
"1",
Sigma( .29 ),
Avg( 4.3 ),
LCL( 3.99 ),
UCL( 4.72 )
),
Phase Level(
"2",
Sigma( .21 ),
Avg( 4.29 ),
LCL( 4 ),
UCL( 4.5 )
)
),
R( Phase Level( "1" ), Phase Level( "2" ) )
)
);