Skip to content

Palletizing Process

1 Gripper

1.1 Upper Computer Sets Gripper Parameters

Description: Gripper setting configures the tool hands used during palletizing. If two suction cups pick parts separately (one picks, then switches to the other), two grippers must be configured; if two suction cups pick parts simultaneously, one gripper is configured. If two suction cups place parts separately (one places, then switches to the other), two grippers must be configured; if two suction cups place parts simultaneously, one gripper is configured.

Command: 0x8000

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.gripperNumintNumber of grippers[1,4]
pallet.gripperarrayGripper tool number array, the i-th element represents the tool number of gripper i-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "gripperNum": 2,
        "gripper": [1, 3, 4, 1]
    }
}

1.2 Upper Computer Queries Gripper Parameters

Command: 0x8001

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

1.3 Controller Returns Gripper Parameters

Command: 0x8002

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.gripperNumintNumber of grippers[1,4]
pallet.gripperarrayGripper tool number array, the i-th element represents the tool number of gripper i-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "gripperNum": 2,
        "gripper": [1, 3, 4, 1]
    }
}

2 Pallet

2.1 Upper Computer Sets Pallet Parameters

Command: 0x8010

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.userNumintUser coordinate frame-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "userNum": 1
    }
}

2.2 Upper Computer Queries Pallet Parameters

Command: 0x8011

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

2.3 Controller Returns Pallet Parameters

Command: 0x8012

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.userNumintUser coordinate frame-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "userNum": 1
    }
}

2.4 Upper Computer Sets Palletizing Pallet Range Parameters

Command: 0x8013

Parameter NameTypeDescriptionValue Range
robotintRobot number to operate[1,4]
craftIDintPalletizing process number-
pallet.tray_previewboolWhether to enable tray previewtrue/false
pallet.tray_lengthdoubleTray length(1,50000)
pallet.tray_widthdoubleTray width(1,50000)
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "tray_preview": true,
        "tray_length": 1,
        "tray_width": 1
    }
}

2.5 Upper Computer Queries Palletizing Pallet Range Parameters

Command: 0x8014

Parameter NameTypeDescriptionValue Range
robotintRobot number to operate[1,4]
craftIDintPalletizing process number-
json
{
    "robot": 1,
    "craftID": 1
}

2.6 Controller Returns Pallet Range Parameters

Command: 0x8015

Parameter NameTypeDescriptionValue Range
robotintRobot number to operate[1,4]
craftIDintPalletizing process number-
pallet.tray_previewboolWhether to enable tray previewtrue/false
pallet.tray_lengthdoubleTray length(1,50000)
pallet.tray_widthdoubleTray width(1,50000)
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "tray_preview": true,
        "tray_length": 1,
        "tray_width": 1
    }
}

3 Position

3.1 Upper Computer Sets Position Parameters

Description: Position setting configures palletizing workpiece points, auxiliary points, and entry points. Please set the selected tool hand with the gripper for position marking.

Command: 0x8020

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.floorNumintLayer where the origin is marked-
pallet.enterPosarrayEntry point, double type, 6 elements-
pallet.realPosarrayWorkpiece point, double type, 6 elements-
pallet.shiftPosarrayAuxiliary point, double type, 6 elements-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "floorNum": 1,
        "enterPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0],
        "realPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0],
        "shiftPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0]
    }
}

3.2 Upper Computer Queries Position Parameters

Command: 0x8021

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

3.3 Controller Returns Position Parameters

Command: 0x8022

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.floorNumintLayer where the origin is marked-
pallet.enterPosarrayEntry point, double type, 6 elements-
pallet.realPosarrayWorkpiece point, double type, 6 elements-
pallet.shiftPosarrayAuxiliary point, double type, 6 elements-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "floorNum": 1,
        "enterPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0],
        "realPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0],
        "shiftPos": [9999.0, 9999.0, 9999.0, 9999.0, 9999.0, 9999.0]
    }
}

4 Workpiece Parameters

4.1 Upper Computer Sets Workpiece Parameters

