mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 13:01:12 +00:00
Merge remote-tracking branch 'origin/workstation_dev_YB2' into dev
# Conflicts: # unilabos/devices/workstation/bioyond_studio/bioyond_rpc.py # unilabos/devices/workstation/bioyond_studio/station.py # unilabos/resources/graphio.py
This commit is contained in:
@@ -127,16 +127,16 @@ add_action_files(
|
||||
```bash
|
||||
mamba remove --force ros-humble-unilabos-msgs
|
||||
mamba config set safety_checks disabled # 如果没有提升版本号,会触发md5与网络上md5不一致,是正常现象,因此通过本指令关闭md5检查
|
||||
mamba install xxx.conda2 --offline
|
||||
mamba install xxx.conda --offline
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
**Q: 构建失败怎么办?**
|
||||
**Q: 构建失败怎么办?**
|
||||
A: 检查 Actions 日志中的错误信息,通常是语法错误或依赖问题。修复后重新推送代码即可自动触发新的构建。
|
||||
|
||||
**Q: 如何测试特定平台?**
|
||||
**Q: 如何测试特定平台?**
|
||||
A: 在手动触发构建时,在平台选择中只填写你需要的平台,如 `linux-64` 或 `win-64`。
|
||||
|
||||
**Q: 构建包在哪里下载?**
|
||||
**Q: 构建包在哪里下载?**
|
||||
A: 在 Actions 页面的构建结果中,查找 "Artifacts" 部分,每个平台都有对应的构建包可供下载。
|
||||
|
||||
60
test/experiments/dispensing_station_bioyond.json
Normal file
60
test/experiments/dispensing_station_bioyond.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "dispensing_station_bioyond",
|
||||
"name": "dispensing_station_bioyond",
|
||||
"children": [
|
||||
"Bioyond_Dispensing_Deck"
|
||||
],
|
||||
"parent": null,
|
||||
"type": "device",
|
||||
"class": "dispensing_station.bioyond",
|
||||
"config": {
|
||||
"config": {
|
||||
"api_key": "DE9BDDA0",
|
||||
"api_host": "http://192.168.1.200:44388"
|
||||
},
|
||||
"deck": {
|
||||
"data": {
|
||||
"_resource_child_name": "Bioyond_Dispensing_Deck",
|
||||
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerPreparationStation_Deck"
|
||||
}
|
||||
},
|
||||
"station_config": {
|
||||
"station_type": "dispensing_station",
|
||||
"enable_dispensing_station": true,
|
||||
"enable_reaction_station": false,
|
||||
"station_name": "DispensingStation_001",
|
||||
"description": "Bioyond配液工作站"
|
||||
},
|
||||
"protocol_type": []
|
||||
},
|
||||
"data": {}
|
||||
},
|
||||
{
|
||||
"id": "Bioyond_Dispensing_Deck",
|
||||
"name": "Bioyond_Dispensing_Deck",
|
||||
"sample_id": null,
|
||||
"children": [],
|
||||
"parent": "dispensing_station_bioyond",
|
||||
"type": "deck",
|
||||
"class": "BIOYOND_PolymerPreparationStation_Deck",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"config": {
|
||||
"type": "BIOYOND_PolymerPreparationStation_Deck",
|
||||
"setup": true,
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"type": "Rotation"
|
||||
}
|
||||
},
|
||||
"data": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
69
test/experiments/reaction_station_bioyond.json
Normal file
69
test/experiments/reaction_station_bioyond.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "reaction_station_bioyond",
|
||||
"name": "reaction_station_bioyond",
|
||||
"parent": null,
|
||||
"children": [
|
||||
"Bioyond_Deck"
|
||||
],
|
||||
"type": "device",
|
||||
"class": "reaction_station.bioyond",
|
||||
"config": {
|
||||
"bioyond_config": {
|
||||
"api_key": "DE9BDDA0",
|
||||
"api_host": "http://192.168.1.200:44402",
|
||||
"workflow_mappings": {
|
||||
"reactor_taken_out": "3a16081e-4788-ca37-eff4-ceed8d7019d1",
|
||||
"reactor_taken_in": "3a160df6-76b3-0957-9eb0-cb496d5721c6",
|
||||
"Solid_feeding_vials": "3a160877-87e7-7699-7bc6-ec72b05eb5e6",
|
||||
"Liquid_feeding_vials(non-titration)": "3a167d99-6158-c6f0-15b5-eb030f7d8e47",
|
||||
"Liquid_feeding_solvents": "3a160824-0665-01ed-285a-51ef817a9046",
|
||||
"Liquid_feeding(titration)": "3a160824-0665-01ed-285a-51ef817a9046",
|
||||
"Liquid_feeding_beaker": "3a16087e-124f-8ddb-8ec1-c2dff09ca784",
|
||||
"Drip_back": "3a162cf9-6aac-565a-ddd7-682ba1796a4a"
|
||||
},
|
||||
"material_type_mappings": {
|
||||
"烧杯": "BIOYOND_PolymerStation_1FlaskCarrier",
|
||||
"试剂瓶": "BIOYOND_PolymerStation_1BottleCarrier",
|
||||
"样品板": "BIOYOND_PolymerStation_6VialCarrier"
|
||||
}
|
||||
},
|
||||
"deck": {
|
||||
"data": {
|
||||
"_resource_child_name": "Bioyond_Deck",
|
||||
"_resource_type": "unilabos.resources.bioyond.decks:BIOYOND_PolymerReactionStation_Deck"
|
||||
}
|
||||
},
|
||||
"protocol_type": []
|
||||
},
|
||||
"data": {}
|
||||
},
|
||||
{
|
||||
"id": "Bioyond_Deck",
|
||||
"name": "Bioyond_Deck",
|
||||
"sample_id": null,
|
||||
"children": [
|
||||
],
|
||||
"parent": "reaction_station_bioyond",
|
||||
"type": "deck",
|
||||
"class": "BIOYOND_PolymerReactionStation_Deck",
|
||||
"position": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0
|
||||
},
|
||||
"config": {
|
||||
"type": "BIOYOND_PolymerReactionStation_Deck",
|
||||
"setup": true,
|
||||
"rotation": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"z": 0,
|
||||
"type": "Rotation"
|
||||
}
|
||||
},
|
||||
"data": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
506
unilabos/registry/devices/dispensing_station_bioyond.yaml
Normal file
506
unilabos/registry/devices/dispensing_station_bioyond.yaml
Normal file
@@ -0,0 +1,506 @@
|
||||
dispensing_station.bioyond:
|
||||
category:
|
||||
- work_station
|
||||
- dispensing_station_bioyond
|
||||
class:
|
||||
action_value_mappings:
|
||||
bioyond_sync:
|
||||
feedback: {}
|
||||
goal:
|
||||
force_sync: force_sync
|
||||
sync_type: sync_type
|
||||
goal_default:
|
||||
force_sync: false
|
||||
sync_type: full
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 从Bioyond系统同步物料
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
force_sync:
|
||||
description: 是否强制同步
|
||||
type: boolean
|
||||
sync_type:
|
||||
description: 同步类型
|
||||
enum:
|
||||
- full
|
||||
- incremental
|
||||
type: string
|
||||
required:
|
||||
- sync_type
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: bioyond_sync参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
bioyond_update:
|
||||
feedback: {}
|
||||
goal:
|
||||
material_ids: material_ids
|
||||
sync_all: sync_all
|
||||
goal_default:
|
||||
material_ids: []
|
||||
sync_all: true
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 将本地物料变更同步到Bioyond
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_ids:
|
||||
description: 要同步的物料ID列表
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
sync_all:
|
||||
description: 是否同步所有物料
|
||||
type: boolean
|
||||
required:
|
||||
- sync_all
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: bioyond_update参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
create_90_10_vial_feeding_task:
|
||||
feedback: {}
|
||||
goal:
|
||||
delay_time: delay_time
|
||||
order_name: order_name
|
||||
percent_10_1_assign_material_name: percent_10_1_assign_material_name
|
||||
percent_10_1_liquid_material_name: percent_10_1_liquid_material_name
|
||||
percent_10_1_target_weigh: percent_10_1_target_weigh
|
||||
percent_10_1_volume: percent_10_1_volume
|
||||
percent_10_2_assign_material_name: percent_10_2_assign_material_name
|
||||
percent_10_2_liquid_material_name: percent_10_2_liquid_material_name
|
||||
percent_10_2_target_weigh: percent_10_2_target_weigh
|
||||
percent_10_2_volume: percent_10_2_volume
|
||||
percent_90_1_assign_material_name: percent_90_1_assign_material_name
|
||||
percent_90_1_target_weigh: percent_90_1_target_weigh
|
||||
percent_90_2_assign_material_name: percent_90_2_assign_material_name
|
||||
percent_90_2_target_weigh: percent_90_2_target_weigh
|
||||
percent_90_3_assign_material_name: percent_90_3_assign_material_name
|
||||
percent_90_3_target_weigh: percent_90_3_target_weigh
|
||||
speed: speed
|
||||
temperature: temperature
|
||||
goal_default:
|
||||
delay_time: '600'
|
||||
order_name: ''
|
||||
percent_10_1_assign_material_name: ''
|
||||
percent_10_1_liquid_material_name: ''
|
||||
percent_10_1_target_weigh: ''
|
||||
percent_10_1_volume: ''
|
||||
percent_10_2_assign_material_name: ''
|
||||
percent_10_2_liquid_material_name: ''
|
||||
percent_10_2_target_weigh: ''
|
||||
percent_10_2_volume: ''
|
||||
percent_90_1_assign_material_name: ''
|
||||
percent_90_1_target_weigh: ''
|
||||
percent_90_2_assign_material_name: ''
|
||||
percent_90_2_target_weigh: ''
|
||||
percent_90_3_assign_material_name: ''
|
||||
percent_90_3_target_weigh: ''
|
||||
speed: '400'
|
||||
temperature: '20'
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 创建90%/10%小瓶投料任务
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
delay_time:
|
||||
default: '600'
|
||||
description: 延迟时间(s)
|
||||
type: string
|
||||
order_name:
|
||||
description: 任务名称
|
||||
type: string
|
||||
percent_10_1_assign_material_name:
|
||||
description: 10%组分1物料名称
|
||||
type: string
|
||||
percent_10_1_liquid_material_name:
|
||||
description: 10%组分1液体物料名称
|
||||
type: string
|
||||
percent_10_1_target_weigh:
|
||||
description: 10%组分1目标重量(g)
|
||||
type: string
|
||||
percent_10_1_volume:
|
||||
description: 10%组分1液体体积(mL)
|
||||
type: string
|
||||
percent_10_2_assign_material_name:
|
||||
description: 10%组分2物料名称
|
||||
type: string
|
||||
percent_10_2_liquid_material_name:
|
||||
description: 10%组分2液体物料名称
|
||||
type: string
|
||||
percent_10_2_target_weigh:
|
||||
description: 10%组分2目标重量(g)
|
||||
type: string
|
||||
percent_10_2_volume:
|
||||
description: 10%组分2液体体积(mL)
|
||||
type: string
|
||||
percent_90_1_assign_material_name:
|
||||
description: 90%组分1物料名称
|
||||
type: string
|
||||
percent_90_1_target_weigh:
|
||||
description: 90%组分1目标重量(g)
|
||||
type: string
|
||||
percent_90_2_assign_material_name:
|
||||
description: 90%组分2物料名称
|
||||
type: string
|
||||
percent_90_2_target_weigh:
|
||||
description: 90%组分2目标重量(g)
|
||||
type: string
|
||||
percent_90_3_assign_material_name:
|
||||
description: 90%组分3物料名称
|
||||
type: string
|
||||
percent_90_3_target_weigh:
|
||||
description: 90%组分3目标重量(g)
|
||||
type: string
|
||||
speed:
|
||||
default: '400'
|
||||
description: 搅拌速度(rpm)
|
||||
type: string
|
||||
temperature:
|
||||
default: '20'
|
||||
description: 温度(°C)
|
||||
type: string
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_90_10_vial_feeding_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
create_batch_90_10_vial_feeding_task:
|
||||
feedback: {}
|
||||
goal:
|
||||
batch_data: batch_data
|
||||
goal_default:
|
||||
batch_data: '{}'
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 创建批量90%10%小瓶投料任务
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
batch_data:
|
||||
description: 批量90%10%小瓶投料任务数据(JSON格式),包含batch_name、tasks列表和global_settings
|
||||
type: string
|
||||
required:
|
||||
- batch_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_batch_90_10_vial_feeding_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
create_batch_diamine_solution_task:
|
||||
feedback: {}
|
||||
goal:
|
||||
batch_data: batch_data
|
||||
goal_default:
|
||||
batch_data: '{}'
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 创建批量二胺溶液配制任务
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
batch_data:
|
||||
description: 批量二胺溶液配制任务数据(JSON格式),包含batch_name、tasks列表和global_settings
|
||||
type: string
|
||||
required:
|
||||
- batch_data
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_batch_diamine_solution_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
create_diamine_solution_task:
|
||||
feedback: {}
|
||||
goal:
|
||||
delay_time: delay_time
|
||||
hold_m_name: hold_m_name
|
||||
liquid_material_name: liquid_material_name
|
||||
material_name: material_name
|
||||
order_name: order_name
|
||||
speed: speed
|
||||
target_weigh: target_weigh
|
||||
temperature: temperature
|
||||
volume: volume
|
||||
goal_default:
|
||||
delay_time: '600'
|
||||
hold_m_name: ''
|
||||
liquid_material_name: NMP
|
||||
material_name: ''
|
||||
order_name: ''
|
||||
speed: '400'
|
||||
target_weigh: ''
|
||||
temperature: '20'
|
||||
volume: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 创建二胺溶液配制任务
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
delay_time:
|
||||
default: '600'
|
||||
description: 延迟时间(s)
|
||||
type: string
|
||||
hold_m_name:
|
||||
description: 库位名称(如ODA-1)
|
||||
type: string
|
||||
liquid_material_name:
|
||||
default: NMP
|
||||
description: 液体物料名称
|
||||
type: string
|
||||
material_name:
|
||||
description: 固体物料名称
|
||||
type: string
|
||||
order_name:
|
||||
description: 任务名称
|
||||
type: string
|
||||
speed:
|
||||
default: '400'
|
||||
description: 搅拌速度(rpm)
|
||||
type: string
|
||||
target_weigh:
|
||||
description: 固体目标重量(g)
|
||||
type: string
|
||||
temperature:
|
||||
default: '20'
|
||||
description: 温度(°C)
|
||||
type: string
|
||||
volume:
|
||||
description: 液体体积(mL)
|
||||
type: string
|
||||
required:
|
||||
- material_name
|
||||
- target_weigh
|
||||
- volume
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_diamine_solution_task参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
create_resource:
|
||||
feedback: {}
|
||||
goal:
|
||||
resource_config: resource_config
|
||||
resource_type: resource_type
|
||||
goal_default:
|
||||
resource_config: {}
|
||||
resource_type: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 创建资源操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
resource_config:
|
||||
description: 资源配置
|
||||
type: object
|
||||
resource_type:
|
||||
description: 资源类型
|
||||
type: string
|
||||
required:
|
||||
- resource_type
|
||||
- resource_config
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: create_resource参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
dispensing_material_inbound:
|
||||
feedback: {}
|
||||
goal:
|
||||
location: location
|
||||
material_id: material_id
|
||||
goal_default:
|
||||
location: ''
|
||||
material_id: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 配液站物料入库操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
location:
|
||||
description: 存储位置
|
||||
type: string
|
||||
material_id:
|
||||
description: 物料ID
|
||||
type: string
|
||||
required:
|
||||
- material_id
|
||||
- location
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: dispensing_material_inbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
dispensing_material_outbound:
|
||||
feedback: {}
|
||||
goal:
|
||||
material_id: material_id
|
||||
quantity: quantity
|
||||
goal_default:
|
||||
material_id: ''
|
||||
quantity: 0.0
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 配液站物料出库操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_id:
|
||||
description: 物料ID
|
||||
type: string
|
||||
quantity:
|
||||
description: 出库数量
|
||||
type: number
|
||||
required:
|
||||
- material_id
|
||||
- quantity
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: dispensing_material_outbound参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
sample_waste_removal:
|
||||
feedback: {}
|
||||
goal:
|
||||
sample_id: sample_id
|
||||
waste_type: waste_type
|
||||
goal_default:
|
||||
sample_id: ''
|
||||
waste_type: general
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 样品废料移除操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
sample_id:
|
||||
description: 样品ID
|
||||
type: string
|
||||
waste_type:
|
||||
description: 废料类型
|
||||
enum:
|
||||
- general
|
||||
- hazardous
|
||||
- organic
|
||||
- inorganic
|
||||
type: string
|
||||
required:
|
||||
- sample_id
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: sample_waste_removal参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
module: unilabos.devices.workstation.bioyond_studio.station:BioyondWorkstation
|
||||
protocol_type: []
|
||||
status_types:
|
||||
bioyond_status: dict
|
||||
enable_dispensing_station: bool
|
||||
enable_reaction_station: bool
|
||||
station_type: str
|
||||
type: python
|
||||
config_info: []
|
||||
description: Bioyond配液站 - 专门用于物料配制和管理的工作站
|
||||
handles: []
|
||||
icon: 配液站.webp
|
||||
init_param_schema:
|
||||
config:
|
||||
properties:
|
||||
bioyond_config:
|
||||
description: Bioyond API配置
|
||||
properties:
|
||||
api_host:
|
||||
description: Bioyond API主机地址
|
||||
type: string
|
||||
api_key:
|
||||
description: Bioyond API密钥
|
||||
type: string
|
||||
material_type_mappings:
|
||||
description: 物料类型映射配置
|
||||
type: object
|
||||
workflow_mappings:
|
||||
description: 工作流映射配置
|
||||
type: object
|
||||
type: object
|
||||
deck:
|
||||
description: Deck配置
|
||||
type: object
|
||||
station_config:
|
||||
description: 配液站配置
|
||||
properties:
|
||||
description:
|
||||
description: 配液站描述
|
||||
type: string
|
||||
enable_dispensing_station:
|
||||
default: true
|
||||
description: 启用配液站功能
|
||||
type: boolean
|
||||
enable_reaction_station:
|
||||
default: false
|
||||
description: 禁用反应站功能
|
||||
type: boolean
|
||||
station_name:
|
||||
description: 配液站名称
|
||||
type: string
|
||||
station_type:
|
||||
default: dispensing_station
|
||||
description: 站点类型 - 配液站
|
||||
enum:
|
||||
- dispensing_station
|
||||
type: string
|
||||
type: object
|
||||
required: []
|
||||
type: object
|
||||
data:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
version: 1.0.0
|
||||
384
unilabos/registry/devices/reaction_station_bioyond.yaml
Normal file
384
unilabos/registry/devices/reaction_station_bioyond.yaml
Normal file
@@ -0,0 +1,384 @@
|
||||
reaction_station.bioyond:
|
||||
category:
|
||||
- work_station
|
||||
- reaction_station_bioyond
|
||||
class:
|
||||
action_value_mappings:
|
||||
bioyond_sync:
|
||||
feedback: {}
|
||||
goal:
|
||||
force_sync: force_sync
|
||||
sync_type: sync_type
|
||||
goal_default:
|
||||
force_sync: false
|
||||
sync_type: full
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 从Bioyond系统同步物料
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
force_sync:
|
||||
description: 是否强制同步
|
||||
type: boolean
|
||||
sync_type:
|
||||
description: 同步类型
|
||||
enum:
|
||||
- full
|
||||
- incremental
|
||||
type: string
|
||||
required:
|
||||
- sync_type
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: bioyond_sync参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
bioyond_update:
|
||||
feedback: {}
|
||||
goal:
|
||||
material_ids: material_ids
|
||||
sync_all: sync_all
|
||||
goal_default:
|
||||
material_ids: []
|
||||
sync_all: true
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 将本地物料变更同步到Bioyond
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
material_ids:
|
||||
description: 要同步的物料ID列表
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
sync_all:
|
||||
description: 是否同步所有物料
|
||||
type: boolean
|
||||
required:
|
||||
- sync_all
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: bioyond_update参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_drip_back:
|
||||
feedback: {}
|
||||
goal:
|
||||
assign_material_name: assign_material_name
|
||||
time: time
|
||||
torque_variation: torque_variation
|
||||
volume: volume
|
||||
goal_default:
|
||||
assign_material_name: ''
|
||||
time: ''
|
||||
torque_variation: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站滴回操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
assign_material_name:
|
||||
description: 溶剂名称
|
||||
type: string
|
||||
time:
|
||||
description: 观察时间(单位min)
|
||||
type: string
|
||||
torque_variation:
|
||||
description: 是否观察1否2是
|
||||
type: string
|
||||
volume:
|
||||
description: 投料体积
|
||||
type: string
|
||||
required:
|
||||
- volume
|
||||
- assign_material_name
|
||||
- time
|
||||
- torque_variation
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_drip_back参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_liquid_feed:
|
||||
feedback: {}
|
||||
goal:
|
||||
assign_material_name: assign_material_name
|
||||
time: time
|
||||
titration_type: titration_type
|
||||
torque_variation: torque_variation
|
||||
volume: volume
|
||||
goal_default:
|
||||
assign_material_name: ''
|
||||
time: ''
|
||||
titration_type: ''
|
||||
torque_variation: ''
|
||||
volume: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站液体进料操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
assign_material_name:
|
||||
description: 溶剂名称
|
||||
type: string
|
||||
time:
|
||||
description: 观察时间(单位min)
|
||||
type: string
|
||||
titration_type:
|
||||
description: 滴定类型1否2是
|
||||
type: string
|
||||
torque_variation:
|
||||
description: 是否观察1否2是
|
||||
type: string
|
||||
volume:
|
||||
description: 投料体积
|
||||
type: string
|
||||
required:
|
||||
- titration_type
|
||||
- volume
|
||||
- assign_material_name
|
||||
- time
|
||||
- torque_variation
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_liquid_feed参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_process_execute:
|
||||
feedback: {}
|
||||
goal:
|
||||
task_name: task_name
|
||||
workflow_name: workflow_name
|
||||
goal_default:
|
||||
task_name: ''
|
||||
workflow_name: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站流程执行
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
task_name:
|
||||
description: 任务名称
|
||||
type: string
|
||||
workflow_name:
|
||||
description: 工作流名称
|
||||
type: string
|
||||
required:
|
||||
- workflow_name
|
||||
- task_name
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_process_execute参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_reactor_taken_out:
|
||||
feedback: {}
|
||||
goal:
|
||||
order_id: order_id
|
||||
preintake_id: preintake_id
|
||||
goal_default:
|
||||
order_id: ''
|
||||
preintake_id: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站反应器取出操作 - 通过订单ID和预取样ID进行精确控制
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
order_id:
|
||||
description: 订单ID,用于标识要取出的订单
|
||||
type: string
|
||||
preintake_id:
|
||||
description: 预取样ID,用于标识具体的取样任务
|
||||
type: string
|
||||
required: []
|
||||
type: object
|
||||
result:
|
||||
properties:
|
||||
code:
|
||||
description: 操作结果代码(1表示成功,0表示失败)
|
||||
type: integer
|
||||
return_info:
|
||||
description: 操作结果详细信息
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_reactor_taken_out参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_solid_feed_vial:
|
||||
feedback: {}
|
||||
goal:
|
||||
assign_material_name: assign_material_name
|
||||
material_id: material_id
|
||||
time: time
|
||||
torque_variation: torque_variation
|
||||
goal_default:
|
||||
assign_material_name: ''
|
||||
material_id: ''
|
||||
time: ''
|
||||
torque_variation: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站固体进料操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
assign_material_name:
|
||||
description: 固体名称_粉末加样模块-投料
|
||||
type: string
|
||||
material_id:
|
||||
description: 固体投料类型_粉末加样模块-投料
|
||||
type: string
|
||||
time:
|
||||
description: 观察时间_反应模块-观察搅拌结果
|
||||
type: string
|
||||
torque_variation:
|
||||
description: 是否观察1否2是_反应模块-观察搅拌结果
|
||||
type: string
|
||||
required:
|
||||
- assign_material_name
|
||||
- material_id
|
||||
- time
|
||||
- torque_variation
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_solid_feed_vial参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
reaction_station_take_in:
|
||||
feedback: {}
|
||||
goal:
|
||||
assign_material_name: assign_material_name
|
||||
cutoff: cutoff
|
||||
temperature: temperature
|
||||
goal_default:
|
||||
assign_material_name: ''
|
||||
cutoff: ''
|
||||
temperature: ''
|
||||
handles: {}
|
||||
result: {}
|
||||
schema:
|
||||
description: 反应站取入操作
|
||||
properties:
|
||||
feedback: {}
|
||||
goal:
|
||||
properties:
|
||||
assign_material_name:
|
||||
description: 物料名称
|
||||
type: string
|
||||
cutoff:
|
||||
description: 截止参数
|
||||
type: string
|
||||
temperature:
|
||||
description: 温度
|
||||
type: string
|
||||
required:
|
||||
- cutoff
|
||||
- temperature
|
||||
- assign_material_name
|
||||
type: object
|
||||
result: {}
|
||||
required:
|
||||
- goal
|
||||
title: reaction_station_take_in参数
|
||||
type: object
|
||||
type: UniLabJsonCommand
|
||||
module: unilabos.devices.workstation.bioyond_studio.station:BioyondWorkstation
|
||||
protocol_type: []
|
||||
status_types:
|
||||
bioyond_status: dict
|
||||
enable_dispensing_station: bool
|
||||
enable_reaction_station: bool
|
||||
station_type: str
|
||||
type: python
|
||||
config_info: []
|
||||
description: Bioyond反应站 - 专门用于化学反应操作的工作站
|
||||
handles: []
|
||||
icon: 反应站.webp
|
||||
init_param_schema:
|
||||
config:
|
||||
properties:
|
||||
bioyond_config:
|
||||
description: Bioyond API配置
|
||||
properties:
|
||||
api_host:
|
||||
description: Bioyond API主机地址
|
||||
type: string
|
||||
api_key:
|
||||
description: Bioyond API密钥
|
||||
type: string
|
||||
material_type_mappings:
|
||||
description: 物料类型映射配置
|
||||
type: object
|
||||
workflow_mappings:
|
||||
description: 工作流映射配置
|
||||
type: object
|
||||
type: object
|
||||
deck:
|
||||
description: Deck配置
|
||||
type: object
|
||||
station_config:
|
||||
description: 反应站配置
|
||||
properties:
|
||||
description:
|
||||
description: 反应站描述
|
||||
type: string
|
||||
enable_dispensing_station:
|
||||
default: false
|
||||
description: 禁用配液站功能
|
||||
type: boolean
|
||||
enable_reaction_station:
|
||||
default: true
|
||||
description: 启用反应站功能
|
||||
type: boolean
|
||||
station_name:
|
||||
description: 反应站名称
|
||||
type: string
|
||||
station_type:
|
||||
default: reaction_station
|
||||
description: 站点类型 - 反应站
|
||||
enum:
|
||||
- reaction_station
|
||||
type: string
|
||||
type: object
|
||||
required: []
|
||||
type: object
|
||||
data:
|
||||
properties: {}
|
||||
required: []
|
||||
type: object
|
||||
version: 1.0.0
|
||||
@@ -594,7 +594,7 @@ def resource_bioyond_to_plr(bioyond_materials: list[dict], type_mapping: dict =
|
||||
|
||||
for material in bioyond_materials:
|
||||
className = type_mapping.get(material.get("typeName"), "RegularContainer") if type_mapping else "RegularContainer"
|
||||
|
||||
|
||||
plr_material: ResourcePLR = initialize_resource({"name": material["name"], "class": className}, resource_type=ResourcePLR)
|
||||
plr_material.code = material.get("code", "") and material.get("barCode", "") or ""
|
||||
|
||||
|
||||
@@ -103,10 +103,14 @@ set(action_files
|
||||
"action/PostProcessGrab.action"
|
||||
"action/PostProcessTriggerClean.action"
|
||||
"action/PostProcessTriggerPostPro.action"
|
||||
|
||||
|
||||
"action/ReactionStationDripBack.action"
|
||||
"action/ReactionStationLiquidFeed.action"
|
||||
"action/ReactionStationLiquidFeedBeaker.action"
|
||||
"action/ReactionStationLiquidFeedSolvents.action"
|
||||
"action/ReactionStationLiquidFeedTitration.action"
|
||||
"action/ReactionStationLiquidFeedVialsNonTitration.action"
|
||||
"action/ReactionStationProExecu.action"
|
||||
"action/ReactionStationReactorTakenOut.action"
|
||||
"action/ReactionStationReaTackIn.action"
|
||||
"action/ReactionStationSolidFeedVial.action"
|
||||
)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
# Goal - 滴回去
|
||||
string volume # 投料体积
|
||||
string assign_material_name # 溶剂名称
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation #是否观察1否2是
|
||||
# Goal - 滴回去操作参数
|
||||
string volume # 投料体积
|
||||
string assign_material_name # 溶剂名称
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
---
|
||||
# Result - 操作结果
|
||||
string return_info # 结果消息
|
||||
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# Goal - 液体投料
|
||||
string titration_type # 滴定类型1否2是
|
||||
string volume # 投料体积
|
||||
string assign_material_name # 溶剂名称
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation #是否观察1否2是
|
||||
---
|
||||
# Result - 操作结果
|
||||
string return_info # 结果消息
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
15
unilabos_msgs/action/ReactionStationLiquidFeedBeaker.action
Normal file
15
unilabos_msgs/action/ReactionStationLiquidFeedBeaker.action
Normal file
@@ -0,0 +1,15 @@
|
||||
# Goal - 液体投料-烧杯操作参数
|
||||
string volume # 投料体积
|
||||
string assign_material_name # 溶剂名称
|
||||
string titration_type # 滴定类型1否2是
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
string temperature # 温度设置
|
||||
---
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
@@ -0,0 +1,15 @@
|
||||
# Goal - 液体投料-溶剂操作参数
|
||||
string volume # 投料体积
|
||||
string assign_material_name # 溶剂名称
|
||||
string titration_type # 滴定类型1否2是
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
string temperature # 温度设置
|
||||
---
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
@@ -0,0 +1,15 @@
|
||||
# Goal - 液体投料滴定操作参数
|
||||
string volume_formula # 投料体积公式
|
||||
string assign_material_name # 溶剂名称
|
||||
string titration_type # 滴定类型1否2是
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
string temperature # 温度设置
|
||||
---
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
@@ -0,0 +1,15 @@
|
||||
# Goal - 液体投料-小瓶非滴定操作参数
|
||||
string volume_formula # 投料体积公式
|
||||
string assign_material_name # 溶剂名称
|
||||
string titration_type # 滴定类型1否2是
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
string temperature # 温度设置
|
||||
---
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
@@ -1,8 +1,11 @@
|
||||
# Goal - 合并工作流+执行
|
||||
string workflow_name # 工作流名称
|
||||
string task_name # 任务名称
|
||||
# Goal - 合并工作流+执行参数
|
||||
string workflow_name # 工作流名称
|
||||
string task_name # 任务名称
|
||||
---
|
||||
# Result - 操作结果
|
||||
string return_info # 结果消息
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
# Goal - 通量-配置
|
||||
string cutoff # 黏度_通量-配置
|
||||
string temperature # 温度_通量-配置
|
||||
string assign_material_name # 分液类型_通量-配置
|
||||
# Goal - 反应器放入操作参数
|
||||
string cutoff # 黏度设置
|
||||
string temperature # 温度设置
|
||||
string assign_material_name # 分液类型
|
||||
---
|
||||
# Result - 操作结果
|
||||
string return_info # 结果消息
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
|
||||
12
unilabos_msgs/action/ReactionStationReactorTakenOut.action
Normal file
12
unilabos_msgs/action/ReactionStationReactorTakenOut.action
Normal file
@@ -0,0 +1,12 @@
|
||||
# Goal - 反应器取出操作参数
|
||||
# 反应器取出操作不需要任何参数
|
||||
---
|
||||
# Result - 操作结果
|
||||
# 反应器取出操作的结果
|
||||
bool success # 要求必须包含success,以便回传执行结果
|
||||
string return_info # 要求必须包含return_info,以便回传执行结果
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
# 反应器取出操作的反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
@@ -1,10 +1,13 @@
|
||||
# Goal - 固体投料-小瓶
|
||||
string assign_material_name # 固体名称_粉末加样模块-投料
|
||||
string material_id # 固体投料类型_粉末加样模块-投料
|
||||
string time # 观察时间_反应模块-观察搅拌结果
|
||||
string torque_variation #是否观察1否2是_反应模块-观察搅拌结果
|
||||
# Goal - 固体投料-小瓶操作参数
|
||||
string assign_material_name # 固体名称
|
||||
string material_id # 固体投料类型
|
||||
string time # 观察时间(单位min)
|
||||
string torque_variation # 是否观察1否2是
|
||||
---
|
||||
# Result - 操作结果
|
||||
string return_info # 结果消息
|
||||
# Result - 操作结果
|
||||
bool success # 操作是否成功
|
||||
string return_info # 结果消息
|
||||
int32 code # 操作结果代码(1表示成功,0表示失败)
|
||||
---
|
||||
# Feedback - 实时反馈
|
||||
# Feedback - 实时反馈
|
||||
string feedback # 操作过程中的反馈信息
|
||||
|
||||
Reference in New Issue
Block a user