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 모드는 해당 파라미터의 값을 확인하여 설정한 시간 내에 해당 함수가 반환되도록 하는 모드입니다.