22. Appendix

22.1. FAST FUNCTION 모드

  • 일반적인 Comizoa API의 함수 실행 단계는 다음과 같고 함수의 수행시간만큼 지연이 발생합니다.

어플리케이션에서 함수 호출

프로세서로 명령 전달

프로세서에서 명령 수행

프로세서에서 결과값 반환

어플리케이션으로 결과값 전달

  • Fast Function 모드는 함수의 지연이 발생되는 부분을 제거하는 모드로, Fast Function의 함수 실행 단계는 다음과 같습니다.

어플리케이션에서 함수 호출

프로세서로 명령 전달

수행 결과를 기다리지 않고 어플리케이션으로 반환

  • Fast Function 모드로 동작하는 함수들은 ‘_FF’ 접미어가 붙습니다.

Warning

Fast Function 모드의 함수들은 함수 수행이 완료되기 전에 함수에서 반환될 수 있다는 점을 유의해야 합니다.

22.2. NON-BLOCKING 모드

  • ecmSxMot_Move() 함수는 이송이 완료될 때까지 해당 함수안에서 대기한 후 함수에서 반환됩니다.

  • 이러한 함수가 별도의 쓰레드가 아닌 윈도우 이벤트/메시지 핸들러에서 실행되면 해당 함수가 반환되기 전까지는 윈도우의 메시지는 처리되지 않게 됩니다.

  • Non-blocking 모드는 함수의 완료를 기다리는 동안에도 윈도우 메시지를 전달하여 처리할 수 있도록 하는 모드입니다.

  • Non-Blocking 모드로 동작하는 함수들은 ‘_NB’ 접미어가 붙습니다.

Warning

작업 쓰레드에서 ComiECAT SDK 함수를 호출할 때에는 Non-blocking 함수들을 사용하지 말아야 합니다.


22.3. 에러코드표

일반 에러 코드

에러코드

에러코드명

설명

-5

ecERR_DEVICE_NOT_LOADED

지정된 디바이스가 로드되지 않은 경우

-6

ecERR_WDM_VER_READ_FAIL

WDM 드라이버에서 버전 정보를 읽는데 실패한 경우

-7

ecERR_FW_VER_READ_FAIL

Firmware 버전 정보를 읽는데 실패한 경우

-8

ecERR_DEV_BOOT_TIMEOUT

Master Device가 지정된 시 간 안에 부팅이 완료되지 않은 경우

-9

ecERR_DEV_BOOT_NOT_COMPT

Master Device가 아직 부트업이 완료되지 않은 경우

-10

ecERR_INVALID_BOARDID

Board ID 오류

-11

ecERR_INVALID_DEVID

Device ID 오류

-12

ecERR_INVALID_VERSION

SDK(DLL) WDM 드라이버 펌웨어(Firmware) 상호간에 버전이 호환되지 않는 경우

-20

ecERR_INVALID_NETID

Network ID 오류

-25

ecERR_INVALID_SLAVEID

슬레이브 인덱스 또는 슬레이브 주소가 잘못된 경우

-30

ecERR_INVALID_CHANNEL

축번호 또는 채널번호 등이 잘못된 경우

-40

ecERR_INVALID_IXMAP_IDX

Motion 제어 기능에서 Interpolation 보간 맵 번호가 잘못된 경우

-50

ecERR_INVALID_IXMAP_AXES

IXMAP에 포함된 축의 구성이 잘못된 경우

-55

ecERR_INVALID_LMMAP_IDX

리스트모션 보간 맵 번호가 잘못된 경우

-60

ecERR_INVALID_FUNC_ARG

함수의 매개변수가 유효하지 않은 값인 경우

-65

ecERR_INVALID_HANDLE

Invalid handle value가 매개변수로 전달된 경우

-66

ecERR_INVALID_RESULT_DATA

결과 데이터가 유효하지 않은 경우

-67

ecERR_INVALID_SIZE_INFO

크기 관련 데이터 정보가 유효하지 않은 경우

-69

ecERR_NULL_DLLNETCTXT

-70

ecERR_NULL_WDMNETCTXT

WDM 드라이버에서 제공하는 공유메모리 포인터가 NULL인 경우

-71

ecERR_NULL_INPDOLMEM

WDM 드라이버에서 제공하는 InPDO용 논리메모리 포인터가 NULL인 경우

