Skip to main content
Skip table of contents

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 명령어를 사용하여 구현한 예시의 경우 다음과 같이 동작합니다.

  1. Main 문에서 첫 라인부터 순차적으로 태스크 프로그램이 실행 됩니다.

  2. Call Sub에서 호출한 Sub(A)로 이동합니다.
    • 예시
      • 프로그램: Grip 서브루틴을 호출합니다.
      • 로봇: 동작 없음

  3. Sub(A)가 구동 됩니다. 모든 Sub 문의 라인이 순서대로 구동한 후 Main 문의 복귀 하고 다음 라인을 실행합니다.
    • 예시
      • 프로그램: Grip 서브루틴 내 라인을 순차적으로 실행합니다. Output[1]을 ON으로  Output[2]를 OFF로 Set 명령어를 사용하여 설정합니다.
      • 로봇: 로봇에 장착된 그리퍼가 쥐기(Grip) 동작을 합니다.

  4. Call Sub에서 호출한 Sub(B)로 이동합니다.
    • 예시
      • 프로그램: Release 서브루틴을 호출합니다.
      • 로봇: 동작 없음

  5. Sub(B)가 구동 됩니다. 모든 Sub 문의 라인이 순서대로 구동한 후 Main 문의 복귀 하고 다음 라인을 실행합니다.
    • 예시
      • 프로그램: Grip 서브루틴 내 라인을 순차적으로 실행합니다. Output[1]을 OFF로  Output[2]를 ON으로 Set 명령어를 사용하여 설정합니다.
      • 로봇: 로봇에 장착된 그리퍼가 펴기(Release) 동작을 합니다.

Sub 명령어 추가하기

  1. Task Editor 모듈의 우측 Command 메뉴의 Flow Control 항목에서 Sub 명령어를 추가합니다.
  2. 서브 루틴 이름을 작성합니다.

CallSub 명령어 추가하기

  1. Task Editor 모듈의 우측 Command 메뉴의 Flow Control 항목에서 Call Sub 명령어를 추가합니다.
  2. Sub 명령어로 등록한 서브 루틴 이름을 선택합니다. 



알아두기

  • 태스크 프로그램의 줄 수가 길어지면 서브루틴을 찾기 어려울 수 있습니다. 이 때 CallSub 명령어의 속성(Property)에서 선택된 서브루틴으로 이동하기(Go to selected Subroutine)를 터치하여, 해당 Sub 명령어의 줄로 포커스를 이동할 수 있습니다.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.