こんにちは。 USL を LSL と同じに設定できるようにしたいと考えています。現在、JMP Pro 17.2.0を使用しています。 [列のプロパティ] ウィンドウで制限を互いに等しく設定しようとすると、「USL は LSL およびターゲットより大きくなければなりません」というエラーが表示されます。制限の管理プラットフォームを使用して試行すると、同様のエラーが発生します。
元のディスカッションについては、このスレッドを参照してください。
https://community.jmp.com/t5/Discussions/Setting-Spec-Limits-with-USL-LSL/mp/717822#M89952
このウィッシュリストリクエストのきっかけは何ですか?
[列のプロパティ] ウィンドウまたは [制限の管理] プラットフォームで制限を互いに等しい値に設定しようとすると、エラーが発生します。 << Set Property メッセージを使用してプログラムで制限を等しく設定できますが、制限の管理を使用して制限を読み取ることはできません。このスクリプトは、次のことを説明するのに役立ちます。
Names Default to Here(1);<BR />dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt:Height << Set Property("Spec Limits", USL(1), LSL(1)); //I can set USL=LSL in a script<BR />//I can confirm they've been set by manually opening the Column Properties window.
//At some later date I need to reopen the table and get the limits to evaluate yield:
msl = dt << Manage Limits(Process Variables(:Height)); //The limits are now missing.
dtlim = msl << Save to Tall Limits Table;
時々、問題のあるすべての列がリストされた「矛盾した制限」に関する内容を示す小さなウィンドウのポップアップが表示されることもありますが、これを再現する方法はまだわかりません。
改善してほしいことは何ですか?
[列のプロパティ] ウィンドウと [制限の管理] ウィンドウで、互いに等しい制限を設定できる機能が必要です。ただし、USL < LSL を防止し続けたいと考えています。
この考え方がなぜ重要なのでしょうか?
データには数千の列が含まれています。一部の (すべてではない) 列はコード (整数) を表し、1 つの値のみが「ok」を意味し、他のすべての値は異なるタイプの失敗を示します。たとえば、「1」は合格、「0」はテストしなかった、値 2 以上は他のエラーを示します。スクリプトを使用して、これらのデータの収量やその他の分析を計算したいと考えています。しかし、スクリプトが [制限の管理] を使用して制限を読み戻すときに、制限が欠落しているため、USL=LSL を含むこれらの列がチェックされないことがわかりました。
私たちが検討したこと:
1. 制限を (x,x) ではなく (x-0.1, x+0.1) に設定します。何百もの制限、いくつかの製造ステップ、いくつかのプログラムの変更が必要となり、社内の他の多くの組織に影響を与えるような BC は実行できません。
2. これらの列に LSL のみを設定し、USL は省略したままにします。次に、収量分析スクリプトに、値が「コード化」されている列のリストに対して列名をチェックする句を追加します。一致する場合は、値が LSL の間にあるかどうかをチェックするのではなく、値が LSL と一致するかどうかだけをチェックします。 USL。問題があるのは、スクリプト内でどの列を一方的にチェックする必要があるのか、もう一方的にチェックする必要があるのかをハードコーディングする必要があり、開発中に名前のリストが変更されるたびにスクリプトを常に更新する必要があります。さらに、同じテストを共有しないため、製造ステップごとおよびプログラムごとに個別のリストを維持する必要があります。また、他の人がデータに対して別の分析スクリプトを使用しているため、USL を削除して LSL だけを保持しているかどうかを認識できない可能性もあります。
3. 上記のスクリプトのように、プログラムで制限を設定します。その後、後日データ テーブルからそれらを読み戻したい場合は、制限の管理の代わりに << Get Property メッセージを使用します。これを試すためのスクリプトをまだ作成中ですが、この機転についてはすでに不安を感じています。まず、各列の仕様を読み取って解析するには For ループが必要ですが、10,000 列以上の場合は時間がかかる可能性があります。次に、<< Get Property("Spec Limits") メッセージから制限を解析するのが困難です。 (1) USL(1) (引用符なし) が返されるだけで、ここから数値を抽出する方法がわかりません。 (2) [列プロパティ] ウィンドウで LSL が 1 に設定されていることを確認しましたが、LSL が返されないようです。以下のスクリプトは次のことを示しています。
Names Default to Here(1);<BR />dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt:Height << Set Property("Spec Limits", USL(1), LSL(1)); //confirm limits set in col props window.<BR />specs = dt:Height << Get Property( "Spec Limits" ); //returns USL(1) only
lsl = specs["LSL"]; //returns .
usl = specs["USL"]; //returns .
私が思いつかなかった(または言及するのを忘れた)他の明白な解決策がある場合は、事前にお詫び申し上げます。また、重要な詳細を省略していたら申し訳ありません。私はしばらくこれに取り組んでいるので、かなり雑草の中にいます。
ご検討いただきありがとうございます。
重要な修正。上記の両方のスクリプトの 2 行目は次のようになります。
dt:Height << Set Property("Spec Limits", {USL(1), LSL(1)}); //forgot to add {}見落としをお詫び申し上げます。これにより、<< Set Properties メッセージと << Get Properties メッセージの使用に問題があった理由が説明されます。 [制限の管理] ウィンドウを使用して制限を * 読み取ることができることがわかりました。ただし、[制限の管理] を開くと、依然として次のポップアップが表示されます。

さらに、「高さ制限テーブルに保存」しようとすると、次のエラーが表示されます。

最後に、「検討したこと」の項目 3 (制限の管理の代わりに << Get Property メッセージを使用してデータ テーブルから制限を読み取る) の元の投稿で、この方法が機能するようになりました。制限を読み取るには、テーブルが自動的に作成されるため、代わりに制限管理プラットフォームを使用することを好みますが、これは少なくとも実行可能な回避策です。
こんにちは@nikles関連するコミュニティのディスカッション スレッドとこのリクエストを読みました。本当に必要なのは、「カテゴリ仕様」を定義して保存する方法であるように思えます。たとえば、製品のテストで単に合格/不合格の結果が得られ、「合格」が仕様である場合、それを仕様として列プロパティに保存できるようにしたいとします。テスト結果が Excellent、Good、Poor、Fail であり、「Excellent」または「Good」が合格仕様であるなど、他の種類のカテゴリ仕様も確認できます。
現在、仕様制限列プロパティの USL および LSL は継続的な応答を目的としているため、LSL>=LSL には意味がありません。 [分析] > [品質とプロセス] にある制限の管理プラットフォームは、JMP 分析で使用される制限を管理することを目的としています。このようなカテゴリ制限を利用する JMP プラットフォームを私は知りません。
緊急に必要な場合は、カテゴリ仕様を保存するためのカスタム列プロパティを作成して (列プロパティで「その他」を選択) ます。または、データ テーブルの JSL で << Set Property( ) メッセージを使用することもできます。その後、そのプロパティをスクリプトで利用できます。

@nikles LSL=USL を可能にする JMP v18.1 のデータテーブルの更新を計画しています。ただし、そのプロパティ設定を持つ列は機能レポートでは機能しないことに注意してください。