-72

ecERR_NULL_OUTPDOLMEM

WDM 드라이버에서 제공하는 OutPDO용 논리메모리 포인터가 NULL인 경우

-73

ecERR_INVALID_AXIS_INPDO_TYPE

현재 설정되어 있는 Axis InputPDO 형식이 원하는 데이터를 지원하지 않음

-80

ecERR_INVALID_SECTION_ID

PDO Section ID가 올바르지 않거나 환경설정된 섹션 리스트에 없는 경우

-90

ecERR_INVALID_LOG_MEM_ADDR

Logical Memory의 주소값이 올바르지 않은 경우

-95

ecERR_INVALID_BUFFER

버퍼의 주소값이 유효하지 않은 경우

-100

ecERR_INVALID_IO_CHAN_MAP_DATA

I/O 채널 맵핑 데이터의 일부 멤버값이 올바르지 않은 경우

-110

ecERR_INVALID_FILE_PATH

지정한 파일의 경로가 잘못되었거나 파일이 없는 경우

-111

ecERR_INTERNAL_PROCESS_FAULT

내부 연산 오류

-112

ecERR_MUTEX_CREATE_FAIL

Mutex 생성 실패

-113

ecERR_EVENT_CREATE_FAIL

이벤트 핸들 생성 실패

-114

ecERR_THREAD_CREATE_FAIL

쓰레드 생성 실패

-120

ecERR_FILE_OPEN_FAIL

파일 열기 실패

-125

ecERR_FILE_NOT_FOUND

지정한 파일이 검색되지 않은 경우

-130

ecERR_FILE_READ_ERROR

파일을 읽는 과정에서 에러가 발생한 경우

-140

ecERR_FILE_VERIF_DATA_ERROR

CFG파일 Verfication을 수행했을 때 상호간의 데이터가 일치하지 않는 경우

-150

ecERR_MEM_ALLOC_FAIL

Memory Allocation fail

-160

ecERR_XML_POS_SAVE_ERR

XML 데이터 읽기할 때 현재의 TREE position을 저장하는데 오류가 발생한 경우

-165

ecERR_XML_ELEM_NOT_FOUND

XML 데이터 읽기할 때 지정한 Element가 검색되지 않은 경우

-166

ecERR_INVALID_ODLIST_LEN_INFO

슬레이브로부터 전달된 SDO Info. OD List의 크기 정보가 유효하지 않은 경우

-180

ecERR_INVALID_FIRMWARE_SIGN

마스터장치에 다운로드 되어 있는 펌웨어의 signature가 유효하지 않은 경우

-181

ecERR_FW_VERIF_DATA_MISMATCH

F/W Download를 한 후에 Verify 과정에서 데이터가 일치하지 않은 경우

-182

ecERR_EEPROM_WRITE_FAIL

ESC의 EEPROM에 데이터 쓰기 실패

-183

ecERR_IMPROPER_AL_STATE

AL-STATE가 적절하지 않은 경우

-184

ecERR_INVALID_CHANNEL_TYPE

유효하지 않은 채널 형식인 경우

-185

ecERR_NOT_SUPPORTED_FUNCTION

지원하지 않는 함수 사용

-1010

ecERR_MOT_SERVO_ALARM

Servo driver에 알람이 발생한 경우

-1020

ecERR_MOT_SEQ_SKIPPED

Motion command has been skipped because the axis is already running

-1030

ecERR_MOT_LM_QUE_FULL

ListMotion Queue가 꽉차서 리스트모션 커맨드를 Queueing할 수 없는 경우

-1040

ecERR_MOT_LM_INVALID_OWNERSHIP

동일한 ListMotion 맵에 대한 제어권을 다른 프로세스에서 가로챈 경우

-5001

ERR_INVALID_DSP_IDX

잘못된 DSP Index를 매개변수로 커맨드를 요청한 경우

-5005

ERR_DSPCMD_IRQ_TIMEOUT

DSP Command 요청 인터럽트 요청이 제한된 시간내에 성공하지 못한 경우

-5006

ERR_DSPCMD_ACK_CLR_TIMEOUT

DSP 가 PCI Command에 대한 Ack 플래그를 정해진 시간 내에 클리어하지 않은 경우

-5007

ERR_DSPCMD_ACK_SET_TIMEOUT

