큐 모드 모션 통신
1. socket 제어 추가 모션
1.1 socket 직접 제어 모션 모드 활성화/비활성화
활성화하면 특수한 동작 모드로 진입하며, 비활성화 후에는 수동으로 티치 모드로 전환해야 합니다.
메시지 ID: 0x50B1 DIRECTMOTION_MODE_SET
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 (1, 2, 3, 4) |
| open | boolean | 예 | true=활성화, false=비활성화 |
요청 예시
json
{
"robot": 1,
"open": true
}1.2 컨트롤러가 활성화 성공/실패를 반환
메시지 ID: 0x50B3 DIRECTMOTION_MODE_RESPOND
응답 파라미터
| 파라미터명 | 타입 | 설명 |
|---|---|---|
| robot | number | 로봇 번호 |
| open | boolean | 현재 상태 |
응답 예시
json
{
"robot": 1,
"open": true
}1.3 작업 파일 명령 큐 송신
메시지 ID: 0x50B4 DIRECTMOTION_INSERT_INSTRVEC
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 |
| data | array | 예 | 명령 json 리스트 |
data 배열 요소 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| type | number | 예 | 명령 타입: 1=포인트 투 포인트, 2=직선, 3=원호, 4=정원 |
| positionId | string | 조건부 | 글로벌 포인트 (전역 GP 포인트 사용 시 필수) |
| RobotPos | object | 조건부 | 사용자 정의 포인트 (자동 포인트 사용 시 필수) |
| ParaACC | object | 예 | 가속도 파라미터 |
| ParaDEC | object | 예 | 감속도 파라미터 |
| ParaV | object | 예 | 속도 파라미터 |
| ParaPL | object | 예 | 평활 파라미터 |
| ParaTIME | object | 예 | 사전 실행 시간(ms) |
| ParaSPIN | object | 아니오 | 원호 및 정원 명령: 0=자세 불변, 1=6축 비회전, 2=6축 회전 |
| ParaSYNC | object | 아니오 | 포지셔너 동기화 여부 |
| imovecoord | string | 아니오 | 이동 좌표계 |
| ctype | number | 아니오 | 좌표계 타입 |
| length | number | 아니오 | 길이 |
| radius | number | 아니오 | 반경 |
| margin | number | 아니오 | 경계 |
| offsetAxis | number | 아니오 | 축 오프셋 |
| polish | number | 아니오 | 연마 파라미터 |
| polishAngle | number | 아니오 | 연마 각도 |
| polishID | number | 아니오 | 연마 ID |
| posidname | string | 아니오 | 포인트명 |
| posidtype | number | 아니오 | 포인트 타입 |
| logout | boolean | 아니오 | 로그아웃 |
| para | number | 아니오 | 예약 파라미터 |
| side | number | 아니오 | 측면 |
| userParamInt | number | 아니오 | 사용자 정의 정수 |
| userParamString | string | 아니오 | 사용자 정의 문자열 |
| width | number | 아니오 | 너비 |
ParaACC / ParaDEC / ParaV / ParaPL / ParaTIME / ParaSPIN / ParaSYNC 파라미터 구조
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| data | number | 예 | 파라미터 값 |
| m_vUnit | number | 조건부 | 속도 단위 (ParaV 사용 시 필수): 0=cm/s, 1=mm/s, 2=비율 |
| secondvalue | number | 아니오 | 두 번째 값 |
| value | number | 아니오 | 구버전 파라미터 값 |
| varname | string | 아니오 | 변수명 |
RobotPos 파라미터 구조
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| ctype | number | 예 | 좌표계 타입: 0-관절, 1-직각, 2-도구, 3-사용자 |
| data | array | 예 | 위치 데이터 배열 |
| key | string | 아니오 | 키명 |
| paraVarData | array | 아니오 | 파라미터 변수 데이터 |
data 배열 좌표 설명 (ctype가 좌표계 결정)
| 인덱스 | 명칭 | 설명 |
|---|---|---|
| 0 | 좌표계 | 0-관절, 1-직각, 2-도구, 3-사용자 |
| 1 | 단위 | 각도-0, 라디안-1 |
| 2 | 형태 | 형태 값 |
| 3 | 도구 공정 번호 | 도구 번호 |
| 4 | 사용자 공정 번호 | 사용자 번호 |
| 5-6 | 예약 | 예약 필드 |
| 7 | J1/X | X 좌표값 |
| 8 | J2/Y | Y 좌표값 |
| 9 | J3 | J3 값 |
| 10 | J4 | J4 값 |
| 11 | J5 | J5 값 |
| 12 | J6 | J6 값 |
| 13 | J7 | J7 값 |
| 14-19 | 사전 설정 값 | 사전 설정 위치 데이터 |
1.4 사례 1: 전역 GP 포인트 사용
json
{
"data": [
{
"ParaACC": {
"data": 25.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaDEC": {
"data": 25.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaPL": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSPIN": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSYNC": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaTIME": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaV": {
"data": 25.0,
"m_vUnit": 2,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ctype": 0,
"imovecoord": "UF",
"length": 0.0,
"logout": false,
"margin": 0.0,
"offsetAxis": 0,
"para": 0,
"polish": 0,
"polishAngle": 0.0,
"polishID": 1,
"posidname": "",
"posidtype": 0,
"positionId": "GP0015",
"radius": 0.0,
"side": 0.0,
"type": 1,
"userParamInt": 0,
"userParamString": "",
"width": 0.0
},
{
"ParaACC": {
"data": 100.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaDEC": {
"data": 100.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaPL": {
"data": 5.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSPIN": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSYNC": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaTIME": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaV": {
"data": 1000.0,
"m_vUnit": 1,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ctype": 0,
"imovecoord": "UF",
"length": 0.0,
"logout": false,
"margin": 0.0,
"offsetAxis": 0,
"para": 0,
"polish": 0,
"polishAngle": 0.0,
"polishID": 1,
"posidname": "",
"posidtype": 0,
"positionId": "GP0001",
"radius": 0.0,
"side": 0.0,
"type": 2,
"userParamInt": 0,
"userParamString": "",
"width": 0.0
}
],
"robot": 1
}1.5 사례 2: 자동 포인트 사용
json
{
"data": [
{
"ParaACC": {
"data": 10.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaDEC": {
"data": 10.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaPL": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSPIN": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaSYNC": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaTIME": {
"data": 0.0,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"ParaV": {
"data": 10.0,
"m_vUnit": 2,
"secondvalue": 0,
"value": 0,
"varname": ""
},
"RobotPos": {
"ctype": 1,
"data": [
0.0,
0.0,
8.0,
0.0,
0.0,
0.0,
0.0,
0.999998884198,
1.999999207078,
2.999999330055,
3.999999217981,
4.999999652293,
5.999998732478,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
],
"key": "",
"paraVarData": [
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 8.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.999998884198, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 1.999999207078, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 2.999999330055, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 3.999999217981, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 4.999999652293, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 5.999998732478, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" },
{ "data": 0.0, "secondvalue": 0, "value": 0, "varname": "" }
]
},
"ctype": 0,
"imovecoord": "UF",
"length": 0.0,
"logout": false,
"margin": 0.0,
"offsetAxis": 0,
"para": 0,
"polish": 0,
"polishAngle": 0.0,
"polishID": 1,
"posidname": "",
"posidtype": 0,
"positionId": "",
"radius": 0.0,
"side": 0.0,
"type": 1,
"userParamInt": 0,
"userParamString": "",
"width": 0.0
}
],
"robot": 1
}1.6 추가 실행 일시정지
메시지 ID: 0x50B7 DIRECTMOTION_MODE_SUSPEND
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 (1, 2, 3, 4) |
요청 예시
json
{
"robot": 1
}1.7 추가 실행 시작 (일시정지 후 사용)
메시지 ID: 0x50B8 DIRECTMOTION_MODE_START
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 (1, 2, 3, 4) |
요청 예시
json
{
"robot": 1
}1.8 추가 실행 정지
메시지 ID: 0x50B9 DIRECTMOTION_MODE_STOP
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 (1, 2, 3, 4) |
요청 예시
json
{
"robot": 1
}1.9 큐 모드 정지 시 전원 미차단 설정
메시지 ID: 0x50BA
요청 파라미터
| 파라미터명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| robot | number | 예 | 로봇 번호 (1, 2, 3, 4) |
요청 예시
json
{
"robot": 1
}