System
Status
Query Initialization Status
The system needs to be initialized upon startup, otherwise the system will not be usable.
Command: 0x1000
- No data needs to be sent
Controller Reply
Command: 0x1001
| Field | Type | Description |
|---|---|---|
| finishinit | bool | Whether initialization is complete; true means complete, false means not complete |
{
"finishinit": true
}Query Whether It Is a T5 System
Command: 0x1002
- No data needs to be sent
Controller Reply
Command: 0x1003
| Field | Type | Description |
|---|---|---|
| T5_system | bool | Whether it is a T5 system; true means yes, false means no |
{
"T5_system": false
}Query Hardware System Release Version
Command: 0x1004
- No data needs to be sent
Controller Reply
Command: 0x1005
| Field | Type | Description |
|---|---|---|
| result | bool | Whether the query was successful; true means success, false means failure |
| version | string | Version number (returned if the query is successful) |
{
"result": true,
"version": "xx"
}Version Upgrade
When the system starts up, the current version number needs to be queried. If a mismatch is found, a version upgrade is required.
Query Current System Version Number
Command: 0x1010
| Field | Type | Description |
|---|---|---|
| version | string | Version number content |
{
"version": "v1.0-rc1-67-gf34dae7"
}Controller Reply
Command: 0x1011
| Field | Type | Description |
|---|---|---|
| configFileVersionMismatch | bool | Whether the configuration file matches; false means mismatch, true means match |
| jobFileVersion | string | Job file version |
| rtlVersion | string | Controller version |
| sysClock | string | System clock, format like "2023.11.10 13:29:25" |
| version | string | Version number content; if the version sent during the query is an empty string, the same content is returned |
{
"configFileVersionMismatch": false,
"jobFileVersion": "5.2.0",
"rtlVersion": "22.08.0",
"sysClock": "2023.11.10 13:29:25",
"version": "v1.0-rc1-67-gf34dae7"
}Log
Query Crash Log Files
Command: 0x1020
- No data needs to be sent
Controller Reply
Command: 0x1021
| Field | Type | Description |
|---|---|---|
| absolutepath | string | Path |
| dumpLogfilenum | int | Number of files |
| dumpLogfilelist | string[] | Log file list |
{
"absolutepath": "",
"dumpLogfilenum": 3,
"dumpLogfilelist": ["", "", "", ""]
}Request Log File List
Command: 0x1022
| Field | Type | Description |
|---|---|---|
| num | int | Number of recent files to retrieve; can be 5, 30, or 100 |
{
"num": 5
}Controller Reply
Command: 0x1023
| Field | Type | Description |
|---|---|---|
| absolutepath | string | Log directory path |
| logfilenum | int | Number of logs (may not equal num) |
| logfilelist | string[] | Log list |
{
"absolutepath": "log/",
"logfilenum": 3,
"logfilelist": ["logInfo.0", "logInfo.1", "logInfo.2"]
}Factory Reset
Command: 0x1030
| Field | Type | Description |
|---|---|---|
| clearFactoryIO | bool | Clear all IOs; true means clear, false means not cleared |
| clearFactoryRobot | bool | Clear all robots; true means clear, false means not cleared |
| clearFactoryToolhand | bool | Clear all tool hands; true means clear, false means not cleared |
| clearConfigFile | bool | Clear all system configuration files; true means clear, false means not cleared |
| clearExtendedFile | bool | Clear all extended files; true means clear, false means not cleared |
{
"clearFactoryIO": true,
"clearFactoryRobot": true,
"clearFactoryToolhand": true,
"clearConfigFile": true,
"clearExtendedFile": true
}Restart, Shutdown
Restart Controller
Command: 0x1031
- No data needs to be sent
Shutdown
Command: 0x1032
- No data needs to be sent
Query Power Loss Recovery Status
Command: 0x1033
- No data needs to be sent
Controller Reply
Command: 0x1034
| Field | Type | Description |
|---|---|---|
| rebootKeepRecoveryFlag | bool | Power loss recovery flag; true means recovery successful, false means power loss recovery was not performed |
| rebootKeepJobFileName | string | Program name for power loss recovery; the first character of the program name must not be a digit |
{
"rebootKeepRecoveryFlag": false,
"rebootKeepJobFileName": "xxxx"
}IP Settings
Controller IP Settings
Command: 0x1040
| Field | Type | Description |
|---|---|---|
| name | string | Network interface name |
| address | string | Controller IP address |
| gateway | string | Controller gateway |
| dns | string | Controller DNS |
{
"name": "p1p1",
"address": "192.168.1.13",
"gateway": "192.168.1.1",
"dns": "114.114.114.114"
}Query Connected IP
Command: 0x1041
- No data needs to be sent
Controller Reply
Command: 0x1042
| Field | Type | Description |
|---|---|---|
| num | int | Number of network interfaces |
| network | array | Network information list |
| network[].name | string | Network interface name |
| network[].address | string | Controller IP |
| network[].gateway | string | Controller gateway |
| network[].dns | string | Controller DNS |
{
"num": 2,
"network": [
{
"name": "p1p1",
"address": "192.168.1.13",
"gateway": "192.168.1.1",
"dns": "114.114.114.114"
},
{
"name": "p2p1",
"address": "192.168.1.14",
"gateway": "192.168.1.1",
"dns": "114.114.114.114"
}
]
}Time Settings
Send Time Query
Command: 0x1050
| Field | Type | Description |
|---|---|---|
| type | int | Time type: 0 for real time, 1 for seconds elapsed since system start |
| format | int | Format: 0 for timestamp, 1 for Beijing time |
{
"type": 0,
"format": 0
}Controller Reply
Command: 0x1051
| Field | Type | Description |
|---|---|---|
| tType | int | Time type: 0 for real time, 1 for seconds elapsed since system start |
| format | int | Format: 0 for timestamp, 1 for Beijing time |
| date | object | Date and time information |
| date.year | int | Year |
| date.mon | int | Month |
| date.day | int | Day |
| date.hour | int | Hour |
| date.min | int | Minute |
| date.sec | int | Second |
| date.msec | int | Millisecond |
| timestamp | object | Timestamp (displayed when format is 0) |
| timestamp.s | int | Timestamp seconds |
| timestamp.ns | int | Timestamp nanoseconds |
{
"tType": 0,
"format": 0,
"date": {
"year": 2023,
"mon": 1,
"day": 1,
"hour": 1,
"min": 1,
"sec": 1,
"msec": 1
},
"timestamp": {
"s": 1,
"ns": 1
}
}Query Language Support
Command: 0x1052
- No data needs to be sent
Controller Reply
Command: 0x1053
| Field | Type | Description |
|---|---|---|
| language | string[] | All languages supported by the controller; currently supports: Chinese, Korean, English |
| language_used | string | Language currently used by the controller |
{
"language": ["Chinese", "Korean", "English"],
"language_used": "Chinese"
}Query Host Computer Current Language
Command: 0x1054
| Field | Type | Description |
|---|---|---|
| teachbox_language | string | Current language used by the host computer |
{
"teachbox_language": "Chinese"
}System Maintenance
System Maintenance Query
Command: 0x1060
- No data needs to be sent
Controller Reply
Command: 0x1061
| Field | Type | Description |
|---|---|---|
| controller_ID | string | Controller ID |
| controller_total_time | int | Total controller power-on time, in hours |
| controller_spent_time | int | Time since last controller maintenance, in hours |
| controller_cycle_time | int | Controller maintenance interval cycle, in hours |
| robot_total_time | int | Total robot power-on time, in hours |
| robot_spent_time | int | Time since last robot maintenance, in hours |
| robot_cycle_time | int | Robot maintenance interval cycle, in hours |
{
"controller_ID": "4DC9F0249098C82E",
"controller_total_time": 0,
"controller_spent_time": 0,
"controller_cycle_time": 0,
"robot_total_time": 0,
"robot_spent_time": 0,
"robot_cycle_time": 0
}System Maintenance Reminder
Command: 0x1062
| Field | Type | Description |
|---|---|---|
| exist | bool | Whether the maintenance file exists; true means exists, false means does not exist |
| controlTimeStatus | bool | Controller maintenance status; true means maintenance needed, false means no maintenance needed |
| robotTimeStatus | bool | Robot maintenance status; true means maintenance needed, false means no maintenance needed |
{
"exist": true,
"controlTimeStatus": true,
"robotTimeStatus": true
}File
Query Controller Configuration File Directory
Command: 0x1070
| Field | Type | Description |
|---|---|---|
| isExport | bool | Import/export configuration; true means export configuration, false means import configuration |
{
"isExport": true
}Controller Reply
Command: 0x1071
| Field | Type | Description |
|---|---|---|
| filelist | string[] | Configuration file name list |
| filenum | int | Number of configuration files |
{
"filelist": ["xxx.json", "yyy.json"],
"filenum": 2
}System Backup
Query Whether Teach Pendant Program for Current Version Exists
Command: 0x1090
| Field | Type | Description |
|---|---|---|
| config_md5 | string | MD5 value of config.db file |
| pinyin_md5 | string | MD5 value of Pinyin.db file; null means the file does not exist or its size is 0 |
| pro_md5 | string | MD5 value of the teach pendant program file |
| pro_name | string | Name of the teach pendant program file; optional Qt-tp or T30_ARM_Linux_Teach-pendant |
{
"config_md5": "2803f92ecdecfd3c178b0998b9391a4d",
"pinyin_md5": "null",
"pro_md5": "ce407851346d030dad5207948f55ed6c",
"pro_name": "Qt-tp"
}Controller Reply
Command: 0x1091
| Field | Type | Description |
|---|---|---|
| path | object | File path information |
| path.config | string | config.db file upload path |
| path.dir | string | Path for all files |
| path.pinyin | string | Pinyin.db file upload path; empty string means no upload needed |
| path.pro | string | Qt-tp file upload path |
{
"path": {
"config": "qttpBackup/rtl-24.03.07-6.0.9-1.0.6",
"dir": "qttpBackup/rtl-24.03.07-6.0.9-1.0.6",
"pinyin": "",
"pro": "qttpBackup/rtl-24.03.07-6.0.9-1.0.6"
}
}Query Whether Teach Pendant Program Matching Controller Version Exists
Command: 0x1092
| Field | Type | Description |
|---|---|---|
| pro_name | string | Teach pendant program name; optional Qt-tp or T30_ARM_Linux_Teach-pendant |
{
"pro_name": "Qt-tp"
}Controller Reply
Command: 0x1093
| Field | Type | Description |
|---|---|---|
| backuppath | string | Backup path |
Request Backup Program File
Command: 0x1094
| Field | Type | Description |
|---|---|---|
| backup_dir | string | Original path of the backup file |
| pro_name | string | Program name; Qt-tp or T30_ARM_Linux_Teach-pendant |
{
"backup_dir": "qttpBackup/rtl-24.03.07-6.0.9-1.0.6",
"pro_name": "Qt-tp"
}Controller Reply
Command: 0x1095
| Field | Type | Description |
|---|---|---|
| backuppath | string | Auto backup path |
{
"backuppath": ""
}Request Auto Backup
Command: 0x1096
- No data needs to be sent
Controller Reply
Command: 0x1097
| Field | Type | Description |
|---|---|---|
| backUpNum | int | Number of backup systems; up to 10 |
| backUpName | string[] | Names of backup systems |
{
"backUpNum": 1,
"backUpName": ["string", "string", "string..."]
}Request System Recovery
Command: 0x1098
| Field | Type | Description |
|---|---|---|
| backUpOneName | string | Name of the system to recover |
{
"backUpOneName": "xxxx"
}Controller Reply
Command: 0x1099
| Field | Type | Description |
|---|---|---|
| success | bool | Whether system recovery was successful; true means success, false means failure |
| backUpName | string[] | Names of backup systems; up to 10 |
{
"success": true
}Save Manufacturer Parameters
Command: 0x109A
- No data needs to be sent
Controller Reply
Command: 0x109B
| Field | Type | Description |
|---|---|---|
| success | bool | Whether the save was successful; true means success, false means failure |
{
"success": true
}License Key
System Restriction Settings
Command: 0x10B0
| Field | Type | Description |
|---|---|---|
| pallet | bool | Set palletizing function restriction |
| welding | bool | Set welding function restriction |
| laserCut | bool | Set laser cutting function restriction |
| polish | bool | Set polishing function restriction |
| spray | bool | Set spraying function restriction |
| search | bool | Set search function restriction |
| vision | bool | Set vision function restriction |
| conveyor | bool | Set conveyor function restriction |
| clear_data | bool | Clear data |
{
"pallet": true,
"welding": true,
"laserCut": true,
"polish": true,
"spray": true,
"search": true,
"vision": true,
"conveyor": true,
"clear_data": true
}Query Controller Function Restrictions
Command: 0x10B1
- No data needs to be sent
Controller Reply
Command: 0x10B2
| Field | Type | Description |
|---|---|---|
| maxRobotCount | int | Maximum number of robots |
| crafts | string[] | List of unlocked crafts |
| robotTypes | string[] | List of unlocked robot types |
Craft type values:
C_Pallet: Palletizing craftC_Welding: Welding craftC_Lasercut: Laser cutting craftC_Polish: Polishing craftC_Spray: Spraying craftC_Search: Search tracking craftC_Vision: Vision craft
Robot type values:
R_NULL: No robot type selectedR_GENERAL_6S: Six-axis serial multi-jointR_GENERAL_6S_1: Six-axis collaborativeR_SIXAXIS_SPRAY_BBR: Six-axis spray robotR_GENERAL_6S_2: Six-axis special type 2R_GENERAL_5S: Five-axis robotR_SCARA: Four-axis SCARA robotR_SCARA_1: Four-axis SCARA special type 1 robotR_FOURAXIS_PALLET: Four-axis linkage palletizing robotR_FOURAXIS_PALLET_1: Four-axis palletizing lead screw robotR_FOURAXIS: Four-axis robotR_FOUR_CARTESIAN_COORDINATE: Four-axis Cartesian robotR_FOUR_POLAR_COORDINATE_1: Four-axis polar coordinate special robotR_SCARA_THREEAXIS: Three-axis SCARA robotR_THREE_CARTESIAN_COORDINATE: Three-axis Cartesian robotR_THREE_CARTESIAN_COORDINATE_1: Three-axis special type 1 robotR_SCARA_TWOAXIS: Two-axis SCARA robotR_GENERAL_7S: Seven-axis general robotR_GENERAL_1S: One-axis robotR_GANTRY_WELD: Five-axis gantry welding robotR_DELTA: Delta robot (four-axis parallel robot)R_WINE_CHAMFER: Wine tank modelR_GANTRY_WELD_2: Five-axis gantry welding robot type 2R_FOUR_CARTESIAN_COORDINATE_1: Four-axis Cartesian special type 1 robotR_GANTRY_WELD_6: Six-axis gantry welding robotFIVE_AXLE_MIXED: Five-axis hybrid robotR_SCARA_FOURAXIS_2: Four-axis SCARA special type 2R_SIX_AXLE_ABNORMITY_3: Six-axis special type 3R_SCARA_THREEAXIS_1: Three-axis SCARA special type 1R_DELTA_2D_: Delta 2D parallel robot modelR_GANTRY_WELD_3: Five-axis gantry welding robot type 3R_GENERAL_3S_1: Three-axis serial special type 1R_GENERAL_5S_COLLABORATIVE_: Five-axis collaborative robotR_SCARA_3_: Four-axis SCARA special type 3 robotR_GENERAL_6S_CBBARA_: Six-axis serial-CBBARAR_HEAVY_DUTY_FOUR_AXIS_: Heavy-duty column rotary four-axis
{
"crafts": [
"C_Pallet",
"C_Welding",
"C_Lasercut",
"C_Polish",
"C_Spray",
"C_Search",
"C_Vision"
],
"maxRobotCount": 4,
"robotTypes": [
"R_GENERAL_6S",
"R_SCARA",
"R_FOURAXIS_PALLET",
"R_FOURAXIS",
"R_GENERAL_1S",
"R_GENERAL_5S",
"R_GENERAL_6S_1",
"R_SCARA_TWOAXIS",
"R_SCARA_THREEAXIS",
"R_THREE_CARTESIAN_COORDINATE",
"R_THREE_CARTESIAN_COORDINATE_1",
"R_GENERAL_7S",
"R_SCARA_1",
"R_FOURAXIS_PALLET_1",
"R_SIXAXIS_SPRAY_BBR",
"R_FOUR_CARTESIAN_COORDINATE",
"R_FOUR_POLAR_COORDINATE_1",
"R_GENERAL_6S_2",
"R_GANTRY_WELD",
"R_DELTA",
"R_WINE_CHAMFER",
"R_GANTRY_WELD_2",
"R_FOUR_CARTESIAN_COORDINATE_1",
"R_GANTRY_WELD_6",
"FIVE_AXLE_MIXED",
"R_SCARA_FOURAXIS_2",
"R_SIX_AXLE_ABNORMITY_3",
"R_SCARA_THREEAXIS_1",
"R_DELTA_2D_",
"R_GANTRY_WELD_3",
"R_GENERAL_3S_1",
"R_GENERAL_5S_COLLABORATIVE_",
"R_SCARA_3_"
]
}Query Controller ID
Command: 0x10B3
- No data needs to be sent
Controller Reply
Command: 0x10B4
| Field | Type | Description |
|---|---|---|
| controllerID | string | Controller ID |
{
"controllerID": "4DC9F0249098C82E"
}Note: After obtaining the connected controller ID, when synchronizing job files, you need to determine whether this ID is known. If known, check whether the path "dir/controllerID" exists. If it exists, do nothing; if it does not exist, create the working file path in the format: "dir/controllerID/robotJob/R1". For multiple robots, use R1-4.
Get Controller Remaining Usage Days
Command: 0x10B5
- No data needs to be sent
Controller Reply
Command: 0x10B6
| Field | Type | Description |
|---|---|---|
| restdays | int | Remaining usage days; -1 means unlimited, 0 means expired, other values indicate remaining days |
| year | int | Expiration year |
| mon | int | Expiration month |
| day | int | Expiration day |
{
"restdays": 30,
"year": 1,
"mon": 1,
"day": 1
}Controller Sends Remaining Usage Days
Command: 0x10B7
| Field | Type | Description |
|---|---|---|
| restDays | int | Remaining usage days |
{
"restDays": 0
}Controller Serial Number Update
Command: 0x10B8
| Field | Type | Description |
|---|---|---|
| license | string | Controller serial number |
{
"license": "ACOCWKBZHSKBEJHI"
}Controller Reply
Command: 0x10B9
| Field | Type | Description |
|---|---|---|
| result | string | Update result; "success" means success, "ivalid" means invalid key, "notInit" means not initialized |
| ivalid | string | Invalid key |
| error | string | Suspected tampering detected; unlocking refused |
{
"result": "success",
"ivalid": "Invalid key!",
"error": "Suspected tampering detected; unlocking refused!"
}After the license key is successfully updated, the controller will restart.
Controller Unauthorized Usage Information
Command: 0x10BA
| Field | Type | Description |
|---|---|---|
| reason | string | Reason for controller unauthorized usage |
{
"reason": ""
}Get Controller Basic Information
Command: 0x10C0
- No data needs to be sent
Controller Reply
Command: 0x10C1
| Field | Type | Description |
|---|---|---|
| controllerID | string | Controller ID |
| controllerModel | string | Controller model |
{
"controllerID": "1234567890ABCDEF",
"controllerModel": "C2201"
}Get Supported Robot Types and Crafts
Command: 0x10C2
- No data needs to be sent
Controller Reply
Command: 0x10C3
| Field | Type | Description |
|---|---|---|
| maxRobotSum | int | Maximum total number of robots, range [0,4] |
| robotTypeEn | string[] | Supported robot types in English |
| robotTypeCn | string[] | Supported robot types in Chinese |
| craftTypeEn | string[] | Supported crafts in English |
| craftTypeCn | string[] | Supported crafts in Chinese |
{
"maxRobotSum": 4,
"robotTypeEn": ["RobotA", "RobotB"],
"robotTypeCn": ["RobotA", "RobotB"],
"craftTypeEn": ["pallet", "weld"],
"craftTypeCn": ["Palletizing", "Welding"]
}Get Controller Authorization Information
Command: 0x10C4
- No data needs to be sent
Controller Reply
Command: 0x10C5
| Field | Type | Description |
|---|---|---|
| isInit | bool | Whether initialized |
| expirationDate | object | Expiration date |
| expirationDate.year | int | Expiration year |
| expirationDate.month | int | Expiration month |
| expirationDate.day | int | Expiration day |
| maxRobotSum | int | Maximum number of robots, range [0,4] |
| robotType | string[] | Robot types |
| craftType | string[] | Craft types |
{
"isInit": true,
"expirationDate": {
"year": 2038,
"month": 1,
"day": 31
},
"maxRobotSum": 4,
"robotType": ["RobotA", "RobotB"],
"craftType": ["pallet", "weld"]
}Transmit Initialization Key
Command: 0x10C6
| Field | Type | Description |
|---|---|---|
| permissionType | string | Permission type |
| license | string | License key |
{
"permissionType": "01",
"license": "DSFPSKDGSJDFSGDSGJDSDF"
}Controller Reply
Command: 0x10C7
| Field | Type | Description |
|---|---|---|
| result | string | Key result; "success" means success, "ivalid" means invalid key, "deviceAbnormal" means controller abnormal |
| data | string | Controller data |
{
"result": "success",
"data": "123ABC"
}Transmit Decryption Key
Command: 0x10C8
| Field | Type | Description |
|---|---|---|
| license | string | License key |
{
"license": "DSFPSKDGSJDFSGDSGJDSDF"
}Controller Reply
Command: 0x10C9
| Field | Type | Description |
|---|---|---|
| result | string | Result; "success" means success, "ivalid" means invalid key, "notInit" means not initialized |
{
"result": "success"
}Get Offline Permission File Content
Command: 0x10CA
- No data needs to be sent
Controller Reply
Command: 0x10CB
| Field | Type | Description |
|---|---|---|
| data | string | Permission file content |
{
"data": "xxxxxxxx"
}