명령어 리스트
IndyDCP를 통해 사용할 수 있는 명령어들은 아래 표에 요약되어 있습니다.
- Command ID: 전용통신 프레임에서 명령어 (Command)에 할당되는 4-byte 정수 값
 - 명령어 (Command): 해당 명령어의 이름
 - 명령어 내용: 해당 명령어에 대한 간략한 설명. 명령어는 로봇 설정, 로봇 제어, 로봇 데이터 요청으로 분류 될 수 있음
 - 요청/응답 데이터 크기: 해당 명령어의 요청에 따라 요구되는 데이터의 크기와 응답 시 얻게되는 데이터의 크기를 나타냄. 0006번과 같이 문자열 데이터인 경우에만 크기가 가변이며, 나머지 경우는 크기가 정해져 있음
 
참고
- DOF는 로봇의 자유도 (Degree-of-Freedom)를 나타내며 Indy7은 6축 로봇이기 때문에 DOF=6 이며, IndyRP2는 7축 로봇이기 때문에 DOF=7 이다.
 - 예를들어 Indy7 이용시 명령어 0009번의 요청 데이터 크기는 6*8=48 이다.
 - Boolean은 1-byte, 정수는 4-byte, 실수는 8-byte 이다.
 
| Command ID | 명령어 (Command)  | 
  명령어 내용 (로봇 설정 / 로봇 제어 / 로봇 데이터 요청 등)  | 
  요청 Data 크기 | 응답 Data 크기 | 
|---|---|---|---|---|
| 0000 | Check Command | 명령 없이 요청/응답만 주고받기 | 0 | 0 | 
| 0001 | Emergency Stop | 로봇 비상정지 (명령 수신 즉시 중지) | 0 | 0 | 
| 0002 | Reset Robot | 로봇 리셋 | 0 | 0 | 
| 0003 | Set Servo On/Off | 로봇 각 Joint의 Servo Motor On / Off | DOF*1 | 0 | 
| 0004 | Set Brake On/Off | 로봇 각 Joint의 Servo Brake On / Off | DOF*1 | 0 | 
| 0005 | Stop | 로봇 모션 중지 (움직이고 있는 경우 로봇 정지함) | 0 | 0 | 
| 0006 | Execute Move Command  | 
  Conty를 통해 티칭된 Move Command 실행 | 가변 | 0 | 
| 0007 | Move To Home | 홈 포지션으로 이동 | 0 | 0 | 
| 0008 | Move To Zero | 제로 포지션으로 이동 | 0 | 0 | 
| 0009 | Joint Move To | 로봇을 특정 Joint 좌표로 이동 (절대값) | DOF*8 | 0 | 
| 0010 | Joint Move By | 로봇을 현재 Joint 좌표로부터 이동 (상대값) | DOF*8 | 0 | 
| 0011 | Task Move To | 로봇을 특정 Task 좌표로 이동 (절대값) | 48 | 0 | 
| 0012 | Task Move By | 로봇을 현재 Task 좌표로부터 이동 (상대값) | 48 | 0 | 
| 0014 | Start Current Program  | 
  현재 로드되어있는 프로그램 실행 | 0 | 0 | 
| 0015 | Pause Current Program  | 
  현재 실행중인 프로그램 일시정지 | 0 | 0 | 
| 0016 | Resume Current Program | 현재 일시정지된 프로그램 재개 | 0 | 0 | 
| 0017 | Stop Current Program | 현재 프로그램 중지 | 0 | 0 | 
| 0018 | Start Registered Default Program  | 
  현재 등록된 기본 콘티 프로그램 실행 | 0 | 0 | 
| 0019 | Register Default Program #Num | 1~10번 기본 프로그램 등록 | 4 | 0 | 
| 0020 | Get Registered Default Program #Num  | 
  현재 등록된 기본 프로그램 번호 요청 | 0 | 4 | 
| 0030 | Is Robot Running | 로봇이 실행중인 상태 | 0 | 1 | 
| 0031 | Is Robot Ready | 로봇이 제어 가능한 상태 (모든 Servo On 및 초기화 완료)  | 
  0 | 1 | 
