2018년 11월 27일

스캐너와 레이저간 동기화 방법

1. 트래킹 에러(Tracking Error) 시간값

스캐너는 두개의 모터끝에 거울을 장착하고 있고, 그 모터의 회전량을 아주 작지만 고속으로 움직이도록 목표로 되어 있습니다. 결국 두 거울에 레이저 광선을 쏘아 반사시켜 2차원 평면 영역에 가공을 하고자 하는 것인데요.

지정된 속도가 마이크로 벡터 단위(10usec)로 출력이 되나 실제 스캐너의 움직임이 따라오지 못하는 모습

사용자가 특정 가공 속도를 지정하게 되면, 스캐너 제어기는 통상 매 10 마이크로초(usec)의 제어 주기(micro-vectoring)로 이 속도 프로파일을 출력시키게 됩니다. 하지만 위 그림처럼 스캐너 장치에 장착된 모터의 움직임은 질량(거울등의 무게 부하)이 있으므로 사용자가 원하는 가공속도를 지정하더라도 각각 가속 감속을 필연적으로 동반하게 되며, 결국 사용자의 명령시간과 실제 모터의 움직인 시간의 차이가 발생하게 됩니다. 이를 통상 트래킹 에러(Tracking error) 라 부릅니다.

트래킹 에러 = 명령된 시간 - 실제 위치에 도달한 시간

일부 스캐너 제어기들은 트래킹 에러 시간값을 직접 입력받아 "스캐너의 구동시작과 레이저 광선의 시작간의 지연(불일치)을 해결" 하기도 합니다.



만약 트레킹 에러값이 실제 에러값보다 너무 크게 설정 되면,
스캐너가 너무 빠르게 응답한다고 설정한 것이기 때문에 레이저를 일찍 쏘개 되어 시작점(mark 시작점)에서 레이저가 과도하게 뭉치게 진행되며, 실제 에러값보다 너무 작게 설정 되면 스캐너가 너무 느리게 응답한다고 설정한 것이기 때문에, 레이저를 늦게 쏘개 되어, 시작점(mark 시작점)이 이빨이 빠진채로 진행될 수 있겠지요. 적정한 값은 해당 벤더의 사양서를 참고해 주시기 바랍니다. 대략적인 근사값은

트래킹 에러 = 스캐너 가속시간 * 0.6 

스캐너 제품별 Tracking Error 시간값 (공급사에서 제공)

마지막으로, 스캐너의 레이저 광선 구경(Apperture)가 클수록 내부에 사용된 거울의 질량이 크고, 소위 무겁고 굼뜨기 때문에 트래킹 에러 가 당연히 클수밖에 없습니다. 제조사에서는 무게를 줄이기 위해 거울이 디자인을 네모반듯하게 만드는 것이 아닌 레이저 광선이 반사되지 않는 끝 영역을 없애 무게를 줄이기 위해 다양한 형상을 만들고 있습니다.


무게를 줄이기 위해 반사에 불필요한 면적을 줄여 다양한 반사거울의 모습.


2. 레이저 트리거 지연 (On Delay) 시간값

스캐너와 유사하게 레이저 출력장치 역시 레이저 출사를 시작할때 유사한 오차값을 가지고 있습니다. 즉 외부에서 사용자가 레이저 출력을 시작하는 신호를 주는 시간과 실제 레이저가 발진하는 시간의 차이(On delay)가 존재하게 됩니다. 

레이저 트리거 시작 지연 (On delay) = 외부출력 시작 신호 시간 - 실제 레이저 발진 시작 시간

이 지연값은 레이저 소스의 종류및 발진방식에 따라 매우 다르기 때문에 해당 벤더의 사양문서를 참조하여 설정해야 합니다.

3. 점프 지연값 (Jump Delay)

스캐너는 두가지 큰 움직임을 합니다. 레이저를 출사하지 않고 이동하는곳(jump)과 출사하면서 이동하는곳(mark)으로, 사용자가 점프 속도와 가공속도 각각 2가지 속도값을 지정하게 됩니다.

