Sub/Call Sub 알아보기
OPTIONAL NORMAL 5 MIN
Sub는 서브루틴(Subroutine)의 약어입니다. 서브루틴이란 2회 이상 중복 사용되는 부분이 있을 때 그 부분을 별도로 필요할 때마다 호출하여 사용함으로써 프로그램의 스텝수를 절약하는 처리를 의미 합니다.
- 두산 로봇에서는 Sub 명령어와 해당 Sub 문을 호출 하기 위한 CallSub 명령어를 제공합니다.
- Sub 명령어는 Python 언어의 define 기능과 동일한 기능입니다.
알아두기
- Sub 문은 Main 문의 시작인 MainSub와 끝인 EndMainSub의 외부에 추가해야 합니다.
- Sub 명령어는 반복 뿐만 아니라 Main 문을 간소화 하기 위해서도 사용될 수 있습니다. Sub 명령어를 적절히 활용하면 Main 문에서 현재 어떤 작업이 이뤄지는지 직관적으로 파악할 수 있습니다.
- Sub 명령어를 활용하면 Sub 문 단위의 단위 테스트를 진행할 수 있습니다.
로봇에서 그리퍼의 쥐기(Grip)와 펴기(Release) 동작을 Sub 명령어를 사용하여 구현한 예시의 경우 다음과 같이 동작합니다.
- Main 문에서 첫 라인부터 순차적으로 태스크 프로그램이 실행 됩니다.
- Call Sub에서 호출한 Sub(A)로 이동합니다.
- 예시
- 프로그램: Grip 서브루틴을 호출합니다.
- 로봇: 동작 없음
- 예시
- Sub(A)가 구동 됩니다. 모든 Sub 문의 라인이 순서대로 구동한 후 Main 문의 복귀 하고 다음 라인을 실행합니다.
- 예시
- 프로그램: Grip 서브루틴 내 라인을 순차적으로 실행합니다. Output[1]을 ON으로 Output[2]를 OFF로 Set 명령어를 사용하여 설정합니다.
- 로봇: 로봇에 장착된 그리퍼가 쥐기(Grip) 동작을 합니다.
- 예시
- Call Sub에서 호출한 Sub(B)로 이동합니다.
- 예시
- 프로그램: Release 서브루틴을 호출합니다.
- 로봇: 동작 없음
- 예시
- Sub(B)가 구동 됩니다. 모든 Sub 문의 라인이 순서대로 구동한 후 Main 문의 복귀 하고 다음 라인을 실행합니다.
- 예시
- 프로그램: Grip 서브루틴 내 라인을 순차적으로 실행합니다. Output[1]을 OFF로 Output[2]를 ON으로 Set 명령어를 사용하여 설정합니다.
- 로봇: 로봇에 장착된 그리퍼가 펴기(Release) 동작을 합니다.
- 예시
Sub 명령어 추가하기
- Task Editor 모듈의 우측 Command 메뉴의 Flow Control 항목에서 Sub 명령어를 추가합니다.
- 서브 루틴 이름을 작성합니다.
CallSub 명령어 추가하기
- Task Editor 모듈의 우측 Command 메뉴의 Flow Control 항목에서 Call Sub 명령어를 추가합니다.
- Sub 명령어로 등록한 서브 루틴 이름을 선택합니다.
알아두기
- 태스크 프로그램의 줄 수가 길어지면 서브루틴을 찾기 어려울 수 있습니다. 이 때 CallSub 명령어의 속성(Property)에서 선택된 서브루틴으로 이동하기(Go to selected Subroutine)를 터치하여, 해당 Sub 명령어의 줄로 포커스를 이동할 수 있습니다.