{ "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 } ] }