Skip to content

1. Motion Control


Table of Contents


Robot Motion

Robot Run Status Query and Response

Teach Pendant Queries Robot Run Status

Command Word: 0x2304

Request Parameters:

ParameterTypeRequiredDescription
robotintYesSelect robot, range [1, 4]
jobfilenamestringYesJob file name (excluding extension)
suffixstringYesFile extension: .JBR main program/.JBP background local program/.JBPG background global program

Request Example:

json
{
  "robot": 1,
  "jobfilename": "AAA",
  "suffix": ".JBR"
}

Controller Replies Robot Run Status

Command Word: 0x9103

Response Parameters:

ParameterTypeDescription
robotintRobot number, range [1, 4]
statusintRun status: 0-stopped, 1-paused, 2-running
continueRunintWhether breakpoint execution exists: 0/1
currentRunboolWhether current line execution exists: false/true
mainProgramRunintWhether main program is running: 0/1

Response Example:

json
{
  "robot": 1,
  "status": 0,
  "continueRun": 0,
  "currentRun": false,
  "mainProgramRun": 0
}

Robot Motion Control

Robot Joint Motion MOVJ

Command Word: 0x4501

Request Parameters:

ParameterTypeRequiredDescription
robotintYesSelect robot, range [1, 4]
velintYesSpeed percentage, range [1, 100]
coordintYesCoordinate system: 0-Joint, 1-Cartesian, 2-User, 3-Tool
posdouble[7]YesTarget position, first 7 values are robot body target position, last 5 are external axis target positions

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "pos": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7]
}

Robot Linear Motion MOVL

Command Word: 0x4502

Request Parameters:

ParameterTypeRequiredDescription
robotintYesSelect robot, range [1, 4]
velintYesSpeed mm/s, range [1, 1000]
coordintYesCoordinate system: 0-Joint, 1-Cartesian, 2-User, 3-Tool
posdouble[7]YesTarget position, first 7 values are robot body target position, last 5 are external axis target positions

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "pos": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7]
}

Robot Circular Motion MOVC

Command Word: 0x4503

Request Parameters:

ParameterTypeRequiredDescription
robotintYesSelect robot, range [1, 4]
velintYesSpeed mm/s, range [1, 1000]
coordintYesCoordinate system: 0-Joint, 1-Cartesian, 2-User, 3-Tool
isFullboolYesfalse-MOVC, true-MOVCA
posOnedouble[7]YesArc start point, robot body point
posTwodouble[7]YesArc intermediate point, robot body point
posThreedouble[7]YesArc target point, robot body point

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "isFull": false,
  "posOne": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7],
  "posTwo": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7],
  "posThree": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7]
}

Robot Spline Motion MOVS

Command Word: 0x4504

Request Parameters:

ParameterTypeRequiredDescription
robotintYesSelect robot, range [1, 4]
velintYesSpeed mm/s, range [1, 1000]
coordintYesCoordinate system: 0-Joint, 1-Cartesian, 2-User, 3-Tool
sizeintYesNumber of spline points, requires at least 4 points
posdouble[][7]YesSpline trajectory points, two-dimensional array

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "size": 4,
  "pos": [
    [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7],
    [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7],
    [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7],
    [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7]
  ]
}

Move to Target Point

Move to Target Point

Command Word: 0x3003 GO_POSITION

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number
positionNamestringYesTarget point name: SetPosition_EntrancePoint/SetPosition_AuxiliaryPoint/SetPosition_JobPoint
RobotPosobjectYesRobot position object

RobotPos Internal Parameters:

ParameterTypeDescription
ctypeintType: NONE_TYPE=0/P_TYPE/E_TYPE/RP_TYPE/AP_TYPE/GP_TYPE/GE_TYPE
datadouble[21]Position data array, see description below
keystringVariable type
paraVarDataarrayVariable array

data Array Description:

Index PositionDescription
1st, 2ndCoordinate type: 0,0-Joint; 1,1-Cartesian; 2,1-Tool; 3,1-User
3rdLeft/right hand: 1-left, 2-right, 0-none (default 0)
4th, 5th, 6th, 7thReserved, default 0
8th-14thRobot body coordinate values (7 values): under joint coordinates are axis 1-6 angle values, under other coordinates are x,y,z,a,b,c
15th-19thExternal axis coordinate values (up to 5 external axes, padded with zeros if insufficient)

Request Example:

