5000端口协议
说明
5000端口协议主要作用于上传、下载、备份文件。
- 若要向控制器上传文件,则上位机通过0x1D00请求上传文件,控制器通过0x1D01回复上传请求,当控制器同意上传时,上位机通过0x1D04上传文件,上传完毕后,上位机通过0x1D05告诉控制器上传结束,控制器通过0x1D06回复确认接收成功。
- 若要下载控制器中的文件,则上位机通过0x1D02请求下载文件,控制器通过0x1D03回复下载请求,当控制器同意下载时,控制器通过0x1D07向上位机传输其申请下载的文件,并且上位机通过0x1D08回复控制器接收结果,下载完毕后,控制器通过0x1D09告诉上位机下载结束,上位机通过0x1D0A 回复确认接收成功。
文件传输流程
上传文件流程
text
上位机 控制器
| |
|--- 0x1D00 请求上传 -------->|
|<-- 0x1D01 回复上传请求 -----|
| |
| (若 answer="yes") |
|--- 0x1D04 上传文件数据 ---->|
|--- 0x1D04 上传文件数据 ---->|
|--- ... (可能多次分包) |
|--- 0x1D05 上传结束 -------->|
|<-- 0x1D06 确认接收 ---------|下载文件流程
text
上位机 控制器
| |
|--- 0x1D02 请求下载 -------->|
|<-- 0x1D03 回复下载请求 -----|
| |
| (若 answer="yes") |
|<-- 0x1D07 下载文件数据 -----|
|--- 0x1D08 回复接收 -------->|
|<-- 0x1D07 下载文件数据 -----|
|--- 0x1D08 回复接收 -------->|
|<-- ... (可能多次分包) |
|<-- 0x1D09 下载完成 ---------|
|--- 0x1D0A 确认接收 -------->|备份文件流程
text
上位机 控制器
| |
|--- 0x1D10 请求备份 -------->|
|<-- 0x1D11 回复备份文件名 ---|
| |
| (然后按下载流程下载备份文件) |传输机制说明
分包传输
大文件传输时,数据会分为多个数据包进行传输:
- 上传 (0x1D04):上位机将文件内容分多次发送,每次发送一个数据包
- 下载 (0x1D07):控制器将文件内容分多次发送,上位机每次通过
0x1D08回复接收状态
错误处理
在文件传输过程中可能出现的异常情况:
| 场景 | 处理方式 |
|---|---|
| 控制器忙碌 | 0x1D01 或 0x1D03 返回 answer: "busy",上位机应稍后重试 |
| 传输中断 | 通过 0x1D0B 断开连接,上位机需要重新发起传输请求 |
| 接收失败 | 0x1D06 或 0x1D0A 返回 finish: false,需要重新传输 |
| 磁盘空间不足 | 控制器在 0x1D01 或 0x1D03 阶段拒绝请求 |
文件类型与路径
| 文件类型 | 路径示例 | 说明 |
|---|---|---|
| 作业文件 | job/R1/WWWWW.JBR | 机器人 1 的作业程序文件 |
| 系统配置 | config/ | 系统参数配置文件 |
| 日志文件 | log/ | 系统运行日志 |
| 备份文件 | controller.tar.gz | 控制器全量备份包 |
| ENI 文件 | eni/ | 网络配置文件 |
注意: 下载作业文件时,文件名需包含完整的控制器内部路径。
命令列表
| 命令字 | 功能 | 方向 |
|---|---|---|
| 0x1D00 | 上位机请求上传文件 | 上位机 → 控制器 |
| 0x1D01 | 控制器回复上传请求 | 控制器 → 上位机 |
| 0x1D02 | 上位机请求下载文件 | 上位机 → 控制器 |
| 0x1D03 | 控制器回复下载请求 | 控制器 → 上位机 |
| 0x1D04 | 上位机向控制器上传文件 | 上位机 → 控制器 |
| 0x1D05 | 上位机告诉控制器上传结束 | 上位机 → 控制器 |
| 0x1D06 | 控制器回复确认接收成功 | 控制器 → 上位机 |
| 0x1D07 | 控制器向上位机发送申请下载的文件 | 控制器 → 上位机 |
| 0x1D08 | 上位机回复接收结果 | 上位机 → 控制器 |
| 0x1D09 | 控制器告诉上位机下载完成 | 控制器 → 上位机 |
| 0x1D0A | 上位机回复确认接收成功 | 上位机 → 控制器 |
| 0x1D0B | 下载连接断开 | - |
| 0x1D10 | 上位机请求备份文件 | 上位机 → 控制器 |
| 0x1D11 | 控制器回复备份请求 | 控制器 → 上位机 |
| 0x1D12 | 上位机发送下载 log 文件完成 | 上位机 → 控制器 |
| 0x1D13 | 上位机发送下载 eni 文件完成 | 上位机 → 控制器 |
详细命令说明
0x1D00 上位机请求上传文件
方向: 上位机 → 控制器
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 上位机发送文件的文件名 |
| size | int | 上位机发送文件的文件大小 |
请求示例:
json
{
"name": "vxWorks",
"size": 4096
}0x1D01 控制器回复上传请求
方向: 控制器 → 上位机
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| answer | string | 是否同意上传文件请求 |
answer 值说明:
| 值 | 说明 |
|---|---|
| yes | 同意上传文件请求 |
| busy | 控制器忙碌 |
响应示例:
json
{
"answer": "yes"
}0x1D02 上位机请求下载文件
方向: 上位机 → 控制器
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| name | string | 需要下载的作业文件名称 |
说明: 参数 name 是作业文件在控制器中的作业文件路径加上名字。在0x5533和0x5534中系统有向上位机发送路径和名字。示教器提示开始同步作业文件。
请求示例:
json
{
"name": "job/R1/WWWWW.JBR"
}0x1D03 控制器回复下载请求
方向: 控制器 → 上位机
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| answer | string | 系统是否同意下载文件请求 |
| name | string | 需要下载的作业文件名称 |
| size | int | 此作业文件的文件大小 |
answer 值说明:
| 值 | 说明 |
|---|---|
| yes | 同意下载文件请求 |
| busy | 控制器忙碌 |
响应示例:
json
{
"answer": "yes",
"name": "job/R1/WWWWW.JBR",
"size": 217
}0x1D04 上位机向控制器上传文件
方向: 上位机 → 控制器
说明: 上传文件数据
0x1D05 上位机告诉控制器上传结束
方向: 上位机 → 控制器
0x1D06 控制器回复确认接收成功
方向: 控制器 → 上位机
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| finish | bool | 判断文件是否上传成功 |
finish 值说明:
| 值 | 说明 |
|---|---|
| true | 上传成功 |
| false | 上传失败 |
响应示例:
json
{
"finish": true
}0x1D07 控制器向上位机发送申请下载的文件
方向: 控制器 → 上位机
说明: 传输下载文件数据
0x1D08 上位机回复接收结果
方向: 上位机 → 控制器
0x1D09 控制器告诉上位机下载完成
方向: 控制器 → 上位机
0x1D0A 上位机回复确认接收成功
方向: 上位机 → 控制器
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| finish | bool | 判断文件是否下载成功 |
finish 值说明:
| 值 | 说明 |
|---|---|
| true | 下载成功 |
| false | 下载失败 |
响应示例:
json
{
"finish": true
}0x1D0B 下载连接断开
说明: 断开下载连接
0x1D10 上位机请求备份文件
方向: 上位机 → 控制器
0x1D11 控制器回复备份请求
方向: 控制器 → 上位机
参数列表:
| 参数名 | 类型 | 说明 |
|---|---|---|
| answer | string | 回复备份文件名 |
响应示例:
json
{
"answer": "controller.tar.gz"
}0x1D12 上位机发送下载 log 文件完成
方向: 上位机 → 控制器
0x1D13 上位机发送下载 eni 文件完成
方向: 上位机 → 控制器