帮助中心
帮助中心主页
激光雷达
外部传感器
其他传感器
总线型编码器
电池及充电
喇叭及氛围灯
功能授权
交互脚本使用说明

一、脚本功能介绍

1.1 文件说明

通信脚本interact.py主要用于机器人执行任务前后需要与现场设备进行交互的场景,一般交互场景如下:

  1. 机器人到达目标站点,告知现场设备已到位;
  2. 机器人进行作业前,获取现场设备状态是否就绪;
  3. 机器人作业完成后,告知现场设备任务已完成。

第一次运行脚本后,会生成 interact.json配置文件,打开该文件并按照提示进行配置。
通信脚本文件下载

1.2 业务场景说明

下发指令中data 字段下 reach 字段代表到位通知,action 字段代表读取设备状态并请求执行动作,finish 字段代表任务完成通知,各字段具体内容依据项目协议给出。可根据具体业务流程任意组合,例如:

  1. 业务只需要到位通知,则 data 数据中只需包含 reach 字段即可;
  2. 业务需要到位通知和任务完成通知,则 data 数据中需包含 reach 字段和 finish 字段;
  3. 业务需要到位通知,执行动作前需要查询设备状态,任务完成后需要告知终端,则 data 数据中需包含 reach 字段、action字段 和 finish 字段。

二、HTTP协议

不同的项目现场,通信协议中定义的数据字段会有所不同,一下示例以《库卡项目接口协议V1.4》作为参考。
addr 为交互设备服务端地址,data 字段根据项目具体协议要求给出约定的数据字段,protocol 可选择 HTTP 和 Modbus TCP 协议。

2.1 到位通知

addr 为交互设备服务端地址,data 字段根据项目具体协议要求给出约定的数据字段,protocol 为 HTTP ,其他指令皆一致,后续不在赘述。