json
{
  "robot": 1,
  "positionName": "SetPosition_JobPoint",
  "RobotPos": {
    "ctype": 0,
    "key": "",
    "data": [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 6.0, 3.141590, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "paraVarData": [
      {"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 1.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": 6.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 6.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 3.141590, "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": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""}
    ]
  }
}

Note: No corresponding instruction in the program

Move to Job File Point

Command Word: 0x3005 GO_JOBFILEPOSITION

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number
jobNamestringYesJob file name
suffixnamestringYesJob file extension (e.g., .JBR)
posNamestringYesPoint name

Request Example:

json
{
  "robot": 1,
  "jobName": "Q1",
  "suffixname": ".JBR",
  "posName": "P001"
}

Move to User Coordinate Calibration Point

Command Word: 0x3006 GO_USERCALIBRATIONPOS

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number
userNumintYesUser number
posTypeintYesPoint type: 0-origin, 1-X value, 2-Y value

Request Example:

json
{
  "robot": 1,
  "userNum": 1,
  "posType": 0
}

Move to Reset Point

Command Word: 0x3007 GO_RESET_POSITION

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number

Request Example:

json
{
  "robot": 1
}

Return to Zero Command

Return to Zero Command

Command Word: 0x3002 GO_HOME

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number (1-4)
typeintYesReturn to zero type: 0-Robot return to zero, 1-External axis return to zero

Request Example:

json
{
  "robot": 1,
  "type": 1
}

Robot Settings

Jog Speed Settings

Set Joint Axis Jog Speed

Command Word: 0x2604 JOG_JOINTPARAMETER_SET

Request Parameters:

ParameterTypeRequiredDescription
AxisNumintYesJoint axis number
minTrajectTime.minAccTimefloatYesMinimum acceleration time
minTrajectTime.minDecTimefloatYesMinimum deceleration time
MaxSpeedfloatYesMaximum jog speed of joint axis, unit: degree°/s
MaxAccfloatYesJog acceleration of joint axis, unit: degree°/s²

Request Example:

json
{
  "AxisNum": 1,
  "minTrajectTime": {
    "minAccTime": 0.10,
    "minDecTime": 0.10
  },
  "MaxSpeed": 10,
  "MaxAcc": 10
}

Query Joint Axis Jog Speed

Send Command Word: 0x2605 JOG_JOINTPARAMETER_INQUIRE

Request Parameters:

ParameterTypeRequiredDescription
AxisNumintYesJoint axis number

Response Command Word: 0x2606 JOG_JOINTPARAMETER_RESPOND

Response Parameters:

ParameterTypeDescription
AxisNumintJoint axis number
MaxSpeedfloatMaximum jog speed of joint axis, unit: degree°/s
MaxAccfloatJog acceleration of joint axis, unit: degree°/s²

Response Example:

json
{
  "AxisNum": 1,
  "MaxSpeed": 10,
  "MaxAcc": 10
}

Set Cartesian Jog Speed

Command Word: 0x2607 JOG_RECTPARAMETER_SET

Request Parameters:

ParameterTypeRequiredDescription
MaxSpeedfloatYesMaximum jog speed of joint axis, unit: mm/s
MaxAccfloatYesJog acceleration of joint axis, unit: mm/s²

Request Example:

json
{
  "MaxSpeed": 10,
  "MaxAcc": 10
}

Query Cartesian Jog Speed

Send Command Word: 0x2608 JOG_RECTPARAMETER_INQUIRE

data: empty

Response Command Word: 0x2609 JOG_RECTPARAMETER_RESPOND

Response Parameters:

ParameterTypeDescription
MaxSpeedfloatMaximum jog speed of joint axis, unit: mm/s
MaxAccfloatJog acceleration of joint axis, unit: mm/s²

Response Example:

json
{
  "MaxSpeed": 10,
  "MaxAcc": 10
}

Jog Sensitivity Settings

Set Jog Sensitivity

Command Word: 0x260A JOG_SENSITIVITY_SET

Request Parameters:

ParameterTypeRequiredDescription
SensitivityfloatYesSensitivity, unit: degree, range: 0.001 - 1

Request Example:

json
{
  "Sensitivity": 0.001
}

Query Jog Sensitivity

Send Command Word: 0x260B JOG_SENSITIVITY_INQUIRE

data: empty

Response Command Word: 0x260C JOG_SENSITIVITY_RESPOND

Response Parameters:

ParameterTypeDescription
SensitivityfloatSensitivity, unit: degree, range: 0.001 - 1

Response Example:

json
{
  "Sensitivity": 0.001
}

Current Position Acquisition

Coordinate Mode Description

Coordinate Mode ValueDescription
-1Controller current coordinate
0Joint (Joint)
1Cartesian (Cart)
2Tool (Tool)
3User (User)
4Motor position

Get Current Position

Send Command Word: 0x2A02 CURRENTPOS_INQUIRE

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number (1, 2, 3, 4)
coordintYesCoordinate mode: -1-Controller current coordinate, 0-Joint, 1-Cartesian, 2-Tool, 3-User, 4-Motor position

Request Example:

json
{
  "robot": 1,
  "coord": 2
}

Response Command Word: 0x2A03 CURRENTPOS_RESPOND

Response Parameters:

ParameterTypeDescription
robotintRobot number (1, 2, 3, 4)
degintWhether it is ACS coordinate system; 0: yes; 1: no
posarrayRadian point values, coordinate values stored in 7 digits under joint coordinates. First six values are J1~J6 axis angle values (degrees) or Cartesian/Tool/User coordinates XYZ (millimeters), values four to six are ABC coordinate values (radians), seventh value reserved
posDegarrayAngle point values, ABC radian values under Cartesian/Tool/User coordinates converted to angle values, other state values are consistent with pos
coordintCoordinate mode: -1-Controller current coordinate, 0-Joint, 1-Cartesian, 2-Tool, 3-User, 4-Motor position
configurationintPosture or (SCARA) left/right hand

Response Example:

json
{
  "robot": 1,
  "deg": 1,
  "pos": [0, 0.1, 2, 3.3, 44, 555.55, 0.0],
  "posDeg": [0.0, 0.0, 1, 2, 3.3, 44, 5.55],
  "coord": -1,
  "configuration": 1
}

Query Motor Speed

Send Command Word: 0x2A04 CURRENTVEL_INQUIRE

Request Parameters:

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

Request Example:

json
{
  "robot": 1
}

Response Command Word: 0x2A05 CURRENTVEL_RESPOND

Response Parameters:

ParameterTypeDescription
robotintRobot number (1, 2, 3, 4)
velarrayMotor speed, 4-axis also sends six values
velSyncarrayExternal axis motor speed
maxVelarrayMaximum motor speed
maxVelSyncarrayMaximum external axis motor speed

Response Example:

json
{
  "robot": 1,
  "vel": [0, 0, 0, 0, 0, 0],
  "velSync": [0, 0, 0, 0, 0],
  "maxVel": [0, 0, 0, 0, 0, 0],
  "maxVelSync": [0, 0, 0, 0, 0]
}

Query Motor Torque

Send Command Word: 0x2A06 CURRENTTORQ_INQUIRE

Request Parameters:

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

Request Example:

json
{
  "robot": 1
}

Response Command Word: 0x2A07 CURRENTTORQ_RESPOND

Response Parameters:

ParameterTypeDescription
robotintRobot number (1, 2, 3, 4)
torqarrayMotor torque
theoTorqarrayTheoretical motor torque
maxTorqarrayMaximum motor torque
maxTheoTorqarrayMaximum theoretical motor torque
maxTorqSyncarrayMaximum external axis motor torque
torqSyncarrayExternal axis motor torque

Response Example:

json
{
  "robot": 1,
  "torq": [0, 0, 0, 0, 0, 0],
  "theoTorq": [0, 0, 0, 0, 0, 0],
  "maxTorq": [0, 0, 0, 0, 0, 0],
  "maxTheoTorq": [0, 0, 0, 0, 0, 0],
  "maxTorqSync": [0, 0, 0, 0, 0],
  "torqSync": [0, 0, 0, 0, 0]
}

Run Parameter Settings

Set Run Parameters

Command Word: 0x2801 INTERPOLATION_MODE_SET

Request Parameters:

ParameterTypeRequiredDescription
absolutePosResolutionfloatYesAbsolute position resolution, range: 0.0001 - 0.1 degrees
interpolationMethodintYesRobot interpolation method: 0-S-curve, 1-Trapezoidal, 2-Jerk interpolation
runDelayTimeintYesRun delay time, range: 500 - 20000 ms
stopTimeintYesPause time, range: 240 - 2000 ms

Request Example:

json
{
  "absolutePosResolution": 0.010,
  "interpolationMethod": 0,
  "runDelayTime": 500,
  "stopTime": 240
}

Query Run Parameters

Send Command Word: 0x2802 INTERPOLATION_MODE_INQUIRE

data: none

Response Command Word: 0x2803 INTERPOLATION_MODE_RESPOND

Response Parameters:

ParameterTypeDescription
absolutePosResolutionfloatAbsolute position resolution, unit: degrees
interpolationMethodintRobot interpolation method: 0-S-curve, 1-Trapezoidal, 2-Jerk interpolation
runDelayTimeintRun delay time, unit: ms
stopTimeintPause time, unit: ms

Response Example:

json
{
  "absolutePosResolution": 0.010,
  "interpolationMethod": 0,
  "runDelayTime": 500,
  "stopTime": 240
}

Query Robot Type and Count

Query Robot Type

Send Command Word: 0x2E02 ROBOT_TYPE_INQUIRE

data: null

Response Command Word: 0x2E03 ROBOT_TYPE_RESPOND

Response Parameters:

ParameterTypeDescription
typeintCurrent robot type

Response Example:

json
{
  "type": 1
}

Robot Type Reference Table:

Type ValueDescription
0None
1General 6-axis serial multi-joint
24-axis SCARA
34-axis palletizing
44-axis serial multi-joint
5Single-axis
65-axis serial multi-joint
76-axis collaborative
82-axis SCARA
93-axis SCARA
103-axis Cartesian
113-axis special type 1
127-axis serial multi-joint
13SCARA special type 1
144-axis palletizing screw
...More types omitted

Query Robot Count

Send Command Word: 0x2E05 ROBOT_SUM_INQUIRE

data: null

Response Command Word: 0x2E06 ROBOT_SUM_RESPOND

Response Parameters:

ParameterTypeDescription
sumintRobot count

Response Example:

json
{
  "sum": 1
}

Set Robot Communication Cycle

Command Word: 0x2E07 CONTROL_CYCLE_SET

Request Parameters:

ParameterTypeRequiredDescription
controlCycleintYesCommunication cycle, range: 1, 2, 4, 8, takes effect after controller restart
baudRatestringYesCAN_OPEN baud rate

Request Example:

json
{
  "controlCycle": 1,
  "baudRate": "10K"
}

Query Robot Communication Cycle

Send Command Word: 0x2E08 CONTROL_CYCLE_INQUIRE

data: null

Response Command Word: 0x2E09 CONTROL_CYCLE_RESPOND

Response Parameters:

ParameterTypeDescription
controlCycleintCommunication cycle

Response Example:

json
{
  "controlCycle": 1
}

Query Controller Function Limits

Send Command Word: 0x2E0B CONTROLLER_LIMIT_INQUIRE

data: null

Response Command Word: 0x2E0C CONTROLLER_LIMIT_RESPOND

Response Parameters:

ParameterTypeDescription
robotsumintRobot count
maxRobotCountintMaximum robot count
robottypesobjectRobot type unlock status, true-unlocked, false-locked
craftobjectProcess unlock status, true-unlocked, false-locked

Response Example:

json
{
  "robotsum": 2,
  "maxRobotCount": 4,
  "robottypes": {
    "R_GENERAL_6S": false,
    "R_SCARA": true,
    "R_FOURAXIS_PALLET": true,
    "R_FOURAXIS": true,
    "R_GENERAL_1S": true,
    "R_GENERAL_5S": true,
    "R_GENERAL_6S_1": true,
    "R_SCARA_TWOAXIS": true,
    "R_SCARA_THREEAXIS": true,
    "R_THREE_CARTESIAN_COORDINATE": true,
    "R_THREE_CARTESIAN_COORDINATE_1": true,
    "R_GENERAL_7S": true,
    "R_SCARA_1": true,
    "R_FOURAXIS_PALLET_1": true,
    "R_FOUR_CARTESIAN_COORDINATE": true,
    "R_SIXAXIS_SPRAY_BBR": true,
    "R_FOUR_POLAR_COORDINATE_1": true,
    "R_GENERAL_6S_2": true,
    "R_GANTRY_WELD": true,
    "R_DELTA": true,
    "R_WINE_CHAMFER": true
  },
  "craft": {
    "pallet": true,
    "weld": false,
    "lasercut": true,
    "polish": true,
    "spray": true,
    "search": true,
    "pun": true,
    "vision": true
  }
}

External Axis Motion

Robot External Axis Joint Motion MOVJEXT

Command Word: 0x4507

Request Parameters:

ParameterTypeRequiredDescriptionRange
robotintYesSelect robot[1, 4]
velintYesSpeed[1, 100], unit: %
coordintYesCoordinate system0-Joint, 1-Cartesian, 2-User, 3-Tool
posdouble[12]YesTarget position: first 7 values are robot body target position, last 5 are external axis target positions-

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "pos": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 1.0, 2.0, 3.0, 4.0, 5.0]
}