Command: 0x8030

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.workpieceGapXdoubleGap in tray X direction[0,9999]mm
pallet.workpieceGapYdoubleGap in tray Y direction[0,9999]mm
pallet.workpieceHeightdoubleHeight (tray Z direction)[1,9999]mm
pallet.workpieceLengtharrayLength (tray Y direction), double type[1,9999]mm
pallet.workpieceWidtharrayWidth (tray X direction), double type[1,9999]mm
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "workpieceGapX": 0.0,
        "workpieceGapY": 0.0,
        "workpieceHeight": 1.0,
        "workpieceLength": [1.0],
        "workpieceWidth": [1.0]
    }
}

4.2 Upper Computer Queries Workpiece Parameters

Command: 0x8031

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

4.3 Controller Returns Workpiece Parameters

Command: 0x8032

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.workpieceGapXdoubleGap in tray X direction[0,9999]mm
pallet.workpieceGapYdoubleGap in tray Y direction[0,9999]mm
pallet.workpieceHeightdoubleHeight (tray Z direction)[1,9999]mm
pallet.workpieceLengtharrayLength (tray Y direction), double type[1,9999]mm
pallet.workpieceWidtharrayWidth (tray X direction), double type[1,9999]mm
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "workpieceGapX": 0.0,
        "workpieceGapY": 0.0,
        "workpieceHeight": 1.0,
        "workpieceLength": [1.0],
        "workpieceWidth": [1.0]
    }
}

5 Approach Parameters

5.1 Upper Computer Sets Approach Parameters

Command: 0x8040

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.workpieceApproEnableboolApproach enabletrue/false
pallet.workpieceApproModeintApproach mode0: Descent-then-approach, 1: Approach-then-descent
pallet.workpieceApproLenXdoubleLength in tray X direction[0,9999]mm
pallet.workpieceApproLenYdoubleLength in tray Y direction[0,9999]mm
pallet.workpieceApproLenZdoubleLength in tray Z direction[0,9999]mm
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "workpieceApproEnable": false,
        "workpieceApproMode": 0,
        "workpieceApproLenX": 0,
        "workpieceApproLenY": 0,
        "workpieceApproLenZ": 0
    }
}

5.2 Upper Computer Queries Approach Parameters

Command: 0x8041

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

5.3 Controller Returns Approach Parameters

Command: 0x8042

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.workpieceApproEnableboolApproach enabletrue/false
pallet.workpieceApproModeintApproach mode0: Descent-then-approach, 1: Approach-then-descent
pallet.workpieceApproLenXdoubleLength in tray X direction[0,9999]mm
pallet.workpieceApproLenYdoubleLength in tray Y direction[0,9999]mm
pallet.workpieceApproLenZdoubleLength in tray Z direction[0,9999]mm
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "workpieceApproEnable": false,
        "workpieceApproMode": 0,
        "workpieceApproLenX": 0,
        "workpieceApproLenY": 0,
        "workpieceApproLenZ": 0
    }
}

6 Overlap Mode Parameters

6.1 Set Overlap Mode Parameters

Command: 0x8050

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.floorSumintNumber of layers[1,999]
pallet.overlapTypeintRepeat pattern0: Identical, 1: Alternating, 2: Custom
pallet.layHeightOffsetdoublePlace point height compensation-
pallet.fixedLayHeightboolFixed place point heighttrue/false
pallet.fixedSupHeightboolFixed auxiliary point heighttrue/false
pallet.columnLayboolVertical arrangementtrue/false
pallet.floorAutoJustifiedboolLayer auto-alignmenttrue/false
pallet.poseAutorotationboolPose auto-rotationtrue/false
pallet.fixedEnterPointboolFixed entry point positiontrue/false
pallet.graphicNumarrayGraphic number[0,9]
pallet.heightRevisearrayHeight correction-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "floorSum": 1,
        "overlapType": 0,
        "layHeightOffset": 0.0,
        "fixedLayHeight": false,
        "fixedSupHeight": false,
        "columnLay": false,
        "floorAutoJustified": false,
        "poseAutorotation": false,
        "fixedEnterPoint": false,
        "graphicNum": [1, 2, 1, 2],
        "heightRevise": [1.1, -2.2]
    }
}

6.2 Upper Computer Queries Overlap Mode Parameters

Command: 0x8051

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

6.3 Controller Returns Overlap Mode Parameters