스캐너가 점프을 완료하게 되면,  즉 감속을 시작하게 되면 약간의 출령임(?)이 유발되게 되고 이 같은 상태가 안정화 되기까지 안정화 시간이 필요합니다. 이를 점프 지연(jump delay) 으로 부르고 있으며, 통상 점프 속도가 클수록, 거리가 멀수록, 지연값도 같이 높여 설정해 주어야 합니다. 50km/h 차와 100km/h 차의 브레이크를 밣았을때 멈추기 까지 서로 다른 시간이 필요한것을 상상해 보시기 바랍니다.

만약 스캐너가 가감속을 충분히 하지 못할만큼 점프구간이 매우 짧다면, 점프 지연값을 작게 사용하는게 차라리 낫게 됩니다. 왜냐하면 스캐너가 충분히 목표 속도에 도달하지 못할정도였고, 이 때문에 가감속 관성이 작아졌다면 안정화에 필요한 지연시간이 클 필요가 없기 때문입니다.

SCANLAB RTC 제어기의 variable jump table 설정된 모습


이처럼 점프 거리에 따라 점프 지연값을 다양하게 사용해야 할 경우가 있기 때문에, 특정 제어기들은 점프 거리에 따른 지연값 테이블을 지정할수있는 기능을 제공하기도 합니다. 이 점프 지연값이 작을수록 전체 가공시간이 짧아지기 때문에 점프가 많은 가공의 경우 당연히 전체 가공시간도 같이 짧아지게 되겠지요? 반대로 충분히 큰 값을 사용하면 총 시간이 늘어나지만 스캐너 감속에 필요한 안정시간이 충분히 부여되므로 여유가 생기게 됩니다.
물론 높은 점프 속도와 짧은 점프 지연값의 사용으로 누군가의 퇴근이 빨라질수 있습니다 !

4. 마크 지연값 (Mark Delay)

앞서 점프 지연과 마찬가지로, 실제 레이저 가공을 마치는 시점(mark)에도 명령된 위치와 실제 스캐너 위치의 차이가 있습니다. 즉 스캐너는 아직 명령된 위치에 오지 못했는데 레이저 출력 신호를 꺼버리게 되면 끝 부분의 가공이 되다 말게 되는 것입니다. 이는 트레킹 에러로 인한 것으로 보아야 겠지요.

결국 스캐너가 Mark 명령을 완료한 후 실제 명령된 도착 위치에 올때까지 대기 혹은 지연되는 시간값을 마크 지연값(Mark delay)이라고 합니다. 물론 값이 크면 안정시간이 충분히 부여되므로 여유가 생기게 되지만 총 가공시간이 늘어나겠지요.


5. 폴리 지연값 (Poly Delay)

앞서 본 마크 지연값은 마크 명령의 끝에서 발생되지만, 통상 'ㄱ' 형태와 같이 하나이상의 연속된 마크 명령을 주로 사용합니다. 이때 연속된 마크 명령 사이에 지연시간을 줄수있는 것이 폴리곤(Polygon) 혹은 줄여서 폴리 지연값입니다.

당연히 이 값을 많이 주게 되면 꺽이는 부분에서 시간이 지연되고 그 시간동안 레이저 광선이 더 맞게 되는 효과가 있습니다. 이를 활용하면 꺽이는 부분을 부드럽게(?) 혹은 각지게(?) 하는 효과를 얻을수 있게 됩니다.

하지만 꺽이는 각도가 그 모양에 따라 다른데, 한가지 지연값만 지정할 경우 그 품질이 일정하지 못한 문제가 있습니다. 때문에 일부 제어기에서는 이 꺽이는 각도에 따라서 지연값 을 다양하게 지정할 수 있는 기능을 제공하기도 합니다.

댓글 2개:

  1. 언급하신 내용으로는 신호가 나올때가 있다는것으로 보아
    H/W 문제가 아닌것 같고, 소스코드의 일부라도 보아야 파악이 될수있을것 같습니다.

    답글삭제

시리우스 라이브러리 홈페이지 오픈

현재 시리우스(Sirius) 라이브러리라는 제품을 개발하고 이를 소개하는 홈페이지를 오픈 하였습니다. 관심있는 분들의 많은 방문 요청드립니다. 앞으로 업데이트 소식및 변경사항은 스파이럴랩 홈페이지를 통해 진행할 예정입니다. 스파이럴랩 홈페이지 :  h...