DSP 가 PCI Command에 대한 Ack 플래그를 정해진 시간 내에 셋하지 않은 경우

-5010

ERR_PENDEDIRP_ADDTOLIST_FAIL

특정 IRP를 PendingList에 등록하려했으나 실패

-5020

ERR_DSPCMD_ANS_TIMEOUT

DSP 커맨드가 제한된 시간 내에 응답을 하지 않음

-10010

ecERR_GEN_INVAL_ARGUMENT

함수 호출 시에 매개변수값이 잘못된 경우

-10020

ecERR_GEN_DGRAM_OBJ_ALLOC_FAIL

Slave에서 DataGram 메모리를 할당하는데 실패함

-10025

ecERR_GEN_MCMD_ALLOC_FAIL

Slave에서 DataGram 메모리를 할당하는데 실패함

-10030

ecERR_GEN_MCMD_TIMEOUT

MasterCmd 처리 타임아웃

-10040

ecERR_GEN_MCMD_ITEM_NOT_FOUND

지정한 MCmdIdx에 대한 MasterCmd Item을 리스트에서 찾을 수 없는 경우

-10050

ecERR_GEN_BUF_SIZE_TOO_SMALL

버퍼 사이즈가 너무 작음

-10060

ecERR_GEN_SLV_PHYSADDR_NOT_SET

Slave에 Physical Address가 셋팅되지 않음

-10070

ecERR_GEN_INVAL_REG_RW_SIZE

Slave Register Read/Write 시에 허용된 크기보다 큰 데이터를 Read/Write한 경우

-10080

ecERR_GEN_INVAL_SLAVE_ID

유효하지 않은 슬레이브 ID

-10090

ecERR_GEN_ECSLV_OBJ_NOT_FOUND

TEcSlave 객체 포인터가 null인 경우

-10100

ecERR_GEN_STATE_CHANGE_FAIL

EcSlave 객체 포인터가 null인 경우

-10210

ecERR_CMD_VENDID_READ_FAIL

Vendor ID 읽기 실패. 세부 실패 원인은 서브데이터 참고

-10220

ecERR_CMD_PRODCODE_READ_FAIL

Product Code 읽기 실패. 세부 실패 원인은 서브데이터 참고

-10230

ecERR_CMD_REVNO_READ_FAIL

Revision No. 읽기 실패. 세부 실패 원인은 서브데이터 참고

-10240

ecERR_CMD_SERNO_READ_FAIL

Serial No. 읽기 실패. 세부 실패 원인은 서브데이터 참고

-10250

ecERR_CMD_SET_PHY_ADDR_FAIL

Physical Address 셋팅 실패. 세부 실패 원인은 서브데이터 참고

-10260

ecERR_CMD_SET_DL_CTL_REG_FAIL

DL Control Register 셋팅 실패. 세부 실패 원인은 서브데이터 참고

-10265

ecERR_CMD_SET_AL_STATE_CHANGE_FAIL

AL State 변경 과정 중에 에러 발생

-10270

ecERR_CMD_PDOMAP_ASSIGN_FAIL

In/Out PDO Map Assign 실패. 세부 실패 원인은 서브데이터 참고

-10280

ecERR_CMD_FMMU_SETTING_FAIL

In/Out PDO Map Assign 실패. 세부 실패 원인은 서브데이터 참고

-10290

ecERR_CMD_PDO_SYNC_MODE_SET_FAIL

In/Out PDO Map Assign 실패. 세부 실패 원인은 서브데이터 참고

-10405

ecERR_ECG_DGRM_TIMEOUT

특정 EC 커맨드에 대해서 제한 시간 이내에 유효한 응답을 수신하지 못하 경우

-10410

ecERR_ECG_STATE_CHANGE_TIMEOUT

Slave의 State Change를 요청했으나 실제 변경하는데 제한된 시간을 초과한 경우

-10415

ecERR_ECG_SLAVE_DISCON

Slave가 disconnected 상태인 경우

-10610

ecERR_MBX_COE_NOT_SUPP

지정한 슬레이브가 CoE 프로토콜을 지원하지 않는 경우

-10620

ecERR_MBX_INVAL_SDO_RESP

SDO Command에 대한 응답 프레임이 올바르지 않음

-10630

ecERR_MBX_INVAL_SDO_SIZE

SDO의 Size 정보가 잘못된 경우

