区分了虚拟仪器中的八通阀和电磁阀,添加了两个阀门的驱动

This commit is contained in:
KCFeng425
2025-06-14 16:23:26 +08:00
parent 6385065ba3
commit d058de3702
3 changed files with 412 additions and 65 deletions

View File

@@ -1,3 +1,49 @@
# 虚拟设备清单及连接特性
# 1. virtual_pump - 虚拟泵
# 描述具有多通道阀门特性的泵根据valve_position可连接多个容器
# 连接特性1个输入口 + 1个输出口当前配置实际应该有多个输出口
# 数据类型fluid流体连接
# 2. virtual_stirrer - 虚拟搅拌器
# 描述:机械连接设备,提供搅拌功能
# 连接特性1个双向连接点bidirectional
# 数据类型mechanical机械连接
# 3a. virtual_valve - 虚拟八通阀门
# 描述8通阀门实际配置为7通可切换流向
# 连接特性1个口连接注射泵 + 7个输出口
# 数据类型fluid流体连接
# 3b. virtual_solenoid_valve (电磁阀门)
# 描述:简单的开关型电磁阀,只有开启和关闭两个状态
# 连接特性1个输入口 + 1个输出口控制通断
# 数据类型fluid流体连接
# 4. virtual_centrifuge - 虚拟离心机
# 描述:单个样品处理设备,原地处理样品
# 连接特性1个输入口 + 1个输出口
# 数据类型resource资源/样品连接)
# 5. virtual_filter - 虚拟过滤器
# 描述:分离设备,将样品分离为滤液和滤渣
# 连接特性1个输入口 + 2个输出口滤液和滤渣
# 数据类型resource资源/样品连接)
# 6. virtual_heatchill - 虚拟加热/冷却器
# 描述:温控设备,容器直接放置在设备上进行温度控制
# 连接特性1个双向连接点bidirectional
# 数据类型mechanical机械/物理接触连接)
# 7. virtual_transfer_pump - 虚拟转移泵(注射器式)
# 描述:注射器式转移泵,通过同一个口吸入和排出液体
# 连接特性1个双向连接点bidirectional
# 数据类型fluid流体连接
# 8. virtual_column - 虚拟色谱柱
# 描述:分离纯化设备,用于样品纯化
# 连接特性1个输入口 + 1个输出口
# 数据类型resource资源/样品连接)
virtual_pump:
description: Virtual Pump for PumpTransferProtocol Testing
class:
@@ -124,10 +170,10 @@ virtual_stirrer:
default: 1000.0
additionalProperties: false
virtual_valve:
description: Virtual Valve for AddProtocol Testing
virtual_multiway_valve:
description: Virtual 8-Way Valve for flow direction control
class:
module: unilabos.devices.virtual.virtual_valve:VirtualValve
module: unilabos.devices.virtual.virtual_multiway_valve:VirtualMultiwayValve
type: python
status_types:
status: String
@@ -139,10 +185,90 @@ virtual_valve:
set_position:
type: SendCmd
goal:
command: position
position: position
feedback: {}
result:
success: success
# 八通阀门节点配置 - 1个输入口8个输出口可切换流向
handles:
input:
- handler_key: multiway-valve-inlet
label: Valve Inlet
data_type: fluid
io_type: target
data_source: handle
data_key: fluid_in
description: "八通阀门进液口,接收来源流体"
output:
- handler_key: multiway-valve-port-1
label: Port 1
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_1
description: "八通阀门端口1position=1时流体从此口流出"
- handler_key: multiway-valve-port-2
label: Port 2
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_2
description: "八通阀门端口2position=2时流体从此口流出"
- handler_key: multiway-valve-port-3
label: Port 3
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_3
description: "八通阀门端口3position=3时流体从此口流出"
- handler_key: multiway-valve-port-4
label: Port 4
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_4
description: "八通阀门端口4position=4时流体从此口流出"
- handler_key: multiway-valve-port-5
label: Port 5
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_5
description: "八通阀门端口5position=5时流体从此口流出"
- handler_key: multiway-valve-port-6
label: Port 6
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_6
description: "八通阀门端口6position=6时流体从此口流出"
- handler_key: multiway-valve-port-7
label: Port 7
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_7
description: "八通阀门端口7position=7时流体从此口流出"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
positions:
type: integer
default: 8
additionalProperties: false
virtual_solenoid_valve:
description: Virtual Solenoid Valve for simple on/off flow control
class:
module: unilabos.devices.virtual.virtual_solenoid_valve:VirtualSolenoidValve
type: python
status_types:
status: String
valve_state: String # "open" or "closed"
is_open: Boolean
action_value_mappings:
open:
type: EmptyIn
goal: {}
@@ -155,77 +281,36 @@ virtual_valve:
feedback: {}
result:
success: success
# 虚拟阀门节点配置 - 6通阀门1个输入口6个输出口可切换流向
set_state:
type: BoolSingleInput
goal:
state: state
feedback: {}
result:
success: success
# 电磁阀门节点配置 - 双向流通的开关型阀门,流动方向由泵决定
handles:
input:
- handler_key: valve-inlet
label: Valve Inlet
bidirectional:
- handler_key: solenoid-valve-port
label: Valve Port
data_type: fluid
io_type: target
io_type: bidirectional
data_source: handle
data_key: fluid_in
description: "阀门进液口,接收来源流体"
output:
- handler_key: valve-port-1
label: Port 1
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_1
description: "阀门端口1position=1时流体从此口流出"
- handler_key: valve-port-2
label: Port 2
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_2
description: "阀门端口2position=2时流体从此口流出"
- handler_key: valve-port-3
label: Port 3
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_3
description: "阀门端口3position=3时流体从此口流出"
- handler_key: valve-port-4
label: Port 4
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_4
description: "阀门端口4position=4时流体从此口流出"
- handler_key: valve-port-5
label: Port 5
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_5
description: "阀门端口5position=5时流体从此口流出"
- handler_key: valve-port-6
label: Port 6
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_6
description: "阀门端口6position=6时流体从此口流出"
- handler_key: valve-port-7
label: Port 7
data_type: fluid
io_type: source
data_source: executor
data_key: fluid_port_6
description: "阀门端口7position=6时流体从此口流出"
data_key: fluid_port
description: "电磁阀的双向流体口,开启时允许流体双向通过,关闭时完全阻断"
schema:
type: object
properties:
port:
type: string
default: "VIRTUAL"
positions:
type: integer
default: 7
voltage:
type: number
default: 12.0
response_time:
type: number
default: 0.1
additionalProperties: false
virtual_centrifuge:
description: Virtual Centrifuge for CentrifugeProtocol Testing
class: