Files
Uni-Lab-OS/test/experiments/lidocaine-graph.json
Junhan Chang c78ac482d8 Initial commit
2025-04-17 15:19:47 +08:00

1233 lines
27 KiB
JSON

{
"nodes": [
{
"type": "separator",
"x": 880,
"y": 240,
"internalId": 11,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "separator",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "separator",
"class": "ChemputerSeparator",
"name": "separator",
"current_volume": 0,
"max_volume": 300,
"necks": 1,
"dead_volume": 3,
"can_filter": false,
"label": "separator"
},
{
"type": "valve",
"x": 40,
"y": 120,
"internalId": 13,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_Z",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_Z",
"class": "ChemputerValve",
"name": "valve_Z",
"address": "192.168.1.121",
"current_volume": 0,
"label": "valve_Z"
},
{
"type": "pump",
"x": 40,
"y": 0,
"internalId": 14,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "pump_Z",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "pump_Z",
"class": "ChemputerPump",
"name": "pump_Z",
"address": "192.168.1.101",
"max_volume": 25,
"current_volume": 0,
"label": "pump_Z"
},
{
"type": "waste",
"x": 120,
"y": 40,
"internalId": 15,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "waste_Z",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "waste_Z",
"class": "ChemputerWaste",
"name": "waste_Z",
"current_volume": 0,
"max_volume": 2000,
"necks": 1,
"can_filter": false,
"label": "waste_Z"
},
{
"type": "valve",
"x": 320,
"y": 120,
"internalId": 16,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_H",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_H",
"class": "ChemputerValve",
"name": "valve_H",
"address": "192.168.1.122",
"current_volume": 0,
"label": "valve_H"
},
{
"type": "pump",
"x": 320,
"y": 0,
"internalId": 17,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "pump_H",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "pump_H",
"class": "ChemputerPump",
"name": "pump_H",
"address": "192.168.1.102",
"max_volume": 25,
"current_volume": 0,
"label": "pump_H"
},
{
"type": "waste",
"x": 400,
"y": 40,
"internalId": 18,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "waste_H",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "waste_H",
"class": "ChemputerWaste",
"name": "waste_H",
"current_volume": 0,
"max_volume": 2000,
"necks": 1,
"can_filter": false,
"label": "waste_H"
},
{
"type": "valve",
"x": 600,
"y": 120,
"internalId": 19,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_G",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_G",
"class": "ChemputerValve",
"name": "valve_G",
"address": "192.168.1.123",
"current_volume": 0,
"label": "valve_G"
},
{
"type": "valve",
"x": 880,
"y": 120,
"internalId": 23,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_Y",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_Y",
"class": "ChemputerValve",
"name": "valve_Y",
"address": "192.168.1.124",
"current_volume": 0,
"label": "valve_Y"
},
{
"type": "valve",
"x": 1080,
"y": 120,
"internalId": 24,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_K",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_K",
"class": "ChemputerValve",
"name": "valve_K",
"address": "192.168.1.125",
"current_volume": 0,
"label": "valve_K"
},
{
"type": "pump",
"x": 600,
"y": 0,
"internalId": 25,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "pump_G",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "pump_G",
"class": "ChemputerPump",
"name": "pump_G",
"address": "192.168.1.103",
"max_volume": 25,
"current_volume": 0,
"label": "pump_G"
},
{
"type": "pump",
"x": 880,
"y": 0,
"internalId": 26,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "pump_Y",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "pump_Y",
"class": "ChemputerPump",
"name": "pump_Y",
"address": "192.168.1.104",
"max_volume": 25,
"current_volume": 0,
"label": "pump_Y"
},
{
"type": "pump",
"x": 1080,
"y": 0,
"internalId": 27,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "pump_K",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "pump_K",
"class": "ChemputerPump",
"name": "pump_K",
"address": "192.168.1.105",
"max_volume": 50,
"current_volume": 0,
"label": "pump_K"
},
{
"type": "waste",
"x": 680,
"y": 40,
"internalId": 28,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "waste_G",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "waste_G",
"class": "ChemputerWaste",
"name": "waste_G",
"current_volume": 0,
"max_volume": 2000,
"necks": 1,
"can_filter": false,
"label": "waste_G"
},
{
"type": "waste",
"x": 960,
"y": 40,
"internalId": 29,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "waste_Y",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "waste_Y",
"class": "ChemputerWaste",
"name": "waste_Y",
"current_volume": 0,
"max_volume": 2000,
"necks": 1,
"can_filter": false,
"label": "waste_Y"
},
{
"type": "waste",
"x": 1160,
"y": 40,
"internalId": 30,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "waste_K",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "waste_K",
"class": "ChemputerWaste",
"name": "waste_K",
"current_volume": 0,
"max_volume": 2000,
"necks": 1,
"can_filter": false,
"label": "waste_K"
},
{
"type": "vacuum",
"x": 160,
"y": 400,
"internalId": 72,
"lock": "",
"simulation": true,
"device_name": "vacuum_filter",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "vacuum_filter",
"connection_mode": "tcpip",
"class": "ChemputerVacuum",
"name": "vacuum_filter",
"address": "",
"port": "5000",
"label": "vacuum_filter"
},
{
"type": "vacuum",
"x": 280,
"y": 400,
"internalId": 75,
"lock": "",
"simulation": true,
"device_name": "vacuum_pump",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "vacuum_pump",
"connection_mode": "tcpip",
"class": "CVC3000VacuumPump",
"name": "vacuum_pump",
"address": "192.168.1.201",
"port": "5000",
"label": "vacuum_pump"
},
{
"type": "conductivity_sensor",
"x": 880,
"y": 320,
"internalId": 80,
"lock": "",
"connection_mode": "tcpip",
"simulation": true,
"device_name": "sensor_separator",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "sensor_separator",
"class": "ConductivitySensor",
"name": "sensor_separator",
"address": "",
"port": "5000",
"label": "sensor_separator"
},
{
"type": "stirrer",
"x": 800,
"y": 240,
"internalId": 82,
"lock": "",
"simulation": true,
"device_name": "stirrer_separator",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "stirrer_separator",
"connection_mode": "tcpip",
"class": "HeiTorque100PrecisionStirrer",
"name": "stirrer_separator",
"address": "192.168.1.206",
"port": "5000",
"label": "stirrer_separator"
},
{
"type": "filter",
"x": 40,
"y": 240,
"internalId": 0,
"lock": "",
"connection_mode": "tcpip",
"address": "",
"port": "5000",
"simulation": true,
"device_name": "filter",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "filter",
"class": "ChemputerFilter",
"name": "filter",
"current_volume": 0,
"max_volume": 100,
"dead_volume": 10,
"label": "filter"
},
{
"type": "valve",
"x": 160,
"y": 240,
"internalId": 6,
"lock": "",
"connection_mode": "tcpip",
"port": "5000",
"simulation": true,
"device_name": "valve_vacuum",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "valve_vacuum",
"class": "ChemputerValve",
"name": "valve_vacuum",
"address": "",
"current_volume": 0,
"label": "valve_vacuum"
},
{
"type": "stirrer",
"x": -40,
"y": 240,
"internalId": 20,
"lock": "",
"simulation": true,
"device_name": "stirrer_filter",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "stirrer_filter",
"class": "RZR2052ControlStirrer",
"name": "stirrer_filter",
"port": "",
"address": "",
"connection_mode": "tcpip",
"label": "stirrer_filter"
},
{
"type": "chiller",
"x": 40,
"y": 320,
"internalId": 3,
"lock": "",
"simulation": true,
"device_name": "chiller_filter",
"obj": "",
"xdl_locks": {
"temp": "",
"ongoing": ""
},
"id": "chiller_filter",
"class": "CF41Chiller",
"name": "chiller_filter",
"min_temp": null,
"max_temp": null,
"port": "",
"address": "",
"temp_sensor": "external",
"connection_mode": "tcpip",
"label": "chiller_filter"
},
{
"type": "flask",
"x": 960,
"y": 200,
"id": "buffer_flask1",
"label": "buffer_flask1",
"internalId": 9,
"obj": "",
"class": "ChemputerFlask",
"name": "buffer_flask1",
"max_volume": 500,
"current_volume": 0,
"chemical": "",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 600,
"y": 240,
"obj": "",
"label": "flask_2,6-Dimethylaniline",
"id": "flask_2,6-Dimethylaniline",
"internalId": 5,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "2,6-Dimethylaniline",
"name": "flask_2,6-Dimethylaniline",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 1080,
"y": 240,
"obj": "",
"label": "flask_3 M hydrochloric acid",
"id": "flask_3 M hydrochloric acid",
"internalId": 44,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "3 M hydrochloric acid",
"name": "flask_3 M hydrochloric acid",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 320,
"y": 240,
"obj": "",
"label": "flask_3 M sodium hydroxide",
"id": "flask_3 M sodium hydroxide",
"internalId": 46,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "3 M sodium hydroxide",
"name": "flask_3 M sodium hydroxide",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 1160,
"y": 200,
"obj": "",
"label": "flask_chloroacetyl chloride",
"id": "flask_chloroacetyl chloride",
"internalId": 48,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "chloroacetyl chloride",
"name": "flask_chloroacetyl chloride",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 520,
"y": 200,
"obj": "",
"label": "flask_diethylamine",
"id": "flask_diethylamine",
"internalId": 50,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "diethylamine",
"name": "flask_diethylamine",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 400,
"y": 200,
"obj": "",
"label": "flask_glacial acetic acid",
"id": "flask_glacial acetic acid",
"internalId": 52,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "glacial acetic acid",
"name": "flask_glacial acetic acid",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": -40,
"y": 200,
"obj": "",
"label": "flask_half-saturated aqueous sodium acetate",
"id": "flask_half-saturated aqueous sodium acetate",
"internalId": 54,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "half-saturated aqueous sodium acetate",
"name": "flask_half-saturated aqueous sodium acetate",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": -40,
"y": 40,
"obj": "",
"label": "flask_toluene",
"id": "flask_toluene",
"internalId": 56,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "toluene",
"name": "flask_toluene",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 680,
"y": 200,
"obj": "",
"label": "flask_water",
"id": "flask_water",
"internalId": 65,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "water",
"name": "flask_water",
"can_filter": false,
"buffer_flask": false
},
{
"type": "flask",
"x": 120,
"y": 200,
"obj": "",
"label": "flask_nitrogen",
"id": "flask_nitrogen",
"internalId": 67,
"max_volume": 100,
"current_volume": 0,
"class": "ChemputerFlask",
"chemical": "nitrogen",
"name": "flask_nitrogen",
"can_filter": false,
"buffer_flask": false
}
],
"links": [
{
"id": 58,
"sourceInternal": 11,
"targetInternal": 23,
"source": "separator",
"target": "valve_Y",
"port": "(bottom,4)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 32,
"sourceInternal": 13,
"targetInternal": 14,
"source": "valve_Z",
"target": "pump_Z",
"port": "(-1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 85,
"sourceInternal": 13,
"targetInternal": 16,
"source": "valve_Z",
"target": "valve_H",
"port": "(1,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 95,
"sourceInternal": 13,
"targetInternal": 15,
"source": "valve_Z",
"target": "waste_Z",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 1,
"sourceInternal": 13,
"targetInternal": 0,
"source": "valve_Z",
"target": "filter",
"port": "(4,top)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 31,
"sourceInternal": 14,
"targetInternal": 13,
"source": "pump_Z",
"target": "valve_Z",
"port": "(0,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 34,
"sourceInternal": 16,
"targetInternal": 17,
"source": "valve_H",
"target": "pump_H",
"port": "(-1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 86,
"sourceInternal": 16,
"targetInternal": 13,
"source": "valve_H",
"target": "valve_Z",
"port": "(2,1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 87,
"sourceInternal": 16,
"targetInternal": 19,
"source": "valve_H",
"target": "valve_G",
"port": "(1,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 96,
"sourceInternal": 16,
"targetInternal": 18,
"source": "valve_H",
"target": "waste_H",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 43,
"sourceInternal": 16,
"targetInternal": 6,
"source": "valve_H",
"target": "valve_vacuum",
"port": "(3,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 33,
"sourceInternal": 17,
"targetInternal": 16,
"source": "pump_H",
"target": "valve_H",
"port": "(0,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 36,
"sourceInternal": 19,
"targetInternal": 25,
"source": "valve_G",
"target": "pump_G",
"port": "(-1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 88,
"sourceInternal": 19,
"targetInternal": 16,
"source": "valve_G",
"target": "valve_H",
"port": "(2,1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 89,
"sourceInternal": 19,
"targetInternal": 23,
"source": "valve_G",
"target": "valve_Y",
"port": "(1,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 97,
"sourceInternal": 19,
"targetInternal": 28,
"source": "valve_G",
"target": "waste_G",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 38,
"sourceInternal": 23,
"targetInternal": 26,
"source": "valve_Y",
"target": "pump_Y",
"port": "(-1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 59,
"sourceInternal": 23,
"targetInternal": 11,
"source": "valve_Y",
"target": "separator",
"port": "(4,bottom)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 42,
"sourceInternal": 23,
"targetInternal": 11,
"source": "valve_Y",
"target": "separator",
"port": "(3,top)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 90,
"sourceInternal": 23,
"targetInternal": 19,
"source": "valve_Y",
"target": "valve_G",
"port": "(2,1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 91,
"sourceInternal": 23,
"targetInternal": 24,
"source": "valve_Y",
"target": "valve_K",
"port": "(1,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 98,
"sourceInternal": 23,
"targetInternal": 29,
"source": "valve_Y",
"target": "waste_Y",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 10,
"sourceInternal": 23,
"targetInternal": 9,
"source": "valve_Y",
"target": "buffer_flask1",
"port": "(5,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 40,
"sourceInternal": 24,
"targetInternal": 27,
"source": "valve_K",
"target": "pump_K",
"port": "(-1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 92,
"sourceInternal": 24,
"targetInternal": 23,
"source": "valve_K",
"target": "valve_Y",
"port": "(2,1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 99,
"sourceInternal": 24,
"targetInternal": 30,
"source": "valve_K",
"target": "waste_K",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 35,
"sourceInternal": 25,
"targetInternal": 19,
"source": "pump_G",
"target": "valve_G",
"port": "(0,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 37,
"sourceInternal": 26,
"targetInternal": 23,
"source": "pump_Y",
"target": "valve_Y",
"port": "(0,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 39,
"sourceInternal": 27,
"targetInternal": 24,
"source": "pump_K",
"target": "valve_K",
"port": "(0,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 77,
"sourceInternal": 75,
"targetInternal": 72,
"source": "vacuum_pump",
"target": "vacuum_filter",
"port": "(,)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 81,
"sourceInternal": 80,
"targetInternal": 11,
"source": "sensor_separator",
"target": "separator",
"port": "(,)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 83,
"sourceInternal": 82,
"targetInternal": 11,
"source": "stirrer_separator",
"target": "separator",
"port": "(,)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 8,
"sourceInternal": 0,
"targetInternal": 6,
"source": "filter",
"target": "valve_vacuum",
"port": "(bottom,-1)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 7,
"sourceInternal": 6,
"targetInternal": 0,
"source": "valve_vacuum",
"target": "filter",
"port": "(-1,bottom)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 4,
"sourceInternal": 6,
"targetInternal": 72,
"source": "valve_vacuum",
"target": "vacuum_filter",
"port": "(1,0)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 2,
"sourceInternal": 6,
"targetInternal": 16,
"source": "valve_vacuum",
"target": "valve_H",
"port": "(2,3)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 21,
"sourceInternal": 20,
"targetInternal": 0,
"source": "stirrer_filter",
"target": "filter",
"port": "(,)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 41,
"sourceInternal": 3,
"targetInternal": 0,
"source": "chiller_filter",
"target": "filter",
"port": "(,)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 12,
"sourceInternal": 9,
"targetInternal": 23,
"source": "buffer_flask1",
"target": "valve_Y",
"port": "(0,5)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 22,
"sourceInternal": 5,
"targetInternal": 19,
"source": "flask_2,6-Dimethylaniline",
"target": "valve_G",
"port": "(0,4)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 45,
"sourceInternal": 44,
"targetInternal": 24,
"source": "flask_3 M hydrochloric acid",
"target": "valve_K",
"port": "(0,4)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 47,
"sourceInternal": 46,
"targetInternal": 16,
"source": "flask_3 M sodium hydroxide",
"target": "valve_H",
"port": "(0,4)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 49,
"sourceInternal": 48,
"targetInternal": 24,
"source": "flask_chloroacetyl chloride",
"target": "valve_K",
"port": "(0,5)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 51,
"sourceInternal": 50,
"targetInternal": 19,
"source": "flask_diethylamine",
"target": "valve_G",
"port": "(0,3)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 53,
"sourceInternal": 52,
"targetInternal": 16,
"source": "flask_glacial acetic acid",
"target": "valve_H",
"port": "(0,5)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 55,
"sourceInternal": 54,
"targetInternal": 13,
"source": "flask_half-saturated aqueous sodium acetate",
"target": "valve_Z",
"port": "(0,3)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 57,
"sourceInternal": 56,
"targetInternal": 13,
"source": "flask_toluene",
"target": "valve_Z",
"port": "(0,2)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 66,
"sourceInternal": 65,
"targetInternal": 19,
"source": "flask_water",
"target": "valve_G",
"port": "(0,5)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 68,
"sourceInternal": 67,
"targetInternal": 13,
"source": "flask_nitrogen",
"target": "valve_Z",
"port": "(0,5)",
"tubeLength": null,
"tubeDiameter": null
},
{
"id": 69,
"sourceInternal": 67,
"targetInternal": 6,
"source": "flask_nitrogen",
"target": "valve_vacuum",
"port": "(0,0)",
"tubeLength": null,
"tubeDiameter": null
}
]
}