Command: 0x8052

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.floorSumintNumber of layers[1,999]
pallet.overlapTypeintRepeat pattern0: Identical, 1: Alternating, 2: Custom
pallet.layHeightOffsetdoublePlace point height compensation-
pallet.fixedLayHeightboolFixed place point heighttrue/false
pallet.fixedSupHeightboolFixed auxiliary point heighttrue/false
pallet.columnLayboolVertical arrangementtrue/false
pallet.floorAutoJustifiedboolLayer auto-alignmenttrue/false
pallet.poseAutorotationboolPose auto-rotationtrue/false
pallet.fixedEnterPointboolFixed entry point positiontrue/false
pallet.graphicNumarrayGraphic number[0,9]
pallet.heightRevisearrayHeight correction-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "floorSum": 1,
        "overlapType": 0,
        "layHeightOffset": 0.0,
        "fixedLayHeight": false,
        "fixedSupHeight": false,
        "columnLay": false,
        "floorAutoJustified": false,
        "poseAutorotation": false,
        "fixedEnterPoint": false,
        "graphicNum": [1, 2, 1, 2],
        "heightRevise": [1.1, -2.2]
    }
}

7 Plane Mode Parameters

7.1 Set Plane Mode Parameters

Command: 0x8060

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.graphicTypeintTemplate selection0: Row-column, 1: Interlaced, 2: Spiral, 3: Five-pattern, 4: Custom
pallet.transLenXdoubleX translation compensation[-9999,9999]mm
pallet.transLenYdoubleY translation compensation[-9999,9999]mm
pallet.ranks.numXintCount in X direction[1,999]
pallet.ranks.numYintCount in Y direction[1,999]
pallet.ranks.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.ranks.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.ranks.autoCalculateboolAuto-calculatetrue/false
pallet.intertwining.numXintCount in X direction[1,999]
pallet.intertwining.numYintCount in Y direction[1,999]
pallet.intertwining.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.intertwining.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.gearType.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.gearType.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.wideType.A_rowsintRows in zone A[0,999]
pallet.wideType.B_rowsintRows in zone B[1,999]
pallet.wideType.B_columnsintColumns in zone B[1,999]
pallet.wideType.C_rowsintRows in zone C[0,999]
pallet.wideType.A_C_columnsintColumns in zones A and C[0,999]
pallet.wideType.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.wideType.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.custom.sumintTotal workpieces per layer-
pallet.custom.startintStarting workpiece number to send-
pallet.custom.countintNumber of layer workpieces sent to controller, max 10 per send-
pallet.custom.eachVec[].XdoubleX offset[-9999,9999]mm
pallet.custom.eachVec[].YdoubleY offset[-9999,9999]mm
pallet.custom.eachVec[].tdoubleRotation angle[-180,180]
pallet.custom.eachVec[].dirintApproach direction0: Up, 1: Down, 2: Left, 3: Right, 4: Upper-left, 5: Lower-left, 6: Upper-right, 7: Lower-right
pallet.custom.eachVec[].hdoubleHeight correction[-9999,9999]mm
pallet.custom.eachVec[].EntrySpeeddoubleApproach speed0 or [1,100]%
pallet.custom.eachVec[].LeaveSpeeddoubleDeparture speed0 or [1,100]%

Note: A maximum of 10 sets can be sent per transmission. If the total workpiece count exceeds 10, multiple transmissions are required. For non-first transmissions, the start value must change. For example, if 10 sets are sent the first time, start should be 11 for the second transmission.

json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "graphicType": 0,
        "transLenX": 2.2,
        "transLenY": -3.3,
        "ranks": {
            "numX": 0,
            "numY": 0,
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0,
            "autoCalculate": true
        },
        "intertwining": {
            "numX": 0,
            "numY": 0,
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0
        },
        "gearType": {
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0
        },
        "wideType": {
            "A_rows": 1,
            "B_rows": 1,
            "B_columns": 1,
            "C_rows": 1,
            "A_C_columns": 1,
            "rotationAngleWhole": 0.0,
            "rotationAngleSingle": 0.0
        },
        "custom": {
            "sum": 20,
            "start": 1,
            "count": 10,
            "eachVec": [
                {
                    "X": 0,
                    "Y": 0,
                    "t": 0,
                    "dir": 0,
                    "h": 0,
                    "EntrySpeed": 60.0,
                    "LeaveSpeed": 3.0
                }
            ]
        }
    }
}

