Queue Mode Motion Communication
1. Socket Control Append Mode Motion
1.1 Enable/Disable Socket Direct Control Motion Mode
When enabled, it enters a special run mode. After disabling, you need to manually switch back to teach mode.
Message ID: 0x50B1 DIRECTMOTION_MODE_SET
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number (1, 2, 3, 4) |
| open | boolean | Yes | true=enable, false=disable |
Request Example
json
{
"robot": 1,
"open": true
}1.2 Controller Returns Enable Success/Failure
Message ID: 0x50B3 DIRECTMOTION_MODE_RESPOND
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| robot | number | Robot number |
| open | boolean | Current status |
Response Example
json
{
"robot": 1,
"open": true
}1.3 Send Job File Instruction Queue
Message ID: 0x50B4 DIRECTMOTION_INSERT_INSTRVEC
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number |
| data | array | Yes | Instruction JSON list |
data Array Element Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| type | number | Yes | Instruction type: 1=point-to-point, 2=linear, 3=circular, 4=full circle |
| positionId | string | Conditional | Global position (required when using global GP point) |
| RobotPos | object | Conditional | Custom position (required when using auto position) |
| ParaACC | object | Yes | Acceleration parameter |
| ParaDEC | object | Yes | Deceleration parameter |
| ParaV | object | Yes | Velocity parameter |
| ParaPL | object | Yes | Smoothing parameter |
| ParaTIME | object | Yes | Advance execution time (ms) |
| ParaSPIN | object | No | Circular and full circle instructions: 0=attitude unchanged, 1=sixth axis does not rotate, 2=sixth axis rotates |
| ParaSYNC | object | No | Whether positioner synchronizes |
| imovecoord | string | No | Move coordinate system |
| ctype | number | No | Coordinate system type |
| length | number | No | Length |
| radius | number | No | Radius |
| margin | number | No | Margin |
| offsetAxis | number | No | Axis offset |
| polish | number | No | Polish parameter |
| polishAngle | number | No | Polish angle |
| polishID | number | No | Polish ID |
| posidname | string | No | Position name |
| posidtype | number | No | Position type |
| logout | boolean | No | Logout |
| para | number | No | Reserved parameter |
| side | number | No | Side |
| userParamInt | number | No | User-defined integer |
| userParamString | string | No | User-defined string |
| width | number | No | Width |
ParaACC / ParaDEC / ParaV / ParaPL / ParaTIME / ParaSPIN / ParaSYNC Parameter Structure
| Parameter | Type | Required | Description |
|---|---|---|---|
| data | number | Yes | Parameter value |
| m_vUnit | number | Conditional | Velocity unit (required for ParaV): 0=cm/s, 1=mm/s, 2=percentage |
| secondvalue | number | No | Second value |
| value | number | No | Legacy parameter value |
| varname | string | No | Variable name |
RobotPos Parameter Structure
| Parameter | Type | Required | Description |
|---|---|---|---|
| ctype | number | Yes | Coordinate system type: 0-joint, 1-Cartesian, 2-tool, 3-user |
| data | array | Yes | Position data array |
| key | string | No | Key name |
| paraVarData | array | No | Parameter variable data |
data Array Coordinate Description (ctype determines coordinate system)
| Index | Name | Description |
|---|---|---|
| 0 | Coordinate system | 0-joint, 1-Cartesian, 2-tool, 3-user |
| 1 | Unit | Angle-0, Radian-1 |
| 2 | Configuration | Configuration value |
| 3 | Tool process number | Tool number |
| 4 | User process number | User number |
| 5-6 | Reserved | Reserved fields |
| 7 | J1/X | X coordinate value |
| 8 | J2/Y | Y coordinate value |
| 9 | J3 | J3 value |
| 10 | J4 | J4 value |
| 11 | J5 | J5 value |
| 12 | J6 | J6 value |
| 13 | J7 | J7 value |
| 14-19 | Preset values | Preset position data |
1.4 Example 1: Using Global GP Point
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 Example 2: Using Auto Position
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 Suspend Append Run
Message ID: 0x50B7 DIRECTMOTION_MODE_SUSPEND
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number (1, 2, 3, 4) |
Request Example
json
{
"robot": 1
}1.7 Start Append Run (Use After Suspend)
Message ID: 0x50B8 DIRECTMOTION_MODE_START
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number (1, 2, 3, 4) |
Request Example
json
{
"robot": 1
}1.8 Stop Append Run
Message ID: 0x50B9 DIRECTMOTION_MODE_STOP
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number (1, 2, 3, 4) |
Request Example
json
{
"robot": 1
}1.9 Set Queue Mode Stop Without Power Off
Message ID: 0x50BA
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| robot | number | Yes | Robot number (1, 2, 3, 4) |
Request Example
json
{
"robot": 1
}