'제품 감지 NG' > '조립불량' >대략 몇초 정도 소요한 건지 구하기
FCT machine 로그에 manual mode 변환 찾기 교체 정확한 시간을 근거로 교체 갯수 선정 가능 >> 해당 부분을 제외해서 >> 계측기 및 설비 이상 문제 예상 관련 검토해보기 >> 검사 시간으로 체크하기 / 1주일간 체크 해서 정규 분포로 오른쪽 꼬리가 긴것, BOXPLOT으로 CT 이상치를 구하고 그에 해당하는 바코드를 가지고 STATION별
20251010 20:18:00 ~ 23:59:00 까지 Non-PD 20251001 09:15:00 ~ 13:00:00 까지 PD
a.스키마 : d1_machine_log
a.테이블 : Main_machine_log
Non-PD : TRAY에서 제품을 FCT까지의 적재 시간 구하기, 1TRAY에 21개 제품 있음
시간 범위 : a.테이블 end_day : 20251010, time : 20:18:00 ~ 23:59:00
조건 범위
2-1) a.테이블 contents : PLC: UP1 : 투입 ~ PLC: UP1 : 배출 에 해당하는 컬럼 time의 속성값을 범위로 할 것
→ 해당 범위들을 컬럼 no를 추가하여 속성값으로 1,2,3…순서를 넣어서 구분
2-2) 1st 적재 제품 시간은 a.테이블 contents : PLC: UP1 : 투입 ~ PLC: FCT1 : 투입 or PLC: FCT2 : 투입 까지의 컬럼 time의 속성값 차이를 새로운 컬럼 ct 를 만들어 소수점 2자리까지 기입
→ contents : PLC: UP1 : 투입 에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 from_contents와 from_time의 속성값으로 들어 갈것
→ contents : PLC: FCT1 : 투입 or PLC: FCT2에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 to_contents와 to_time의 속성값으로 들어 갈것
→ contents : PLC: FCT1 : 투입 or PLC: FCT2내용 중 FCT1과 FCT2는 새로운 컬럼 to_station의 속성값으로 들어갈 것
컬럼 ct의 속성값_예시) [21:12:15.09] PLC: UP1 : 투입
[21:12:17.51] PLC: FCT1 : 투입
> 1st : 2.42
[21:12:15.09] PLC: UP1 : 투입
[21:12:17.51] PLC: FCT2 : 투입
> 1st : 2.42
2-3) 2~ 21st까지는 아래의 조건에 따라 산출될 것
→ a.테이블 contents : PLC: VISION1 : 투입 ~ contents : PLC: FCT1 : 투입 or PLC: FCT2 : 투입까지의 컬럼 time의 속성값 차이를 새로운 컬럼 ct에 속성값으로 넣을 것, 소수점 2자리까지 나타낼 것
→ contents : PLC: VISION1 : 투입 에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 from_contents와 from_time의 속성값으로 들어 갈것
→ contents : PLC: FCT1 : 투입 or PLC: FCT2에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 to_contents와 to_time의 속성값으로 들어 갈것
→ contents : PLC: FCT1 : 투입 or PLC: FCT2 내용 중 FCT1과 FCT2는 새로운 컬럼 to_station의 속성값으로 들어갈 것
컬럼 ct의 속성값_예시) [21:12:15.09] PLC: VISION1 : 투입
[21:12:17.51] PLC: FCT1 : 투입
> 2st : 2.42
[21:12:15.09] PLC: VISION1 : 투입
[21:12:17.51] PLC: FCT2 : 투입
> 2st : 2.42
2-4) 첨부파일과 같이 dataframe 출력될 것
| id | no | seq | from_contents | from_time | to_contents | to_station | to_time | ct |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1st | PLC: UP1 | 21:12:15.09 | PLC: FCT1 : 투입 | FCT1 | 21:12:17.51 | 2.42 |
| 2 | 1 | 2st | PLC: VISION1 : 투입 | … | PLC: FCT2 : 투입 | FCT2 | … | … |
| 3 | 1 | 3st | PLC: VISION1 : 투입 | … | PLC: FCT1 : 투입 | FCT3 | … | … |
| … | … | … | … | … | … | … | … |
2-5) a.테이블 contents : PLC: UP4 : 투입 ~ PLC: UP4 : 배출 에 해당하는 컬럼 time의 속성값을 범위로 할 것
→ 해당 범위들을 컬럼 no를 추가하여 속성값으로 1,2,3…순서를 넣어서 구분
2-6) 1st 적재 제품 시간은 a.테이블 contents : PLC: UP4 : 투입 ~ PLC: FCT3 : 투입 or PLC: FCT4 : 투입 까지의 컬럼 time의 속성값 차이를 새로운 컬럼 ct 를 만들어 소수점 2자리까지 기입
→ contents : PLC: UP4 : 투입 에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 from_contents와 from_time의 속성값으로 들어 갈것
→ contents : PLC: FCT3 : 투입 or PLC: FCT4에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 to_contents와 to_time의 속성값으로 들어 갈것
→ contents : PLC: FCT3 : 투입 or PLC: FCT4 내용 중 FCT3과 FCT4는 새로운 컬럼 to_station의 속성값으로 들어갈 것
컬럼 ct의 속성값_예시) [21:12:15.09] PLC: UP4 : 투입
[21:12:17.51] PLC: FCT3 : 투입
> 1st : 2.42
[21:12:15.09] PLC: UP4 : 투입
[21:12:17.51] PLC: FCT4 : 투입
> 1st : 2.42
2-7) 2~ 21st까지는 아래의 조건에 따라 산출될 것
→ a.테이블 contents : PLC: VISION2 : 투입 ~ contents : PLC: FCT3 : 투입 or PLC: FCT4 : 투입까지의 컬럼 time의 속성값 차이를 새로운 컬럼 ct에 속성값으로 넣을 것, 소수점 2자리까지 나타낼 것
→ contents : PLC: VISION2 : 투입 에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 from_contents와 from_time의 속성값으로 들어 갈것
→ contents : PLC: FCT3 : 투입 or PLC: FCT4 에 해당하는 컬럼 time의 속성값들은 각각 새로운 컬럼 to_contents와 to_time의 속성값으로 들어 갈것
→ contents : PLC: FCT3 : 투입 or PLC: FCT4 내용 중 FCT3과 FCT4는 새로운 컬럼 to_station의 속성값으로 들어갈 것
컬럼 ct의 속성값_예시) [21:12:15.09] PLC: VISION2 : 투입
[21:12:17.51] PLC: FCT3 : 투입
> 2st : 2.42
[21:12:15.09] PLC: VISION2 : 투입
[21:12:17.51] PLC: FCT4 : 투입
> 2st : 2.42
2-8) 2번째 첨부파일과 같이 dataframe 출력될 것
| id | no | seq | from_contents | from_time | to_contents | to_station | to_time | ct |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1st | PLC: UP4 | 21:12:15.09 | PLC: FCT3 : 투입 | 21:12:17.51 | 2.42 | |
| 2 | 1 | 2st | PLC: VISION2 : 투입 | … | PLC: FCT4 : 투입 | … | … | |
| 3 | 1 | 3st | PLC: VISION2 : 투입 | … | PLC: FCT2 : 투입 | … | … | |
| … | … | … | … | … | … | … | … |
각 출력된 dataframe에 컬럼 seq, to_station의 속성값 별로 컬럼 ct의 속성값을 boxplot으로 GMM으로 나타내서 정상과 비정상 그래프를 나타낼 것
→ 샘플 수가 많은 부분을 정상, 같을 경우 평균값이 작은 부분을 정상
컬럼 seq, to_station의 속성값별로 비정상을 제외하고 정상의 평균값들을 새로운 loading_ct컬럼을 추가해서 속성값으로 넣을것ㅕㄴ