Skip to main content
Skip table of contents

sub_program_run(name)

기능

별도의 파일로 작성된 서브프로그램을 실행합니다.

인수

인수명자료형기본값설명

name

string

-

서브 프로그램 이름

리턴

설명

module

실행된 서브 프로그램의 모듈 객체

예외

예외설명

DR_Error (DR_ERROR_TYPE)

인수들의 데이터형 오류 시

DR_Error (DR_ERROR_VALUE)

인수의 값이 유효하지 않을 시

DR_Error (DR_ERROR_RUNTIME)

C Extension 모듈 에러 발생 시

DR_Error (DR_ERROR_STOP)

프로그램 강제 종료 시


알아두기

  1. 서브프로그램의 첫줄에 반드시 “from DRCF import *” 구문이 있어야만 합니다.
  2. 티칭 펜던트 사용하는 경우, 본 구문이 자동 삽입됩니다.
  3. 메인프로그램과 서브프로그램간에 함수와 전역 변수를 서로 접근할 수 있습니다. , 메인프로그램에서 서브프로그램의 함수와 전역 변수를 접근할 수 있고, 반대로 서브프로그램에서 메인프로그램의 함수와 전역 변수를 접근할 수 있습니다. 하기 예제2를 참조 바랍니다.
  4. 메인프로그램과 서브프로그램의 전역 변수 이름이 같은 경우, 각각 다른 변수로 동작함에 유의 바랍니다. , 서로 변수 참조가 되지 않습니다.
  5. 메인프로그램과 서브프로그램의 함수 이름이 같은 경우, 스코프 룰 상 호출된 파일내의 함수가 호출됩니다.


예제 1

PY
# subProgramA, subProgramB 가 사전에 작성 저장되어 있어야 합니다. 

<subProgramA.drl>
from DRCF import *
movej([0,0,90,0,90,0], vel=30, acc=30)

<subProgramB.drl>
from DRCF import *
movej[(10,0,90,0,90,0), vel=30, acc=30)

<main program>
while True:
var_select = tp_get_user_input("Select File", DR_VAR_INT)
if var_select == 0:
sub_program_run("subProgramA") # subProgramA 실행
elif var_select == 1:
sub_program_run("subProgramB") # subProgramB 실행


예제 2

PY
# subProgram이 사전에 작성 저장되어 있어야 합니다. 

<subProgram.drl>
from DRCF import *
g_sub_count = 1 # subProgram의 전역변수

def funcA():
global g_main_count
global g_main_var
g_main_var += g_main_count # main Program의 전역변수 접근
return 0

def funcB():
global g_sub_count
global g_main_var
g_main_var += g_sub_count # main Program의 전역변수 접근
return 0

global main_func 
main_func() # main Program의 함수 접근

<main program>
def main_func(): # main Program의 함수
tp_log("main_func called")
return 0
g_main_var = 0 # main Program의 전역변수
g_main_count = 10 # main Program의 전역변수 

#import subProgram
subModule = sub_program_run("subProgram")

#subProgram 내의 funcA() 함수 호출
subModule.funcA() 

tp_log("funcA: g_main_var = " + str(g_main_var))

# subProgram 내의 전역 변수 g_sub_count 접근
subModule.g_sub_count += 1

#subProgram 내의 funcB() 함수 호출
subModule.funcB()

#연산 결과 값 : "12"
tp_log("funcA: g_main_var = " + str(g_main_var))
JavaScript errors detected

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

If this problem persists, please contact our support.