JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법안녕하세요,
아래와 같이 여러 매개변수 열로 저장된 제한 테이블이 있다고 가정합니다. 이 파일을 읽고 JSL을 사용하여 일치하는 매개변수에 대해 IR 차트에 제한을 적용할 수 있는 방법이 있습니까?

다음 게시물에 따르면 JSL을 사용하여 컨트롤 차트 대화 상자에서 "한계 가져오기" 기능을 호출할 수 있는 방법이 없습니다. 이 경우 한계를 하드 코딩하는 것이 제안되었습니다.
IR 제어 차트의 기능에 대한 제한을 얻는 방법
한계 파일을 읽고 Sigma, Avg, LCL 및 UCL을 변수로 캡처한 다음 각 매개변수에 대한 Chart Col에 전달해야 한다고 생각합니다.이것이 유일한 방법이라면, 가장 효율적으로 접근하는 방법은 무엇입니까?
아래의 위상 수준 및 제한이 하드 코딩된 단일 관리도 매개변수에 대한 코드 예를 참조하세요.
Control Chart(
Sample Label( :WEEK ),
Phase( :YEAR ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
:P1,
Individual Measurement(
Test 1( 1 ),
Test 2( 1 ),
Test 5( 1 ),
Test 6( 1 ),
Phase Level(
"2019",
Sigma( 0.0106958422036977 ),
Avg( 5.59766666666667 ),
LCL( 5.56557914005557 ),
UCL( 5.62975419327776 )
)
)
)
);
미리 감사드립니다.
라이
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법훌륭한! 그것은 나를 올바른 길로 인도했습니다.
감사합니다!
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법IR 제어 차트에 대해 Get Limits 명령과 함께 JSL을 사용할 수 있습니다.귀하가 참조한 게시물은 제어 한계가 아닌 사양 한계에 관한 것입니다.제어 제한이 있는 경우 Get Limits 명령과 함께 다음 JSL을 사용할 수 있습니다.
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj = Control Chart(
Sample Size( Column(dt, "Sample") ),
Chart Col( :Weight, XBar, R ),
Get Limits(
"$SAMPLE_DATA/Quality Control/CoatingLimits.jmp"
)
);
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법
Not Found in access or evaluation of 'Control Chart' , Bad Argument( {:Month Alerted, :YEAR} ), Control Chart(/*###*/Sample Label( :Month Alerted ),
Phase( :YEAR ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
:Grand Total,
Individual Measurement(
Test 1( 1 ),
Test 2( 1 ),
Test 5( 1 ),
Test 6( 1 ),
Phase Level(
"2019",
Sigma( 9843.52246062887 ),
Avg( 54802.5935983333 ),
LCL( 25272.0262164467 ),
UCL( 84333.1609802199 )
)
)
)
)
내 열은 Month Alerted이고 열 데이터 내용은 2019-04 형식의 12개월이므로 샘플 레이블을 :Month Alerted로 변경했습니다.
다음 부분은 내 데이터와 일치하지 않는 연도 및 단계이므로 작동하지 않는 부분인 것 같나요?
제한은 여러 열이지만 각각 다른 헤더가 있는 것이 이상적으로는 모든 열 헤더를 작성하고 싶지는 않습니다.
또한 크기(500,175)가 필요하지만 이것이 코드에서 어디에 맞는지 확신하지 못하고 데이터 테이블에 저장합니다.
관리 차트 빌더를 사용해 보았지만 추가할 제한을 얻을 수 없었습니다. 파일을 선택했지만 그 이후에는 아무 작업도 수행되지 않았습니다. 이는 내가 일종의 대본을 얻을 수 없다는 것을 의미했습니다.
정말 감사합니다 - 스크립트를 첨부했습니다
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법로그에 어떤 오류 메시지가 표시됩니까?Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법안녕하세요. 저는 이 솔루션을 발견하고 구현하려고 시도했지만 작동하지 않습니다. 스크립트 상단에 지정한 파일이 열리지만 나머지 스크립트에서는 계속 진행되지 않습니다. Phase 부분과 관련이 있을 수 있지만 그것이 어디서 왔는지 완전히 이해하지 못합니까? 도움을 주셔서 감사합니다Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법짐님 빠른 답변 감사드립니다.Control Limits 및 Sigma 속성을 설정하려고 했는데 다음에 대한 오류가 발생했습니다.
too many arguments in access or evaluation of 'Expr' , Expr/*###*/(Column( finalDt, colNamesList[i] ) <<
Set Property(
"Control Limits",
{Individual Measurement( Avg( __avg__ ), LCL( __LCL__ ), UCL( __UCL__ ) )}
), Column( finalDt, colNamesList[i] ) << Set Property( "Sigma", __sigma__ ))문제는 동일한 대체 표현식에서 두 개의 서로 다른 열 속성을 정의하려고 한다는 것입니다.2개의 평가판으로 나눈 후 작동합니다.아래를 참조하세요.
Current Data Table( finalDt );
Wait(0);
// Get list of columns to chart
colNameList = finalDt << get column names( continuous, string );
// Loop across all of the columns and create the charts
For( i = 2, i <= N Items( colNameList ), i++,
// If limits exist for the current column, then process
If( Try( Column( dtLimits, colNameList[i] ) << get name ) != "",
// get the limits needed
// sigma
theSigma = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( :_LimitsKey == "_Std Dev" ))[1]];
theAvg = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( :_LimitsKey == "_Mean" ))[1]];
theLCL = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( :_LimitsKey == "_LCL" ))[1]];
theUCL = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( :_LimitsKey == "_UCL" ))[1]];
Eval(
Substitute(
Expr( __process__ << Set Property("Control Limits", {Individual Measurement( Avg( __avg__ ), LCL( __LCL__ ), UCL( __UCL__ ))})),
Expr( __process__ ), Parse( ":" || colNameList[i] ),
Expr( __avg__ ), theAvg,
Expr( __LCL__ ), theLCL,
Expr( __UCL__ ), theUCL
)
);
Eval(
Substitute(
Expr( __process__ << Set Property("Sigma", __sigma__)),
Expr( __process__ ), Parse( ":" || colNameList[i] ),
Expr( __sigma__ ), theSigma,
)
);
)
);빠른 도움에 다시 한번 감사드립니다.
라이
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법IR 차트에 대한 제어 한계를 대화식으로 설정한 후 다음 JSL을 사용하여 한계를 검색하는 경우
:columnname <<GET property=""></GET>
열 속성에 대해 저장된 구조가 표시됩니다.
{Individual Measurement(
Avg( 62.55 ),
LCL( 51.574420384821 ),
UCL( 73.525579615179 )
)}
따라서 해야 할 일은 한계 데이터 테이블에서 정보를 읽은 다음 위의 구조를 구축하고 이를 측정 데이터 테이블 열에 전달하는 것입니다.다음은 관리 차트를 실행하는 대신 관리 한계를 채우는 점을 제외하고 이전 스크립트를 수정한 것입니다.
Names Default To Here( 1 );
dt = Open( "path to data table" );
dtLimits = Open( "path to limits table" );
// Get list of columns to chart
colNameList = dt << get column names( continuous, string );
// Loop across all of the columns and create the charts
For( i = 1, i <= N Items( colNameList ), i++,
// If limits exist for the current column, then process
If( Try( Column( dtLimits, colNameList[i] ) << get name ) != "",
// get the limits needed
theAvg = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( _LimitsKey == "_Mean" ))[1]];
theLCL = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( _LimitsKey == "_LCL" ))[1]];
theUCL = Column( dtLimits, colNameList[i] )[(dtLimits << get rows where( _LimitsKey == "_UCL" ))[1]];
Eval(
Substitute(
Expr(
__Process__ << set property(
"Control Limits",
{Individual Measurement( Avg( __avg__ ), LCL( __LCL__ ), UCL( __UCL__ ) )}
)
),
Expr( __process__ ), Parse( ":" || colNameList[i] ),
Expr( __avg__ ), theAvg,
Expr( __LCL__ ), theLCL,
Expr( __UCL__ ), theUCL
)
);
)
);Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법안녕하세요 짐,
언급한 첫 번째 방법에 접근하는 방법을 보여줄 수 있습니까? 제한 테이블에서 제한을 읽은 다음 이를 열 속성으로 적용합니다.
감사합니다,
라이
Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법고마워요 짐. Get Rows Where( _LimitsKey == ...) 섹션을 약간 편집해야 했습니다. 콜론 ":"을 추가하면 Get Rows Where( :_LimitsKey == ...) 가 되고 모든 것이 작동합니다. 그런데 질문 하나. 스크립트는 각 매개변수 제어 차트에 대한 개별 창을 생성합니다. IR 제어 차트 대화 상자에서 여러 매개 변수를 선택한 것처럼 누적된 각 매개 변수의 제어 차트가 있는 하나의 창을 생성하는 방법이 있습니까?Re: JSL을 사용하여 IR 제어 차트에서 제한을 얻는 방법이를 수행하는 두 가지 기본 방법이 있습니다.
- 제한 테이블에서 데이터를 읽은 다음 제한을 열 속성으로 저장합니다. 그런 다음 원하는 차트를 실행합니다.
- 차트로 작성할 열을 반복하면서 제한 테이블에서 제한을 읽고 이를 JSL에 삽입하여 차트를 생성합니다.
아래 스크립트에 사용한 방법 중 두 번째 방법입니다.작동하는 스크립트여야 하지만 실제로 제한 테이블과 실제 데이터 테이블이 없으면 약간의 결함이 있을 수 있습니다.
Names Default To Here( 1 );
dt = Open( "path to data table" );
dtLimits = Open( "path to limits table" );
// Get list of columns to chart
colNameList = dt << get column names( continuous, string );
// Loop across all of the columns and create the charts
For( i = 1, i <= N Items( colNameList ), i++,
// If limits exist for the current column, then process
If( Try( Column( dtLimits, colNameList[i] ) << get name ) != "",
// get the limits needed
// sigma
theSigma = Column( dtLimits, colNameList[i] )[(dtLimits <<
get rows where( _LimitsKey == "_Std Dev" ))[1]];
theAvg = Column( dtLimits, colNameList[i] )[(dtLimits <<
get rows where( _LimitsKey == "_Mean" ))[1]];
theLCL = Column( dtLimits, colNameList[i] )[(dtLimits <<
get rows where( _LimitsKey == "_LCL" ))[1]];
theUCL = Column( dtLimits, colNameList[i] )[(dtLimits <<
get rows where( _LimitsKey == "_UCL" ))[1]];
Eval(
Substitute(
Expr(
Control Chart(
Sample Label( :WEEK ),
Phase( :YEAR ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col(
__process__,
Individual Measurement(
Test 1( 1 ),
Test 2( 1 ),
Test 5( 1 ),
Test 6( 1 ),
Phase Level(
"2019",
Sigma( __sigma__ ),
Avg( __avg__ ),
LCL( __LCL__ ),
UCL( __UCL__ )
)
)
)
)
),
Expr( __process__ ), Parse( ":" || colNameList[i] ),
Expr( __sigma__ ), theSigma,
Expr( __avg__ ), theAvg,
Expr( __LCL__ ), theLCL,
Expr( __UCL__ ), theUCL
)
);
)
);