7.2 Upper Computer Queries Plane Mode Parameters

Command: 0x8061

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1
}

7.3 Controller Returns Plane Mode Parameters

Command: 0x8060

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.graphicTypeintTemplate selection0: Row-column, 1: Interlaced, 2: Spiral, 3: Five-pattern, 4: Custom
pallet.transLenXdoubleX translation compensation[-9999,9999]mm
pallet.transLenYdoubleY translation compensation[-9999,9999]mm
pallet.ranks.numXintCount in X direction[1,999]
pallet.ranks.numYintCount in Y direction[1,999]
pallet.ranks.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.ranks.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.ranks.autoCalculateboolAuto-calculatetrue/false
pallet.intertwining.numXintCount in X direction[1,999]
pallet.intertwining.numYintCount in Y direction[1,999]
pallet.intertwining.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.intertwining.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.gearType.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.gearType.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.wideType.A_rowsintRows in zone A[0,999]
pallet.wideType.B_rowsintRows in zone B[1,999]
pallet.wideType.B_columnsintColumns in zone B[1,999]
pallet.wideType.C_rowsintRows in zone C[0,999]
pallet.wideType.A_C_columnsintColumns in zones A and C[0,999]
pallet.wideType.rotationAngleWholeintOverall rotation angle0:0, 1:90, 2:180, 3:-90
pallet.wideType.rotationAngleSingleintWorkpiece rotation angle0:0, 1:90, 2:180, 3:-90
pallet.custom.sumintTotal workpieces per layer-
pallet.custom.startintStarting workpiece number to send-
pallet.custom.countintNumber of layer workpieces sent to controller, max 10 per send-
pallet.custom.eachVec[].XdoubleX offset[-9999,9999]mm
pallet.custom.eachVec[].YdoubleY offset[-9999,9999]mm
pallet.custom.eachVec[].tdoubleRotation angle[-180,180]
pallet.custom.eachVec[].dirintApproach direction0: Up, 1: Down, 2: Left, 3: Right, 4: Upper-left, 5: Lower-left, 6: Upper-right, 7: Lower-right
pallet.custom.eachVec[].hdoubleHeight correction[-9999,9999]mm
pallet.custom.eachVec[].EntrySpeeddoubleApproach speed0 or [1,100]%
pallet.custom.eachVec[].LeaveSpeeddoubleDeparture speed0 or [1,100]%
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "graphicType": 0,
        "transLenX": 2.2,
        "transLenY": -3.3,
        "ranks": {
            "numX": 0,
            "numY": 0,
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0,
            "autoCalculate": true
        },
        "intertwining": {
            "numX": 0,
            "numY": 0,
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0
        },
        "gearType": {
            "rotationAngleWhole": 0,
            "rotationAngleSingle": 0
        },
        "wideType": {
            "A_rows": 1,
            "B_rows": 1,
            "B_columns": 1,
            "C_rows": 1,
            "A_C_columns": 1,
            "rotationAngleWhole": 0.0,
            "rotationAngleSingle": 0.0
        },
        "custom": {
            "sum": 20,
            "start": 1,
            "count": 10,
            "eachVec": [
                {
                    "X": 0,
                    "Y": 0,
                    "t": 0,
                    "dir": 0,
                    "h": 0,
                    "EntrySpeed": 60.0,
                    "LeaveSpeed": 3.0
                }
            ]
        }
    }
}

7.4 Request Conversion to Plane Mode Custom Template

Command: 0x8063

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1
}

7.5 Controller Returns Parameters After Converting to Plane Mode Custom Template

Command: 0x8064

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.graphicTypeintTemplate selection (can only be 3 here)3: Custom
pallet.transLenXdoubleX translation compensation[-9999,9999]mm
pallet.transLenYdoubleY translation compensation[-9999,9999]mm
pallet.autoTransLenXdoubleX auto-translation distance-
pallet.autoTransLenYdoubleY auto-translation distance-
pallet.customobjectCustom parameters (same as above)-
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "graphicType": 3,
        "transLenX": 2.2,
        "transLenY": -3.3,
        "autoTransLenX": 4.4,
        "autoTransLenY": 5.5,
        "custom": {
            "sum": 20,
            "start": 1,
            "count": 10,
            "eachVec": [
                {
                    "X": 0,
                    "Y": 0,
                    "t": 0,
                    "dir": 0,
                    "h": 0
                }
            ]
        }
    }
}

