cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
nikles
Level VI

Setting Spec Limits with USL=LSL?

Hi.  I have a data table column consisting of coded integer values.  For example, a "0" indicates "OK", and other numbers indicate some kind of issue.  I would like to set spec limits of (0,0) for this column, but JMP issues a "Consistency Error" when I try this and will not let me have the USL be less than or equal to the LSL.  I know I could just set the limits to be something like (-0.1, +0.1), but changing this would create issues elsewhere in my org.  

 

Is there a way to set my limits to be equal to each other?  I've tried changing the modeling type from continuous to either nominal or ordinal, but it still prevents me from setting USL=LSL.

 

Thanks.

7 REPLIES 7

Re: Setting Spec Limits with USL=LSL?

How will you use these limits? What do you expect the Spec Limit's column property to do for you?

SDF1
Super User

Re: Setting Spec Limits with USL=LSL?

Hi @nikles ,

 

  Correct, JMP will not let you set the USL equal to either the Target or LSL. I don't know the exact reason, but it's likely due to the fact that when you enter spec limits for a column, when certain platforms in JMP are run -- like Distribution -- JMP calculates process capability indices like cpk and ppk. Those values only make sense if the spec limits are not equal to each other, otherwise the results wouldn't make any sense.

 

  Do you have to have a LSL? If the coded integer cannot (or should not) be less than 0, and the Target or USL should be 0, then I would just set either of those to 0 and continue with your analysis. Is there a specific reason you need to have a LSL?

 

Hope this helps,

DS

mikedriscoll
Level VI

Re: Setting Spec Limits with USL=LSL?

Earlier versions allowed a user to manually set USL = LSL, but this was discontinued in JMP16 or 17. JMP still allows this practice when setting limits programmatically using JSL, and I hope they continue to allow that, as our org has many cases of this.  The most typical example is a bit state or a decimal (or hex) equivalent / combination of several bit states.In the semiconductor world, it is common practice to have USL = LSL in these case and the test program considers a value equaling a limit to be passing.

 

Just keep in mind that some platforms (I think GR&R?) might throw an error when running the analysis on a parameter with USL=LSL, which would be painful if you are running all parameters at once and have several cases of USL=LSL and have to hit 'ok' over and over. We've altered some of our scripts to handle those cases.

 

codes / integers can also be negative (two's compliment version of a decimal).

 

I had brought this up to jmp support and the change was deliberate. Again, I do hope they continue to allow it programmatically via jsl. That's how we load most of our limits anyway., not counting the limits coming in straight from the stdf converter which I suppose is also loading limits programmatically.

nikles
Level VI

Re: Setting Spec Limits with USL=LSL?

Thanks @mikedriscoll .  I agree, and I wish they would allow USL=LSL for the same reasons you mention.  Having limits in place allow us to compute yields.  One idea would be to allow USL=LSL for columns with nominal or ordinal modeling types only.   Oh well.  Something for the wishlist.

 

mikedriscoll
Level VI

Re: Setting Spec Limits with USL=LSL?

JMP support actually recommended that I enter a Wish List item for this. I thought I did but can't find it. If you enter an item, just reply back here and I'll give it a thumbs up. Otherwise I can enter one on Monday.

 

Our stdf reader and production interface imports all tests as continuous numeric, so nominal / ordinal wouldn't help for us.

 

If you can get your hands on an earlier version of JMP, that may work too. I think 15 handled that ok but I'm not really sure; I so rarely use anything but scripts to load limits and i don't have 15 installed right now.

 

A homebrew limit loader written in jsl is the best way to go about it. I can't share my code because it is company IP but if you can find a jsl programmer at your company maybe you can get something going.  Just have a limit table with 3 columns: parameter (column) name, LSL, and USL, and then load them in to your data table.  You can do a google search for something like jmp jsl script to load USL and LSL. Some of those search results show jmp written blogs... you can try them, but I'm guessing those are native platform based tools that may not allow USL=LSL.  This link  has some of the basics of how to do it, and you'd need to wrap some other code like picking the correct data tables, looping through the columns, add a GUI, error handling, etc.   Remember to handle cases where a lower and / or upper limit does not exist. The try() statement works wonders for error handling, as long as anything downstream doesn't depend on it.

nikles
Level VI

Re: Setting Spec Limits with USL=LSL?

mikedriscoll
Level VI

Re: Setting Spec Limits with USL=LSL?

Thanks!