diff --git a/dream/simulation/Examples/BatchAllInOneEmpty.json b/dream/simulation/Examples/BatchAllInOneEmpty.json index 89341b90f5d57766c0e467554e3b37b90b4a41aa..e3799e5dc668fa437558288b1dd68296d5f53d77 100644 --- a/dream/simulation/Examples/BatchAllInOneEmpty.json +++ b/dream/simulation/Examples/BatchAllInOneEmpty.json @@ -3,1552 +3,1125 @@ "general": { "properties": { "confidenceLevel": { - "default": 0.95, - "description": "Confidence level for statistical analysis of stochastic experiments", - "name": "Confidence level", + "default": 0.95, + "description": "Confidence level for statistical analysis of stochastic experiments", + "name": "Confidence level", "type": "number" - }, + }, "currentDate": { - "default": "2014/02/18", - "description": "The day the experiment starts, in YYYY/MM/DD format", - "name": "Simulation start time", + "default": "2014/02/18", + "description": "The day the experiment starts, in YYYY/MM/DD format", + "name": "Simulation start time", "type": "string" - }, + }, "ke_url": { - "default": "http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", - "description": "The URL for knowledge extraction to access its data for example http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", - "name": "URL for Knowledge Extraction Spreadsheet", + "default": "http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", + "description": "The URL for knowledge extraction to access its data for example http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", + "name": "URL for Knowledge Extraction Spreadsheet", "type": "string" - }, + }, "maxSimTime": { - "default": 100, - "description": "Length of the simulation run", - "name": "Length of experiment", + "default": 100, + "description": "Length of the simulation run", + "name": "Length of experiment", "type": "number" - }, + }, "numberOfReplications": { - "default": 10, - "description": "Number of replications to run", - "name": "Number of replications", + "default": 10, + "description": "Number of replications to run", + "name": "Number of replications", "type": "number" - }, + }, "processTimeout": { - "default": 10, - "description": "Number of seconds before the calculation process is interrupted", - "name": "Process timeout", + "default": 10, + "description": "Number of seconds before the calculation process is interrupted", + "name": "Process timeout", "type": "number" - }, + }, "seed": { - "default": "1", - "description": "When using the same seed, the random number generator produce the same sequence of numbers", - "name": "Seed for random number generator", + "default": "1", + "description": "When using the same seed, the random number generator produce the same sequence of numbers", + "name": "Seed for random number generator", "type": "number" - }, + }, "throughputTarget": { - "default": 10, - "description": "The daily throughput target in units.", - "name": "Daily throughput target", + "default": 10, + "description": "The daily throughput target in units.", + "name": "Daily throughput target", "type": "number" - }, + }, "timeUnitPerDay": { - "default": 24, - "description": "Used for input and reporting widgets. For example, 24 means that simulation clock time unit is one hour.", - "name": "Number of time units per day", + "default": 24, + "description": "Used for input and reporting widgets. For example, 24 means that simulation clock time unit is one hour.", + "name": "Number of time units per day", "type": "number" - }, + }, "trace": { - "default": "No", - "description": "Create an excel trace file (Yes or No)", + "default": "No", + "description": "Create an excel trace file (Yes or No)", "enum": [ - "No", + "No", "Yes" - ], - "name": "Output Trace", + ], + "name": "Output Trace", "type": "string" } } - }, + }, "input": { "view": { - "gadget": "Input_viewProductionLine", - "title": "Production Line", + "gadget": "Input_viewProductionLine", + "title": "Production Line", "type": "object_view" - }, + }, "view_machine_shift_spreadsheet": { "configuration": { "columns": [ { - "format": "date-time", - "name": "Date", + "format": "date-time", + "name": "Date", "type": "string" - }, + }, { - "name": "Machine", + "name": "Machine", "type": "string" - }, + }, { - "name": "Start", + "name": "Start", "type": "string" - }, + }, { - "name": "Stop", + "name": "Stop", "type": "string" } ] - }, - "gadget": "Input_viewSpreadsheet", - "title": "Machine Shifts Spreadsheet", + }, + "gadget": "Input_viewSpreadsheet", + "title": "Machine Shifts Spreadsheet", "type": "object_view" - }, + }, "view_management": { - "gadget": "Input_viewDocumentManagement", - "title": "Manage Document", + "gadget": "Input_viewDocumentManagement", + "title": "Manage Document", "type": "object_view" - }, + }, "view_operator_shift_spreadsheet": { "configuration": { "columns": [ { - "format": "date-time", - "name": "Date", + "format": "date-time", + "name": "Date", "type": "string" - }, + }, { - "name": "Product Builder", + "name": "Product Builder", "type": "string" - }, + }, { - "name": "Start", + "name": "Start", "type": "string" - }, + }, { - "name": "Stop", + "name": "Stop", "type": "string" } ] - }, - "gadget": "Input_viewSpreadsheet", - "title": "Product Builder Shifts Spreadsheet", + }, + "gadget": "Input_viewSpreadsheet", + "title": "Product Builder Shifts Spreadsheet", "type": "object_view" - }, + }, "view_operator_skill_spreadsheet": { "configuration": { "columns": [ { - "name": "Product Builder", + "name": "Product Builder", "type": "string" - }, + }, { - "name": "Skills", + "name": "Skills", "type": "array" } ] - }, - "gadget": "Input_viewSpreadsheet", - "title": "Product Builder Skills", + }, + "gadget": "Input_viewSpreadsheet", + "title": "Product Builder Skills", "type": "object_view" - }, + }, + "view_result": { + "gadget": "Input_viewResultList", + "title": "Results", + "type": "object_view" + }, + "view_run_simulation": { + "gadget": "Input_viewSimulation", + "title": "Run Simulation", + "type": "object_view" + }, "view_wip_spreadsheet": { "configuration": { "columns": [ { - "name": "ID", + "name": "ID", "type": "string" - }, + }, { - "name": "StationID", + "name": "StationID", "type": "string" - }, + }, { - "name": "Number of Units", + "name": "Number of Units", "type": "number" - }, + }, { - "name": "Remaining Units", + "name": "Remaining Units", "type": "number" - }, + }, { - "name": "Type", + "name": "Type", "type": "string" - }, + }, { - "name": "Batch ID", + "name": "Batch ID", "type": "string" } ] - }, - "gadget": "Input_viewSpreadsheet", - "title": "WIP Spreadsheet", - "type": "object_view" - }, - "view_run_simulation": { - "gadget": "Input_viewSimulation", - "title": "Run Simulation", - "type": "object_view" - }, - "view_result": { - "gadget": "Input_viewResultList", - "title": "Results", + }, + "gadget": "Input_viewSpreadsheet", + "title": "WIP Spreadsheet", "type": "object_view" } - }, + }, "output": { - "view_station_utilization": { - "configuration": { - "data": { - "blockage": [ - "blockage_ratio" - ], - "failure": [ - "failure_ratio" - ], - "waiting": [ - "waiting_ratio" - ], - "working": [ - "working_ratio", - "setup_ratio", - "load_ratio" - ] - }, - "family": "Server", - "plot": "bars" - }, - "gadget": "Output_viewStationUtilisationGraph", - "title": "Station Utilization", - "type": "object_view" - }, "view_exit_stats": { "configuration": { "properties": { "lifespan": { "type": "number" - }, + }, "taktTime": { "type": "number" - }, + }, "throughput": { "type": "number" } } - }, - "gadget": "Output_viewExitStatistics", - "title": "Exit Statistics", + }, + "gadget": "Output_viewExitStatistics", + "title": "Exit Statistics", "type": "object_view" - }, + }, "view_operator_gantt": { "configuration": { "data": { "Operator": [] } - }, - "gadget": "Output_viewGantt", - "title": "Operator Gantt", + }, + "gadget": "Output_viewGantt", + "title": "Operator Gantt", "type": "object_view" - }, + }, "view_queue_stats": { "configuration": { "data": { "queue_stat": [ "wip_stat_list" ] - }, - "family": "Buffer", + }, + "family": "Buffer", "plot": "line" - }, - "gadget": "Output_viewQueueStatGraph", - "title": "Queue Utilization Graph", + }, + "gadget": "Output_viewQueueStatGraph", + "title": "Queue Utilization Graph", + "type": "object_view" + }, + "view_station_utilization": { + "configuration": { + "data": { + "blockage": [ + "blockage_ratio" + ], + "failure": [ + "failure_ratio" + ], + "waiting": [ + "waiting_ratio" + ], + "working": [ + "working_ratio", + "setup_ratio", + "load_ratio" + ] + }, + "family": "Server", + "plot": "bars" + }, + "gadget": "Output_viewStationUtilisationGraph", + "title": "Station Utilization", "type": "object_view" } - }, + }, "post_processing": { - "description" : "", - "plugin_list" : [] - }, + "description": "", + "plugin_list": [] + }, "pre_processing": { - "description" : "", - "plugin_list" : [ + "description": "", + "plugin_list": [ { - "_class": "dream.plugins.GatherWIPStat.GatherWIPStat", + "_class": "dream.plugins.AddBatchStations.AddBatchStations", + "input_id": "batchStations" + }, + { + "_class": "dream.plugins.GatherWIPStat.GatherWIPStat", "input_id": "WIPStat" - }, + }, { - "_class": "dream.plugins.ReadEntryData.ReadEntryData", + "_class": "dream.plugins.ReadEntryData.ReadEntryData", "input_id": "EntryData" - }, + }, { - "_class": "dream.plugins.BatchesWIPSpreadsheet.BatchesWIPSpreadsheet", + "_class": "dream.plugins.BatchesWIPSpreadsheet.BatchesWIPSpreadsheet", "input_id": "WipSpreadsheet" - }, + }, { - "_class": "dream.plugins.ReadSkilledOperators.ReadSkilledOperators", + "_class": "dream.plugins.ReadSkilledOperators.ReadSkilledOperators", "input_id": "SkilledOperatorsSpreadsheet" - }, + }, { - "_class": "dream.plugins.ReadShiftFromSpreadsheet.ReadShiftFromSpreadsheet", + "_class": "dream.plugins.ReadShiftFromSpreadsheet.ReadShiftFromSpreadsheet", "input_id": "ShiftSpreadsheet" } ] - }, + }, "processing_plugin": { - "description" : "", - "_class": "dream.plugins.plugin.DefaultExecutionPlugin" + "_class": "dream.plugins.plugin.DefaultExecutionPlugin", + "description": "" } - }, + }, "class_definition": { "Dream.BatchDecompositionStartTime": { - "_class": "Dream.BatchDecompositionStartTime", + "_class": "Dream.BatchDecompositionStartTime", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "id": { - "default": "D", + "default": "D", "type": "string" - }, + }, "name": { - "default": "Decomposition", + "default": "Decomposition", "type": "string" - }, + }, "numberOfSubBatches": { - "default": 10, - "description": "Number Of Sub-Batches", + "default": 10, + "description": "Number Of Sub-Batches", "type": "number" } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#dfd", - "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", + "backgroundColor": "#dfd", + "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", "border": "1px solid #bcb" - }, - "description": "A station that decomposes batches into sub-batches", + }, + "description": "A station that decomposes batches into sub-batches", "name": "Decomposition" - }, + }, "Dream.BatchReassembly": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "id": { - "default": "R", + "default": "R", "type": "string" - }, + }, "name": { - "default": "Reassembly", + "default": "Reassembly", "type": "string" - }, + }, "numberOfSubBatches": { - "default": 10, - "description": "Number Of Sub-Batches", + "default": 10, + "description": "Number Of Sub-Batches", "type": "number" } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#dfd", - "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", + "backgroundColor": "#dfd", + "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", "border": "1px solid #bcb" - }, - "description": "A station that assembles sub-batches back into a parent batch", + }, + "description": "A station that assembles sub-batches back into a parent batch", "name": "Reassembly" - }, + }, "Dream.BatchScrapMachine": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "id": { - "default": "M", - "required": true, + "default": "M", + "required": true, "type": "string" - }, + }, "interruption": { - "name": "Interruptions", + "name": "Interruptions", "properties": { "failure": { - "$ref": "#/definitions/_failureDist", + "$ref": "#/definitions/_failureDist", "required": true } - }, + }, "type": "object" - }, + }, "name": { - "default": "Machine", - "name": "Name", + "default": "Machine", + "name": "Name", "type": "string" - }, + }, "processingTime": { - "$ref": "#/definitions/_dist", - "description": "TODO: describe processing time", - "name": "Processing time", + "$ref": "#/definitions/_dist", + "description": "TODO: describe processing time", + "name": "Processing time", "required": true - }, + }, "scrapping": { - "$ref": "#/definitions/_dist", - "description": "TODO: describe scrapping", - "name": "Scrapping", + "$ref": "#/definitions/_dist", + "description": "TODO: describe scrapping", + "name": "Scrapping", "required": true } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#fef", - "backgroundImage": "linear-gradient(to bottom, #fef 0%, #ede 100%)", + "backgroundColor": "#fef", + "backgroundImage": "linear-gradient(to bottom, #fef 0%, #ede 100%)", "border": "1px solid #cbc" - }, - "description": "A station processing batches for some time given by a distribution provided by the entities that are processed. A random number of batch units is scrapped", + }, + "description": "A station processing batches for some time given by a distribution provided by the entities that are processed. A random number of batch units is scrapped", "name": "Machine" - }, + }, + "Dream.BatchSource": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "entity": { + "default": "Dream.Part", + "description": "Manpy class for entities", + "name": "Entity Class", + "required": true, + "type": "string" + }, + "id": { + "default": "S", + "name": "ID", + "required": true, + "type": "string" + }, + "interArrivalTime": { + "$ref": "#/definitions/_dist", + "description": "Inter-arrival time", + "name": "Inter-arrival time", + "required": true + }, + "name": { + "default": "Source", + "name": "Name", + "type": "string" + } + }, + "type": "object" + } + ], + "description": "A station creating entities", + "name": "Source" + }, "Dream.Edge": { - "_class": "edge", + "_class": "edge", "allOf": [ { "$ref": "#/edge" } - ], + ], "description": "Connect stations together" - }, + }, "Dream.EventGenerator": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "argumentDict": { - "default": "{}", - "description": "arguments to be used by the method", - "required": true, + "default": "{}", + "description": "arguments to be used by the method", + "required": true, "type": "string" - }, + }, "duration": { - "default": 10, - "description": "duration", - "required": true, + "default": 10, + "description": "duration", + "required": true, "type": "number" - }, + }, "id": { - "default": "A", - "required": true, + "default": "A", + "required": true, "type": "string" - }, + }, "interval": { - "default": 10, - "description": "interval time", - "required": true, + "default": 10, + "description": "interval time", + "required": true, "type": "number" - }, + }, "method": { - "default": "Globals.countIntervalThroughput", - "description": "method to be performed", - "required": true, + "default": "Globals.countIntervalThroughput", + "description": "method to be performed", + "required": true, "type": "string" - }, + }, "name": { - "default": "Attainment", + "default": "Attainment", "type": "string" - }, + }, "start": { - "default": 1, - "description": "Start time", - "required": true, + "default": 1, + "description": "Start time", + "required": true, "type": "number" - }, + }, "stop": { - "default": -1, - "description": "Stop time", - "required": true, + "default": -1, + "description": "Stop time", + "required": true, "type": "number" } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#fdc", - "backgroundImage": "linear-gradient(to bottom, #fdc 0%, #ecb 100%)", + "backgroundColor": "#fdc", + "backgroundImage": "linear-gradient(to bottom, #fdc 0%, #ecb 100%)", "border": "1px solid #cba" - }, - "description": "Attainment", + }, + "description": "Attainment", "name": "Attainment" - }, + }, "Dream.Exit": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "id": { - "default": "E", + "default": "E", "required": true - }, + }, "name": { - "default": "Exit", + "default": "Exit", "type": "string" } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#eef", - "backgroundImage": "linear-gradient(to bottom, #eef 0%, #dde 100%)", + "backgroundColor": "#eef", + "backgroundImage": "linear-gradient(to bottom, #eef 0%, #dde 100%)", "border": "1px solid #ccb" - }, - "description": "A station where entities exits from the system", - "name": "Exit", + }, + "description": "A station where entities exits from the system", + "name": "Exit", "shape": "rectangle" - }, + }, "Dream.LineClearance": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "capacity": { - "$ref": "#/definitions/_capacity", + "$ref": "#/definitions/_capacity", "required": true - }, + }, "id": { - "default": "C", + "default": "C", "type": "string" - }, + }, "name": { - "default": "Clearance", + "default": "Clearance", "type": "string" - }, + }, "schedulingRule": { - "$ref": "#/definitions/_schedulingRule", + "$ref": "#/definitions/_schedulingRule", "required": true } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#eff", - "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", + "backgroundColor": "#eff", + "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", "border": "1px solid #bcc" - }, - "description": "A buffer where entities of the same group can be held until the next station is ready to process them. Entities of other groups cannot be accepted", + }, + "description": "A buffer where entities of the same group can be held until the next station is ready to process them. Entities of other groups cannot be accepted", "name": "Clearance" - }, + }, "Dream.NonStarvingEntry": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "entityData": { - "description": "Entity produced related information", + "description": "Entity produced related information", "properties": { "class": { - "default": "Dream.Batch", - "description": "Entity class", - "required": true, + "default": "Dream.Batch", + "description": "Entity class", + "required": true, "type": "string" - }, + }, "numberOfUnits": { - "default": 80, - "description": "Number of units per batch", - "required": true, + "default": 80, + "description": "Number of units per batch", + "required": true, "type": "number" } - }, - "required": true, + }, + "required": true, "type": "object" - }, + }, "id": { - "default": "E", - "required": true, + "default": "E", + "required": true, "type": "string" - }, + }, "name": { - "default": "Entry", + "default": "Entry", "type": "string" } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#ffe", - "backgroundImage": "linear-gradient(to bottom, #ffe 0%, #dde 100%)", + "backgroundColor": "#ffe", + "backgroundImage": "linear-gradient(to bottom, #ffe 0%, #dde 100%)", "border": "1px solid #bbc" - }, - "description": "A station creating batches", + }, + "description": "A station creating batches", "name": "Entry" - }, + }, "Dream.Queue": { - "_class": "node", + "_class": "node", "allOf": [ { "$ref": "#/node" - }, + }, { "properties": { "capacity": { - "$ref": "#/definitions/_capacity", + "$ref": "#/definitions/_capacity", "required": true - }, + }, "id": { - "default": "Q", + "default": "Q", "type": "string" - }, + }, "name": { - "default": "Queue", + "default": "Queue", "type": "string" - }, + }, "schedulingRule": { - "$ref": "#/definitions/_schedulingRule", + "$ref": "#/definitions/_schedulingRule", "required": true } - }, + }, "type": "object" } - ], + ], "css": { - "backgroundColor": "#eff", - "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", + "backgroundColor": "#eff", + "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", "border": "1px solid #bcc" - }, - "description": "A buffer where entities can be hold until the next station is ready to process them", + }, + "description": "A buffer where entities can be hold until the next station is ready to process them", "name": "Queue" - }, - "Dream.BatchSource": { - "_class": "node", - "allOf": [ - { - "$ref": "#/node" - }, - { - "properties": { - "entity": { - "default": "Dream.Part", - "description": "Manpy class for entities", - "name": "Entity Class", - "required": true, - "type": "string" - }, - "id": { - "default": "S", - "name": "ID", - "required": true, - "type": "string" - }, - "interArrivalTime": { - "$ref": "#/definitions/_dist", - "description": "Inter-arrival time", - "name": "Inter-arrival time", - "required": true - }, - "name": { - "default": "Source", - "name": "Name", - "type": "string" - } - }, - "type": "object" - } - ], - "description": "A station creating entities", - "name": "Source" - }, + }, "definitions": { "_capacity": { - "default": 1, - "description": "capacity of the queue. -1 means infinite", + "default": 1, + "description": "capacity of the queue. -1 means infinite", "oneOf": [ { "enum": [ -1 ] - }, + }, { "multipleOf": 1 } - ], + ], "type": "number" - }, + }, "_dist": { "allOf": [ { "properties": { "distribution": { - "default": "Fixed", + "default": "Fixed", "enum": [ - "Fixed", - "Exp", - "Normal", - "Lognormal", - "Binomial", - "Poisson", - "Logistic", - "Cauchy", - "Geometric", - "Gama", + "Fixed", + "Exp", + "Normal", + "Lognormal", + "Binomial", + "Poisson", + "Logistic", + "Cauchy", + "Geometric", + "Gama", "Weibull" - ], + ], "type": "string" } - }, + }, "type": "object" - }, + }, { "oneOf": [ { "$ref": "#/definitions/distributionTypes/_fixed" - }, + }, { "$ref": "#/definitions/distributionTypes/_exp" - }, + }, { "$ref": "#/definitions/distributionTypes/_normal" - }, + }, { "$ref": "#/definitions/distributionTypes/_lognormal" - }, + }, { "$ref": "#/definitions/distributionTypes/_binomial" - }, + }, { "$ref": "#/definitions/distributionTypes/_poisson" - }, + }, { "$ref": "#/definitions/distributionTypes/_logistic" - }, + }, { "$ref": "#/definitions/distributionTypes/_cauchy" - }, + }, { "$ref": "#/definitions/distributionTypes/_geometric" - }, + }, { "$ref": "#/definitions/distributionTypes/_gama" - }, + }, { "$ref": "#/definitions/distributionTypes/_weibull" } ] } ] - }, + }, "_failureDist": { "allOf": [ { "properties": { "failureDistribution": { - "default": "No", + "default": "No", "enum": [ - "No", + "No", "Yes" - ], + ], "type": "string" } - }, + }, "type": "object" - }, + }, { "oneOf": [ { "$ref": "#/definitions/distributionTypes/_failure" - }, + }, { "$ref": "#/definitions/distributionTypes/_no" } ] } ] - }, + }, "_operationType": { - "_class": "Dream.PropertyList", - "description": "the type of operations that are performed manually in the machine", - "id": "operationType", - "name": "Operation type", + "_class": "Dream.PropertyList", + "description": "the type of operations that are performed manually in the machine", + "id": "operationType", + "name": "Operation type", "properties": { "operationType": { "enum": [ - "MT-Load", - "MT-Load-Setup", + "MT-Load", + "MT-Load-Setup", "MT-Load-Setup-Processing" - ], + ], "type": "string" } } - }, + }, "_schedulingRule": { - "default": "FIFO", - "description": "Scheduling Rule of this buffer", + "default": "FIFO", + "description": "Scheduling Rule of this buffer", "enum": [ - "FIFO", - "Priority", - "EDD", - "EOD", - "NumStages", - "RPC", - "LPT", - "SPT", - "MS", - "WINQ", + "FIFO", + "Priority", + "EDD", + "EOD", + "NumStages", + "RPC", + "LPT", + "SPT", + "MS", + "WINQ", "WT" - ], + ], "type": "string" - }, + }, "distributionTypes": { "_binomial": { - "description": "Binomial", + "description": "Binomial", "properties": { "mean": { - "default": 0, + "default": 0, "type": "number" - }, + }, "size": { - "default": 0, + "default": 0, "type": "number" } - }, - "title": "Binomial", + }, + "title": "Binomial", "type": "object" - }, + }, "_cauchy": { - "description": "Cauchy", + "description": "Cauchy", "properties": { "location": { - "default": 0, + "default": 0, "type": "number" - }, + }, "scale": { - "default": 0, + "default": 0, "type": "number" } - }, - "title": "Cauchy", + }, + "title": "Cauchy", "type": "object" - }, + }, "_exp": { - "description": "Exponential", + "description": "Exponential", "properties": { "mean": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Exp", + }, + "title": "Exp", "type": "object" - }, + }, "_failure": { "properties": { "Time to Failure": { "$ref": "#/definitions/_dist" - }, + }, "Time to Repair": { "$ref": "#/definitions/_dist" - }, + }, "repairman": { - "description": "Repairman", - "required": true, + "description": "Repairman", + "required": true, "type": "string" } - }, - "title": "Yes", + }, + "title": "Yes", "type": "object" - }, + }, "_fixed": { - "title": "Fixed", "properties": { "mean": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, + }, + "title": "Fixed", "type": "object" - }, + }, "_gama": { - "description": "Gama", + "description": "Gama", "properties": { "rate": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" - }, + }, "shape": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Gama", + }, + "title": "Gama", "type": "object" - }, + }, "_geometric": { - "description": "Geometric", + "description": "Geometric", "properties": { "probability": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Geometric", + }, + "title": "Geometric", "type": "object" - }, + }, "_logistic": { - "description": "Logistic", + "description": "Logistic", "properties": { "location": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" - }, + }, "scale": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Logistic", + }, + "title": "Logistic", "type": "object" - }, + }, "_lognormal": { - "description": "Lognormal", + "description": "Lognormal", "properties": { "mean": { - "_class": "Dream.Property", - "default": 0, - "name": "Mean", + "_class": "Dream.Property", + "default": 0, + "name": "Mean", "type": "number" - }, + }, "stdev": { - "_class": "Dream.Property", - "default": 0, - "name": "Standard Deviation", + "_class": "Dream.Property", + "default": 0, + "name": "Standard Deviation", "type": "number" } - }, - "title": "Lognormal", + }, + "title": "Lognormal", "type": "object" - }, + }, "_no": { - "description": "None", - "title": "No", + "description": "None", + "title": "No", "type": "string" - }, + }, "_normal": { - "description": "Normal", + "description": "Normal", "properties": { "mean": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" - }, + }, "stdev": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Normal", + }, + "title": "Normal", "type": "object" - }, + }, "_poisson": { - "description": "Poisson", + "description": "Poisson", "properties": { "lambda": { - "default": 0, + "default": 0, "type": "number" } - }, - "title": "Poisson", + }, + "title": "Poisson", "type": "object" - }, + }, "_weibull": { - "description": "Weibull", + "description": "Weibull", "properties": { "scale": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" - }, + }, "shape": { - "default": 0, - "required": true, + "default": 0, + "required": true, "type": "number" } - }, - "title": "Weibull", + }, + "title": "Weibull", "type": "object" } } - }, + }, "edge": { - "description": "Base definition for edge", + "description": "Base definition for edge", "properties": { "_class": { "type": "string" - }, + }, "destination": { "type": "string" - }, + }, "name": { "type": "string" - }, + }, "source": { "type": "string" } - }, + }, "required": [ - "_class", - "source", + "_class", + "source", "destination" - ], + ], "type": "object" - }, + }, "node": { - "description": "Base definition for node", + "description": "Base definition for node", "properties": { "_class": { "type": "string" - }, + }, "coordinate": { "properties": { - "left": "number", + "left": "number", "top": "number" - }, + }, "type": "object" - }, + }, "name": { "type": "string" } - }, + }, "required": [ - "name", + "name", "_class" - ], + ], "type": "object" } - }, - "constraints": {}, - "general": {}, + }, + "constraints": {}, + "general": { + "name": "BatchAllInOneEmpty.json" + }, "graph": { - "edge": { - "con_10": { - "_class": "Dream.Edge", - "destination": "QPa", - "source": "PrB" - }, - "con_100": { - "_class": "Dream.Edge", - "destination": "M3B", - "source": "Q3B" - }, - "con_105": { - "_class": "Dream.Edge", - "destination": "BRB", - "source": "M3B" - }, - "con_110": { - "_class": "Dream.Edge", - "destination": "QM", - "source": "BRB" - }, - "con_115": { - "_class": "Dream.Edge", - "destination": "MM", - "source": "QM" - }, - "con_120": { - "_class": "Dream.Edge", - "destination": "QPr", - "source": "MM" - }, - "con_125": { - "_class": "Dream.Edge", - "destination": "PrA", - "source": "QPr" - }, - "con_130": { - "_class": "Dream.Edge", - "destination": "PrB", - "source": "QPr" - }, - "con_135": { - "_class": "Dream.Edge", - "destination": "QPa", - "source": "PrA" - }, - "con_15": { - "_class": "Dream.Edge", - "destination": "PaA", - "source": "QPa" - }, - "con_20": { - "_class": "Dream.Edge", - "destination": "PaB", - "source": "QPa" - }, - "con_25": { - "_class": "Dream.Edge", - "destination": "E1", - "source": "PaA" - }, - "con_30": { - "_class": "Dream.Edge", - "destination": "E1", - "source": "PaB" - }, - "con_35": { - "_class": "Dream.Edge", - "destination": "BDA", - "source": "QStart" - }, - "con_40": { - "_class": "Dream.Edge", - "destination": "BDB", - "source": "QStart" - }, - "con_45": { - "_class": "Dream.Edge", - "destination": "M1A", - "source": "BDA" - }, - "con_5": { - "_class": "Dream.Edge", - "destination": "Q2A", - "source": "M1A" - }, - "con_50": { - "_class": "Dream.Edge", - "destination": "M2A", - "source": "Q2A" - }, - "con_55": { - "_class": "Dream.Edge", - "destination": "Q3A", - "source": "M2A" - }, - "con_60": { - "_class": "Dream.Edge", - "destination": "M3A", - "source": "Q3A" - }, - "con_65": { - "_class": "Dream.Edge", - "destination": "BRA", - "source": "M3A" - }, - "con_70": { - "_class": "Dream.Edge", - "destination": "QStart", - "source": "S1" - }, - "con_75": { - "_class": "Dream.Edge", - "destination": "QM", - "source": "BRA" - }, - "con_80": { - "_class": "Dream.Edge", - "destination": "M1B", - "source": "BDB" - }, - "con_85": { - "_class": "Dream.Edge", - "destination": "Q2B", - "source": "M1B" - }, - "con_90": { - "_class": "Dream.Edge", - "destination": "M2B", - "source": "Q2B" - }, - "con_95": { - "_class": "Dream.Edge", - "destination": "Q3B", - "source": "M2B" - } - }, - "node": { - "BDA": { - "_class": "Dream.BatchDecompositionStartTime", - "coordinate": { - "left": 0.17522921311349376, - "top": 0.014751694583812569 - }, - "name": "Deco_A", - "numberOfSubBatches": 4, - "processingTime": { - "distributionType": "Fixed", - "max": "", - "mean": 0, - "min": "", - "stdev": "" - } - }, - "BDB": { - "_class": "Dream.BatchDecompositionStartTime", - "coordinate": { - "left": 0.17889893485409047, - "top": 0.18992806776658683 - }, - "name": "Deco_B", - "numberOfSubBatches": 4, - "processingTime": { - "distributionType": "Fixed", - "mean": 0 - } - }, - "BRA": { - "_class": "Dream.BatchReassembly", - "coordinate": { - "left": 0.7623846916089703, - "top": 0.014751694583812569 - }, - "name": "Assembly_A", - "numberOfSubBatches": 4, - "processingTime": { - "distributionType": "Fixed", - "mean": 0 - } - }, - "BRB": { - "_class": "Dream.BatchReassembly", - "coordinate": { - "left": 0.7486232350817325, - "top": 0.2175874951112354 - }, - "name": "Assembly_B", - "numberOfSubBatches": 4, - "processingTime": { - "distributionType": "Fixed", - "mean": 0 - } - }, - "E1": { - "_class": "Dream.Exit", - "coordinate": { - "left": 0.781650730747103, - "top": 0.8537543240381524 - }, - "name": "Stock" - }, - "EV": { - "_class": "Dream.EventGenerator", - "argumentDict": "{}", - "coordinate": { - "left": 0.01834860870298364, - "top": 0.829782820339457 - }, - "duration": 10, - "interval": 1440, - "method": "Globals.countIntervalThroughput", - "name": "Attainment", - "start": 1440, - "stop": -1 - }, - "M1A": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.26697225662841195, - "top": 0.005531885468929714 - }, - "failures": {}, - "name": "RO_E_M_A_A", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "M1B": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.27339426967445624, - "top": 0.18992806776658683 - }, - "failures": {}, - "name": "RO_E_M_A_B", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "M2A": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.4596326480097402, - "top": 0.005531885468929714 - }, - "failures": {}, - "name": "P_B_A_A", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "M2B": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.4568803567042926, - "top": 0.18992806776658683 - }, - "failures": {}, - "name": "P_B_A_B", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "M3A": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.6614673437425602, - "top": 0.023971503698695426 - }, - "failures": {}, - "name": "D_B_A_A", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "M3B": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.6495407480856209, - "top": 0.20836768599635255 - }, - "failures": {}, - "name": "D_B_A_B", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "MM": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.882568078613513, - "top": 0.34666482271959537 - }, - "failures": {}, - "name": "Moulding", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "PaA": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.8926598134001541, - "top": 0.7707760420042068 - }, - "failures": {}, - "name": "Packaging_A", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "PaB": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.670641648094052, - "top": 0.7707760420042068 - }, - "failures": {}, - "name": "Packaging_B", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "PrA": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.8788983568729164, - "top": 0.6048194779363153 - }, - "failures": {}, - "name": "Pressure_A", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "PrB": { - "_class": "Dream.BatchScrapMachine", - "coordinate": { - "left": 0.6844031046212897, - "top": 0.5863798597065496 - }, - "failures": {}, - "name": "Pressure_B", - "processingTime": { - "distributionType": "Fixed", - "mean": 0.1 - } - }, - "Q2A": { - "_class": "Dream.LineClearance", - "capacity": 2.0, - "coordinate": { - "left": 0.35871530014333014, - "top": 0.014751694583812569 - }, - "name": "Q2A", - "schedulingRule": "FIFO" - }, - "Q2B": { - "_class": "Dream.LineClearance", - "capacity": 2.0, - "coordinate": { - "left": 0.3651373131893744, - "top": 0.18070825865170398 - }, - "name": "Q2B", - "schedulingRule": "FIFO" - }, - "Q3A": { - "_class": "Dream.LineClearance", - "capacity": 2.0, - "coordinate": { - "left": 0.569724300227642, - "top": 0.014751694583812569 - }, - "name": "Q3A", - "schedulingRule": "FIFO" - }, - "Q3B": { - "_class": "Dream.LineClearance", - "capacity": 2.0, - "coordinate": { - "left": 0.5577977045707027, - "top": 0.19914787688146968 - }, - "name": "Q3B", - "schedulingRule": "FIFO" - }, - "QM": { - "_class": "Dream.Queue", - "capacity": 3.0, - "coordinate": { - "left": 0.8642194699105294, - "top": 0.1530488313070554 - }, - "name": "QM", - "schedulingRule": "FIFO" - }, - "QPa": { - "_class": "Dream.Queue", - "capacity": 3.0, - "coordinate": { - "left": 0.781650730747103, - "top": 0.6509185235107297 - }, - "name": "QPa", - "schedulingRule": "FIFO" - }, - "QPr": { - "_class": "Dream.Queue", - "capacity": 3.0, - "coordinate": { - "left": 0.7908250350985949, - "top": 0.503401577672604 - }, - "name": "QPr", - "schedulingRule": "FIFO" - }, - "QStart": { - "_class": "Dream.Queue", - "capacity": 1.0, - "coordinate": { - "left": 0.0972476261258133, - "top": 0.09772997661775827 - }, - "name": "StartQueue", - "schedulingRule": "FIFO" - }, - "S1": { - "_class": "Dream.BatchSource", - "batchNumberOfUnits": 100, - "coordinate": { - "left": 0.0037421998521831056, - "top": 0.09077525071036834 - }, - "entity": "Dream.Batch", - "interarrivalTime": { - "distributionType": "Fixed", - "mean": 0.5 - }, - "name": "Source" - } - } - }, + "edge": {}, + "node": {} + }, "input": { "machine_shift_spreadsheet": [ [ - "Date", - "Machines", - "Start", + "Date", + "Machines", + "Start", "Stop" - ], + ], [ - "2014/02/18", - "M1A,M2A,M3A,PrA, PaA", - "6:00", - "13:00" - ], + "", + "", + "", + "" + ] + ], + "operator_shift_spreadsheet": [ [ - "2014/02/18", - "M1B,M2B,M3B,PrB,PaB", - "6:00", - "21:00" - ], + "Date", + "Product Builder", + "Start", + "Stop" + ], + [ + null, + null, + null, + null + ] + ], + "operator_skill_spreadsheet": [ [ - "2014/02/19", - "M1A,M2A,M3A,PrA,PaA", - "6:00", - "13:00" - ], + "Product Builder", + "Skills" + ], + [ + null, + null + ] + ], + "wip_spreadsheet": [ [ - "2014/02/19", - "M1B,M2B,M3B,PrB,PaB", - "6:00", - "21:00" - ], + "ID", + "StationID", + "Number of Units", + "Remaining Units", + "Type", + "Batch ID" + ], [ - "", - "", - null, + null, + null, + null, + null, + null, null ] ] - }, + }, "result": { "result_list": [] } -} +} \ No newline at end of file diff --git a/dream/simulation/Examples/BatchModel.json b/dream/simulation/Examples/BatchModel.json new file mode 100644 index 0000000000000000000000000000000000000000..bca27a6ed25620c1c0b4aa6225d0e02ea19a50ba --- /dev/null +++ b/dream/simulation/Examples/BatchModel.json @@ -0,0 +1,1558 @@ +{ + "application_configuration": { + "general": { + "properties": { + "confidenceLevel": { + "default": 0.95, + "description": "Confidence level for statistical analysis of stochastic experiments", + "name": "Confidence level", + "type": "number" + }, + "currentDate": { + "default": "2014/02/18", + "description": "The day the experiment starts, in YYYY/MM/DD format", + "name": "Simulation start time", + "type": "string" + }, + "ke_url": { + "default": "http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", + "description": "The URL for knowledge extraction to access its data for example http://git.erp5.org/gitweb/dream.git/blob_plain/HEAD:/dream/KnowledgeExtraction/Mockup_Processingtimes.xls", + "name": "URL for Knowledge Extraction Spreadsheet", + "type": "string" + }, + "maxSimTime": { + "default": 100, + "description": "Length of the simulation run", + "name": "Length of experiment", + "type": "number" + }, + "numberOfReplications": { + "default": 10, + "description": "Number of replications to run", + "name": "Number of replications", + "type": "number" + }, + "processTimeout": { + "default": 10, + "description": "Number of seconds before the calculation process is interrupted", + "name": "Process timeout", + "type": "number" + }, + "seed": { + "default": "1", + "description": "When using the same seed, the random number generator produce the same sequence of numbers", + "name": "Seed for random number generator", + "type": "number" + }, + "throughputTarget": { + "default": 10, + "description": "The daily throughput target in units.", + "name": "Daily throughput target", + "type": "number" + }, + "timeUnitPerDay": { + "default": 24, + "description": "Used for input and reporting widgets. For example, 24 means that simulation clock time unit is one hour.", + "name": "Number of time units per day", + "type": "number" + }, + "trace": { + "default": "No", + "description": "Create an excel trace file (Yes or No)", + "enum": [ + "No", + "Yes" + ], + "name": "Output Trace", + "type": "string" + } + } + }, + "input": { + "view": { + "gadget": "Input_viewProductionLine", + "title": "Production Line", + "type": "object_view" + }, + "view_machine_shift_spreadsheet": { + "configuration": { + "columns": [ + { + "format": "date-time", + "name": "Date", + "type": "string" + }, + { + "name": "Machine", + "type": "string" + }, + { + "name": "Start", + "type": "string" + }, + { + "name": "Stop", + "type": "string" + } + ] + }, + "gadget": "Input_viewSpreadsheet", + "title": "Machine Shifts Spreadsheet", + "type": "object_view" + }, + "view_management": { + "gadget": "Input_viewDocumentManagement", + "title": "Manage Document", + "type": "object_view" + }, + "view_operator_shift_spreadsheet": { + "configuration": { + "columns": [ + { + "format": "date-time", + "name": "Date", + "type": "string" + }, + { + "name": "Product Builder", + "type": "string" + }, + { + "name": "Start", + "type": "string" + }, + { + "name": "Stop", + "type": "string" + } + ] + }, + "gadget": "Input_viewSpreadsheet", + "title": "Product Builder Shifts Spreadsheet", + "type": "object_view" + }, + "view_operator_skill_spreadsheet": { + "configuration": { + "columns": [ + { + "name": "Product Builder", + "type": "string" + }, + { + "name": "Skills", + "type": "array" + } + ] + }, + "gadget": "Input_viewSpreadsheet", + "title": "Product Builder Skills", + "type": "object_view" + }, + "view_wip_spreadsheet": { + "configuration": { + "columns": [ + { + "name": "ID", + "type": "string" + }, + { + "name": "StationID", + "type": "string" + }, + { + "name": "Number of Units", + "type": "number" + }, + { + "name": "Remaining Units", + "type": "number" + }, + { + "name": "Type", + "type": "string" + }, + { + "name": "Batch ID", + "type": "string" + } + ] + }, + "gadget": "Input_viewSpreadsheet", + "title": "WIP Spreadsheet", + "type": "object_view" + }, + "view_run_simulation": { + "gadget": "Input_viewSimulation", + "title": "Run Simulation", + "type": "object_view" + }, + "view_result": { + "gadget": "Input_viewResultList", + "title": "Results", + "type": "object_view" + } + }, + "output": { + "view_station_utilization": { + "configuration": { + "data": { + "blockage": [ + "blockage_ratio" + ], + "failure": [ + "failure_ratio" + ], + "waiting": [ + "waiting_ratio" + ], + "working": [ + "working_ratio", + "setup_ratio", + "load_ratio" + ] + }, + "family": "Server", + "plot": "bars" + }, + "gadget": "Output_viewStationUtilisationGraph", + "title": "Station Utilization", + "type": "object_view" + }, + "view_exit_stats": { + "configuration": { + "properties": { + "lifespan": { + "type": "number" + }, + "taktTime": { + "type": "number" + }, + "throughput": { + "type": "number" + } + } + }, + "gadget": "Output_viewExitStatistics", + "title": "Exit Statistics", + "type": "object_view" + }, + "view_operator_gantt": { + "configuration": { + "data": { + "Operator": [] + } + }, + "gadget": "Output_viewGantt", + "title": "Operator Gantt", + "type": "object_view" + }, + "view_queue_stats": { + "configuration": { + "data": { + "queue_stat": [ + "wip_stat_list" + ] + }, + "family": "Buffer", + "plot": "line" + }, + "gadget": "Output_viewQueueStatGraph", + "title": "Queue Utilization Graph", + "type": "object_view" + } + }, + "post_processing": { + "description" : "", + "plugin_list" : [] + }, + "pre_processing": { + "description" : "", + "plugin_list" : [ + { + "_class": "dream.plugins.AddBatchStations.AddBatchStations", + "input_id": "batchStations" + }, + { + "_class": "dream.plugins.GatherWIPStat.GatherWIPStat", + "input_id": "WIPStat" + }, + { + "_class": "dream.plugins.ReadEntryData.ReadEntryData", + "input_id": "EntryData" + }, + { + "_class": "dream.plugins.BatchesWIPSpreadsheet.BatchesWIPSpreadsheet", + "input_id": "WipSpreadsheet" + }, + { + "_class": "dream.plugins.ReadSkilledOperators.ReadSkilledOperators", + "input_id": "SkilledOperatorsSpreadsheet" + }, + { + "_class": "dream.plugins.ReadShiftFromSpreadsheet.ReadShiftFromSpreadsheet", + "input_id": "ShiftSpreadsheet" + } + ] + }, + "processing_plugin": { + "description" : "", + "_class": "dream.plugins.plugin.DefaultExecutionPlugin" + } + }, + "class_definition": { + "Dream.BatchDecompositionStartTime": { + "_class": "Dream.BatchDecompositionStartTime", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "id": { + "default": "D", + "type": "string" + }, + "name": { + "default": "Decomposition", + "type": "string" + }, + "numberOfSubBatches": { + "default": 10, + "description": "Number Of Sub-Batches", + "type": "number" + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#dfd", + "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", + "border": "1px solid #bcb" + }, + "description": "A station that decomposes batches into sub-batches", + "name": "Decomposition" + }, + "Dream.BatchReassembly": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "id": { + "default": "R", + "type": "string" + }, + "name": { + "default": "Reassembly", + "type": "string" + }, + "numberOfSubBatches": { + "default": 10, + "description": "Number Of Sub-Batches", + "type": "number" + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#dfd", + "backgroundImage": "linear-gradient(to bottom, #dfd 0%, #cec 100%)", + "border": "1px solid #bcb" + }, + "description": "A station that assembles sub-batches back into a parent batch", + "name": "Reassembly" + }, + "Dream.BatchScrapMachine": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "id": { + "default": "M", + "required": true, + "type": "string" + }, + "interruption": { + "name": "Interruptions", + "properties": { + "failure": { + "$ref": "#/definitions/_failureDist", + "required": true + } + }, + "type": "object" + }, + "name": { + "default": "Machine", + "name": "Name", + "type": "string" + }, + "processingTime": { + "$ref": "#/definitions/_dist", + "description": "TODO: describe processing time", + "name": "Processing time", + "required": true + }, + "scrapping": { + "$ref": "#/definitions/_dist", + "description": "TODO: describe scrapping", + "name": "Scrapping", + "required": true + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#fef", + "backgroundImage": "linear-gradient(to bottom, #fef 0%, #ede 100%)", + "border": "1px solid #cbc" + }, + "description": "A station processing batches for some time given by a distribution provided by the entities that are processed. A random number of batch units is scrapped", + "name": "Machine" + }, + "Dream.Edge": { + "_class": "edge", + "allOf": [ + { + "$ref": "#/edge" + } + ], + "description": "Connect stations together" + }, + "Dream.EventGenerator": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "argumentDict": { + "default": "{}", + "description": "arguments to be used by the method", + "required": true, + "type": "string" + }, + "duration": { + "default": 10, + "description": "duration", + "required": true, + "type": "number" + }, + "id": { + "default": "A", + "required": true, + "type": "string" + }, + "interval": { + "default": 10, + "description": "interval time", + "required": true, + "type": "number" + }, + "method": { + "default": "Globals.countIntervalThroughput", + "description": "method to be performed", + "required": true, + "type": "string" + }, + "name": { + "default": "Attainment", + "type": "string" + }, + "start": { + "default": 1, + "description": "Start time", + "required": true, + "type": "number" + }, + "stop": { + "default": -1, + "description": "Stop time", + "required": true, + "type": "number" + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#fdc", + "backgroundImage": "linear-gradient(to bottom, #fdc 0%, #ecb 100%)", + "border": "1px solid #cba" + }, + "description": "Attainment", + "name": "Attainment" + }, + "Dream.Exit": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "id": { + "default": "E", + "required": true + }, + "name": { + "default": "Exit", + "type": "string" + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#eef", + "backgroundImage": "linear-gradient(to bottom, #eef 0%, #dde 100%)", + "border": "1px solid #ccb" + }, + "description": "A station where entities exits from the system", + "name": "Exit", + "shape": "rectangle" + }, + "Dream.LineClearance": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "capacity": { + "$ref": "#/definitions/_capacity", + "required": true + }, + "id": { + "default": "C", + "type": "string" + }, + "name": { + "default": "Clearance", + "type": "string" + }, + "schedulingRule": { + "$ref": "#/definitions/_schedulingRule", + "required": true + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#eff", + "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", + "border": "1px solid #bcc" + }, + "description": "A buffer where entities of the same group can be held until the next station is ready to process them. Entities of other groups cannot be accepted", + "name": "Clearance" + }, + "Dream.NonStarvingEntry": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "entityData": { + "description": "Entity produced related information", + "properties": { + "class": { + "default": "Dream.Batch", + "description": "Entity class", + "required": true, + "type": "string" + }, + "numberOfUnits": { + "default": 80, + "description": "Number of units per batch", + "required": true, + "type": "number" + } + }, + "required": true, + "type": "object" + }, + "id": { + "default": "E", + "required": true, + "type": "string" + }, + "name": { + "default": "Entry", + "type": "string" + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#ffe", + "backgroundImage": "linear-gradient(to bottom, #ffe 0%, #dde 100%)", + "border": "1px solid #bbc" + }, + "description": "A station creating batches", + "name": "Entry" + }, + "Dream.Queue": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "capacity": { + "$ref": "#/definitions/_capacity", + "required": true + }, + "id": { + "default": "Q", + "type": "string" + }, + "name": { + "default": "Queue", + "type": "string" + }, + "schedulingRule": { + "$ref": "#/definitions/_schedulingRule", + "required": true + } + }, + "type": "object" + } + ], + "css": { + "backgroundColor": "#eff", + "backgroundImage": "linear-gradient(to bottom, #eff 0%, #dee 100%)", + "border": "1px solid #bcc" + }, + "description": "A buffer where entities can be hold until the next station is ready to process them", + "name": "Queue" + }, + "Dream.BatchSource": { + "_class": "node", + "allOf": [ + { + "$ref": "#/node" + }, + { + "properties": { + "entity": { + "default": "Dream.Part", + "description": "Manpy class for entities", + "name": "Entity Class", + "required": true, + "type": "string" + }, + "id": { + "default": "S", + "name": "ID", + "required": true, + "type": "string" + }, + "interArrivalTime": { + "$ref": "#/definitions/_dist", + "description": "Inter-arrival time", + "name": "Inter-arrival time", + "required": true + }, + "name": { + "default": "Source", + "name": "Name", + "type": "string" + } + }, + "type": "object" + } + ], + "description": "A station creating entities", + "name": "Source" + }, + "definitions": { + "_capacity": { + "default": 1, + "description": "capacity of the queue. -1 means infinite", + "oneOf": [ + { + "enum": [ + -1 + ] + }, + { + "multipleOf": 1 + } + ], + "type": "number" + }, + "_dist": { + "allOf": [ + { + "properties": { + "distribution": { + "default": "Fixed", + "enum": [ + "Fixed", + "Exp", + "Normal", + "Lognormal", + "Binomial", + "Poisson", + "Logistic", + "Cauchy", + "Geometric", + "Gama", + "Weibull" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "oneOf": [ + { + "$ref": "#/definitions/distributionTypes/_fixed" + }, + { + "$ref": "#/definitions/distributionTypes/_exp" + }, + { + "$ref": "#/definitions/distributionTypes/_normal" + }, + { + "$ref": "#/definitions/distributionTypes/_lognormal" + }, + { + "$ref": "#/definitions/distributionTypes/_binomial" + }, + { + "$ref": "#/definitions/distributionTypes/_poisson" + }, + { + "$ref": "#/definitions/distributionTypes/_logistic" + }, + { + "$ref": "#/definitions/distributionTypes/_cauchy" + }, + { + "$ref": "#/definitions/distributionTypes/_geometric" + }, + { + "$ref": "#/definitions/distributionTypes/_gama" + }, + { + "$ref": "#/definitions/distributionTypes/_weibull" + } + ] + } + ] + }, + "_failureDist": { + "allOf": [ + { + "properties": { + "failureDistribution": { + "default": "No", + "enum": [ + "No", + "Yes" + ], + "type": "string" + } + }, + "type": "object" + }, + { + "oneOf": [ + { + "$ref": "#/definitions/distributionTypes/_failure" + }, + { + "$ref": "#/definitions/distributionTypes/_no" + } + ] + } + ] + }, + "_operationType": { + "_class": "Dream.PropertyList", + "description": "the type of operations that are performed manually in the machine", + "id": "operationType", + "name": "Operation type", + "properties": { + "operationType": { + "enum": [ + "MT-Load", + "MT-Load-Setup", + "MT-Load-Setup-Processing" + ], + "type": "string" + } + } + }, + "_schedulingRule": { + "default": "FIFO", + "description": "Scheduling Rule of this buffer", + "enum": [ + "FIFO", + "Priority", + "EDD", + "EOD", + "NumStages", + "RPC", + "LPT", + "SPT", + "MS", + "WINQ", + "WT" + ], + "type": "string" + }, + "distributionTypes": { + "_binomial": { + "description": "Binomial", + "properties": { + "mean": { + "default": 0, + "type": "number" + }, + "size": { + "default": 0, + "type": "number" + } + }, + "title": "Binomial", + "type": "object" + }, + "_cauchy": { + "description": "Cauchy", + "properties": { + "location": { + "default": 0, + "type": "number" + }, + "scale": { + "default": 0, + "type": "number" + } + }, + "title": "Cauchy", + "type": "object" + }, + "_exp": { + "description": "Exponential", + "properties": { + "mean": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Exp", + "type": "object" + }, + "_failure": { + "properties": { + "Time to Failure": { + "$ref": "#/definitions/_dist" + }, + "Time to Repair": { + "$ref": "#/definitions/_dist" + }, + "repairman": { + "description": "Repairman", + "required": true, + "type": "string" + } + }, + "title": "Yes", + "type": "object" + }, + "_fixed": { + "title": "Fixed", + "properties": { + "mean": { + "default": 0, + "required": true, + "type": "number" + } + }, + "type": "object" + }, + "_gama": { + "description": "Gama", + "properties": { + "rate": { + "default": 0, + "required": true, + "type": "number" + }, + "shape": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Gama", + "type": "object" + }, + "_geometric": { + "description": "Geometric", + "properties": { + "probability": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Geometric", + "type": "object" + }, + "_logistic": { + "description": "Logistic", + "properties": { + "location": { + "default": 0, + "required": true, + "type": "number" + }, + "scale": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Logistic", + "type": "object" + }, + "_lognormal": { + "description": "Lognormal", + "properties": { + "mean": { + "_class": "Dream.Property", + "default": 0, + "name": "Mean", + "type": "number" + }, + "stdev": { + "_class": "Dream.Property", + "default": 0, + "name": "Standard Deviation", + "type": "number" + } + }, + "title": "Lognormal", + "type": "object" + }, + "_no": { + "description": "None", + "title": "No", + "type": "string" + }, + "_normal": { + "description": "Normal", + "properties": { + "mean": { + "default": 0, + "required": true, + "type": "number" + }, + "stdev": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Normal", + "type": "object" + }, + "_poisson": { + "description": "Poisson", + "properties": { + "lambda": { + "default": 0, + "type": "number" + } + }, + "title": "Poisson", + "type": "object" + }, + "_weibull": { + "description": "Weibull", + "properties": { + "scale": { + "default": 0, + "required": true, + "type": "number" + }, + "shape": { + "default": 0, + "required": true, + "type": "number" + } + }, + "title": "Weibull", + "type": "object" + } + } + }, + "edge": { + "description": "Base definition for edge", + "properties": { + "_class": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "name": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "_class", + "source", + "destination" + ], + "type": "object" + }, + "node": { + "description": "Base definition for node", + "properties": { + "_class": { + "type": "string" + }, + "coordinate": { + "properties": { + "left": "number", + "top": "number" + }, + "type": "object" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name", + "_class" + ], + "type": "object" + } + }, + "constraints": {}, + "general": {}, + "graph": { + "edge": { + "con_10": { + "_class": "Dream.Edge", + "destination": "QPa", + "source": "PrB" + }, + "con_100": { + "_class": "Dream.Edge", + "destination": "M3B", + "source": "Q3B" + }, + "con_105": { + "_class": "Dream.Edge", + "destination": "BRB", + "source": "M3B" + }, + "con_110": { + "_class": "Dream.Edge", + "destination": "QM", + "source": "BRB" + }, + "con_115": { + "_class": "Dream.Edge", + "destination": "MM", + "source": "QM" + }, + "con_120": { + "_class": "Dream.Edge", + "destination": "QPr", + "source": "MM" + }, + "con_125": { + "_class": "Dream.Edge", + "destination": "PrA", + "source": "QPr" + }, + "con_130": { + "_class": "Dream.Edge", + "destination": "PrB", + "source": "QPr" + }, + "con_135": { + "_class": "Dream.Edge", + "destination": "QPa", + "source": "PrA" + }, + "con_15": { + "_class": "Dream.Edge", + "destination": "PaA", + "source": "QPa" + }, + "con_20": { + "_class": "Dream.Edge", + "destination": "PaB", + "source": "QPa" + }, + "con_25": { + "_class": "Dream.Edge", + "destination": "E1", + "source": "PaA" + }, + "con_30": { + "_class": "Dream.Edge", + "destination": "E1", + "source": "PaB" + }, + "con_35": { + "_class": "Dream.Edge", + "destination": "BDA", + "source": "QStart" + }, + "con_40": { + "_class": "Dream.Edge", + "destination": "BDB", + "source": "QStart" + }, + "con_45": { + "_class": "Dream.Edge", + "destination": "M1A", + "source": "BDA" + }, + "con_5": { + "_class": "Dream.Edge", + "destination": "Q2A", + "source": "M1A" + }, + "con_50": { + "_class": "Dream.Edge", + "destination": "M2A", + "source": "Q2A" + }, + "con_55": { + "_class": "Dream.Edge", + "destination": "Q3A", + "source": "M2A" + }, + "con_60": { + "_class": "Dream.Edge", + "destination": "M3A", + "source": "Q3A" + }, + "con_65": { + "_class": "Dream.Edge", + "destination": "BRA", + "source": "M3A" + }, + "con_70": { + "_class": "Dream.Edge", + "destination": "QStart", + "source": "S1" + }, + "con_75": { + "_class": "Dream.Edge", + "destination": "QM", + "source": "BRA" + }, + "con_80": { + "_class": "Dream.Edge", + "destination": "M1B", + "source": "BDB" + }, + "con_85": { + "_class": "Dream.Edge", + "destination": "Q2B", + "source": "M1B" + }, + "con_90": { + "_class": "Dream.Edge", + "destination": "M2B", + "source": "Q2B" + }, + "con_95": { + "_class": "Dream.Edge", + "destination": "Q3B", + "source": "M2B" + } + }, + "node": { + "BDA": { + "_class": "Dream.BatchDecompositionStartTime", + "coordinate": { + "left": 0.17522921311349376, + "top": 0.014751694583812569 + }, + "name": "Deco_A", + "numberOfSubBatches": 4, + "processingTime": { + "distributionType": "Fixed", + "max": "", + "mean": 0, + "min": "", + "stdev": "" + } + }, + "BDB": { + "_class": "Dream.BatchDecompositionStartTime", + "coordinate": { + "left": 0.17889893485409047, + "top": 0.18992806776658683 + }, + "name": "Deco_B", + "numberOfSubBatches": 4, + "processingTime": { + "distributionType": "Fixed", + "mean": 0 + } + }, + "BRA": { + "_class": "Dream.BatchReassembly", + "coordinate": { + "left": 0.7623846916089703, + "top": 0.014751694583812569 + }, + "name": "Assembly_A", + "numberOfSubBatches": 4, + "processingTime": { + "distributionType": "Fixed", + "mean": 0 + } + }, + "BRB": { + "_class": "Dream.BatchReassembly", + "coordinate": { + "left": 0.7486232350817325, + "top": 0.2175874951112354 + }, + "name": "Assembly_B", + "numberOfSubBatches": 4, + "processingTime": { + "distributionType": "Fixed", + "mean": 0 + } + }, + "E1": { + "_class": "Dream.Exit", + "coordinate": { + "left": 0.781650730747103, + "top": 0.8537543240381524 + }, + "name": "Stock" + }, + "EV": { + "_class": "Dream.EventGenerator", + "argumentDict": "{}", + "coordinate": { + "left": 0.01834860870298364, + "top": 0.829782820339457 + }, + "duration": 10, + "interval": 1440, + "method": "Globals.countIntervalThroughput", + "name": "Attainment", + "start": 1440, + "stop": -1 + }, + "M1A": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.26697225662841195, + "top": 0.005531885468929714 + }, + "failures": {}, + "name": "RO_E_M_A_A", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "M1B": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.27339426967445624, + "top": 0.18992806776658683 + }, + "failures": {}, + "name": "RO_E_M_A_B", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "M2A": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.4596326480097402, + "top": 0.005531885468929714 + }, + "failures": {}, + "name": "P_B_A_A", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "M2B": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.4568803567042926, + "top": 0.18992806776658683 + }, + "failures": {}, + "name": "P_B_A_B", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "M3A": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.6614673437425602, + "top": 0.023971503698695426 + }, + "failures": {}, + "name": "D_B_A_A", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "M3B": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.6495407480856209, + "top": 0.20836768599635255 + }, + "failures": {}, + "name": "D_B_A_B", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "MM": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.882568078613513, + "top": 0.34666482271959537 + }, + "failures": {}, + "name": "Moulding", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "PaA": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.8926598134001541, + "top": 0.7707760420042068 + }, + "failures": {}, + "name": "Packaging_A", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "PaB": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.670641648094052, + "top": 0.7707760420042068 + }, + "failures": {}, + "name": "Packaging_B", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "PrA": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.8788983568729164, + "top": 0.6048194779363153 + }, + "failures": {}, + "name": "Pressure_A", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "PrB": { + "_class": "Dream.BatchScrapMachine", + "coordinate": { + "left": 0.6844031046212897, + "top": 0.5863798597065496 + }, + "failures": {}, + "name": "Pressure_B", + "processingTime": { + "distributionType": "Fixed", + "mean": 0.1 + } + }, + "Q2A": { + "_class": "Dream.LineClearance", + "capacity": 2.0, + "coordinate": { + "left": 0.35871530014333014, + "top": 0.014751694583812569 + }, + "name": "Q2A", + "schedulingRule": "FIFO" + }, + "Q2B": { + "_class": "Dream.LineClearance", + "capacity": 2.0, + "coordinate": { + "left": 0.3651373131893744, + "top": 0.18070825865170398 + }, + "name": "Q2B", + "schedulingRule": "FIFO" + }, + "Q3A": { + "_class": "Dream.LineClearance", + "capacity": 2.0, + "coordinate": { + "left": 0.569724300227642, + "top": 0.014751694583812569 + }, + "name": "Q3A", + "schedulingRule": "FIFO" + }, + "Q3B": { + "_class": "Dream.LineClearance", + "capacity": 2.0, + "coordinate": { + "left": 0.5577977045707027, + "top": 0.19914787688146968 + }, + "name": "Q3B", + "schedulingRule": "FIFO" + }, + "QM": { + "_class": "Dream.Queue", + "capacity": 3.0, + "coordinate": { + "left": 0.8642194699105294, + "top": 0.1530488313070554 + }, + "name": "QM", + "schedulingRule": "FIFO" + }, + "QPa": { + "_class": "Dream.Queue", + "capacity": 3.0, + "coordinate": { + "left": 0.781650730747103, + "top": 0.6509185235107297 + }, + "name": "QPa", + "schedulingRule": "FIFO" + }, + "QPr": { + "_class": "Dream.Queue", + "capacity": 3.0, + "coordinate": { + "left": 0.7908250350985949, + "top": 0.503401577672604 + }, + "name": "QPr", + "schedulingRule": "FIFO" + }, + "QStart": { + "_class": "Dream.Queue", + "capacity": 1.0, + "coordinate": { + "left": 0.0972476261258133, + "top": 0.09772997661775827 + }, + "name": "StartQueue", + "schedulingRule": "FIFO" + }, + "S1": { + "_class": "Dream.BatchSource", + "batchNumberOfUnits": 100, + "coordinate": { + "left": 0.0037421998521831056, + "top": 0.09077525071036834 + }, + "entity": "Dream.Batch", + "interarrivalTime": { + "distributionType": "Fixed", + "mean": 0.5 + }, + "name": "Source" + } + } + }, + "input": { + "machine_shift_spreadsheet": [ + [ + "Date", + "Machines", + "Start", + "Stop" + ], + [ + "2014/02/18", + "M1A,M2A,M3A,PrA, PaA", + "6:00", + "13:00" + ], + [ + "2014/02/18", + "M1B,M2B,M3B,PrB,PaB", + "6:00", + "21:00" + ], + [ + "2014/02/19", + "M1A,M2A,M3A,PrA,PaA", + "6:00", + "13:00" + ], + [ + "2014/02/19", + "M1B,M2B,M3B,PrB,PaB", + "6:00", + "21:00" + ], + [ + "", + "", + null, + null + ] + ] + }, + "result": { + "result_list": [] + } +}