7.6 Upper Computer Requests Plane Mode Preview

Command: 0x8065

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1
}

7.7 Controller Returns Plane Mode Preview Parameters

Command: 0x8066

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.workpieceLengthintLength of each workpiece[0,9999]mm
pallet.workpieceWidthintWidth of each workpiece[0,9999]mm
pallet.sumintTotal workpieces per layer-
pallet.startintStarting workpiece number to send-
pallet.countintNumber of layer workpieces sent to controller, max 10 per send-
pallet.tray.xdoubleTray x coordinate-
pallet.tray.ydoubleTray y coordinate-
pallet.eachVec[].XdoubleX offset[-9999,9999]mm
pallet.eachVec[].YdoubleY offset[-9999,9999]mm
pallet.eachVec[].tdoubleRotation angle[-180,180]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "workpieceLength": 1,
        "workpieceWidth": 1,
        "sum": 20,
        "start": 1,
        "count": 10,
        "tray": {
            "x": 0.0,
            "y": 0.0
        },
        "eachVec": [
            {
                "X": 0,
                "Y": 0,
                "t": 0
            }
        ]
    }
}

7.8 Query Complete Palletizing Plane Mode Auto-Calculation Result

Command: 0x806A

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

7.9 Controller Returns Complete Palletizing Plane Mode Auto-Calculation Result

Command: 0x806B

Parameter NameTypeDescription
pallet.ranks.numXintCount in X direction
pallet.ranks.numYintCount in Y direction
json
{
    "pallet": {
        "ranks": {
            "numX": 0,
            "numY": 0
        }
    }
}

7.10 Plane Mode Custom Mode Preview (Does Not Save Parameters and Results)

Command: 0x8067

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.workpieceLengthintLength of each workpiece[0,9999]mm
pallet.workpieceWidthintWidth of each workpiece[0,9999]mm
pallet.sumintTotal workpieces per layer-
pallet.startintStarting workpiece number to send-
pallet.countintNumber of layer workpieces sent to controller, max 10 per send-
pallet.tray.xdoubleTray x coordinate-
pallet.tray.ydoubleTray y coordinate-
pallet.eachVec[].XdoubleX offset[-9999,9999]mm
pallet.eachVec[].YdoubleY offset[-9999,9999]mm
pallet.eachVec[].tdoubleRotation angle[-180,180]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "workpieceLength": 1,
        "workpieceWidth": 1,
        "sum": 20,
        "start": 1,
        "count": 10,
        "tray": {
            "x": 0.0,
            "y": 0.0
        },
        "eachVec": [
            {
                "X": 0,
                "Y": 0,
                "t": 0
            }
        ]
    }
}

7.11 Controller Returns Plane Mode Custom Mode Preview

Command: 0x8068

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.workpieceLengthintLength of each workpiece[0,9999]mm
pallet.workpieceWidthintWidth of each workpiece[0,9999]mm
pallet.sumintTotal workpieces per layer-
pallet.startintStarting workpiece number to send-
pallet.countintNumber of layer workpieces sent to controller, max 10 per send-
pallet.tray.xdoubleTray x coordinate-
pallet.tray.ydoubleTray y coordinate-
pallet.eachVec[].XdoubleX offset[-9999,9999]mm
pallet.eachVec[].YdoubleY offset[-9999,9999]mm
pallet.eachVec[].tdoubleRotation angle[-180,180]
json
{
    "robot": 1,
    "craftID": 1,
    "graphic": 1,
    "pallet": {
        "workpieceLength": 1,
        "workpieceWidth": 1,
        "sum": 20,
        "start": 1,
        "count": 10,
        "tray": {
            "x": 0.0,
            "y": 0.0
        },
        "eachVec": [
            {
                "X": 0,
                "Y": 0,
                "t": 0
            }
        ]
    }
}

8 Copy Layer Graphic Parameters

8.1 Copy Layer Graphic Parameters

