From c0e7a695535aa5aa127827bf599569061f19bba5 Mon Sep 17 00:00:00 2001 From: ZiWei <131428629+ZiWei09@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:59:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(registry):=20=E6=96=B0=E5=A2=9E=E5=90=8E?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=AB=99=E7=9A=84=E8=AE=BE=E5=A4=87=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加后处理站的YAML配置文件,包含动作映射、状态类型和设备描述 --- .../devices/post_process_station.yaml | 630 ++++++++++++++++++ 1 file changed, 630 insertions(+) create mode 100644 unilabos/registry/devices/post_process_station.yaml diff --git a/unilabos/registry/devices/post_process_station.yaml b/unilabos/registry/devices/post_process_station.yaml new file mode 100644 index 0000000..ae6464a --- /dev/null +++ b/unilabos/registry/devices/post_process_station.yaml @@ -0,0 +1,630 @@ +post_process_station: + category: + - post_process_station + class: + action_value_mappings: + disconnect: + feedback: {} + goal: + command: {} + goal_default: + command: '' + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: + status: + type: string + required: + - status + title: SendCmd_Feedback + type: object + goal: + properties: + command: + type: string + required: + - command + title: SendCmd_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: SendCmd_Result + type: object + required: + - goal + title: SendCmd + type: object + type: SendCmd + read_node: + feedback: + result: result + goal: + command: node_name + goal_default: + command: '' + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: + status: + type: string + required: + - status + title: SendCmd_Feedback + type: object + goal: + properties: + command: + type: string + required: + - command + title: SendCmd_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: SendCmd_Result + type: object + required: + - goal + title: SendCmd + type: object + type: SendCmd + trigger_cleaning_action: + feedback: {} + goal: + acetone_inner_wall_cleaning_count: acetone_inner_wall_cleaning_count + acetone_inner_wall_cleaning_injection: acetone_inner_wall_cleaning_injection + acetone_inner_wall_cleaning_waste_time: acetone_inner_wall_cleaning_waste_time + acetone_outer_wall_cleaning_count: acetone_outer_wall_cleaning_count + acetone_outer_wall_cleaning_injection: acetone_outer_wall_cleaning_injection + acetone_outer_wall_cleaning_wait_time: acetone_outer_wall_cleaning_wait_time + acetone_outer_wall_cleaning_waste_time: acetone_outer_wall_cleaning_waste_time + acetone_pump_cleaning_suction_count: acetone_pump_cleaning_suction_count + acetone_stirrer_cleaning_count: acetone_stirrer_cleaning_count + acetone_stirrer_cleaning_injection: acetone_stirrer_cleaning_injection + acetone_stirrer_cleaning_wait_time: acetone_stirrer_cleaning_wait_time + acetone_stirrer_cleaning_waste_time: acetone_stirrer_cleaning_waste_time + filtration_liquid_selection: filtration_liquid_selection + injection_pump_forward_empty_suction_count: injection_pump_forward_empty_suction_count + injection_pump_reverse_empty_suction_count: injection_pump_reverse_empty_suction_count + nmp_inner_wall_cleaning_count: nmp_inner_wall_cleaning_count + nmp_inner_wall_cleaning_injection: nmp_inner_wall_cleaning_injection + nmp_inner_wall_cleaning_waste_time: nmp_inner_wall_cleaning_waste_time + nmp_outer_wall_cleaning_count: nmp_outer_wall_cleaning_count + nmp_outer_wall_cleaning_injection: nmp_outer_wall_cleaning_injection + nmp_outer_wall_cleaning_wait_time: nmp_outer_wall_cleaning_wait_time + nmp_outer_wall_cleaning_waste_time: nmp_outer_wall_cleaning_waste_time + nmp_pump_cleaning_suction_count: nmp_pump_cleaning_suction_count + nmp_stirrer_cleaning_count: nmp_stirrer_cleaning_count + nmp_stirrer_cleaning_injection: nmp_stirrer_cleaning_injection + nmp_stirrer_cleaning_wait_time: nmp_stirrer_cleaning_wait_time + nmp_stirrer_cleaning_waste_time: nmp_stirrer_cleaning_waste_time + pipe_blowing_time: pipe_blowing_time + water_inner_wall_cleaning_count: water_inner_wall_cleaning_count + water_inner_wall_cleaning_injection: water_inner_wall_cleaning_injection + water_inner_wall_cleaning_waste_time: water_inner_wall_cleaning_waste_time + water_outer_wall_cleaning_count: water_outer_wall_cleaning_count + water_outer_wall_cleaning_injection: water_outer_wall_cleaning_injection + water_outer_wall_cleaning_wait_time: water_outer_wall_cleaning_wait_time + water_outer_wall_cleaning_waste_time: water_outer_wall_cleaning_waste_time + water_pump_cleaning_suction_count: water_pump_cleaning_suction_count + water_stirrer_cleaning_count: water_stirrer_cleaning_count + water_stirrer_cleaning_injection: water_stirrer_cleaning_injection + water_stirrer_cleaning_wait_time: water_stirrer_cleaning_wait_time + water_stirrer_cleaning_waste_time: water_stirrer_cleaning_waste_time + goal_default: + nmp_outer_wall_cleaning_injection: 240.0 + nmp_outer_wall_cleaning_count: 3 + nmp_outer_wall_cleaning_wait_time: 30 + nmp_outer_wall_cleaning_waste_time: 20 + nmp_inner_wall_cleaning_injection: 300.0 + nmp_inner_wall_cleaning_count: 2 + nmp_pump_cleaning_suction_count: 8 + nmp_inner_wall_cleaning_waste_time: 20 + nmp_stirrer_cleaning_injection: 500.0 + nmp_stirrer_cleaning_count: 1 + nmp_stirrer_cleaning_wait_time: 30 + nmp_stirrer_cleaning_waste_time: 30 + water_outer_wall_cleaning_injection: 200.0 + water_outer_wall_cleaning_count: 2 + water_outer_wall_cleaning_wait_time: 20 + water_outer_wall_cleaning_waste_time: 15 + water_inner_wall_cleaning_injection: 200.0 + water_inner_wall_cleaning_count: 1 + water_pump_cleaning_suction_count: 3 + water_inner_wall_cleaning_waste_time: 15 + water_stirrer_cleaning_injection: 200.0 + water_stirrer_cleaning_count: 1 + water_stirrer_cleaning_wait_time: 20 + water_stirrer_cleaning_waste_time: 15 + acetone_outer_wall_cleaning_injection: 240.0 + acetone_outer_wall_cleaning_count: 1 + acetone_outer_wall_cleaning_wait_time: 30 + acetone_outer_wall_cleaning_waste_time: 10 + acetone_inner_wall_cleaning_injection: 200.0 + acetone_inner_wall_cleaning_count: 1 + acetone_pump_cleaning_suction_count: 3 + acetone_inner_wall_cleaning_waste_time: 10 + acetone_stirrer_cleaning_injection: 500.0 + acetone_stirrer_cleaning_count: 1 + acetone_stirrer_cleaning_wait_time: 30 + acetone_stirrer_cleaning_waste_time: 30 + pipe_blowing_time: 15 + injection_pump_forward_empty_suction_count: 15 + injection_pump_reverse_empty_suction_count: 60 + filtration_liquid_selection: 0 + handles: {} + result: + return_info: return_info + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: PostProcessTriggerClean_Feedback + type: object + goal: + properties: + acetone_inner_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_inner_wall_cleaning_injection: + type: number + acetone_inner_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_outer_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_outer_wall_cleaning_injection: + type: number + acetone_outer_wall_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_outer_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_pump_cleaning_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_stirrer_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_stirrer_cleaning_injection: + type: number + acetone_stirrer_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + acetone_stirrer_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + filtration_liquid_selection: + maximum: 2147483647 + minimum: -2147483648 + type: integer + injection_pump_forward_empty_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + injection_pump_reverse_empty_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_inner_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_inner_wall_cleaning_injection: + type: number + nmp_inner_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_outer_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_outer_wall_cleaning_injection: + type: number + nmp_outer_wall_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_outer_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_pump_cleaning_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_stirrer_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_stirrer_cleaning_injection: + type: number + nmp_stirrer_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + nmp_stirrer_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + pipe_blowing_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_inner_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_inner_wall_cleaning_injection: + type: number + water_inner_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_outer_wall_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_outer_wall_cleaning_injection: + type: number + water_outer_wall_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_outer_wall_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_pump_cleaning_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_stirrer_cleaning_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_stirrer_cleaning_injection: + type: number + water_stirrer_cleaning_wait_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + water_stirrer_cleaning_waste_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - 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 + title: PostProcessTriggerClean_Goal + type: object + result: + properties: + return_info: + type: string + required: + - return_info + title: PostProcessTriggerClean_Result + type: object + required: + - goal + title: PostProcessTriggerClean + type: object + type: PostProcessTriggerClean + trigger_grab_action: + feedback: {} + goal: + raw_tank_number: raw_tank_number + reaction_tank_number: reaction_tank_number + goal_default: + raw_tank_number: 0 + reaction_tank_number: 0 + handles: {} + result: + return_info: return_info + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: PostProcessGrab_Feedback + type: object + goal: + properties: + raw_tank_number: + maximum: 2147483647 + minimum: -2147483648 + type: integer + reaction_tank_number: + maximum: 2147483647 + minimum: -2147483648 + type: integer + required: + - reaction_tank_number + - raw_tank_number + title: PostProcessGrab_Goal + type: object + result: + properties: + return_info: + type: string + required: + - return_info + title: PostProcessGrab_Result + type: object + required: + - goal + title: PostProcessGrab + type: object + type: PostProcessGrab + trigger_post_processing: + feedback: {} + goal: + atomization_fast_speed: atomization_fast_speed + wash_slow_speed: wash_slow_speed + injection_pump_suction_speed: injection_pump_suction_speed + injection_pump_push_speed: injection_pump_push_speed + raw_liquid_suction_count: raw_liquid_suction_count + first_wash_water_amount: first_wash_water_amount + second_wash_water_amount: second_wash_water_amount + first_powder_mixing_time: first_powder_mixing_time + second_powder_mixing_time: second_powder_mixing_time + first_powder_wash_count: first_powder_wash_count + second_powder_wash_count: second_powder_wash_count + initial_water_amount: initial_water_amount + pre_filtration_mixing_time: pre_filtration_mixing_time + atomization_pressure_kpa: atomization_pressure_kpa + goal_default: + atomization_fast_speed: 17.0 + wash_slow_speed: 17.0 + injection_pump_suction_speed: 300 + injection_pump_push_speed: 100 + raw_liquid_suction_count: 1 + first_wash_water_amount: 550.0 + second_wash_water_amount: 550.0 + first_powder_mixing_time: 300 + second_powder_mixing_time: 300 + first_powder_wash_count: 1 + second_powder_wash_count: 1 + initial_water_amount: 551.0 + pre_filtration_mixing_time: 300 + atomization_pressure_kpa: 74 + handles: {} + result: + return_info: return_info + schema: + description: '' + properties: + feedback: + properties: {} + required: [] + title: PostProcessTriggerPostPro_Feedback + type: object + goal: + properties: + atomization_fast_speed: + type: number + atomization_pressure_kpa: + maximum: 2147483647 + minimum: -2147483648 + type: integer + first_powder_mixing_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + first_powder_wash_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + first_wash_water_amount: + type: number + initial_water_amount: + type: number + injection_pump_push_speed: + maximum: 2147483647 + minimum: -2147483648 + type: integer + injection_pump_suction_speed: + maximum: 2147483647 + minimum: -2147483648 + type: integer + pre_filtration_mixing_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + raw_liquid_suction_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + second_powder_mixing_time: + maximum: 2147483647 + minimum: -2147483648 + type: integer + second_powder_wash_count: + maximum: 2147483647 + minimum: -2147483648 + type: integer + second_wash_water_amount: + type: number + wash_slow_speed: + type: number + required: + - 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 + title: PostProcessTriggerPostPro_Goal + type: object + result: + properties: + return_info: + type: string + required: + - return_info + title: PostProcessTriggerPostPro_Result + type: object + required: + - goal + title: PostProcessTriggerPostPro + type: object + type: PostProcessTriggerPostPro + write_node: + feedback: + result: result + goal: + command: json_input + goal_default: + command: '' + handles: {} + result: + success: success + schema: + description: '' + properties: + feedback: + properties: + status: + type: string + required: + - status + title: SendCmd_Feedback + type: object + goal: + properties: + command: + type: string + required: + - command + title: SendCmd_Goal + type: object + result: + properties: + return_info: + type: string + success: + type: boolean + required: + - return_info + - success + title: SendCmd_Result + type: object + required: + - goal + title: SendCmd + type: object + type: SendCmd + module: unilabos.device_comms.opcua_client.client:OpcUaClient + status_types: + acetone_tank_empty_alarm: Bool + atomization_fast_speed: Float64 + atomization_pressure_kpa: Int32 + cleaning_complete: Bool + device_ready: Bool + door_open_alarm: Bool + grab_complete: Bool + grab_trigger: Bool + injection_pump_push_speed: Int32 + injection_pump_suction_speed: Int32 + nmp_tank_empty_alarm: Bool + post_process_complete: Bool + post_process_trigger: Bool + raw_tank_number: Int32 + reaction_tank_number: Int32 + remote_mode: Bool + wash_slow_speed: Float64 + waste_tank_full_alarm: Bool + water_tank_empty_alarm: Bool + type: python + config_info: [] + description: 后处理站 + handles: [] + icon: post_process_station.png + init_param_schema: {} + version: 1.0.0