| 0032 | Is Emergency Stopped | 로봇 비상정지 상태 | 0 | 1 | 
| 0033 | Is Collided | 로봇 충돌 상태 | 0 | 1 | 
| 0034 | Is Error State | 로봇 에러 상태 | 0 | 1 | 
| 0036 | Is Move Finished | 로봇의 모션이 끝난 상태 | 0 | 1 | 
| 0035 | Is Busy | 로봇이 움직이고 있는 상태 (모션 중) | 0 | 1 | 
| 0037 | Is Home | 로봇이 홈 포지션인 상태 | 0 | 1 | 
| 0038 | Is Zero | 로봇이 제로 포지션인 상태 | 0 | 1 | 
| 0039 | Is In Resetting | 로봇이 리셋중인 상태 | 0 | 1 | 
| 0060 | Is Direct Teaching Mode | 직접교시 모드 상태 | 0 | 1 | 
| 0061 | Is Teaching Mode | 로봇 교시 모드 상태 (직접교시, Jogging 등) | 0 | 1 | 
| 0062 | Is Program Running | 로봇 프로그램이 실행 상태 (실행중,일시정지중 포함) | 0 | 1 | 
| 0063 | Is Program Paused | 로봇 프로그램이 일시정지 상태 | 0 | 1 | 
| 0064 | Is Conty Connected | 콘티 연결 상태 | 0 | 1 | 
| 0080 | Change To Direct Teaching Mode | 로봇 직접교시 모드 진입 | 0 | 0 | 
| 0081 | Finish Direct Teaching Mode | 로봇 직접교시 모드 종료 | 0 | 0 | 
| 0090 | Add Joint Waypoint to the End of Set | JointMove Waypoint Set 맨 뒤에 Waypoint 추가 | DOF*8 | 0 | 
| 0091 | Remove Last Joint Waypoint from the Set | JointMove Waypoint Set 맨 뒤의 Waypoint 삭제 | 0 | 0 | 
| 0092 | Clear Joint Waypoint Set | JointMove Waypoint Set 초기화 | 0 | 0 | 
| 0094 | Execute Joint Waypoint Set | JointMove Waypoint Set를 JointMove로서 실행 | 0 | 0 | 
| 0095 | Add Task Waypoint to the End of Set | TaskMove Waypoint Set 맨 뒤에 Waypoint 추가 | 48 | 0 | 
| 0096 | Remove Last Task Waypoint from the Set | TaskMove Waypoint Set 맨 뒤의 Waypoint 삭제 | 0 | 0 | 
| 0097 | Clear Task Waypoint Set | TaskMove Waypoint Set 초기화 | 0 | 0 | 
| 0099 | Execute Task Waypoint Set | TaskMove Waypoint Set를 TaskMove로서 실행 | 0 | 0 | 
| 0100 | Set Default TCP | 기본 TCP값 설정  (보정값 리셋됨)  | 
  48 | 0 | 
| 0101 | Reset Default TCP | 기본 TCP값 리셋  (보정값 리셋됨)  | 
  0 | 0 | 
| 0102 | Set TCP Comp. | TCP 보정값 설정 | 48 | 0 | 
| 0103 | Reset TCP Comp. | TCP 보정값 리셋 | 0 | 0 | 
| 0104 | Set Reference Frame | - | 48 | 0 | 
| 0105 | Reset Referene Frame | Reference Frmae 값 리셋 | 0 | 0 | 
| 0106 | Set Collision Level | 충돌 감지 레벨 설정 (1~5) | 4 | 0 | 
| 0107 | Set Joint Boundary Level | JointMove 기본 속도/가속도 한계 레벨 설정 (1~9) | 4 | 0 | 
| 0108 | Set Task Boundary Level | TaskMove 기본 속도/가속도 한계 레벨 설정 (1~9) | 4 | 0 | 
| 0109 | Set Joint Blending Radius Level | JointMove 기본 블렌딩 레벨 설정 | 4 | 0 | 
| 0110 | Set Task Blending Radius Level | TaskMove 기본 블렌딩 레벨 설정 | 4 | 0 | 
| 0111 | Set Joint Waypoint Time | JointMove 기본 웨이포인트 시간 설정 (시간 base Move에만 적용됨)  | 
8 | 0 | 
| 0112 | Set Task Waypoint Time | TaskMvoe 기본 웨이포인트 시간 설정 (시간 base Move에만 적용됨)  | 
  8 | 0 | 
| 0113 | Set TaskMove Base Mode | TaskMove 제어의 기준 축 설정 (0: 레퍼런스 바디, 1: ToolTip 끝점)  | 
  4 | 0 | 