-10640

ecERR_MBX_SDO_DATA_SIZE_ERR

SDO 데이터가 제한된 크기보다 큰 경우

-10645

ecERR_MBX_SDO_RW_TIMEOUT_ERR

SDO 응답 수신 Timeout

-10650

ecERR_MBX_INVAL_SLAVE_ID

Slave Id가 잘못 지정된 경우

-10660

ecERR_MBX_TXFER_ABORTED

Mailbox 통신이 abort됨

-10810

ecERR_INVALID_PDO_SIZE

PDO 크기 정보가 잘못된 경우

-10820

ecERR_PDO_BUF_ALLOC_FAIL

PDO 버퍼 할당 실패

-10830

ecERR_INVALID_OUTPDO_SM_IDX

OutPDO에 대한 SM 인덱스가 올바르지 않다

-10840

ecERR_INVALID_INPDO_SM_IDX

OutPDO에 대한 SM 인덱스가 올바르지 않다

-11010

ecERR_IPC_MSGQ_HEAP_CRE_FAIL

IPC Message Que를 위한 Heap을 생성하는데 실패

-11020

ecERR_IPC_MSGQ_CRE_FAIL

IPC Message Que를 생성하느데 실패

-11030

ecERR_IPC_INVAL_ECM_DATASIZE

EcmCmd의 DataSize로 지정된 값이 너무 큰 경우

-11040

ecERR_IPC_MSGQ_PUT_FAIL

IPC Message Que에 메시지를 Put하는데 실패함 (MessageQ_put() 함수 실행 실패)

-11050

ecERR_IPC_NOTIEVT_FAIL

IPC Notification event를 처리하는데 에러가 발생

-11060

ecERR_IPC_WAITACK_TIMEOUT

IPC Message 를 잘 받았다는 EcatMast측의 ACK 메시지 수신에 대한 타임아웃 발생

-20010

eaERR_GEN_MALLOC_FAIL

memory allocation fail

-20030

eaERR_FLASH_DEV_OPEN_FAIL

Flash 메모리장치를 open하는데 에러가 발생한 경우

-20031

eaERR_FLASH_DEV_WRITE_FAIL

Flash 메모리장치에 데이터를 쓰기하는 과정에서 에러가 발생한 경우

-20032

eaERR_FLASH_DEV_READ_FAIL

Flash 메모리장치에 데이터를 읽기하는 과정에서 에러가 발생한 경우

-20035

eaERR_INVALID_FWU_SIGNATURE

Flash 메모리장치에 저장된 FW 정보가 유효하지 않은 경우

-20040

eaERR_INVALID_BUF_SIZE

Buffer size 정보가 잘못된 경우

-20041

eaERR_INVALID_BUFFER

지정된 버퍼가 NULL이거나 잘못된 버퍼가 지정된 경우

-20210

eaERR_PCICMD_TIMEOUT

PciCmd를 처리하는 과정에서 타임아웃 발생함. 이때 Error SubData는 CmdId를 나타낸다

-20220

eaERR_PCICMD_INVALID_CMDID

PciCmd의 CommandID가 유효하지 않음

-20230

eaERR_PCICMD_INVALID_ARG

PciCmd의 Argument가 유효하지 않음

-20240

eaERR_PCICMD_INVALID_SLVIDX

PciCmd의 SlaveIndex 가 잘못 전달된 경우

-20250

eaERR_PCICMD_INVALID_AXIS

Motion PciCmd의 Axis 매개변수가 잘못 전달된 경우

-20260

eaERR_PCICMD_INVALID_IXMAP_IDX

Motion PciCmd의 Axis 매개변수가 잘못 전달된 경우

-20270

eaERR_PCICMD_HOME_START_TIMEOUT

Homing을 시작시켰으나 서보드라이버가 Homing을 진행하지 않는 경우

-20280

eaERR_PCICMD_INVALID_AL_STATE

해당 커맨드를 실행할 수 있는 AL State가 아닌 경우

-20410

eaERR_IPC_MSGQ_HEAP_CRE_FAIL

IPC Message Que를 위한 Heap을 생성하는데 실패

-20420

eaERR_IPC_MSGQ_CRE_FAIL

IPC Message Que를 생성하느데 실패

-20430

eaERR_IPC_INVAL_EAPC_DATASIZE

