그룹별 프로세스 스크리닝모든 그룹화된 변수가 프로세스 변수로 포함되도록 프로세스 스크리닝을 자동화하고 싶습니다.
프로세스 스크리닝을 위해 내가 받는 일반적인 스크립트는 다음과 같습니다.
Process Screening(
Process Variables(
Column Group( "ENG" ),
Column Group( "REJ" )
),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" )
);
사용 가능한 그룹 목록을 만들 수 있지만 프로세스 스크리닝에 이를 추가하는 방법을 알아낼 수 없습니다.
Names Default To Here(1);
dt = Current Data Table();
Grps = dt << Get Column Groups Names;
ps = dt << Process Screening(
Process Variables(Column Group( Expr(Grps) )),
Grouping(:LOT, :WAFER),
Control Chart Type("Indiv and MR"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Mean(0),
Show Tests(0),
Test 1(0),
Out of Spec Rate(0),
Latest Out of Spec(0),
Cpk(0),
Ppk(0)
);
위의 스크립트는 목록의 각 항목을 반복해야 하기 때문에 작동하지 않습니다.
자동화 및 스크립팅Re: 그룹별 프로세스 스크리닝몇 가지 방법을 시도해 보았지만 Eval(Parse()) 방법으로 다시 돌아가야 했습니다. 보기 흉하지만 작동합니다.
Names Default To Here( 1 );
dt = Current Data Table();
Grps = dt << Get Column Groups Names;
Eval(
Parse(
"ps = dt << Process Screening(
Process Variables(Column Group( \!"" || Grps[1] ||
"\!" )),
Grouping(:LOT, :WAFER),
Control Chart Type(\!"Indiv and MR\!"),
Within Sigma(0),
Overall Sigma(0),
Stability Index(0),
Mean(0),
Show Tests(0),
Test 1(0),
Out of Spec Rate(0),
Latest Out of Spec(0),
Cpk(0),
Ppk(0)
)"
)
);
Re: 그룹별 프로세스 스크리닝더 못생긴 것도 봤어요. 거울이 있거든요. 잘 작동합니다. 제 기본 목표는 사양이 적용된 열만 선택하는 것이었는데, 제 경우에는 그룹화된 열이었습니다. 그 후 다른 방향으로 문제를 해결했는데, 그것도 잘 작동합니다. 당신의 접근 방식이 더 마음에 듭니다.
Names Default To Here( 1 );
dt = Current Data Table();
colList = dt << get column names( numeric, string );
SpecCols = {};
For Each( {colnames, index}, colList,
spec = Column( dt, colnames ) << get property( "Spec Limits" );
If( !Is Empty( spec ),
Insert Into( SpecCols, colnames )
);
);
ps = dt << Process Screening(
Process Variables( Eval( SpecCols ) ),
Grouping( :WAFER, :LOT ),
Control Chart Type( "Indiv and MR" ),
Within Sigma( 0 ),
Overall Sigma( 0 ),
Stability Index( 0 ),
Mean( 0 ),
Show Tests( 0 ),
Test 1( 0 ),
Out of Spec Rate( 0 ),
Latest Out of Spec( 0 ),
Cpk( 0 ),
Ppk( 0 )
);