일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PMAC
- MFC
- RS232
- gauge
- 시리얼통신
- REGULATOR
- MelsecNet-G
- 맛집
- MODBUS
- hivac
- Gas box
- 폴링
- Helium
- cluster
- Dry etcher
- esc
- melsec
- Polling
- 레귤레이터
- CDG
- 설비제어
- HI-Vacuum
- 드라이에쳐
- rs-485
- ATM
- VACUUM
- pressure
- ION Gauge
- rs-232
- 가스
- Today
- Total
:: 진공에 대해 알려주마.
가속, 주행, 감속 그리고 TACT 본문
AOI(자동광학검사기) 셋업을 진행하였다.
2세대 글라스, 8세대 글라스, 6세대 마스크, 300mm 웨이퍼 등 여러 종류의 검사기 셋업을 경험하였다. 내가 생각하는 AOI 설비는 모션 제어와 카메라 제어가 전부라 해도 과언이 아닌 것 같다. 다른 분야에서는 아니라고 할지도 모르겠지만...
카메라는 비전 엔지니어가 별도로 셋업과 셋팅 그리고 테스트를 진행하고 관리한다. 카메라에 능하고 이미지 처리에 특화되어 고급 인력으로 분류된다. 그리고 좋은 대접을 받는다. 그 외 모든 부분은 제어(Software) 엔지니어가 처리한다.
카메라당 한대의 비전 PC를 운영하며 이 모든 연결은 소켓 통신을 주로 사용하여 신호와 데이터를 주고받는다. 제어는 웨이퍼나 글라스 꼭 잡아 고속으로 이동하며 비전 카메라가 원하는 스캔을 진행할 수 있도록 하는 것이 주목적이다.
AOI에서 제어는 웨이퍼를 고정 시키고 카메라가 원하는 방향과 속도를 구현하고 필요한 트리거 신호를 발생시켜 원하는 사양의 이미지를 획득하는 것을 목적으로 한다. 이를 다시 보정하여 원하는 패턴의 이미지를 생성하게 된다. 카메라가 이미지를 찍기 위하여 트리거 제네레이터가 모션의 엔코더에서 위치를 읽어와 일정 간격마다 신호를 발생시킨다.
Scan 카메라는 두 가지 형태로 구분된다. Area scan camera와 line scan camera가 그것이다. 이에 대한 참고 문서는 다음을 클릭하시라.
https://visionblog.vieworks.com/knowledge/camera-n-sensor/area-scan-vs-line-scan-what-is-right-for-my-application/
요즘 핫 아이템으로 떠오른 저항이 전혀 없다는 초전도체가 아닌 이상은 구동이 가능한 모든 장치에는 가속과 감속에 시간을 필요로 한다. 자동차가 순식간에 100Km로 달릴 수 없는 것처럼 원하는 속도를 내기 위하여 약간의 가속이 필요하다. 그리고 감속에도 시간이 필요하다.
제로백은 자동차가 정지 상태에서 시속 100Km에 도달하는데 필요한 시간을 말한다. 이것이 가속 시간이며 100Km로 정속 주행을 하기 위해서는 최소 제로백 시 간만 큼이 필요한 것이다. 당연히 제로백은 짧은 자동차는 수퍼카라고 불리며 많이 비싸다.
원하는 속도, 카메라가 인식 가능한 속도, 하드웨어 특성등을 고려하여 모터를 선정하고 거기에 맞는 제어 시스템을 구축해야 한다. 고사양으로 최고가의 하드웨어를 선정하여 설비를 만들면 당연히 원하는 성능은 나오겠지만 end user는 비슷한 성능에 저렴한 설비를 선택할 것이다. 결국 설비 사양에 맞추어 가장 가성비 좋은 부품을 선정해야 할 것이다.
하지만 항상 발생하는 문제는 우리가 계산한 것만큼 성능이 나오지 않는 것이다. 이렇게 되면 소프트웨어와 비전 인원이 야밤에 잃어버린 TACT을 찾아 헤매게 된다. 이렇게 헤매다 발견한 꿀단지 같은 것이 있었으니 여기에 적어본다.
에치 진공 설비에도 RF를 이용하여 원하는 출력을 얻기 위해서는 ramp up과 ramp down 기능이 있다. 무리 없이 안정적으로 원하는 출력을 내기 위해서는 여기에 약간의 시간을 둔다. 그리고 또 하나의 장점은 ramping 구간에서도 공정은 이루어 지므로 매번 동일한 경사를 가진 출력을 필요로 한다.
검사 설비에서도 가감속의 시간이나 거리가 중요한 이유는 카메라가 동작중인 경우에 속도가 달라지면 획득되는 영상의 밝기가 원치 않게 변할 수 있다. 느려지면 빛이 많이 감지하여 밝아지고 빠르면 반대로 어두워진다. 이것도 이미지 검사에 영향을 미치게 된다.
모든 개발자는 아래와 같은 결과를 얻고자 한다. 하지만 환경이 다 다르다 보니 원치 않는 결과를 얻게 된다. 실제로는 Not tun on, surge, dual RF의 harmonic, Gain, pulsing, duty cycle 등 공정 중 가장 안정적인 방법을 찾기 위해 많은 노하우가 적용된다.
디스플레이의 모션 path는 크게 복잡한 것이 없다. 글라스 형상이 사각형으로 전 영역 스캔 구간이 모두 동일하다. 가감속 구간만 잘 관리하면 나머지는 모션 컨트롤러가 최대한의 성능을 낼 것이다. 8세대의 경우 대면적으로 TACT를 최소화하기 위하여 카메라를 여러 대 설치하여 각 카메라가 맡은 구간을 담당하게 된다.
웨이퍼의 경우에는 원형으로 사이즈가 작아 카메라를 여려대 설치하기 어렵고 설치한다 하더라도 원형으로 효율적인 스캔이 쉽지 않다. 이러한 경우에는 새롭고 효율적인 최적화 루트를 새로 구성해야 한다. 아래의 내용은 최적화 과정을 설명한 것이다.
DISPLAY vs WAFER
원형에 맞게 스캔 구간을 설정하고 스캔 속도를 최대화하고 이미 확인된 라인 스캔 카메라의 촬상 영역을 최대화하여 Y축 이동 횟수를 줄여 카메라의 스캔 구간과 횟수를 최소화해야 한다. 아래는 최적화 과정을 그림으로 표시한 것이다.
여기까지는 스캔 루트를 최적화하는 과정이다. 보편적이고 제작 초기 하드웨어 설계하는 과정에서 계산된 모터의 속도와 각종 파라미터를 설정하여 구동하게 된다. 하지만 설계 과정에서 계산된 TACT이 나오지 않는 경우 당황할 수 있다.
이를 해결하기 위하여 각각의 스텝에 로그를 설치하고 이를 분석하여 지체 구간을 확인하고 이 구간을 분석하여 이를 제거하는 작업을 진행한다. 아래의 내용을 이렇게 분석된 내용을 기술한 것이다. 당시의 조건으로 거리와 시간을 표기하였으니 참고하시기 바란다.
아래는 Scan path에서 적색은 X축을 표시하였고 청색은 Y축을 표시한 것이다. Scan 장축의 경우 가감속 구간을 포함해도 scan 구간이 길어 크게 문제가 되지 않는다. 하지만 Y축의 경우 가감속 구간이 짧아 Y축 이동시에 시간 지연이 발생하는 것으로 확인되었다.
여기서 사용한 라인 스캔 카메라의 scan 폭이 10.0mm이며 이 스캔폭이 실제 Y축 이동 거리가 된다. Y축 모터의 가감속 거리가 5mm 정도여서 Y축을 이동하려면 가속 후 바로 감속이 되는 구조를 갖는다. 이는 Y축의 이동 거리가 짧아 정상 속도로 이동하지 못하고 가감속 구간 내에 이동 거리가 갇혀 있어 많은 시간을 소비한다. 이 시간을 최대한 제거해야 TACT을 맞출 수 있게 된다.
Y축 이동에 시간이 소요됨으로 이를 X축 감속 구간에 묻어 버리는(병렬처리) 기술이 필요하다. 스캔을 완료하고 감속 구간이 시작되면 모션 컨트롤러는 Y축 이동 명령을 내린다. 이렇게 되면 감속 5mm 이동하는 동안 Y축 가감속의 절반 정도를 절약할 수 있다. 이렇게 절약된 시간은 스캔수를 곱한 것만큼의 시간 개선으로 돌아온다.
이런 내용을 그림으로 표현해 보았다.
모션 컨트롤러와 PC가 이더넷을 이용하여 통신 결과를 받는데 명령 하나당 20~30ms 가 소요된다. 가능하면 하나의 명령으로 받은 정보를 회신받아서 처리해야 한다. 모터가 구동 중 위치를 받아 다른 명령을 보내려면 수십 밀리 초가 소요된다. 이러면 모터는 이미 목적지에 도착해 있을 것이다.
따라서 위와 같은 기능을 사용하기 위해서는 일부 기능을 모션 컨트롤러에 활당해야 한다. ACS를 예로 들면 ACS내부의 buffer 프로그램을 이용하여 가속과 감속, 스캔 좌표 그리고 Y축 좌표등의 정보를 전달하고 감속 구간 시작 시 Y축 이동을 동시에 진행하는 프로그램을 구성해야 PC와의 통신 시간 지연 없이 최적화를 할 수 있다.
// ACS SCRIPT
!! PC에서 전달받을 매개변수 선언
GLOBAL INT SEQ_NO
GLOBAL REAL SCAN_START_X
GLOBAL REAL SCAN_END_X
GLOBAL REAL NEXT_START_Y
GLOBAL INT X_ACC_OFFSET
!! PC와 통신은 숫자 (SEQ_ID)로 주고 받는다. PC에서 START(300)을 받을때까지 대기한다.
TILL SEQ_NO = 300
!! X축 모터를 (스캔 종료위치 + 감속구간)으로 이동 (실제스캔영역)
PTP (AXIS_X), SCAN_END_X + X_ACC_OFFSET
!! X축 모터가 감속 시작 위치에 올때까지 대기한다.
TILL ABS( APOS(AXIS_X) - (SCAN_END_X + X_ACC_OFFSET) ) < X_ACC_OFFSET
!! X축이 감속을 시작하면 Y축도 다음 스캔 위치로 이동한다.
PTP (AXIS_Y), NEXT_START_Y
!! X, Y축 모두 inposition이 될때까지 대기한다.
TILL MST(AXIS_X).#INPOS
TILL MST(AXIS_Y).#INPOS
ACS에서 사용하는 buffer의 프로그램을 예로 보여준다. 이렇게 구성해야 모션 컨트롤러와 PC의 통신 타임을 최소화할 수 있다. 또한 모션 컨트롤러에는 flying mode가 있어 좌표의 값을 미리 컨트롤러에 보내 저장된 위치를 자동으로 이동하여 카메라에 신호를 주고받아 원하는 이미지를 획득할 수 있다. 이렇게 되면 PC의 관여를 최소화하여 시간을 최적화할 수 있다.
'진공 > 노하우' 카테고리의 다른 글
설비 PC 제어 프로그램 관리 (0) | 2024.09.27 |
---|---|
Excel에서 dataGridView 붙여넣기 (0) | 2024.08.06 |
MODBUS 2 (0) | 2023.10.14 |
리부트 (0) | 2023.09.23 |
TOOLS (Type casting and ...) (0) | 2023.08.26 |