Appearance
作业文件传输
用于无作业文件指令运行,向作业文件里插入指令,请使用 0x3121
0x3001 FILE_INSTRUCTION
示教器发送作业文件指令时使用此命令。
json
{
"robot": 1, // 机器人号
"cmd->toJson()" // 指令json列表
}作业文件收发过程
场景一:控制器中的作业文件少于示教器,则需要示教器向控制器上传作业文件
步骤 1:示教器向控制器发送获取控制器 ID 指令
0x5052 IDENTIFY_NUMBER_INQUIRE
控制器回复:0x5053 IDENTIFY_NUMBER_RESPOND
json
{
"controllerID": "4DC9F0249098C82E" // 控制器ID
}| 参数 | 类型 | 描述 |
|---|---|---|
| controllerID | string | 控制器ID |
获取到连接的控制器ID之后,在同步作业文件时需判断此ID是否已知。已知则判断路径 dir/controllerID 是否存在,若存在则不做操作;若不存在则创建工作文件路径,格式:dir/controllerID/robotJob/R1。多个机器人则表示 R1-4。
步骤 2:示教器向控制器发送获取作业文件列表指令
0x5532 JOBFILE_LIST_INQUIRE
控制器回复:0x5533 JOBFILE_SUM_RESPOND
json
{
"absolutepath": ["/job/R1/", "/job/R2/", "/job/R3/", "/job/R4/"], // 作业文件的文件夹列表
"jobfilenum": [2, 33, 233, 666] // 作业文件夹中包含的文件个数
}| 参数 | 类型 | 描述 |
|---|---|---|
| absolutepath | array | 作业文件的文件夹列表 |
| jobfilenum | array | 各作业文件夹中包含的文件个数 |
此时开启停止下载计时器,设定5秒,作用为判断下载文件过程中是否等待超时。
步骤 3:控制器主动向示教器发送作业文件列表
0x5534 JOBFILE_LIST_RESPOND
json
{
"robot": 1,
"listnum": 2, // 最多10个
"jobfilelist": [
{
"name": "xxx.JBR", // 作业文件名字
"MD5": "123" // MD5值,用于判断文件是否相同
},
{
"name": "yyy.JBR",
"MD5": "132"
}
]
}| 参数 | 类型 | 描述 |
|---|---|---|
| robot | int | 机器人号 |
| listnum | int | 列表数量,最多10个 |
| jobfilelist | array | 作业文件列表 |
控制器回复的参数作用是于本地的作业文件作比较。若文件相同,判断MD5值是否相同,若MD5值相同则不做处理,不同则需要删除本地文件并重新下载。记录需要下载的文件:文件名和路径存储在下载作业文件列表中(加绝对路径),若文件不同,也需记录需要被下载的文件到列表中。
步骤 4:文件传输连接
关于文件下载与上传,需要示教器连接 5000 端口进行文件传输(指令等命令传输走 6000 端口)。
步骤 5:示教器与控制器文件传输网络已连接,开始进行文件传输
步骤 6:示教器发送需要上传的作业文件的名字与大小
0x5501 REQUEST_UPLOAD_FILE
json
{
"name": "vxWorks", // 示教器发送文件的文件名
"size": 4096 // 示教器发送文件的大小
}| 参数 | 类型 | 描述 |
|---|---|---|
| name | string | 示教器发送文件的文件名 |
| size | int | 示教器发送文件的大小 |
示教器开始请求上传文件,等待控制器回复。
步骤 7:控制器回复是否同意上传
0x5502 REQUEST_UPLOAD_RESPOND
json
{
"answer": "yes" // "yes" 表示同意上传文件请求,"busy" 表示控制器忙碌
}| 参数 | 类型 | 描述 |
|---|---|---|
| answer | string | yes=同意上传,busy=控制器忙碌 |
步骤 8:示教器接受 "yes" 开始发送文件
0x5512
文件写入二进制流,采取切片循环发送,若剩余文件大小超过规定数值(2*1024),则每次发送规定数据大小,直到剩余文件大小小于规定的每次发送数据大小,将剩余文件数据发送完毕。
步骤 9:控制器接收文件完毕
0x5513 RECEIVE_UPLOAD_FINISH
json
{
"finish": true // 等待下载计时器停止,导入新上传文件
}| 参数 | 类型 | 描述 |
|---|---|---|
| finish | bool | true=等待下载计时器停止,导入新上传文件 |
步骤 10:若有多个作业文件需要同步到控制器中则需要重复步骤 6~9
场景二:控制器中的作业文件多于示教器,则需要示教器向控制器下载作业文件
1~5 上传下载一样通信,示教器与控制器文件传输网络已连接,开始进行文件传输。
步骤 1:示教器向控制器发送获取控制器 ID 指令
0x5052 IDENTIFY_NUMBER_INQUIRE
控制器回复:0x5053 IDENTIFY_NUMBER_RESPOND
json
{
"controllerID": "4DC9F0249098C82E" // 控制器ID
}| 参数 | 类型 | 描述 |
|---|---|---|
| controllerID | string | 控制器ID |
获取到连接的控制器ID之后,在同步作业文件时需判断此ID是否已知。已知则判断路径 dir/controllerID 是否存在,若存在则不做操作;若不存在则创建工作文件路径,格式:dir/controllerID/robotJob/R1。多个机器人则表示 R1-4。
步骤 2:示教器向控制器发送获取作业文件列表指令
0x5532 JOBFILE_LIST_INQUIRE
控制器回复:0x5533 JOBFILE_SUM_RESPOND
json
{
"absolutepath": ["/job/R1/", "/job/R2/", "/job/R3/", "/job/R4/"], // 作业文件的文件夹列表
"jobfilenum": [2, 33, 233, 666] // 作业文件夹中包含的文件个数
}| 参数 | 类型 | 描述 |
|---|---|---|
| absolutepath | array | 作业文件的文件夹列表 |
| jobfilenum | array | 各作业文件夹中包含的文件个数 |
此时开启停止下载计时器,设定5秒,作用为判断下载文件过程中是否等待超时。
步骤 3:控制器主动向示教器发送作业文件列表
0x5534 JOBFILE_LIST_RESPOND
json
{
"robot": 1,
"listnum": 2, // 最多10个
"jobfilelist": [
{
"name": "xxx.JBR", // 作业文件名字
"MD5": "123" // MD5值,用于判断文件是否相同
},
{
"name": "yyy.JBR",
"MD5": "132"
}
]
}| 参数 | 类型 | 描述 |
|---|---|---|
| robot | int | 机器人号 |
| listnum | int | 列表数量,最多10个 |
| jobfilelist | array | 作业文件列表 |
控制器回复的参数作用是于本地的作业文件作比较。若文件相同,判断MD5值是否相同,若MD5值相同则不做处理,不同则需要删除本地文件并重新下载。记录需要下载的文件:文件名和路径存储在下载作业文件列表中(加绝对路径),若文件不同,也需记录需要被下载的文件到列表中。
步骤 4:文件传输连接
关于文件下载与上传,需要示教器连接 5000 端口进行文件传输(指令等命令传输走 6000 端口)。
步骤 5:示教器与控制器文件传输网络已连接,开始进行文件传输
步骤 6:示教器开始发送列表中的作业文件名称
0x5504
json
{
"name": "job/R1/WWWWW.JBR" // 需要下载的作业文件名称
}| 参数 | 类型 | 描述 |
|---|---|---|
| name | string | 需要下载的作业文件名称(包含路径) |
参数 name 是作业文件在控制器中的作业文件路径加上名字。在 0x5533 和 0x5534 中控制器有向示教器发送路径和名字。示教器提示开始同步作业文件。
步骤 7:控制器回复
0x5505
json
{
"answer": "yes", // 控制器是否同意下载
"name": "job/R1/WWWWW.JBR", // 需要被下载的作业文件名称
"size": 217 // 此作业文件的大小
}| 参数 | 类型 | 描述 |
|---|---|---|
| answer | string | 控制器是否同意下载 |
| name | string | 需要被下载的作业文件名称 |
| size | int | 此作业文件的大小 |
步骤 8:控制器主动发送
0x5522
步骤 9:查看示教器是否接收参数成功
0x5523
json
{
"finish": true // 示教器接收成功
}| 参数 | 类型 | 描述 |
|---|---|---|
| finish | bool | 示教器接收成功 |
以上过程代表一个作业文件下载完成。若有多个作业文件需要下载,则在 0x5534 中存入的列表减一,继续重复以上过程。