Command: 0x8069

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftID_sourceintProcess number to copy from-
craftID_targetintProcess number to copy to-
graphic_sourceintGraphic layer to copy from-
graphic_targetintGraphic layer to copy to-
json
{
    "robot": 1,
    "craftID_source": 1,
    "craftID_target": 2,
    "graphic_source": 1,
    "graphic_target": 2
}

9 Palletizing Status

9.1 Set Palletizing Status

Command: 0x80A0

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
graphicintGraphic number[1,9]
pallet.curLayerNumintCurrent layer number-
pallet.curLayerPalletedWpNumintWorkpieces palletized in current layer-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "curLayerNum": 1,
        "curLayerPalletedWpNum": 5
    }
}

9.2 Upper Computer Queries Palletizing Status

Command: 0x80A1

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

9.3 Controller Returns Palletizing Status

Command: 0x80A2

Parameter NameTypeDescription
robotintCurrent robot
craftIDintProcess number
graphicintGraphic number
pallet.totalWpNumintTotal workpieces
pallet.totalLayerNumintTotal layers
pallet.curPalletedWpSumintTotal workpieces palletized so far
pallet.curLayerNumintCurrent layer number
pallet.curLayerPalletedWpNumintWorkpieces palletized in current layer
pallet.curLayerWpSumintTotal workpieces in current layer
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "totalWpNum": 20,
        "totalLayerNum": 2,
        "curPalletedWpSum": 5,
        "curLayerNum": 1,
        "curLayerPalletedWpNum": 5,
        "curLayerWpSum": 10
    }
}

10 Palletizing Type

10.1 Upper Computer Switches Palletizing Type

Command: 0x80B2

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
usePalletTypeintPalletizing type0: Simple, 1: Complete, 2: Undefined
craftNotestringNote-
json
{
    "robot": 1,
    "craftID": 1,
    "usePalletType": 0,
    "craftNote": ""
}

10.2 Upper Computer Queries Current Palletizing Type

Command: 0x80B3

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

10.3 Controller Returns Current Palletizing Type

Command: 0x80B4

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
usePalletTypeintPalletizing type0: Simple, 1: Complete, 2: Undefined
craftNotestringNote-
json
{
    "robot": 1,
    "craftID": 1,
    "usePalletType": 0,
    "craftNote": ""
}

11 Simple Palletizing

11.1 Set Simple Palletizing Position

Command: 0x80C0

Parameter NameTypeDescription
robotintCurrent robot
craftIDintProcess number
OarrayWorkpiece start point, end pose in Cartesian coordinates
XarrayColumn end point, end pose in Cartesian coordinates
YarrayRow end point, end pose in Cartesian coordinates
shiftarrayAuxiliary point, end pose in Cartesian coordinates
enterarrayEntry point, end pose in Cartesian coordinates
numXintNumber of rows
numYintNumber of columns
numZintNumber of layers
useAcrossCornerboolWhether to use diagonal end point, true: Yes, false: No
json
{
    "robot": 1,
    "craftID": 1,
    "O": [1, 2, 3, 4, 5, 6],
    "X": [1, 2, 3, 4, 5, 6],
    "Y": [1, 2, 3, 4, 5, 6],
    "shift": [1, 2, 3, 4, 5, 6],
    "enter": [1, 2, 3, 4, 5, 6],
    "numX": 1,
    "numY": 1,
    "numZ": 1,
    "useAcrossCorner": true
}

11.2 Upper Computer Queries Simple Palletizing Position

Command: 0x80C1

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

11.3 Controller Returns Simple Palletizing Position

Command: 0x80C2

