Skip to content

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

ParameterTypeRequiredDescription
robotnumberYesRobot number (1, 2, 3, 4)
openbooleanYestrue=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

ParameterTypeDescription
robotnumberRobot number
openbooleanCurrent status

Response Example

json
{
    "robot": 1,
    "open": true
}

1.3 Send Job File Instruction Queue

Message ID: 0x50B4 DIRECTMOTION_INSERT_INSTRVEC

Request Parameters

ParameterTypeRequiredDescription
robotnumberYesRobot number
dataarrayYesInstruction JSON list

data Array Element Parameters

ParameterTypeRequiredDescription
typenumberYesInstruction type: 1=point-to-point, 2=linear, 3=circular, 4=full circle
positionIdstringConditionalGlobal position (required when using global GP point)
RobotPosobjectConditionalCustom position (required when using auto position)
ParaACCobjectYesAcceleration parameter
ParaDECobjectYesDeceleration parameter
ParaVobjectYesVelocity parameter
ParaPLobjectYesSmoothing parameter
ParaTIMEobjectYesAdvance execution time (ms)
ParaSPINobjectNoCircular and full circle instructions: 0=attitude unchanged, 1=sixth axis does not rotate, 2=sixth axis rotates
ParaSYNCobjectNoWhether positioner synchronizes
imovecoordstringNoMove coordinate system
ctypenumberNoCoordinate system type
lengthnumberNoLength
radiusnumberNoRadius
marginnumberNoMargin
offsetAxisnumberNoAxis offset
polishnumberNoPolish parameter
polishAnglenumberNoPolish angle
polishIDnumberNoPolish ID
posidnamestringNoPosition name
posidtypenumberNoPosition type
logoutbooleanNoLogout
paranumberNoReserved parameter
sidenumberNoSide
userParamIntnumberNoUser-defined integer
userParamStringstringNoUser-defined string
widthnumberNoWidth

ParaACC / ParaDEC / ParaV / ParaPL / ParaTIME / ParaSPIN / ParaSYNC Parameter Structure

ParameterTypeRequiredDescription
datanumberYesParameter value
m_vUnitnumberConditionalVelocity unit (required for ParaV): 0=cm/s, 1=mm/s, 2=percentage
secondvaluenumberNoSecond value
valuenumberNoLegacy parameter value
varnamestringNoVariable name

RobotPos Parameter Structure

ParameterTypeRequiredDescription
ctypenumberYesCoordinate system type: 0-joint, 1-Cartesian, 2-tool, 3-user
dataarrayYesPosition data array
keystringNoKey name
paraVarDataarrayNoParameter variable data

data Array Coordinate Description (ctype determines coordinate system)

IndexNameDescription
0Coordinate system0-joint, 1-Cartesian, 2-tool, 3-user
1UnitAngle-0, Radian-1
2ConfigurationConfiguration value
3Tool process numberTool number
4User process numberUser number
5-6ReservedReserved fields
7J1/XX coordinate value
8J2/YY coordinate value
9J3J3 value
10J4J4 value
11J5J5 value
12J6J6 value
13J7J7 value
14-19Preset valuesPreset 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

ParameterTypeRequiredDescription
robotnumberYesRobot 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

ParameterTypeRequiredDescription
robotnumberYesRobot number (1, 2, 3, 4)

Request Example

json
{
    "robot": 1
}

1.8 Stop Append Run

Message ID: 0x50B9 DIRECTMOTION_MODE_STOP

Request Parameters

ParameterTypeRequiredDescription
robotnumberYesRobot number (1, 2, 3, 4)

Request Example

json
{
    "robot": 1
}

1.9 Set Queue Mode Stop Without Power Off

Message ID: 0x50BA

Request Parameters

ParameterTypeRequiredDescription
robotnumberYesRobot number (1, 2, 3, 4)

Request Example

json
{
    "robot": 1
}