mirror of
https://github.com/deepmodeling/Uni-Lab-OS
synced 2026-03-30 04:43:11 +00:00
Add post process station and related resources (#195)
* Add post process station and related resources - Created JSON configuration for post_process_station and its child post_process_deck. - Added YAML definitions for post_process_station, bottle carriers, bottles, and deck resources. - Implemented Python classes for bottle carriers, bottles, decks, and warehouses to manage resources in the post process. - Established a factory method for creating warehouses with customizable dimensions and layouts. - Defined the structure and behavior of the post_process_deck and its associated warehouses. * feat(post_process): add post_process_station and related warehouse functionality - Introduced post_process_station.json to define the post-processing station structure. - Implemented post_process_warehouse.py to create warehouse configurations with customizable layouts. - Added warehouses.py for specific warehouse configurations (4x3x1). - Updated post_process_station.yaml to reflect new module paths for OpcUaClient. - Refactored bottle carriers and bottles YAML files to point to the new module paths. - Adjusted deck.yaml to align with the new organizational structure for post_process_deck.
This commit is contained in:
157
unilabos/devices/workstation/post_process/opcua_huairou.json
Normal file
157
unilabos/devices/workstation/post_process/opcua_huairou.json
Normal file
@@ -0,0 +1,157 @@
|
||||
{
|
||||
"register_node_list_from_csv_path": {
|
||||
"path": "opcua_nodes_huairou.csv"
|
||||
},
|
||||
"create_flow": [
|
||||
{
|
||||
"name": "trigger_grab_action",
|
||||
"description": "触发反应罐及原料罐抓取动作",
|
||||
"parameters": ["reaction_tank_number", "raw_tank_number"],
|
||||
"action": [
|
||||
{
|
||||
"init_function": {
|
||||
"func_name": "init_grab_params",
|
||||
"write_nodes": ["reaction_tank_number", "raw_tank_number"]
|
||||
},
|
||||
"start_function": {
|
||||
"func_name": "start_grab",
|
||||
"write_nodes": {"grab_trigger": true},
|
||||
"condition_nodes": ["grab_complete"],
|
||||
"stop_condition_expression": "grab_complete == True",
|
||||
"timeout_seconds": 999999.0
|
||||
},
|
||||
"stop_function": {
|
||||
"func_name": "stop_grab",
|
||||
"write_nodes": {"grab_trigger": false}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "trigger_post_processing",
|
||||
"description": "触发后处理动作",
|
||||
"parameters": ["atomization_fast_speed", "wash_slow_speed","injection_pump_suction_speed",
|
||||
"injection_pump_push_speed","raw_liquid_suction_count","first_wash_water_amount",
|
||||
"second_wash_water_amount","first_powder_mixing_time","second_powder_mixing_time",
|
||||
"first_powder_wash_count","second_powder_wash_count","initial_water_amount",
|
||||
"pre_filtration_mixing_time","atomization_pressure_kpa"],
|
||||
"action": [
|
||||
{
|
||||
"init_function": {
|
||||
"func_name": "init_post_processing_params",
|
||||
"write_nodes": ["atomization_fast_speed", "wash_slow_speed","injection_pump_suction_speed",
|
||||
"injection_pump_push_speed","raw_liquid_suction_count","first_wash_water_amount",
|
||||
"second_wash_water_amount","first_powder_mixing_time","second_powder_mixing_time",
|
||||
"first_powder_wash_count","second_powder_wash_count","initial_water_amount",
|
||||
"pre_filtration_mixing_time","atomization_pressure_kpa"]
|
||||
},
|
||||
"start_function": {
|
||||
"func_name": "start_post_processing",
|
||||
"write_nodes": {"post_process_trigger": true},
|
||||
"condition_nodes": ["post_process_complete"],
|
||||
"stop_condition_expression": "post_process_complete == True",
|
||||
"timeout_seconds": 999999.0
|
||||
},
|
||||
"stop_function": {
|
||||
"func_name": "stop_post_processing",
|
||||
"write_nodes": {"post_process_trigger": false}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "trigger_cleaning_action",
|
||||
"description": "触发清洗及管路吹气动作",
|
||||
"parameters": ["nmp_outer_wall_cleaning_injection", "nmp_outer_wall_cleaning_count","nmp_outer_wall_cleaning_wait_time",
|
||||
"nmp_outer_wall_cleaning_waste_time","nmp_inner_wall_cleaning_injection","nmp_inner_wall_cleaning_count",
|
||||
"nmp_pump_cleaning_suction_count",
|
||||
"nmp_inner_wall_cleaning_waste_time",
|
||||
"nmp_stirrer_cleaning_injection",
|
||||
"nmp_stirrer_cleaning_count",
|
||||
"nmp_stirrer_cleaning_wait_time",
|
||||
"nmp_stirrer_cleaning_waste_time",
|
||||
"water_outer_wall_cleaning_injection",
|
||||
"water_outer_wall_cleaning_count",
|
||||
"water_outer_wall_cleaning_wait_time",
|
||||
"water_outer_wall_cleaning_waste_time",
|
||||
"water_inner_wall_cleaning_injection",
|
||||
"water_inner_wall_cleaning_count",
|
||||
"water_pump_cleaning_suction_count",
|
||||
"water_inner_wall_cleaning_waste_time",
|
||||
"water_stirrer_cleaning_injection",
|
||||
"water_stirrer_cleaning_count",
|
||||
"water_stirrer_cleaning_wait_time",
|
||||
"water_stirrer_cleaning_waste_time",
|
||||
"acetone_outer_wall_cleaning_injection",
|
||||
"acetone_outer_wall_cleaning_count",
|
||||
"acetone_outer_wall_cleaning_wait_time",
|
||||
"acetone_outer_wall_cleaning_waste_time",
|
||||
"acetone_inner_wall_cleaning_injection",
|
||||
"acetone_inner_wall_cleaning_count",
|
||||
"acetone_pump_cleaning_suction_count",
|
||||
"acetone_inner_wall_cleaning_waste_time",
|
||||
"acetone_stirrer_cleaning_injection",
|
||||
"acetone_stirrer_cleaning_count",
|
||||
"acetone_stirrer_cleaning_wait_time",
|
||||
"acetone_stirrer_cleaning_waste_time",
|
||||
"pipe_blowing_time",
|
||||
"injection_pump_forward_empty_suction_count",
|
||||
"injection_pump_reverse_empty_suction_count",
|
||||
"filtration_liquid_selection"],
|
||||
"action": [
|
||||
{
|
||||
"init_function": {
|
||||
"func_name": "init_cleaning_params",
|
||||
"write_nodes": ["nmp_outer_wall_cleaning_injection", "nmp_outer_wall_cleaning_count","nmp_outer_wall_cleaning_wait_time",
|
||||
"nmp_outer_wall_cleaning_waste_time","nmp_inner_wall_cleaning_injection","nmp_inner_wall_cleaning_count",
|
||||
"nmp_pump_cleaning_suction_count",
|
||||
"nmp_inner_wall_cleaning_waste_time",
|
||||
"nmp_stirrer_cleaning_injection",
|
||||
"nmp_stirrer_cleaning_count",
|
||||
"nmp_stirrer_cleaning_wait_time",
|
||||
"nmp_stirrer_cleaning_waste_time",
|
||||
"water_outer_wall_cleaning_injection",
|
||||
"water_outer_wall_cleaning_count",
|
||||
"water_outer_wall_cleaning_wait_time",
|
||||
"water_outer_wall_cleaning_waste_time",
|
||||
"water_inner_wall_cleaning_injection",
|
||||
"water_inner_wall_cleaning_count",
|
||||
"water_pump_cleaning_suction_count",
|
||||
"water_inner_wall_cleaning_waste_time",
|
||||
"water_stirrer_cleaning_injection",
|
||||
"water_stirrer_cleaning_count",
|
||||
"water_stirrer_cleaning_wait_time",
|
||||
"water_stirrer_cleaning_waste_time",
|
||||
"acetone_outer_wall_cleaning_injection",
|
||||
"acetone_outer_wall_cleaning_count",
|
||||
"acetone_outer_wall_cleaning_wait_time",
|
||||
"acetone_outer_wall_cleaning_waste_time",
|
||||
"acetone_inner_wall_cleaning_injection",
|
||||
"acetone_inner_wall_cleaning_count",
|
||||
"acetone_pump_cleaning_suction_count",
|
||||
"acetone_inner_wall_cleaning_waste_time",
|
||||
"acetone_stirrer_cleaning_injection",
|
||||
"acetone_stirrer_cleaning_count",
|
||||
"acetone_stirrer_cleaning_wait_time",
|
||||
"acetone_stirrer_cleaning_waste_time",
|
||||
"pipe_blowing_time",
|
||||
"injection_pump_forward_empty_suction_count",
|
||||
"injection_pump_reverse_empty_suction_count",
|
||||
"filtration_liquid_selection"]
|
||||
},
|
||||
"start_function": {
|
||||
"func_name": "start_cleaning",
|
||||
"write_nodes": {"cleaning_and_pipe_blowing_trigger": true},
|
||||
"condition_nodes": ["cleaning_complete"],
|
||||
"stop_condition_expression": "cleaning_complete == True",
|
||||
"timeout_seconds": 999999.0
|
||||
},
|
||||
"stop_function": {
|
||||
"func_name": "stop_cleaning",
|
||||
"write_nodes": {"cleaning_and_pipe_blowing_trigger": false}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user