:: 진공에 대해 알려주마.

리부트 본문

진공/노하우

리부트

하이백 2023. 9. 23. 23:55

요즘은 윈도우를 기본으로 하여 설비 제어 프로그램을 구성하게 된다. 요즘 윈도우는 매우 안정적이라 OS가 Down 되는 경우가 거의 없지만 이전에는 일주일이 멀다 하고 죽어 나갔다. OS가 문제인 경우도 있었으며 제어 프로그램이 문제가 되는 경우도 있다. 

이런 경우 가장 문제가 되는 것은 출력 제어이다. 출력이 나가는 상태에서 OS나 프로그램이 죽으면 출력은 그대로 유지된다. 특정시간 동안 진행되어야 할 공정이 시간을 초과하게 된다. 이때는 웨이퍼는 물론이고 설비의 하드웨어까지도 손상을 줄 수 있다. 

제어 해야할 장치가 아래와 같다. 동작중 PC가 다운되면 즉시 적절한 조치가 취해져야 한다. 특히 식각(Etching)은 즉시 멈추도록 해야 한다.

ETCH 공정 설비는 제어 해야할 장치가 많다.

 


 

프로그램을 사용 중에 OS 혹은 제어 프로그램이 원인이 되어 일명 뻑나거나 먹통이 되는 경우 프로그램이 다시 실행해야 하는 경우가 있다. 제어 프로그램을 껐다가 다시 켜는 것이다. 이러한 경우 마지막 동작이 상당히 중요해진다.

측정 설비 같은 경우는 처음부터 다시 측정하면 된다. Etch, depo, annel, furnace 등의 설비는 어디 까지를 진행 했는지 기록으로 남겨야 프로그램을 재시동할 때 중단된 시점에서부터 재 진행 할 수 있다. Time out전에 멈추면 확인하여 추가로 작업이 진행 가능하다. 하지만 시간을 초과하면 되살릴 방법이 없다. 

간단히 비유하자면 컵에 물을 채우는 경우 물을 채우다 문제가 생기면 잠시 멈춘 후 확인하고 원하는 만큼 다시 채우면 된다. 하지만 멈추지 못하고 넘치는 경우 바닥을 청소해야 하고 물을 다시 덜어내야 하며 등짝 스매싱도 예상해야 한다.

 


 

DRY-ETCH 설비를 기준으로 설명하면 프로그램이 먹통이 되는 경우 반드시 RF Generator의 출력을 차단해야 한다. dry etch의 핵심은 RF의 출력이다. 공정용 가스를 이용하여 챔버의 압력을 맞추고 RF를 켜는 순간 etch(식각)이 시작된다.

Etch(식각)은 시간 혹은 EPD(End Point Detecter)를 이용하여 끝내는 시점을 정하게 된다. 만일 공정이 진행 중 프로그램이 먹통이 되면 이후 시간 측정이 불가하게 된다. 이는 무한에칭(Endless etching)으로 한 장의 웨이퍼를 보내게 된다. 양산 설비는 이러한 경우를 대비하여야 한다. 하드웨어를 이용하여 이러한 현상을 막는 기능을 구현해야 한다. OS와 제어 프로그램으로부터 독립된 구조를 가져야 한다. 그렇지 않은 경우에는 OS와 같이 Death of... 답게 Death가 될 것이다.

Annel 설비는 PLC를 사용하여 제어하는 경우가 많은데 웨이퍼는 투입하여 진행 중 로봇이나 기타 문제로 annel time이 지정된 시간을 초과하는 경우 heater를 off 하고 설비의 상단 도어를 open 하여 열을 배출하는 기능을 가진다. PLC는 프로그램 먹통이 거의 없기는 하지만 기타 주변 장치의 이상으로 발생하는 예외 상황을 고려한 동작이다.

 


 

프로그램을 껐다 켜면 가장 흔한 현상으로 실제 출력과 화면에 표시되는 출력이 다른 것을 볼 수 있다. 이러한 현상이 위험한 이유는 실제 출력은 나가지만(무엇인가 동작한다는 의미) 화면에는 출력이 꺼진 것으로 표현되기 때문에 해당 인터락(사고를 막기 위한 출력 신호제어)이 잘 구현되지 않았다면 사고 이어질 수 있다.

이러한 현상이 나타나는 경우는 간단하다. 제어 PC와 통신으로 연결된 출력 모듈에 출력은 내보내고 있는 상태에서 PC가 리셋되는 경우 출력 모듈은 자기 유지 회로가 있어 마지막 상태를 유지하게 된다. 하지만 PC는 리셋되어 모든 출력값을 0으로 표시한다. 이렇게 되면 출력은 나가고 있으나 화면엔 초기치로 표시하게 된다. 

PC가 리부트 되면 최초에 Module에 값을 읽어와 화면에 표시해야 한다.

 

이를 해결하기 위해서는 프로그램이 부팅될 때 출력 모듈의 값을 읽어와 다시 화면에 표시해야 한다. 하지만 현재 출력값을 feedback 해주지 않는 장치도 있다. 이러한 경우 storage에 마지막 출력값을 항시 저장하였다가 프로그램 재시작 시 이를 읽어와 화면에 표시하기도 한다.

이는 출력뿐만 아니라 모터의 엔코더 값등 모든 출력 장치에 해당한다. 프로그램이 재 실행되는 경우 현재 모터 위치를 읽어오는 것은 물론 목표 위치도 읽어와 다시 화면에 표시해 주는 것이다. 

여기에서 가장 중요한 것은 OS나 제어 프로그램이 먹통이 되어도 생산 제품에는 문제없으면 가장 좋은 상황이겠지만 그렇지 않은 경우가 대부분이다. 항상 말하지만 이런 경우 누군가 고객과 면담을 하는 광경을 보게 될 것이다.

예전에 이를 대비하기 위하여 작업한 많은 보완책을 알고 있다.

RF의 On/off를 제어하는 출력보드의 펌웨어를 수정하여 RF를 turn on 하기 전 time out 시간을 해당 보드에 미리 설정하고 turn on을 시동한다. 보드는 time out 동안 off 신호가 없으면 강제로 off를 한 후 신호를 보내는 것이다.

 


 

여기에 중요한 것이 또 하나 있다. 위에서 처럼 읽어 올 수 없는 값들이 있다. 예로 모듈의 상태는 장치에서 읽어오는 것이 아니라 몇 가지 상태를 조합하여 표시하게 된다. 이러한 경우 프로그램 re-start로 출력값이 없이 지는 경우 마지막 상태를 알기 어렵다.

이러한 경우에는 중요한 상태값이라고 판단되는 값은 항상 저장하여야 한다. Loop, thread를 생성하여 값을 계속 저장하는 것이다. 이것도 프로그램이 re-start 되면 값을 읽어와 화면에 표시하여야 한다. 그래야 사용자가 상태를 파악하는데 도움을 줄 수 있다. 

 

'진공 > 노하우' 카테고리의 다른 글

가속, 주행, 감속 그리고 TACT  (0) 2023.11.01
MODBUS 2  (0) 2023.10.14
TOOLS (Type casting and ...)  (0) 2023.08.26
"A\0B\0C\0\0\0\0\0\0\0\0\0"  (0) 2023.04.08
VIEW MON of RS-485  (0) 2022.11.20
Comments