Robot External Axis Linear Motion MOVLEXT

Command Word: 0x4508

Request Parameters:

ParameterTypeRequiredDescriptionRange
robotintYesSelect robot[1, 4]
velintYesSpeed[1, 1000], unit: mm/s
coordintYesCoordinate system0-Joint, 1-Cartesian, 2-User, 3-Tool
posdouble[12]YesTarget position: first 7 values are robot body target position, last 5 are external axis target positions-

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "pos": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 1.0, 2.0, 3.0, 4.0, 5.0]
}

Robot External Axis Circular Motion MOVCEXT

Command Word: 0x4509

Request Parameters:

ParameterTypeRequiredDescriptionRange
robotintYesSelect robot[1, 4]
velintYesSpeed[1, 1000], unit: mm/s
coordintYesCoordinate system0-Joint, 1-Cartesian, 2-User, 3-Tool
posOnedouble[12]YesArc start point: first 7 values are robot body target position, last 5 are external axis target positions-
posTwodouble[12]YesArc intermediate point: first 7 values are robot body target position, last 5 are external axis target positions-
posThreedouble[12]YesArc target point: first 7 values are robot body target position, last 5 are external axis target positions-

Request Example:

json
{
  "robot": 1,
  "vel": 5,
  "coord": 0,
  "posOne": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 1.0, 2.0, 3.0, 4.0, 5.0],
  "posTwo": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 1.0, 2.0, 3.0, 4.0, 5.0],
  "posThree": [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 1.0, 2.0, 3.0, 4.0, 5.0]
}