| 0116 | Set Joint Blending Radius | JointMove 기본 블렌딩 값 설정 | 8 | 0 | 
| 0117 | Set Task Blending Radius | TaskMove 기본 블렌딩 값 설정 | 8 | 0 | 
| 0200 | Get Default TCP | 기본 TCP값 요청 | 0 | 48 | 
| 0201 | Get TCP Comp. | TCP 보정값 요청 | 0 | 48 | 
| 0202 | Get Reference Frame | Reference Frame 값 요청 | 0 | 48 | 
| 0203 | Get Collision Level | 충돌 감지 레벨값 요청 | 0 | 4 | 
| 0204 | Get Joint Boundary Level | JointMove 기본 속도/가속도 한계 레벨값 요청 | 0 | 4 | 
| 0205 | Get Task Boundary Level | TaskMove 기본 속도/가속도 한계 레벨값 요청 | 0 | 4 | 
| 0206 | Get Joint Blending Radius Level | JointMove 기본 블렌딩 레벨값 요청 | 0 | 4 | 
| 0207 | Get Task Blending Radius Level | TaskMove 기본 블렌딩 레벨값 요청 | 0 | 4 | 
| 0208 | Get Joint Waypoint Time | JointMove 기본 웨이포인트 시간 요청 | 0 | 8 | 
| 0209 | Get Task Waypoint Time | TaskMvoe 기본 웨이포인트 시간 요청 | 0 | 8 | 
| 0210 | Get TaskMove Base Mode | TaskMove 제어 기준 축 요청 | 0 | 4 | 
| 0213 | Get Joint Blending Radius | JointMove 기본 블렌딩 값 요청 | 0 | 8 | 
| 0214 | Get Task Blending Radius | TaskMove 기본 블렌딩 값 요청 | 0 | 8 | 
| 0300 | Get Running Time | 로봇 초기화 이후 총 실행시간 요청 | 0 | 8 | 
| 0302 | Get Joint Servo State | 로봇 각 Joint 축의 Servo, Brake 상태 요청 | 0 | DOF*2 | 
| 0301 | Get Control Mode | 현재 로봇의 제어 모드 요청 | 0 | 4 | 
| 0320 | Get Joint Position | 현재 로봇의 Joint 각도 위치 요청 | 0 | DOF*8 | 
| 0321 | Get Joint Velocity | 현재 로봇의 Joint 각속도 요청 | 0 | DOF*8 | 
| 0324 | Get Torque | 현재 로봇의 토크 요청 | 0 | DOF*8 | 
| 0322 | Get Task Position | 현재 로봇의 Task 위치 요청 | 0 | 48 | 
| 0323 | Get Task Velocity | 현재 로봇의 Task 속도 요청 | 0 | 48 | 
| 0380 | Get Last Emergency Info | 가장 최근의 로봇의 Emergency 상태 정보 요청 | 0 | 40 | 
| 0400 | Get Smart Digital Input | SmartDI값 하나 읽기 | 4 | 1 | 
| 0401 | Get Smart Digital Inputs | SmatDI값 전부 읽기 | 0 | 32 | 
| 0402 | Set Smart Digital Output | SmartDO값 하나 쓰기 | 5 | 0 | 
| 0403 | Set Smart Digital Outputs | SmartDO값 전부 쓰기 | 32 | 0 | 
| 0404 | Get Smart Analog Input | SmartAI값 하나 읽기 | 4 | 4 | 
| 0405 | Set Smart Analog Output | SmartAO값 하나 쓰기 | 8 | 0 | 
| 0406 | Get Smart Digital Output | SmartDO값 하나 읽기 | 4 | 1 | 
| 0407 | Get Smart Digital Outputs | SmatDO값 전부 읽기 | 0 | 32 | 
| 0420 | Get Robot CAN FTSensor (R) | Robot의 CAN포트에 연결된 FTSensor Raw 데이터값 수신 | 0 | 24 | 
| 0421 | Get Robot CAN FTSensor (T) | Robot의 CAN포트에 연결된 FTSensor의 처리된 데이터값 수신 | 0 | 48 | 
| 0422 | Get CB CAN FTSensor (R) | CB의 CAN포트에 연결된 FTSensor Raw 데이터값 수신 | 0 | 24 | 
| 0423 | Get CB CAN FTSensor (T) | CB의 CAN포트에 연결된 FTSensor의 처리된 데이터값 수신 | 0 | 48 | 
| 0460 | Read Direct Variable | 단일 직접변수 값 읽기 | 8 | 가변 | 
| 0461 | Read Direct Variables | 연속된 직접변수 값 읽기 (최대 20개) | 12 | 가변 | 
| 0462 | Write Direct Variable | 단일 직접변수 값 쓰기 | 8+가변 | 0 | 
| 0463 | Write Direct Variables | 연속 직접변수 값 쓰기 (최대 20개) | 12+가변 | 0 | 
| 0800 | ExtendedIndyDCP | 확장된 IndyDCP 사용 | 8 | 8 | 
| 0801 | StreamingIndyDCP | 스트리밍 방식의 IndyDCP 시작 명령 | - | - |