EapCmd의 DataSize로 지정된 값이 너무 큰 경우

-20440

eaERR_IPC_MSGQ_PUT_FAIL

IPC Message Que에 메시지를 Put하는데 실패함 (MessageQ_put() 함수 실행 실패)

-20450

eaERR_IPC_NOTIEVT_FAIL

IPC Notification event를 처리하는데 에러가 발생

-20460

eaERR_IPC_WAITACK_TIMEOUT

IPC Message 를 잘 받았다는 EcatMast측의 ACK 메시지 수신에 대한 타임아웃 발생

-21002

eaERR_AXIS_MOT_QUE_FULL

axis-motion-que가 꽉차서 모션을 예약하지 못하였음

-21010

eaERR_INVALID_PARAMETER

Some of the funcion parameters are invalid

-21011

eaERR_INVALID_AXIS

The axis setting parameter(s) is(are) invalid

-21012

eaERR_INVALID_SPEED_SET

Speed setting value is not valid

-21013

eaERR_INVALID_IXMAP

Invalid Interpolation Map

-21014

eaERR_INVALID_LMMAP

Invalid List-Motion Map

-21015

eaERR_INVALID_NUMAXIS

Invlaid number of axis

-21016

eaERR_INVALID_MAST_AXIS

Invlaid master axis settings for Master/Slave Motion

-21017

eaERR_INVALID_SPLINE_SETUP

SpineSetup() 함수가 수행되지 않은 상태에서 Spline보간 관련 다른 함수를 실행한 경우

-21038

eaERR_INVALID_POS_DATA

Position 데이터가 유효하지 않은 경우

-21030

eaERR_IX_AXES_NOT_DEFINED

보간 축 설정이 수행되지 않은 경우

-21035

eaERR_IX_OBJ_POOL_FULL

spline/MPRLin2X 등의 object 등록 pool에 현재 등록되어 있는 object가 최대 갯수만큼 등록되어서 더 이상 추가할 수 없는 경우

-21036

eaERR_IX_OBJ_NOT_FOUND

spline/MPRLin2X 등의 object pool에서 지정한 SPLINE OBJECT를 찾을 수 없음

-21037

eaERR_IX_OBJ_NOT_BUILDED

spline/MPRLin2X 등의 object Build를 수행하지 않고 이송 시작을 수행한 경우

-21047

eaERR_STOP_BY_COLLA

충돌방지조건에 의해서 정지된 경우

-21048

eaERR_STOP_BY_HEMG

HEMG(Hardware Emergnecy Input) 신호에 의해서 정지

-21049

eaERR_STOP_BY_SEMG

HEMG(Software Emergnecy Input) 신호에 의해서 정지

-21050

eaERR_STOP_BY_SLP

Abnormally stopped by positive soft limit

-21051

eaERR_STOP_BY_SLN

Abnormally stopped by negative soft limit

-21052

eaERR_STOP_BY_ELP

Abnormally stopped by (+) external limit

-21053

eaERR_STOP_BY_ELN

Abnormally stopped by (-) external limit

-21054

eaERR_STOP_BY_ALM

Abnormally stopped by alarm input signal

-21055

eaERR_STOP_BY_COMM_ERROR

Abnormally Stopped by communication error

-21056

eaERR_STOP_BY_OTHER_AXIS

다른 축과의 협업 이송 중에 다른 축의 에러에 의해서 정지된 경우

-21057

eaERR_STOP_BY_SVOFF

SERVO-OFF된 상태에서 이송명령이 내려진 경우 또는 이송 중에 SERVO-OFF된 경우

-21060

eaERR_MOT_SEQ_SKIPPED

Motion command has been skipped because the axis is already running

-21062

eaERR_SKIPPED_BY_SERVO_FAULT

Motion Control Command is skipped because of servo-driver alarm

-21063

eaERR_SKIPPED_BY_SERVO_OFF

Motion Control Command is skipped because of ‘Operation Enable(Servo-ON)’ state is off

-21064

eaERR_SKIPPED_BY_SERVO_ON

서보온이 되어 있는 상태에서 처리할 수 없는 명령이 하달되어 해당 명령의 수행이 되지 않은 경우

-21070

eaERR_HOME_START_TIMEOUT

서보드라이버에 Homming start 명령을 내렸으나 지정된 시간 내에 Homming이 시작되지 않는 경우