External Axis Move to Target Point

Command Word: 0x3004 (GO_SYNCPOSITION)

RobotPos Structure Description

FieldTypeDescription
ctypeintP type: NONE_TYPE=0, P_TYPE, E_TYPE, RP_TYPE, AP_TYPE, GP_TYPE, GE_TYPE
datadouble[21]Position data array, see array index description below
keystringVariable type
paraVarDataarrayVariable data array

data Array Index Description

Index PositionMeaningDescription
0, 1Coordinate system identifier0 0-Joint, 1 1-Cartesian, 2 1-Tool, 3 1-User
2Left/right hand1-left, 2-right, 0-none (default 0)
3, 4, 5, 6ReservedDefault 0
7 ~ 13Robot body coordinates7 values, under joint coordinates represents axis 1-6 angle values, under other coordinates represents x,y,z,a,b,c
14 ~ 18External axis coordinatesSupports up to 5 external axes, only joint values, padded with zeros if insufficient

Request Example:

json
{
  "RobotPos": {
    "ctype": 0,
    "data": [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 6.0, 0.0, 6.0, 3.141590, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    "key": "",
    "paraVarData": [
      {"data": 1.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 1.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": 6.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 6.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 3.141590, "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": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""},
      {"data": 0.0, "secondvalue": 0, "value": 0, "varname": ""}
    ]
  },
  "robot": 1
}

External Axis Settings

1. Positioner Coordinate Correction Calculation Settings

Command ID: 0x7001 SYNCPOSITIONER_CALIBRATION_SET

Description: Positioner coordinate correction calculation settings, send the following command

Request Parameters:

ParameterTypeRequiredDescription
calibrateNumintYesPositioner group number, available values: 1, 2, 3

Request Example:

json
{
  "calibrateNum": 1
}

Controller Response Command ID: 0x7004 SYNCPOSITIONER_CALIBRATION_RESULT

Response Parameters:

ParameterTypeDescription
resultboolWhether external axis data calculation succeeded

Response Example:

json
{
  "result": true
}

2. Calibration Point Coordinates

Command ID: 0x7002 SYNCPOSITIONER_CALIBRATION_INQUIRE

Description: Calibration point coordinates, send the following command

Request Parameters:

ParameterTypeRequiredDescription
syncPositionerNumintYesPositioner group number, available values: 1, 2, 3
pointNumintYesRange: 0~3 or 5

Request Example:

json
{
  "syncPositionerNum": 1,
  "pointNum": 0
}

Controller Response Command ID: 0x7003 SYNCPOSITIONER_CALIBRATION_RESPOND

Response Parameters:

ParameterTypeDescription
syncPositionerNumintPositioner group number, available values: 1, 2, 3
pointNumintRange: 0~3 or 5
posarrayCurrent point

Response Example:

json
{
  "syncPositionerNum": 1,
  "pointNum": 0,
  "pos": [0, 0, 0, 0, 0, 0]
}

3. Query All External Axis Calibration Results

Command ID: 0x7005 SYNCPOSITIONER_TYPEANDCALIBRATIONRESULT_INQUIRE

Description: Query all external axis calibration results

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number

Request Example:

json
{
  "robot": 1
}

Response Command ID: 0x7006 SYNCPOSITIONER_TYPEANDCALIBRATIONRESULT_RESPOND

Response Parameters:

ParameterTypeDescription
robotintRobot number
calibrateResultarrayWhether calibrated, array indicates whether external axis group numbers are calibrated
syncTypearraySynchronization type

Response Example:

json
{
  "robot": 1,
  "calibrateResult": [false, false, true],
  "syncType": [1, 1, 1]
}

4. Calibration Result Query

Command ID: 0x7007 SYNCPOSITIONER_COORD_INQUIRE

Description: Calibration result query (teach pendant does not have this function)

Request Parameters:

ParameterTypeRequiredDescription
syncPositionerNumintYesPositioner group number
coordNumintYesGet calibration result

Request Example:

json
{
  "syncPositionerNum": 1,
  "coordNum": 0
}

Response Command ID: 0x7008 SYNCPOSITIONER_COORD_RESPOND

Response Parameters:

ParameterTypeDescription
syncPositionerNumintPositioner group number
coordNumintCalibration result number
posarrayCurrent point

Response Example:

json
{
  "syncPositionerNum": 1,
  "coordNum": 1,
  "pos": [0, 0, 0, 0, 0, 0]
}

5. Set Current Collaborative External Axis Group Number

Command ID: 0x7009 SYNCPOSITIONER_COORDNUM_SWITCH

Description: Set current collaborative external axis group number

Request Parameters:

ParameterTypeRequiredDescription
curSyncPositionerNumintYesCurrent collaborative external axis group number

Request Example:

json
{
  "curSyncPositionerNum": 3
}

Query Current Collaborative External Axis Group Number:

Command ID: 0x700A SYNCPOSITIONER_COORDNUM_INQUIRE

Description: No data needs to be sent

Controller Response Command ID: 0x700B SYNCPOSITIONER_COORDNUM_RESPOND

Response Parameters:

ParameterTypeDescription
curSyncPositionerNumintCurrent collaborative external axis group number

Response Example:

json
{
  "curSyncPositionerNum": 2
}

6. Set Ground Track Parameters

Command ID: 0x700D SYNCTRACK_SET

Description: Set ground track parameters, teach pendant sends the following command

Request Parameters:

ParameterTypeRequiredDescription
calibrateResultboolYesWhether collaborative
xConversionRatiofloatYesX direction conversion ratio
yConversionRatiofloatYesY direction conversion ratio
zConversionRatiofloatYesZ direction conversion ratio

Request Example:

json
{
  "calibrateResult": true,
  "xConversionRatio": 1.0,
  "yConversionRatio": 1.0,
  "zConversionRatio": 1.0
}

Query Command ID: 0x700E SYNCTRACK_INQUIRE

Controller Response Command ID: 0x700F SYNCTRACK_RESPOND

Response Example:

json
{
  "calibrateResult": true,
  "xConversionRatio": 1.0,
  "yConversionRatio": 1.0,
  "zConversionRatio": 1.0
}

7. Current Position Query

Command ID: 0x7012 SYNC_POS_INQUIRE

Description: External axis settings interface, teach pendant sends the following command

Request Parameters:

ParameterTypeRequiredDescription
robotintYesRobot number
coordintYesCoordinate mode
- -1: Controller current coordinate
- 0: Joint
- 1: Cartesian
- 2: Tool
- 3: User

Request Example:

json
{
  "robot": 1,
  "coord": 0
}

Controller Response Command ID: 0x7013 SYNC_POS_RESPOND

Description: Reset point settings interface, controller sends when receiving current position query

Response Parameters:

ParameterTypeDescription
robotintRobot number
coordintCoordinate mode
- -1: Controller current coordinate
- 0: Joint
- 1: Cartesian
- 2: Tool
- 3: User
configurationintPosture or left/right hand
posarrayCurrent position (radians)
posDegarrayCurrent position (degrees)
posSyncarrayExternal axis current position

Response Example:

json
{
  "robot": 1,
  "coord": 0,
  "configuration": 1,
  "pos": [0, 0.1, 2, 3.3, 44, 555.55, 66.6, 77.77],
  "posDeg": [0, 0.1, 2, 3.3, 44, 555.55, 66.6, 77.77],
  "posSync": [0, 0.1, 2, 3.3, 44, 555.55, 66.6, 77.77]
}

8. Dual-Robot Collaboration Enable

Set Dual-Robot Collaboration Enable Command ID: 0x7015 COOPERATIVE_SET

Request Parameters:

ParameterTypeRequiredDescription
cooperativeRobotintYesCollaboration setting
- 0: No collaboration
- 1: Collaboration

Request Example:

json
{
  "cooperativeRobot": 0
}

Get Collaboration Status Command ID: 0x7016 COOPERATIVE_INQUIRE

Response Collaboration Status Command ID: 0x7017 COOPERATIVE_RESPOND

Response Parameters:

ParameterTypeDescription
cooperativeRobotintCollaboration status
- 0: No collaboration
- 1: Collaboration

Response Example:

json
{
  "cooperativeRobot": 0
}

9. External Axis Joint Parameter Settings

Command ID: 0x7021 JOINTPARAMETER_SYNCPOSITIONER_SET

Description: External axis joint parameter settings

Single-Axis Positioner

Request Example:

json
{
  "Joint": [
    {
      "BackLash": 0.0,
      "DeRatedVel": -30000.0,
      "Direction": 1.0,
      "EncoderResolution": 17.0,
      "MaxAcc": 1.0,
      "MaxDeRotSpeed": -1.0,
      "MaxDecel": -1.0,
      "MaxRotSpeed": 1.0,
      "maxJerkAcc": 1.0,
      "maxJerkDec": -1.0,
      "NegSWLimit": -360.0,
      "PosSWLimit": 720.0,
      "RatedDeRotSpeed": -5000.0,
      "RatedRotSpeed": 5000.0,
      "RatedVel": 30000.0,
      "ReducRatio": 1.0,
      "syncAxisNum": 1,
      "syncGroupNum": 1
    }
  ],
  "syncGroupNum": 1
}

Dual-Axis Positioner

Request Example:

json
{
  "Joint": [
    {
      "BackLash": 0.0,
      "DeRatedVel": -18000.0,
      "Direction": 1.0,
      "EncoderResolution": 17.0,
      "MaxAcc": 1.0,
      "MaxDeRotSpeed": -1.0,
      "MaxDecel": -1.0,
      "MaxRotSpeed": 1.0,
      "NegSWLimit": -100.0,
      "PosSWLimit": 100.0,
      "RatedDeRotSpeed": -3000.0,
      "RatedRotSpeed": 3000.0,
      "RatedVel": 18000.0,
      "ReducRatio": 1.0,
      "maxJerkAcc": 1.0,
      "maxJerkDec": -1.0,
      "syncAxisNum": 1,
      "syncGroupNum": 2
    },
    {
      "BackLash": 0.0,
      "DeRatedVel": -12000.0,
      "Direction": -1.0,
      "EncoderResolution": 17.0,
      "MaxAcc": 1.0,
      "MaxDeRotSpeed": -1.0,
      "MaxDecel": -1.0,
      "MaxRotSpeed": 1.0,
      "NegSWLimit": -80.0,
      "PosSWLimit": 80.0,
      "RatedDeRotSpeed": -2000.0,
      "RatedRotSpeed": 2000.0,
      "RatedVel": 12000.0,
      "ReducRatio": 1.0,
      "maxJerkAcc": 1.0,
      "maxJerkDec": -1.0,
      "syncAxisNum": 2,
      "syncGroupNum": 2
    }
  ],
  "syncGroupNum": 2
}

Joint Parameter Description:

ParameterTypeDescription
BackLashfloatGear backlash
DeRatedVelfloatRated negative velocity
DirectionfloatDirection: 1.0 indicates forward
EncoderResolutionfloatEncoder resolution (bits)
MaxAccfloatMaximum acceleration
MaxDeRotSpeedfloatMaximum reverse rotation speed
MaxDecelfloatMaximum deceleration
MaxRotSpeedfloatMaximum forward rotation speed
maxJerkAccfloatMaximum jerk acceleration
maxJerkDecfloatMaximum jerk deceleration
NegSWLimitfloatNegative limit angle
PosSWLimitfloatPositive limit angle
RatedDeRotSpeedfloatRated reverse rotation speed
RatedRotSpeedfloatRated forward rotation speed
RatedVelfloatRated velocity
ReducRatiofloatJoint reduction ratio
syncAxisNumintAxis number
syncGroupNumintSynchronization group number

Root Level Parameter Description:

ParameterTypeDescription
syncGroupNumintSynchronization group number

Query Joint Parameters Command ID: 0x7022 JOINTPARAMETER_SYNCPOSITIONER_INQUIRE

Request Parameters:

ParameterTypeRequiredDescription
syncGroupNumintYesSynchronization group number

Request Example:

json
{
  "syncGroupNum": 1
}

Joint Parameter Response Command ID: 0x7023 JOINTPARAMETER_SYNCPOSITIONER_RESPOND

Description: Same as 0x7021


10. External Axis Jog Joint Speed Settings

Command ID: 0x7024 JOG_JOINTPARAMETER_SYNCPOSITIONER_SET

Description: External axis jog joint speed settings


Force Functions

1. Collision Detection

Collision Detection Switch Settings

FieldTypeDescription
0x7406COLLISION_DETECTION_SET

Request Parameters:

ParameterTypeRequiredDescription
switchboolYesCollision detection switch

Request Example:

json
{
  "switch": true
}

Get Collision Detection Switch Status

FieldTypeDescription
0x7407COLLISION_DETECTION_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x7408COLLISION_DETECTION_RESPOND

Response Parameters:

ParameterTypeDescription
is_identificationboolIdentification status
restrart_switchboolRestart switch
switchboolCollision detection switch

Response Example:

json
{
  "is_identification": true,
  "restrart_switch": true,
  "switch": true
}

Collision Detection Parameter Settings

FieldTypeDescription
0x7409COLLISION_DETECTION_PARAM_SET

Request Parameters:

ParameterTypeRequiredDescription
Co_De_paraarray[double]YesThresholds, array length 6
error_enable_timedoubleYesError allow time
pos_delay_timedoubleYesCommand position response time

Request Example:

json
{
  "Co_De_para": [3.0, 4.0, 5.0, 6.0, 7.0, 8.0],
  "error_enable_time": 2.0,
  "pos_delay_time": 1.0
}

Get Collision Detection Parameters

FieldTypeDescription
0x740ACOLLISION_DETECTION_PARAM_INQUIRE

Request Parameters: None

Controller Response Command Word: 0x740B COLLISION_DETECTION_PARAM_RESPOND

Response Parameters: Same as 0x7409


2. Torque Feedforward

Torque Feedforward Switch Settings

FieldTypeDescription
0x740CTORQ_FEEDBACK_SET

Request Parameters:

ParameterTypeRequiredDescription
torqFeedbackboolYesTorque feedforward switch

Request Example:

json
{
  "torqFeedback": true
}

Query Torque Feedforward Status

FieldTypeDescription
0x740DTORQ_FEEDBACK_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x740ETORQ_FEEDBACK_RESPOND

Response Parameters: Same as 0x740C


3. Drag Teaching

Query Drag Teaching

FieldTypeDescription
0x7501DRAG_TRAJ_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x7502DRAG_TRAJ_RESPOND

Response Parameters:

ParameterTypeRequiredDescription
TrajNamearray[string]YesTrajectory name list

Response Example:

json
{
  "TrajName": ["RRR", "TTT"]
}

Drag Teaching Parameter Settings

FieldTypeDescription
0x7504DRAG_PARAM_SET

Request Parameters:

ParameterTypeRequiredDescription
DecareLimitdoubleYesCartesian space linear velocity limit
JointVelLimitdoubleYesJoint space velocity limit
drag_modeintYesDrag mode: 0-Free drag, 1-Position drag, 2-Posture drag
frictionOffsetarray[double]YesFriction compensation correction coefficients for joints 1-6
dragCoefficientarray[double]YesJoint over-limit resistance coefficient, length 6, range [1,100]

Request Example:

json
{
  "DecareLimit": 1.0,
  "JointVelLimit": 2.0,
  "drag_mode": 0,
  "frictionOffset": [3.0, 3.0, 3.0, 3.0, 3.0, 3.0],
  "dragCoefficient": [5.0, 5.0, 5.0, 5.0, 5.0, 5.0]
}

Get Drag Teaching Parameters

FieldTypeDescription
0x7505DRAG_PARAM_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x7506DRAG_PARAM_RESPOND

Response Parameters: Same as 0x7504


Drag Teaching Trajectory Playback Parameter Settings

FieldTypeDescription
0x7507DRAG_TRAJ_PARAM_SET

Request Parameters:

ParameterTypeRequiredDescription
MaxSamplingNumdoubleYesMaximum sampling points
SamplingIntervaldoubleYesSampling interval
StartboolYesfalse-stop, true-start

Request Example:

json
{
  "MaxSamplingNum": 3000.0,
  "SamplingInterval": 0.030,
  "Start": false
}

Query Drag Trajectory Parameters

FieldTypeDescription
0x7508DRAG_TRAJ_PARAM_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x7509DRAG_TRAJ_PARAM_RESPOND

Response Parameters: Same as 0x7507

Query Whether Trajectory Is Being Recorded

FieldTypeDescription
0x750ADRAG_TRAJ_RECORD_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x750BDRAG_TRAJ_RECORD_RESPOND

Response Parameters:

ParameterTypeRequiredDescription
recordboolYesWhether drag trajectory is being recorded

Response Example:

json
{
  "record": true
}

Trajectory Playback

FieldTypeDescription
0x750CDRAG_TRAJ_PLAYBACK

Request Parameters:

ParameterTypeRequiredDescription
trajNamestringYesTrajectory name
velintYesTrajectory playback speed, teach pendant fixed sends 100

Request Example:

json
{
  "trajName": "",
  "vel": 100
}

Save Trajectory

FieldTypeDescription
0x750DDRAG_TRAJ_SAVE

Request Parameters:

ParameterTypeRequiredDescription
TrajNamestringYesTrajectory name

Request Example:

json
{
  "TrajName": "SSSSS"
}

Delete Trajectory

FieldTypeDescription
0x750EDRAG_TRAJ_DELETE

Request Parameters:

ParameterTypeRequiredDescription
TrajNamestringYesTrajectory name

Request Example:

json
{
  "TrajName": "SSSSS"
}

Drag Mode Settings

FieldTypeDescription
0x750FDRAG_MODE

Request Parameters:

ParameterTypeRequiredDescription
modeintYesDrag mode: 0-None, 1-3D mouse, 2-Torque
portintYesExternal trigger signal port number
valueintYesExternal trigger signal value

Request Example:

json
{
  "mode": 2,
  "port": 3,
  "value": 1
}

Query Drag Mode

FieldTypeDescription
0x7510DRAG_MODE_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x7511DRAG_MODE_RESPOND

Response Parameters: Same as 0x750F


5. External Buttons

Query Function Control Parameters

FieldTypeDescription
0x9114FUNCTIONALCONTROL_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x9115FUNCTIONALCONTROL_RESPOND

Array index description: 0-Drag mode, 1-Jog mode, 2-Start trajectory acquisition, 3-Stop trajectory acquisition, 4-Start trajectory playback, 5-Power on, 6-Power off, 7-Gripper open, 8-Gripper close, 9-Save trajectory

Response Parameters:

ParameterTypeRequiredDescription
IoInPortArrarray[int]YesTrigger port (DIN), array length 11
hardwareTypeArrarray[int]YesHardware type: 0-IO, array length 11
modeArrarray[int]YesTrigger method: 0-Long press trigger port, 1-Short press trigger port, array length 11
parameterArrarray[int]YesParameter: 0-Trigger when port is off, 1-Trigger when port is on, array length 11

Response Example:

json
{
  "IoInPortArr": [1, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10],
  "hardwareTypeArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "modeArr": [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0],
  "parameterArr": [0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0]
}

Status Prompt Query

FieldTypeDescription
0x9116STATUSPROMPT_INQUIRE

Request Parameters: None

Controller Response

FieldTypeDescription
0x9117STATUSPROMPT_RESPOND

Array index description: 0-Drag mode, 1-Jog mode, 2-Start trajectory acquisition, 3-Stop trajectory acquisition, 4-Start trajectory playback, 5-Power on, 6-Power off, 7-Gripper open, 8-Gripper close

Response Parameters:

ParameterTypeRequiredDescription
IoDoutPortArrarray[int]YesTrigger port (DOUT), array length 11
hardwareTypeArrarray[int]YesHardware type: 0-IO, array length 11
parameterArrarray[int]YesParameter: 0-Trigger port off, 1-Trigger port on, 2-Blink, array length 11

Response Example:

json
{
  "IoDoutPortArr": [1, 2, 3, 4, 5, 0, 6, 7, 0, 0, 0],
  "hardwareTypeArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "parameterArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
}

Set External Button Parameters

FieldTypeDescription
0x9118EXTERNKEYPARA_SET

Request Parameters:

ParameterTypeRequiredDescription
_isFunctionalControlboolYestrue-Set function control parameters, false-Set status prompt parameters
hardwareTypeArrarray[int]YesHardware type: 0-IO, array length 11
isClearTrackintYesWhether to clear trajectory after saving
modeArrarray[int]YesTrigger method: 0-Long press trigger port, 1-Short press trigger port, array length 11
parameterArrarray[int]YesParameters, array length 11
portArrarray[int]YesTrigger ports, array length 11

Request Example:

json
{
  "_isFunctionalControl": true,
  "hardwareTypeArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "isClearTrack": 1,
  "modeArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "parameterArr": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  "portArr": [1, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10]
}