json
{
    "operation": "script",
    "id": "SELF_POSITION",
    "script_name": "interact.py",
    "script_args": {
        "addr": "http://127.0.0.1:8088",        //更改为现场设备IP及PORT
        "data": {                                                        //根据实际项目协议更改 data 数据
            "reach": {"id": "终端设备名", "status": "机器人的状态码"}
        },
      "protocol": "HTTP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

2.2 获取设备状态

json
{
    "operation": "script",
    "id": "SELF_POSITION",
    "script_name": "interact.py",
    "script_args": {
        "addr": "http://127.0.0.1:8088",       
        "data": {
            "action": {"id": "终端设备名"}
        },
      "protocol": "HTTP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

2.3 任务完成通知

json
{
    "operation": "script",
    "id": "SELF_POSITION",
    "script_name": "interact.py",
    "script_args": {
        "addr": "http://127.0.0.1:8088",       
        "data": {
            "finish": {"id": "终端设备名", "status": "机器人的状态码"}
        },
      "protocol": "HTTP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

2.4 导航前、后执行通信脚本

在导航任务前执行通信脚本,进行到位通知及获取设备状态,以确认作业可以正常进行;在导航任务完成后执行通信脚本,告知现场设备任务完成,机器人即将离开。data 字段根据项目具体协议要求给出约定的数据字段。
以下示例表示:在执行 ForkLoad 任务前,先调用 interact.py 脚本,进行到位通知及获取设备状态;然后执行ForkLoad任务;执行ForkLoad任务完成后,再次调用 interact.py 脚本,告知现场设备任务完成。
setup_scriptpost_script可以指定不同的脚本。
该功能需要 Robokit 更新到 3.3.5.66 以上版本
执行顺序为:

  1. 执行 setup_script 指定的脚本;
  2. 执行导航任务,此例为 ForkLoad 任务;
  3. 执行 post_script 指定的脚本。
json
{
  "operation": "ForkLoad",
  "start_height": 0.3,
  "end_height": 0.5,
  "recfile": "p0001.pallet",
  "recognize": true,
  "setup_script": "interact.py",
  "setup_script_args": {
        "addr": "http://127.0.0.1:8088",        
        "data": {                                                        
            "reach": {"id": "终端设备名", "status": "机器人的状态码"},
            "action": {"id": "终端设备名"}
        },
       "protocol": "HTTP"
    },
   "post_script": "interact.py",
   "post_script_args": {
        "addr": "http://127.0.0.1:8088",        
        "data": {                                                        
            "finish": {"id": "终端设备名", "status": "机器人的状态码"}
        },
       "protocol": "HTTP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

三、Modbus TCP协议

使用RDSCore与现场终端设备交互功能接口,数据定义及业务流程可参考与终端交互

3.1 查询现场终端状态

roboshop 终端配置界面将 isConfigParameter 配置选项配置为 true

json
{
    "operation":"script",
    "id":"SELF_POSITION",
    "script_name":"interact.py",
    "script_args":{
        "addr":"http://127.0.0.1:8088/callTerminal",
        "data": {
            "action":{
                "id":"terminalName",
                "type":"read"
            }
        },
        "protocol":"ModbusTCP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

roboshop 终端配置界面将 isConfigParameter 配置选项配置为 false

json
{
    "operation":"script",
    "id":"SELF_POSITION",
    "script_name":"interact.py",
    "script_args":{
        "addr":"http://127.0.0.1:8088/callTerminal",
        "data": {
            "action":{
                "id": "terminalName",    
                "type": "readAddr",        
                "address": 2,           
                "functionCode": 3       
            }
        },
        "protocol":"ModbusTCP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

3.2 告知现场终端开始任务

roboshop 终端配置界面将 isConfigParameter 配置选项配置为 true

json
{
    "operation":"script",
    "id":"SELF_POSITION",
    "script_name":"interact.py",
    "script_args":{
        "addr":"http://127.0.0.1:8088/callTerminal",
        "data":{
            "reach":{
                "id":"terminalName",
                "type": "write",       
                "value": 23            
            }
        },
        "protocol":"ModbusTCP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

roboshop 终端配置界面将 isConfigParameter 配置选项配置为 false

json
{
    "operation":"script",
    "id":"SELF_POSITION",
    "script_name":"interact.py",
    "script_args":{
        "addr":"http://127.0.0.1:8088/callTerminal",
        "data":{
            "reach":{
                "id": "terminalName",    
                "type": "writeAddr",    
                "value": 23,            
                "address": 3,           
                "functionCode": 6         
            }
        },
        "protocol":"ModbusTCP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

3.3 导航前、后执行通信脚本

以下示例表示:在执行 ForkLoad任务前,先调用 interact.py 脚本,进行到位通知及获取设备状态;然后执行ForkLoad任务;执行ForkLoad任务完成后,再次调用 interact.py 脚本,告知现场设备任务完成。
setup_scriptpost_script可以指定不同的脚本。
该功能需要 Robokit 更新到 3.3.5.66 以上版本
执行顺序为:

  1. 执行 setup_script 指定的脚本;
  2. 执行导航任务,此例为 ForkLoad 任务;
  3. 执行 post_script 指定的脚本。
json
{
  "operation": "ForkLoad",
  "start_height": 0.3,
  "end_height": 0.5,
  "recfile": "p0001.pallet",
  "recognize": true,
  "setup_script": "interact.py",
  "setup_script_args": {
        "addr": "http://127.0.0.1:8088/callTerminal",        
        "data": {                                                        
            "reach": {  "id":"terminalName", "type": "write", "value": 23  },
            "action": {"id":"terminalName", "type":"read"}
        },
       "protocol": "ModbusTCP"
    },
   "post_script": "interact.py",
   "post_script_args": {
        "addr": "http://127.0.0.1:8088/callTerminal",        
        "data": {                                                        
            "finish":  {  "id":"terminalName", "type": "write", "value": 23  }
        },
       "protocol": "ModbusTCP"
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
最近更新 2022/11/28
文章内容

一、脚本功能介绍

1.1 文件说明

1.2 业务场景说明

二、HTTP协议

2.1 到位通知

2.2 获取设备状态

2.3 任务完成通知

2.4 导航前、后执行通信脚本

三、Modbus TCP协议

3.1 查询现场终端状态

3.2 告知现场终端开始任务

3.3 导航前、后执行通信脚本