-21071

eaERR_HOME_COMPT_FAIL

Servo driver의 Homing 작업을 완료하는 과정에서 에러가 발생함

-21072

eaERR_HOME_TPROBE_NOT_TRIGGERED

101번 이상의 원점복귀 모드를 수행할 때 Touch Probe가 정상적으로 Trigger되지 않은 경우.

-21080
~
-21099
eaERR_HOME_STEP_TIMEOUT0
~
eaERR_HOME_STEP_TIMEOUT19
홈복귀 Step Timeout

-21110

eaERR_LM_QUE_FULL

리스트모션의 커맨드 큐가 꽉차서 커맨드를 등록하지 못한 경우

-21111

eaERR_LM_MAP_DISABLED

리스트모션 맵이 Begin 되지 않은 상태에서 리스트모션 관련 함수들을 실행한 경우.

-21130

eaERR_PTM_QUE_FULL

PT모션의 커맨드 큐가 꽉차서 커맨드를 등록하지 못한 경우.

-21131

eaERR_PTM_MAP_DISABLED

PT모션 맵이 Begin(ecmLmCtl_Begin() 함수를 통해서 실행됨)되지 않은 상태에서 PT모션 관련 함수들을 실행한 경우.

-21150

eaERR_INAVLID_PDO_MAP

현재의 PDO Mapping에서 지원되지 않는 기능을 사용하려고 하는 경우

-50001

secERR_NULL_FILENAME

파일 메모리 포인터가 NULL 인 경우

-50002

secERR_NULL_ECATMAINTASK

EcatCheckProc 쓰레드 생성 실패한 경우

-50003

secERR_NULL_ECATCHECKPROC

EcatCheckProc 쓰레드 생성 실패한 경우

-50004

secERR_NONE_NETADAPTER

Network Adapter가 발견되지 않은 경우

-50005

secERR_NOT_OP_ALLSLAVE

일부 또는 전체 Slave가 OP 상태에 있지 않는 경우

-50006

secERR_NULL_BUFFER

버퍼가 NULL인 경우

-50007

secERR_EEPROM_READ

EEPROM Read 실패한 경우

-50008

secERR_EEPROM_WRITE

EEPROM Write 실패한 경우

-50009

secERR_EEPROM_FILE

EEPROM File 읽기가 실패한 경우

-50010

secERR_INVALID_EEPROM_RW_MODE

원되지 않는 EEPROM Read/Write Mode 요청시

-50011

secERR_OVERSIZE_FIRMWARE

펌웨어 크기가 너무 큰 경우

-50012

secERR_FOE_WRITE

FOE Write 실패한 경우

-50013

secERR_FIRMWARE_FILE

Firmware 파일 읽기가 실패한 경우

-50014

secERR_TIMEOUT_BOOTMODE

BOOT 모드로 요청에 대해 Timeout된 경우

-50015

secERR_SDO_READ

SDO Read 실패시

-50016

secERR_SDO_READ_TIMEOUT

SDO Read Timeout

-50017

secERR_SDO_WRITE

SDO Write 실패시

-50018

secERR_SDO_WRITE_TIMEOUT

SDO Write Timeout

-50019

secERR_NOT_SUPPORTED_DEVICE

지원되지 않는 Device

-50020

secERR_NET_CMD_SCAN

Scan Request 실패시

-50021

secERR_NET_CMD_SCAN_TIMEOUT

Scan Response Timeout

-50022

secERR_SLV_CONFIG_CHANGED

Scan 한 Slave와 Configuration 파일의 정보가 일치하지 않는 경우

-50023

ecERR_SHAREDMEMORY_CREATE

공유메모리 생성 실패

-50024

ecERR_DAEMON_IS_NOT_RUNNING

데몬이 실행되지 않은 경우

22.4. InTime 모드

  • ecmSxMot_Move() 함수는 이송이 완료될 때까지 해당 함수안에서 대기한 후 함수에서 반환됩니다.

  • 이러한 함수가 별도의 쓰레드가 아닌 윈도우 이벤트/메시지 핸들러에서 실행되면 해당 함수가 반환되기 전까지는 윈도우의 메시지는 처리되지 않게 됩니다.

  • InTime 모드는 해당 파라미터의 값을 확인하여 설정한 시간 내에 해당 함수가 반환되도록 하는 모드입니다.