Parameter NameTypeDescription
robotintCurrent robot
craftIDintProcess number
OarrayWorkpiece start point (radians)
ODegarrayWorkpiece start point (degrees)
XarrayColumn end point (radians)
XDegarrayColumn end point (degrees)
YarrayRow end point (radians)
YDegarrayRow end point (degrees)
shiftarrayAuxiliary point (radians)
shiftDegarrayAuxiliary point (degrees)
enterarrayEntry point (radians)
enterDegarrayEntry point (degrees)
acrossCornerarrayDiagonal end point (radians)
acrossCornerDegarrayDiagonal end point (degrees)
numXintNumber of rows
numYintNumber of columns
numZintNumber of layers
json
{
    "robot": 1,
    "craftID": 1,
    "O": [1, 2, 3, 4, 5, 6],
    "ODeg": [1, 2, 3, 4, 5, 6],
    "X": [1, 2, 3, 4, 5, 6],
    "XDeg": [1, 2, 3, 4, 5, 6],
    "Y": [1, 2, 3, 4, 5, 6],
    "YDeg": [1, 2, 3, 4, 5, 6],
    "shift": [1, 2, 3, 4, 5, 6],
    "shiftDeg": [1, 2, 3, 4, 5, 6],
    "enter": [1, 2, 3, 4, 5, 6],
    "enterDeg": [1, 2, 3, 4, 5, 6],
    "acrossCorner": [1, 2, 3, 4, 5, 6],
    "acrossCornerDeg": [1, 2, 3, 4, 5, 6],
    "numX": 1,
    "numY": 1,
    "numZ": 1
}

11.4 Set Simple Palletizing Gripper Parameters

Command: 0x80C3

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.gripperNumintNumber of grippers[1,4]
pallet.gripperarrayGripper tool number array-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "gripperNum": 4,
        "gripper": [1, 3, 4, 1]
    }
}

11.5 Upper Computer Queries Simple Palletizing Gripper Parameters

Command: 0x80C4

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

11.6 Controller Returns Simple Palletizing Gripper Parameters

Command: 0x80C5

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
pallet.gripperNumintNumber of grippers[1,4]
pallet.gripperarrayGripper tool number array-
json
{
    "robot": 1,
    "craftID": 1,
    "pallet": {
        "gripperNum": 4,
        "gripper": [1, 3, 4, 1]
    }
}

12 Palletizing Reset

12.1 Palletizing Reset

Command: 0x80A3

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
gripperintGripper tool number[1,9]
json
{
    "robot": 1,
    "craftID": 1
}

13 Copy and Clear

13.1 Copy Palletizing Parameters

Command: 0x80B0

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftID_sourceintProcess number to copy from-
craftID_targetintProcess number to copy to-
json
{
    "robot": 1,
    "craftID_source": 1,
    "craftID_target": 2
}

13.2 Clear Palletizing Parameters

Command: 0x80B1

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
json
{
    "robot": 1,
    "craftID": 1
}

14 Point Debug Interface

14.1 Upper Computer Gets All Workpiece Data for Current Layer

Command: 0x8080

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintCurrent layer-
clearintWhether to clear cache, 1: Clear cache, 0: Do not clear-
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "clear": 0
}

14.2 Controller Returns All Workpiece Data for Current Layer

Command: 0x8081

Parameter NameTypeDescription
robotintCurrent robot
craftintProcess number
layerintCurrent layer
sumLayerintTotal layers
length.LintLength
length.WintWidth
overLimit.overint0: No overrun, 1: Entry point overrun, 2: Auxiliary point overrun, 3: Workpiece point overrun
overLimit.layerintOverrun layer
overLimit.numintOverrun workpiece number
pallet.sumintTotal workpieces per layer
pallet.countintNumber of layer workpieces sent to controller
pallet.startintStarting workpiece number to send
pallet.tray_lengthdoubleTray length
pallet.tray_widthdoubleTray width
pallet.tray.xdoubleTray x coordinate
pallet.tray.ydoubleTray y coordinate
pallet.eachVec[].XdoubleX coordinate
pallet.eachVec[].YdoubleY coordinate
pallet.eachVec[].ZdoubleZ coordinate
pallet.eachVec[].tdoubleRotation angle
pallet.eachVec[].overint0: No overrun, 1: Entry point unreachable, 2: Auxiliary point unreachable, 3: Workpiece point unreachable
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "sumLayer": 10,
    "length": {
        "L": 10,
        "W": 10
    },
    "overLimit": {
        "over": 1,
        "layer": 1,
        "num": 2
    },
    "pallet": {
        "sum": 25,
        "count": 10,
        "start": 1,
        "tray_length": 5,
        "tray_width": 5,
        "tray": {
            "x": 0,
            "y": 0
        },
        "eachVec": [
            {
                "X": 0,
                "Y": 0,
                "Z": 0,
                "t": 0,
                "over": 0
            }
        ]
    }
}

