Files
Uni-Lab-OS/unilabos/test/experiments/mock_protocol/runcolumnteststation.json
Xuwznln 75f09034ff update docs, test examples
fix liquid_handler init bug
2025-11-18 18:42:27 +08:00

412 lines
11 KiB
JSON

{
"nodes": [
{
"id": "RunColumnTestStation",
"name": "柱层析测试工作站",
"children": [
"transfer_pump_1",
"column_1",
"flask_sample",
"flask_hexane",
"flask_ethyl_acetate",
"flask_methanol",
"collection_flask_1",
"collection_flask_2",
"collection_flask_3",
"waste_flask",
"reactor"
],
"parent": null,
"type": "device",
"class": "workstation",
"position": {
"x": 620.6111111111111,
"y": 171,
"z": 0
},
"config": {
"protocol_type": ["RunColumnProtocol", "TransferProtocol"]
},
"data": {}
},
{
"id": "transfer_pump_1",
"name": "转移泵",
"children": [],
"parent": "RunColumnTestStation",
"type": "device",
"class": "virtual_transfer_pump",
"position": {
"x": 520.6111111111111,
"y": 300,
"z": 0
},
"config": {
"port": "VIRTUAL",
"max_volume": 50.0,
"transfer_rate": 10.0
},
"data": {
"status": "Idle",
"current_volume": 0.0,
"max_volume": 50.0,
"transfer_rate": 10.0,
"from_vessel": "",
"to_vessel": "",
"progress": 0.0,
"transferred_volume": 0.0,
"current_status": "Ready"
}
},
{
"id": "column_1",
"name": "柱层析设备",
"children": [],
"parent": "RunColumnTestStation",
"type": "device",
"class": "virtual_column",
"position": {
"x": 650.1111111111111,
"y": 478,
"z": 0
},
"config": {
"port": "VIRTUAL",
"max_flow_rate": 5.0,
"column_length": 30.0,
"column_diameter": 2.5
},
"data": {
"status": "Idle",
"column_state": "Ready",
"current_flow_rate": 0.0,
"max_flow_rate": 5.0,
"column_length": 30.0,
"column_diameter": 2.5,
"processed_volume": 0.0,
"progress": 0.0,
"current_status": "Ready"
}
},
{
"id": "flask_sample",
"name": "样品瓶",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 100,
"y": 428,
"z": 0
},
"config": {
"max_volume": 500.0
},
"data": {
"liquid": [
{
"name": "crude_mixture",
"volume": 200.0,
"concentration": 70.0
}
]
}
},
{
"id": "flask_hexane",
"name": "正己烷洗脱剂",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 250,
"y": 428,
"z": 0
},
"config": {
"max_volume": 2000.0
},
"data": {
"liquid": [
{
"name": "hexane",
"volume": 1500.0,
"concentration": 99.8
}
]
}
},
{
"id": "flask_ethyl_acetate",
"name": "乙酸乙酯洗脱剂",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 400,
"y": 428,
"z": 0
},
"config": {
"max_volume": 2000.0
},
"data": {
"liquid": [
{
"name": "ethyl_acetate",
"volume": 1500.0,
"concentration": 99.5
}
]
}
},
{
"id": "flask_methanol",
"name": "甲醇洗脱剂",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 550,
"y": 428,
"z": 0
},
"config": {
"max_volume": 1000.0
},
"data": {
"liquid": [
{
"name": "methanol",
"volume": 800.0,
"concentration": 99.9
}
]
}
},
{
"id": "collection_flask_1",
"name": "收集瓶1",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 750,
"y": 428,
"z": 0
},
"config": {
"max_volume": 1000.0
},
"data": {
"liquid": []
}
},
{
"id": "collection_flask_2",
"name": "收集瓶2",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 900,
"y": 428,
"z": 0
},
"config": {
"max_volume": 1000.0
},
"data": {
"liquid": []
}
},
{
"id": "collection_flask_3",
"name": "收集瓶3",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 1050,
"y": 428,
"z": 0
},
"config": {
"max_volume": 1000.0
},
"data": {
"liquid": []
}
},
{
"id": "waste_flask",
"name": "废液瓶",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 1200,
"y": 428,
"z": 0
},
"config": {
"max_volume": 2000.0
},
"data": {
"liquid": []
}
},
{
"id": "reactor",
"name": "反应器",
"children": [],
"parent": "RunColumnTestStation",
"type": "container",
"class": null,
"position": {
"x": 698.1111111111111,
"y": 300,
"z": 0
},
"config": {
"max_volume": 1000.0
},
"data": {
"liquid": [
{
"name": "reaction_mixture",
"volume": 300.0,
"concentration": 85.0
}
]
}
}
],
"links": [
{
"source": "transfer_pump_1",
"target": "flask_sample",
"type": "physical",
"port": {
"transfer_pump_1": "1",
"flask_sample": "top"
}
},
{
"source": "transfer_pump_1",
"target": "flask_hexane",
"type": "physical",
"port": {
"transfer_pump_1": "2",
"flask_hexane": "top"
}
},
{
"source": "transfer_pump_1",
"target": "flask_ethyl_acetate",
"type": "physical",
"port": {
"transfer_pump_1": "3",
"flask_ethyl_acetate": "top"
}
},
{
"source": "transfer_pump_1",
"target": "flask_methanol",
"type": "physical",
"port": {
"transfer_pump_1": "4",
"flask_methanol": "top"
}
},
{
"source": "transfer_pump_1",
"target": "column_1",
"type": "physical",
"port": {
"transfer_pump_1": "5",
"column_1": "inlet"
}
},
{
"source": "transfer_pump_1",
"target": "collection_flask_1",
"type": "physical",
"port": {
"transfer_pump_1": "6",
"collection_flask_1": "top"
}
},
{
"source": "transfer_pump_1",
"target": "collection_flask_2",
"type": "physical",
"port": {
"transfer_pump_1": "7",
"collection_flask_2": "top"
}
},
{
"source": "transfer_pump_1",
"target": "collection_flask_3",
"type": "physical",
"port": {
"transfer_pump_1": "8",
"collection_flask_3": "top"
}
},
{
"source": "transfer_pump_1",
"target": "waste_flask",
"type": "physical",
"port": {
"transfer_pump_1": "9",
"waste_flask": "top"
}
},
{
"source": "transfer_pump_1",
"target": "reactor",
"type": "physical",
"port": {
"transfer_pump_1": "10",
"reactor": "top"
}
},
{
"source": "column_1",
"target": "collection_flask_1",
"type": "physical",
"port": {
"column_1": "outlet",
"collection_flask_1": "top"
}
},
{
"source": "column_1",
"target": "collection_flask_2",
"type": "physical",
"port": {
"column_1": "outlet",
"collection_flask_2": "top"
}
},
{
"source": "column_1",
"target": "collection_flask_3",
"type": "physical",
"port": {
"column_1": "outlet",
"collection_flask_3": "top"
}
}
]
}