Workstation dev yb2 (#100)

* Refactor and extend reaction station action messages

* Refactor dispensing station tasks to enhance parameter clarity and add batch processing capabilities

- Updated `create_90_10_vial_feeding_task` to include detailed parameters for 90%/10% vial feeding, improving clarity and usability.
- Introduced `create_batch_90_10_vial_feeding_task` for batch processing of 90%/10% vial feeding tasks with JSON formatted input.
- Added `create_batch_diamine_solution_task` for batch preparation of diamine solution, also utilizing JSON formatted input.
- Refined `create_diamine_solution_task` to include additional parameters for better task configuration.
- Enhanced schema descriptions and default values for improved user guidance.
This commit is contained in:
ZiWei
2025-10-10 15:25:50 +08:00
committed by GitHub
parent 1c9d2ee98a
commit 54cfaf15f3
18 changed files with 4152 additions and 185 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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

View 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