본문 바로가기
PLC 전기제어 기술자료/샘플 프로그램 & TIP

[UVW STAGE] 보정이송량 연산과 현재위치값 역산 프로그램 샘플

by 위치결정 2025. 3. 8.
반응형

 

UVW 스테이지는 비전을 활용하여 3축 혹은 4축 짜리 구동로봇을 활용하여 정밀하게 정렬 보정 구동을 할수 있는 유니트 입니다.

 

그런데 삼각함수를 활용한 계산들이 많기 때문에 처음 접한 분들은 생각보다 어려워 하는 경우가 많죠.

스터디와 실제 설비에 적용 까지 가능한 프로그램 샘플을 준비해서 공유 드립니다.

이를 활용하셔서 스터디하시거나 실제 프로젝트에 활용해보세요.

 

 

< 샘플 프로그램 기능 >

1. UVW 스테이지 보정 이동량 계산 (X, Y, T > UVW축 위치값)

2. UVW 축 위치를 역산하여 현재 X, Y, T 값 추출 (UVW축 위치값 -> X, Y, T)

 

 

 

< 프로그램 설명 >

 

프로그램의 구성은 크게 3가지로

1. UVW스테이지 기구 스펙 파라미터 설정 : _/ Set UVW Stage Parameter [ZR0]

2. UVW스테이지 보정이동량 연산 : _/ Compute UVW Moving Amount [D0]

3. UVW스테이지 현재위치 역산 : _/ Compute Current X, Y, T Degree [D300]

입니다.

 

 

< 1. UVW 스테이지 기구 스펙 파라미터 설정 >

UVW 스테이지의 기구적 스펙 파라미터를 등록합니다.

예시로 작성된 샘플은 아래와 같은 4축 UVW 스테이지 기구 기반입니다.

 

각 축 베어링 중심 반지름 : 134.35

θ X1 : 45 º

θY1 : 135 º

θX2 : 225 º

θY2 : 315 º

 

 

각 축의 구동 가능한 거리값의 리미트를 설정합니다.

샘플프로그램은 UVWR (X1, Y1, X2, Y2) 각축의 로봇 스트로크는 +-10 mm로 총 20mm를 구동할수 있는 스테이지를 기반으로 작성되었습니다.

 

실제 사용하려는 구동부에 맞추어 위 파라미터를 각각 알맞게 수정하면됩니다.

※ 3축 UVW 스테이지라면 Y2 연산값을 무시하면 됩니다.

 

 

 

< 2. UVW 스테이지 보정이동량 계산 >

UVW 스테이지의 보정량 이동값 계산은 위 공식을 기반으로 합니다.

3축 UVW 스테이지 기준의 공식이지만 Y2 축이 하나 더있다면 Y축의 sin 계산을 한번 더 해주면됩니다.

 

중요한건 현재 각도움직일 각도 두 값을 기반으로 각 축이 얼만큼 움직여야 하는가를 계산하는것이기 때문에

공식은 한번쯤은 실제 수치를 대입해서 계산해보시는걸 적극 권장드립니다.

 

저 공식을 래더로 옮긴 샘플은 아래와 같습니다.

 

1. U (X1) 축 이동량 계산

 

2. V (Y1) 축 이동량 계산

 

3. W (X2) 축 이동량 계산

 

 

4. X (Y2) 축 이동량 계산

 

각도 이동시 각 축이 이동해야하는 이동량 계산은 이렇게 완료되었습니다.

이제 X축 방향과 Y축 방향의 이동량 계산도 합니다.

 

 

이를 토대로 각 축이 움직여야할 총 이동량을 구해줍니다.

 

그리고 마지막으로 현재 위치에서 이동량을 추가로 더하여 최종 이송값을 연산합니다

 

참 쉽죠?

 

 

머리아프니 첨부한 HMI 를 통해 설명하자면 아래 그림과 같습니다.

계산에 필요한 UVW 스테이지의 이송전 위치, 이송량

이를 기반으로 연산한 각축의 이송량

현재 위치에 이송량을 더한 절대값 이송위치

 

이래도 어려우시다면? 걱정할게 없죠.

첨부드린 래더 프로그램과 HMI 작화를 시뮬레이터나 실물 PLC에 WRITE 하셔서 테스트 해보시면 그만입니다.

요리조리 만져보다 보면 감이 올겁니다.

그래도 모를수도 있다고요? 상관없어요. 이미 연산이 되는 결과물을 손에 얻으셨으니 동작하는 구조만 파악하셔서 활용하시면됩니다.

 

< 3. UVW 스테이지의 현재 X, Y, T 위치값 역산 >

위에서 열심히 연산하여 UVW 스테이지 각축이 어떠한 값으로 이동을 했습니다.

예를 들어 0도에서 +1도 이동을 했더니 X1, Y1, X2, Y2 축들이 각각 -1.6724mm, 1.6725mm 위치로 이동을 했군요.

X1 : -1.6724

Y1 : -1.6724

X2 : 1.6725

Y2 : 1.6725

 

여기서 우리는 이 위치라면 UVW 스테이지가 1도 이동한 위치라는것을 알게되었습니다.

 

그러면 여기서 문제가 있습니다. 이 모션값만 보고 스테이지가 X, Y, T 각각 얼마나 이동했는지 역산이 가능해야 좀더 유연하게 UVW 스테이지를 제어 할수 있을것입니다.

 

아니 0도에서 1도를 움직였으니 1도가 아니냐구요?

그건 0도에서 1도를 움직였다는 과정을 아니까 결과론적으로 알수있는것이지요

 

다시 예를들어 아래 그림과같이 스테이지가 기동을 하였습니다.

 

이 스테이지는 지금 X는 얼마나, Y는 얼마나, T는 얼마나 움직였을까요?

그냥 봐서는 알기 어렵죠.

 

하지만 이를 구할수 있습니다.

위의 UVW 스테이지 이송량을 계산한 계산을 역산하면 되지요.

이부분의 자세한 설명은 래더로 대체하도록 하겠습니다.

 

1. X 위치값 역산

 

우선 X1축의 값과 X2축의 값을 더합니다. 그리고 그것을 2로 나누면 놀랍게도 짜잔 X의 위치값이 나옵니다.

 

2. Y 위치값 역산

 

Y축은 X1축의 값과 X2축의 값을 빼줍니다.

그리고 그것을 2로 나누어주고 이 값에서 Y1축의 값을 빼주면, 짜잔 Y축의 위치값이 나옵니다.

 

3. T 위치값 역산

각도의 역산이 살짝 더 길지만, 이는 저 위에서 각도 이동시 각축의 이송량을 계산한 삼각함수를 역삼각함수로 역산한 것입니다. 네 이건 눈으로 보고 넘기시죠.

 

암튼 이렇게 연산하면 스테이지의 T 각도 위치값이 나옵니다. 

그 결과는 X, Y, T (D390, D392, D394) 순서대로 디바이스에 저장되어 보여지게 됩니다.

 

축하드립니다. UVW 스테이지를 마스터 하셨습니다.

짝짝짝!

 

※ 본 샘플 프로그램은 4축 UVW 스테이지용 이지만 3축 UVW 스테이지 일 경우 Y2 축의 이송량 값만 무시하시면 됩니다.

스테이지의 베어링 반지름, 각축의 세타 각도 파라미터만 적절하게 수정하셔서 활용하시면 범용적으로 활용하실수 있으실것으로 예상됩니다 :)

 

UVW Stage Basic_250326.gxw
1.10MB
UVW Stage Basic_250313.prx
0.41MB

반응형