
컨트롤 차트 세트에 대한 현재 또는 새로운 고정 컨트롤 제한과 관련하여 내 이전 컨트롤 제한이 어떻게 보이는지 확인하려는 문제에 직면했습니다. 일반적으로 각 그래프에 참조선을 추가하려고 하지만 오랫동안 잊혀진(적어도 나에게는) 플랫폼 메시지를 사용하는 더 좋은 방법이 있을 수 있다고 생각합니다.
올해 초 저는 새 열 속성(이 경우에는 환경 모니터링 차트에 대한 작업 및 경고 제한)을 추가한 다음 해당 열 속성을 컨트롤 차트의 참조선으로 사용하는 것이 어떤 모양일지에 대한 아이디어를 가지고 놀았습니다. EM 블로그 링크
Scripting Index에서 완전히 다른 것을 찾던 중 "Add Limits"라는 기능을 발견했습니다. 제가 아는 한 이 기능은 최소한 v14 이전부터 오랫동안 사용되었으며 관리 차트에 상한 및 하한 제어 한계를 보내는 데 사용할 수 있습니다. 이러한 한계는 사선으로 표시되며 그래프 옆에 있는 표에 나열됩니다. 그렇게 하려면 많은 JSL이 필요하므로 이러한 높은 유틸리티 기능을 발견하는 것은 꽤 좋은 일입니다.
Add Limits의 기본 사용법은 다음과 같습니다.
//Example of adding limits to a control chart
ccb = dt << Control Chart Builder( Variables( Y( :Column 1 ) ), Show Control Panel( 0 ) );
ccb << chart( position( 1 ), Add Limits( {LCL( 20 ), UCL( 30 )} ) );
JSL의 마지막 줄은 점선 제한으로 사용할 값이 포함된 메시지를 차트로 보냅니다.
물론 나는 그것을 어떤 열과 함께 동적으로 사용하고 싶기 때문에 약간의 추가 작업이 필요합니다.
먼저 예제로 사용할 테이블을 설정하겠습니다.
dt=New Table( "old and new control limits",Add Rows( 50 ),
New Column( "Column 1",Numeric,"Continuous",Format( "Best", 12 ),
Formula( Round( Random Normal( 25, 3 ), 0 ) )));
column(dt, 1)<< Delete Formula;
테이블이 생성된 직후 작업할 임의의 데이터를 생성하는 수식을 삭제하고 있습니다. 이렇게 하면 테이블의 값이 수정됩니다.
다음 단계는 새로운 종류의 열 속성, 즉 JMP에 기본적으로 존재하지 않는 사용자 지정 항목을 추가하는 것입니다.
Column( dt, 1 ) << set property( "Old Control Limits", {LCL( 20 ), UCL( 30 )} );
이 줄을 실행한 후 데이터 테이블의 열에는 이제 Old Control Limits라는 속성이 있습니다.
스크립트가 작동했는지 확인하기 위해 이렇게 하면 열 속성의 값을 볼 수 있습니다.
OCL = Column( dt, 1 ) << Get Property( "Old Control Limits" );Show( OCL[1], OCL[2] );
새 변수 OCL에는 LCL(20)과 UCL(30)의 두 값이 있습니다.
새 컨트롤 차트에서 해당 값을 사용할 수 있습니다.
다음 두 줄은 정말 이상하게 보일 수 있지만 매우 견고하며 JSL의 기능 기반 구조를 활용합니다.
먼저 몇 개의 비어 있거나 거의 비어 있는 인수를 정의한 다음 함께 중첩할 것입니다.
ccbe = Expr(Control Chart Builder( Variables( Y( :Column 1 ) ), Show Control Panel( 0 ) ));
ce = Expr( chart( position( 1 ) ) );
ae = Expr( add limits() );
le = {};
이러한 식을 설정하면 각 부분을 평가하지 않고 처리할 수 있습니다.
ccbe, 컨트롤 차트 빌더 표현식은 "변수" 및 "제어판 표시"라는 두 개의 인수가 있는 "컨트롤 차트 빌더" 함수입니다.
Control Chart Builder 함수에 Chart()라는 새 인수를 추가하고 싶습니다. 새 변수인 ce는 "차트" 인수가 있는 표현식이고 차트는 "위치(1)" 인수를 포함합니다.
비어 있는 Add Limits 식을 참조하기 위해 변수 ae를 갖도록 Chart 인수에 Add Limits를 추가하고 싶습니다.
마지막으로 "le"이라는 빈 목록을 만들었습니다. 여기에는 이전 단계에서 OCL 변수의 "Get Properties"에서 얻은 제한이 포함됩니다.
다음으로 조각을 함께 레이어링하겠습니다.
Insert Into( le, OCL );show( le );
Insert Into( ae, le );Show( ae );
Insert Into( ce, Name Expr( ae ) );Show( ce );
Insert Into( ccbe, Name Expr( ce ), 2 );
ccbe;
먼저 OCL의 목록을 가져 와서 파일에 삽입합니다.
두 번째로 "le"을 "ae"에 삽입하고 "ae"를 "ce"에 삽입합니다. 두 번째 경우에는 Name Expr() 안에 "ae"를 감쌌습니다. 이것은 평가하지 않고 ae의 평가된 표현을 제공합니다. 이 NameExpr() 메서드는 매우 편리합니다.
마지막으로 전체 컨트롤 차트 표현식인 ccbe에 ce를 삽입합니다.
위의 JSL에서 각 단계 후에 "표시"를 포함하여 로그에서 함수가 어떻게 빌드되고 있는지 확인할 수 있습니다.
마지막 단계는 그래프를 얻는 것입니다. ccbe를 단독으로 실행하면 전체 표현식을 포함하는 변수가 평가되고 열 속성에서 가져온 이전 제어 한계를 나타내는 점선이 있는 제어 차트가 표시됩니다.
조금 더 노력하면 프로세스 변수의 전체 테이블에 대한 모든 열 속성을 채우는 데 사용할 수 있는 현재 및 이전 제어 한계를 포함하는 테이블로 시작할 수 있을 것이라고 확신합니다.
전체 스크립트는 아래에 포함되어 있습니다.