14.3 Palletizing Process Number Query

Command: 0x8082

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
json
{
    "robot": 1,
    "craft": 1
}

14.4 Controller Returns Palletizing Process Number Query Result

Command: 0x8083

Parameter NameTypeDescription
robotintCurrent robot
craftintProcess number
_palletNumIsTooMoreboolWhether palletizing quantity is too large
json
{
    "robot": 1,
    "craft": 1,
    "_palletNumIsTooMore": true
}

14.5 Upper Computer Gets Tool Hand Corresponding to Gripper

Command: 0x808B

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
gripperintGripper number-
json
{
    "robot": 1,
    "craft": 1,
    "gripper": 1
}

14.6 Controller Returns

Command: 0x808C

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
toolintTool hand number-
json
{
    "robot": 1,
    "craft": 1,
    "tool": 1
}

14.7 Upper Computer Sets Overall Offset

Command: 0x8084

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintCurrent layer-
transLenXdoubleX offset-
transLenYdoubleY offset-
transLenZdoubleZ offset-
rotationAngledoubleOffset angle-
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "transLenX": 0,
    "transLenY": 0,
    "transLenZ": 0,
    "rotationAngle": 0
}

14.8 Apply to Same Layer

Command: 0x8085

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintLayer-
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1
}

14.9 Modify Single Workpiece Position

Command: 0x8086

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintLayer-
numintCurrent workpiece-
modeintSetting mode0: Direct set xyz, 1: Use robot current position
XdoubleX offset[-9999,9999]mm
YdoubleY offset[-9999,9999]mm
ZdoubleZ offset[-9999,9999]mm
angledoubleRotation angle[-180,180]
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "num": 1,
    "mode": 0,
    "X": 0.1,
    "Y": 0.1,
    "Z": 0.1,
    "angle": 0
}

14.10 Get Single Workpiece Position

Command: 0x8087

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintLayer-
numintCurrent workpiece-
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "num": 1
}

14.11 Controller Returns Single Workpiece Position

Command: 0x8088

Parameter NameTypeDescription
ApproachModeintApproach mode
DepartureSpeeddoubleDeparture speed
EntryConfigurationintEntry configuration
EntrySpeeddoubleApproach speed
RealConfigurationintActual configuration
ShiftConfigurationintAuxiliary configuration
XdoubleX coordinate
YdoubleY coordinate
ZdoubleZ coordinate
craftintProcess number
layerintLayer
numintCurrent workpiece
overintOverrun flag
overLimit.layerintOverrun layer
overLimit.numintOverrun workpiece number
overLimit.overintOverrun type
referenceintReference point
robotintCurrent robot
tdoubleRotation angle
json
{
    "ApproachMode": 0,
    "DepartureSpeed": 0.0,
    "EntryConfiguration": 0,
    "EntrySpeed": 0.0,
    "RealConfiguration": 0,
    "ShiftConfiguration": 0,
    "X": 0.0,
    "Y": 0.0,
    "Z": 0.0,
    "craft": 7,
    "layer": 1,
    "num": 1,
    "over": 3,
    "overLimit": {
        "layer": 1,
        "num": 1,
        "over": 3
    },
    "reference": 1,
    "robot": 1,
    "t": 0.0
}

14.12 Save Point Debug Content from Cache to File

Command: 0x8089

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
gripperintGripper number-
json
{
    "robot": 1,
    "craft": 1,
    "gripper": 1
}

14.13 Move to Workpiece Point / Auxiliary Point / Entry Point

Command: 0x808A

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftintProcess number-
layerintLayer-
numintCurrent workpiece-
toolintTool hand-
typeintPoint to move to0: Entry point, 1: Auxiliary point, 2: Workpiece point
json
{
    "robot": 1,
    "craft": 1,
    "layer": 1,
    "num": 1,
    "tool": 1,
    "type": 0
}

14.14 Set Approach / Departure Mode

Command: 0x80C7

Parameter NameTypeDescriptionValue Range
robotintCurrent robot[1,4]
craftIDintProcess number-
approMoveTypeintApproach / departure mode-
json
{
    "robot": 1,
    "craftID": 1,
    "approMoveType": 1
}