{ "nodes": [ { "id": "AddTestStation", "name": "添加试剂测试工作站", "children": [ "transfer_pump", "multiway_valve", "stirrer", "flask_reagent1", "flask_reagent2", "flask_reagent3", "flask_reagent4", "reactor", "flask_waste", "flask_rinsing", "flask_buffer" ], "parent": null, "type": "device", "class": "workstation", "position": { "x": 620, "y": 171, "z": 0 }, "config": { "protocol_type": ["AddProtocol", "TransferProtocol", "StartStirProtocol", "StopStirProtocol"] }, "data": {} }, { "id": "transfer_pump", "name": "注射器泵", "children": [], "parent": "AddTestStation", "type": "device", "class": "virtual_transfer_pump", "position": { "x": 520, "y": 300, "z": 0 }, "config": { "port": "VIRTUAL", "max_volume": 50.0, "transfer_rate": 5.0 }, "data": { "status": "Idle" } }, { "id": "multiway_valve", "name": "八通阀门", "children": [], "parent": "AddTestStation", "type": "device", "class": "virtual_multiway_valve", "position": { "x": 420, "y": 300, "z": 0 }, "config": { "port": "VIRTUAL", "positions": 8 }, "data": { "status": "Idle", "current_position": 1 } }, { "id": "stirrer", "name": "搅拌器", "children": [], "parent": "AddTestStation", "type": "device", "class": "virtual_stirrer", "position": { "x": 720, "y": 450, "z": 0 }, "config": { "port": "VIRTUAL", "max_temp": 100.0, "max_speed": 1000.0 }, "data": { "status": "Idle" } }, { "id": "flask_reagent1", "name": "试剂瓶1 (甲醇)", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 100, "y": 400, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "甲醇", "volume": 800.0, "concentration": "99.9%" } ] } }, { "id": "flask_reagent2", "name": "试剂瓶2 (乙醇)", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 180, "y": 400, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "乙醇", "volume": 750.0, "concentration": "95%" } ] } }, { "id": "flask_reagent3", "name": "试剂瓶3 (丙酮)", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 260, "y": 400, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "丙酮", "volume": 900.0, "concentration": "99.5%" } ] } }, { "id": "flask_reagent4", "name": "试剂瓶4 (二氯甲烷)", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 340, "y": 400, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "二氯甲烷", "volume": 850.0, "concentration": "99.8%" } ] } }, { "id": "reactor", "name": "反应器", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 720, "y": 400, "z": 0 }, "config": { "max_volume": 2000.0 }, "data": { "liquid": [] } }, { "id": "flask_waste", "name": "废液瓶", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 850, "y": 400, "z": 0 }, "config": { "max_volume": 3000.0 }, "data": { "liquid": [] } }, { "id": "flask_rinsing", "name": "冲洗液瓶", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 950, "y": 300, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "去离子水", "volume": 800.0, "concentration": "纯净" } ] } }, { "id": "flask_buffer", "name": "缓冲液瓶", "children": [], "parent": "AddTestStation", "type": "container", "class": null, "position": { "x": 950, "y": 400, "z": 0 }, "config": { "max_volume": 1000.0 }, "data": { "liquid": [ { "name": "磷酸盐缓冲液", "volume": 700.0, "concentration": "0.1M, pH 7.4" } ] } } ], "links": [ { "source": "transfer_pump", "target": "multiway_valve", "type": "physical", "port": { "transfer_pump": "syringe-port", "multiway_valve": "multiway-valve-inlet" } }, { "source": "multiway_valve", "target": "flask_reagent1", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-1", "flask_reagent1": "top" } }, { "source": "multiway_valve", "target": "flask_reagent2", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-2", "flask_reagent2": "top" } }, { "source": "multiway_valve", "target": "flask_reagent3", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-3", "flask_reagent3": "top" } }, { "source": "multiway_valve", "target": "flask_reagent4", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-4", "flask_reagent4": "top" } }, { "source": "multiway_valve", "target": "reactor", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-5", "reactor": "top" } }, { "source": "multiway_valve", "target": "flask_waste", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-6", "flask_waste": "top" } }, { "source": "multiway_valve", "target": "flask_rinsing", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-7", "flask_rinsing": "top" } }, { "source": "multiway_valve", "target": "flask_buffer", "type": "physical", "port": { "multiway_valve": "multiway-valve-port-8", "flask_buffer": "top" } }, { "source": "stirrer", "target": "reactor", "type": "physical", "port": { "stirrer": "stirrer-vessel", "reactor": "bottom" } } ] }