지난번 포스팅에서 로봇의 현재 위치가 특정 티칭위치 근처에 있는지 반환하는 함수를 소개해 드렸습니다.
KUKA KRL 현재위치가 특정 티칭위치 근처에 있는지 확인하는 함수
좌표공간에서 두 점 사이의 거리를 구하는 공식을 이용하여 로봇의 TCP가 특정 티칭위치 근처에 있는지 확인하는 함수를 소개합니다. 아래 함수는 첫번째 인수로 거리값을 mm로 받고, 두번째 인
dsseo.tistory.com
이번에는 해당 함수를 활용하여 지속적으로 PLC에게 로봇의 위치를 알려주는 방법을 소개해 드립니다. 산업용 로봇은 티칭된 위치에 있을 때 가장 안전 합니다. 로봇이 정지해 있을 때 누군가가 Jogging으로 로봇을 이도저도 아닌 위치로 이동시켜 두었다면, 해당위치에서 로봇을 구동하는 것은 매우 위험하며, 홈 복귀도 어려워 집니다.(넓은 공간에서 단순 Pick & Place를 하는 경우는 그나마 좀 낫습니다만...)
이제 다시 본론으로 돌아와서 방법을 소개해 드립니다.
먼저 티칭 포지션을 $config.dat 파일안에 아래와 같이 배열로 선언 합니다.
지난번 포스팅에서 소개해 드린 CHECK_LOCATION1를 함수를 활용하여 인수로 시작점과 끝점을 받아 어느 포지션에 로봇이 위치하는지 확인하는 함수 입니다. 이도저도 아닌 위치에서는 0을 반환 합니다.
이제 상시 구동 프로그램이 있는 sps.sub 파일에 아래와 같은 코드를 구성해 줍니다.
CHECK_LOCATION2 함수에 첫번째 인자로 100, 두번째 인자로 600을 전달해서 로봇이 100번 ~ 600번 티칭된 위치중 어디에 있는지 확인하는 코드 입니다.(티칭된 위치를 벗어나면 0을 반환합니다.)
이제 nCurPos에 저장된 값을 PLC에 전달해주면 끝입니다.
감사합니다.
'Programming > KUKA KRL' 카테고리의 다른 글
KUKA KRL 현재 로봇 위치가 특정 티칭위치 근처에 있는지 확인하는 함수 (2) | 2024.01.14 |
---|---|
KUKA KRL 숫자를 문자열로 변환하는 함수 (2) | 2024.01.06 |