|
@ -0,0 +1,137 @@ |
|
|
|
|
|
**服务器地址**:mqtt://192.168.87.12:1883 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**业务流程** |
|
|
|
|
|
|
|
|
|
|
|
```mermaid |
|
|
|
|
|
sequenceDiagram |
|
|
|
|
|
participant 机器人 |
|
|
|
|
|
participant 消解仪 |
|
|
|
|
|
机器人->>消解仪: 创建任务 |
|
|
|
|
|
Note right of 消解仪 : 开门 |
|
|
|
|
|
消解仪->>机器人: 放入试管架 |
|
|
|
|
|
机器人->>消解仪: 试管架已放入 |
|
|
|
|
|
Note right of 消解仪 : 关门 |
|
|
|
|
|
Note right of 消解仪 : 执行消解步骤 |
|
|
|
|
|
Note right of 消解仪 : 消解完成,取出试管架 |
|
|
|
|
|
Note right of 消解仪 : 开门 |
|
|
|
|
|
消解仪->>机器人: 取出试管架 |
|
|
|
|
|
机器人->>消解仪: 试管架已取出 |
|
|
|
|
|
Note right of 消解仪 : 关门 |
|
|
|
|
|
Note right of 消解仪 : 异常处理结束,取出异常试管 |
|
|
|
|
|
Note right of 消解仪 : 开门 |
|
|
|
|
|
消解仪->>机器人: 放入空试管架 |
|
|
|
|
|
机器人->>消解仪: 试管架已放入 |
|
|
|
|
|
Note right of 消解仪 : 关门 |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
**任务创建** |
|
|
|
|
|
|
|
|
|
|
|
发布至: `stw-80a` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"action": "StartNewDigestion", |
|
|
|
|
|
"params": { |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"name" : "流程测试", |
|
|
|
|
|
"batchNo" : "TR-01", |
|
|
|
|
|
"tubes" : [{"no":"TR-01-01"},{"no":"TR-01-02"}, ... ] |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
- `taskId` : 唯一 |
|
|
|
|
|
- `name` : 消解配方名称 |
|
|
|
|
|
- `batchNo` : 批次号 |
|
|
|
|
|
- `tubes` : 试管列表,依次对应试管架中 1-16个孔位 ,当试管 `no` 属性为空时表示该孔位试管不存在。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**放入试管架** |
|
|
|
|
|
|
|
|
|
|
|
任务创建后,设备自动打开柜门,准备放入试管架位置。 当准备完成后通知机器人将试管架放入。 |
|
|
|
|
|
|
|
|
|
|
|
发布至 :`robot` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"src" : "stw-80a" |
|
|
|
|
|
"action" : "TubeRackPutIn", |
|
|
|
|
|
"params" : { |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"batchNo":"TR-01" |
|
|
|
|
|
}, |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**试管架已放入** |
|
|
|
|
|
|
|
|
|
|
|
当试管架放入完成后,通知设备放入操作完成,可以继续执行后续步骤。 |
|
|
|
|
|
|
|
|
|
|
|
发布至: `stw-80a` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"action" : "TubeRackPutInDone", |
|
|
|
|
|
"params" : {} |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**取出试管架** |
|
|
|
|
|
|
|
|
|
|
|
当设备中存在消解完成的批次时,将会打开柜门通知机器人将消解完成的试管架取出设备。 需要注意的是, 除消解完成之外,仍然存在其他情况需要取出试管架,但只需执行取出操作即可。 |
|
|
|
|
|
|
|
|
|
|
|
发布至 :`robot` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"src" : "stw-80a" |
|
|
|
|
|
"action" : "TubeRackTakeOut", |
|
|
|
|
|
"params" : { |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"batchNo":"TR-01" |
|
|
|
|
|
}, |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**试管架已取出** |
|
|
|
|
|
|
|
|
|
|
|
当机器人将试管架取出完成后需要通知设备试管架已经取出,则设备将会关闭柜门继续执行后续操作。 |
|
|
|
|
|
|
|
|
|
|
|
发布至: `stw-80a` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"action" : "TubeRackTakeOutDone", |
|
|
|
|
|
"params" : {} |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**放入空试管架** |
|
|
|
|
|
|
|
|
|
|
|
在设备进行异常处理时,需要将异常处理区中已经处理完成的试管取出,则需要放入一个空的试管架来放置已完成的试管。 当机器人收到该消息后,需要将空试管架放入设备内, 并在放置完成后发送 `试管架已放置完成` 的消息。 |
|
|
|
|
|
|
|
|
|
|
|
发布至 :`robot` |
|
|
|
|
|
|
|
|
|
|
|
```json |
|
|
|
|
|
{ |
|
|
|
|
|
"src" : "stw-80a" |
|
|
|
|
|
"action" : "EmptyTubeRackPutIn", |
|
|
|
|
|
"params" : { |
|
|
|
|
|
"taskId" : "00000000-0000-0000-0000-000000000000", |
|
|
|
|
|
"batchNo":"TR-01" |
|
|
|
|
|
}, |
|
|
|
|
|
} |
|
|
|
|
|
``` |