Production ini
There are three different complexity levels available for creating a production. Lvl1 is the most complex production. The level is saved in the section Type.
type: defines the lvl: ‘lvl1’, ‘lvl2’ or ‘lvl3’
[Type]
type = 'lvl2'
Lvl3 - Basic
A complete example can be viewed under: /example/config/for_docu/production_config_lvl3.ini.
The most values are set via ontologysim site packages ontologysim/ProductionSimulation/init/defaultValue.ini
Machine
Parameters
number_of_machines: defines the number of machines
- settings: list with dict{‘number_of_positions’, ‘process’,’location’}
location: [x, y, z] list with 3 numbers
number_of_positions: 1..n
process: list with process_id
Code Example
[Machine]
number_of_machines=2
#only standard and number_of_queue=1 is working
settings=[{'number_of_positions':3,'process':[0,1],'location':[10,10,0]},
{'number_of_positions':3,'process':[0,1],'location':[0,5,0]}
]
ProductType
Parameters
- settings: list with dict{‘id’, ‘path’}
id: number
cofnig: nested list
[ProductType]
settings=[{'id':0,'config':[[0,1,2],[2,2,1,0]]},
{'id':1,'config':[[0,2,1]]},
{'id':2,'config':[[0,1]]}
]
Task
Parameters
- settings: list with dict{‘product_type’, ‘number_of_parts’, ‘type’}
product_type:
number_of_parts:
- type: defines the type of task
start: these products are not logged, there only task is to reduce the starting effect
logging: after the first logging product is inserted the logging starts
end: these products are not logged, there only task is to reduce the ending effect, when every logging product is produced the production ends
Code Example
[Task]
settings=[{'product_type':0,'number_of_parts':10,"type":'start'},
{'product_type':0,'number_of_parts':150,"type":'logging'},
{'product_type':1,'number_of_parts':150,"type":'logging'},
{'product_type':2,'number_of_parts':150,"type":'logging'},
{'product_type':0,'number_of_parts':10,"type":'end'}
]
Process
Parameters
- settings: list of dict{‘id’, ‘mean’, ‘deviation’, ‘type’}
id: this number must be identical to the id in the pnml-file and in the machine section
mean: number
deviation: number
type: only ‘normal’ available
Code Example
[Process]
settings=[{'id':0,'mean':5,'deviation':0,'type':'normal'},
{'id':1,'mean':10,'deviation':2,'type':'normal'},
{'id':2,'mean':15,'deviation':1,'type':'normal'}]
Transporter
Parameters
number_of_transporter: defines the number of transporters
- settings: list with dict{‘number_of_positions’, ‘location_id’, ‘speed’, ‘add_time’, ‘remove_time’}
number_of_positions: 1..n
speed: number
Code Example
[Transporter]
number_of_transporter=3
settings=[{'number_of_positions':3,'speed':3},{'number_of_positions':3,'speed':3},{'number_of_positions':3,'speed':3}]
ChangeTime
Parameters
set_up_time: set up time for machine
add_time: add time for queue
remove_time: remove time for queue
deviation: deviation of all times
Code Example
[ChangeTime]
set_up_time=0
add_time=0
remove_time=0
deviation=0
Defect
only needed if a defect is added to the simulation
Parameters
transporter_defect_possible: bool, True or False
- transporter_normal: dict{ ‘defect’, ‘repair’}
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
machine_defect_possible: bool, True or False
- machine_normal: list of dict{‘defect_type’, ‘defect’, ‘repair’}
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
Code Example
[Defect]
transporter_defect_possible=True
transporter_normal={'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}}
machine_defect_possible=True
machine_normal={'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}}
Repair
only needed when defect is added
Parameters
machine_repair = 1..n
transporter_repair = 1..n
Code Example
[Repair]
machine_repair=2
transporter_repair=1
RandomSeed
each simulation run through provides the same results, to change it you need to vary the AppendValue
Parameters * AppendValue: number
Code Example
[RandomSeed]
AppendValue=0
Lvl2 - Intermediate
A complete example can be viewed under: /example/config/for_docu/production_config.ini or /example/config/for_docu/production_config_lvl2.ini
Machine
Parameters
number_of_machines: defines the number of machines
- settings: list with dict{‘queue_type’, ‘number_of_queue’, ‘number_of_positions’, ‘process’, ‘set_up’, ‘location’, ‘add_time’, ‘remove_time’}
queue_type: ‘standard’
number_of_queues: 1
number_of_positions: 1..n
process: list with process_id
waiting_time: idle waiting time (optional), otherwise default value
- set_up: list with dict{‘start’, ‘end’, ‘mean’, ‘deviation’, ‘type’}
each combination of the process list needs to be initialized (both direction independently)
start: process_id, from which process_id should the set_up start
end: process_id, to which process_id should the set_up be performed
mean: number
deviation: number
type: ‘normal’, the set up can only have a normal distribution
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[Machine]
number_of_machines=2
#only standard and number_of_queue=1 is working
settings=[{'queue_type':"standard",'number_of_queue':1, "waiting_time":5,'number_of_positions':3,'process':[0,1],'set_up':[{'start':0 ,'end':1 ,'mean':1 ,'deviation':0 ,'type':'normal'},{'start':1 ,'end':0 ,'mean':1 ,'deviation':0 ,'type':'normal'}],'location':[10,10,0],
'add_time':{'mean':2,'deviation':0.4,'type':'normal'},'remove_time':{'mean':1,'deviation':0.2,'type':'normal'}},
{'queue_type':"standard",'number_of_queue':1,"waiting_time":5,'number_of_positions':3,'process':[0,1],'set_up':[{'start':0 ,'end':1 ,'mean':1 ,'deviation':0 ,'type':'normal'},{'start':1 ,'end':0 ,'mean':1 ,'deviation':0 ,'type':'normal'}],'location':[0,5,0],
'add_time':{'mean':2,'deviation':0.4,'type':'normal'},'remove_time':{'mean':1,'deviation':0.2,'type':'normal'}}
]
Start_Queue
Parameters
number_of_queue: defines the number of start queues
- settings: list with dict{‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
number_of_positions: 1..n
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[Start_Queue]
number_of_queue=1
settings=[{'location':[0,0,0], 'number_of_positions':3,'add_time': {'mean':1,'deviation':0.2,'type':'normal'},'remove_time': {'mean':1,'deviation':0.2,'type':'normal'}}]
End_Queue
Parameters
number_of_queue: defines the number of end queues
- settings: list with dict{‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
number_of_positions: only 1 possible
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[End_Queue]
number_of_queue=1
settings=[{'location':[0,0,0], 'number_of_positions':3,'add_time': {'mean':1,'deviation':0.2,'type':'normal'},'remove_time': {'mean':1,'deviation':0.2,'type':'normal'}}]
Deadlock_Queue
Parameters
number_of_queue: defines the number of deadlock queues
- settings: list with dict{‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
number_of_positions: 1..n
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
deadlock_waiting_time: Time in which the part cannot be transported in the deadlock queue
Code Example
[Deadlock_Queue]
number_of_queue=1
settings=[{'location':[3,3,0],'number_of_positions':5,'add_time': {'mean':1,'deviation':0.2,'type':'normal'},'remove_time': {'mean':1,'deviation':0.2,'type':'normal'}}]
deadlock_waiting_time = 5
ProductType
Parameters
- settings: list with dict{‘id’, ‘path’}
id: number
cofnig: nested list
[ProductType]
settings=[{'id':0,'config':[[0,1,2],[2,2,1,0]]},
{'id':1,'config':[[0,2,1]]},
{'id':2,'config':[[0,1]]}
]
Task
Parameters
- settings: list with dict{‘product_type’, ‘number_of_parts’, ‘type’}
product_type:
number_of_parts:
- type: defines the type of task
start: these products are not logged, there only task is to reduce the starting effect
logging: after the first logging product is inserted the logging starts
end: these products are not logged, there only task is to reduce the ending effect, when every logging product is produced the production ends
Code Example
[Task]
settings=[{'product_type':0,'number_of_parts':10,"type":'start'},
{'product_type':0,'number_of_parts':150,"type":'logging'},
{'product_type':1,'number_of_parts':150,"type":'logging'},
{'product_type':2,'number_of_parts':150,"type":'logging'},
{'product_type':0,'number_of_parts':10,"type":'end'}
]
Process
Parameters
- settings: list of dict{‘id’, ‘mean’, ‘deviation’, ‘type’}
id: this number must be identical to the id in the pnml-file and in the machine section
mean: number
deviation: number
type: only ‘normal’ available
Code Example
[Process]
settings=[{'id':0,'mean':5,'deviation':0,'type':'normal'},
{'id':1,'mean':10,'deviation':2,'type':'normal'},
{'id':2,'mean':15,'deviation':1,'type':'normal'}]
Transporter
Parameters
number_of_transporter: defines the number of transporters
- settings: list with dict{‘number_of_positions’, ‘location_id’, ‘speed’, ‘add_time’, ‘remove_time’}
number_of_positions: 1..n
location_id: number, must be defined in start_location
waiting_time: idle waiting time
speed: number
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
- start_location: list of dict{‘id’, ‘location’}
id: number
location: [x,y,z], list with 3 numbers
Code Example
[Transporter]
number_of_transporter=3
settings=[{'number_of_positions':3,'location_id':0,'speed':3,'waiting_time': 5,'add_time':{'mean':1,'deviation':0.2,'type':'normal'},'remove_time':{'mean':1,'deviation':0.2,'type':'normal'}},
{'number_of_positions':3,'location_id':0,'speed':3,'waiting_time': 5,'add_time':{'mean':1,'deviation':0.2,'type':'normal'},'remove_time':{'mean':1,'deviation':0.2,'type':'normal'}},
{'number_of_positions':3,'location_id':0,'speed':3,'waiting_time': 5,'add_time':{'mean':1,'deviation':0.2,'type':'normal'},'remove_time':{'mean':1,'deviation':0.2,'type':'normal'}}]
start_location=[{'id':0,'location':[1,1,0]}]
Defect
only needed if a defect is added to the simulation
Parameters
transporter_defect_possible: bool, True or False
- transporter_random: {‘type’, ‘min’, ‘max’}
type: ‘random’
min: 0
max: number of transporter defect_types -1
- transporter_normal: list of dict{‘defect_type’, ‘defect’, ‘repair’}
defect_type: any string
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
machine_defect_possible: bool, True or False
- machine_random: {‘type’, ‘min’, ‘max’}
type: ‘random’
min: 0
max: number of transporter defect_types -1
- machine_normal: list of dict{‘defect_type’, ‘defect’, ‘repair’}
defect_type: any string
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
Code Example
[Defect]
transporter_defect_possible=True
transporter_random={'type':"random",'min':0,'max':2}
transporter_normal=[{'defect_type':"short",'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"medium",'defect':{'type':"normal",'mean':1500,'deviation':300},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"long",'defect':{'type':"normal",'mean':2000,'deviation':400},'repair':{'mean':20,'deviation':1,'type':"normal"}}]
machine_defect_possible=True
machine_random={'type':"random",'min':0,'max':2}
machine_normal=[{'defect_type':"short",'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"medium",'defect':{'type':"normal",'mean':1500,'deviation':300},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"long",'defect':{'type':"normal",'mean':2000,'deviation':400},'repair':{'mean':20,'deviation':1,'type':"normal"}}]
Repair
only needed when defect is added
Parameters
machine_repair = 1..n
transporter_repair = 1..n
Code Example
[Repair]
machine_repair=2
transporter_repair=1
RandomSeed
each simulation run through provides the same results, to change it you need to vary the AppendValue
Parameters
AppendValue: number
Code Example
[RandomSeed]
AppendValue=0
Lvl1 - Advanced
A complete example can be viewed under: /example/config/for_docu/production_config_lvl1.ini.
In comparison to Lvl2 - Intermediate mostly Machine and Transporter changed.
- Lvl 1 is capable of having machines with different queue combination
sharing of queues between machines is possible
the queue are devided in input_queue and output_queue
Machine
the queue id’s must be unique
Parameters
number_of_machines: defines the number of machines
- machine_dict: list with dict{‘machine_id’, ‘queue_input_id’, ‘queue_output_id’, ‘process’, ‘set_up’, ‘add_time’, ‘remove_time’}
machine_id: number
queue_input_id: list with queue id’s
queue_output_id: list with queue id’s
queue_process_id: list with queue id’s, only 1 queue allowed
process: list with process_id
waiting_time: idle waiting time
- set_up: list with dict{‘start’, ‘end’, ‘mean’, ‘deviation’, ‘type’}
each combination of the process list needs to be initialized (both direction independently)
start: process_id, from which process_id should the set_up start
end: process_id, to which process_id should the set_up be performed
mean: number
deviation: number
type: ‘normal’, the set up can only have a normal distribution
- queue_dict: list with dict{‘queue_id’, ‘number_of_positions’, ‘location’, ‘add_time’, ‘remove_time’}
queue_id: number
number_of_positions: number
location: [x,y,z], list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
- queue_process_dict: list with dict{‘queue_id’, ‘number_of_positions’, ‘location’, ‘add_time’, ‘remove_time’}
queue_id: number
number_of_positions: 1, only 1 is allowed
location: [x,y,z], list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[Machine]
umber_of_machines = 4
machine_dict = [{'machine_id': 0,'waiting_time':5, 'queue_input_id': [5], 'queue_output_id': [2], 'queue_process_id': [12], 'process': [0, 4], 'set_up': [{'start': 0, 'end': 4, 'mean': 0.7251840539819828, 'deviation': 0.0, 'type': 'normal'}, {'start': 4, 'end': 0, 'mean': 1.367229554157118, 'deviation': 0.0, 'type': 'normal'}]},
{'machine_id': 1,'waiting_time':5, 'queue_input_id': [2], 'queue_output_id': [3], 'queue_process_id': [13], 'process': [1, 5], 'set_up': [{'start': 1, 'end': 5, 'mean': 1.4874517298755754, 'deviation': 0.0, 'type': 'normal'}, {'start': 5, 'end': 1, 'mean': 0.813406230647941, 'deviation': 0.0, 'type': 'normal'}]},
{'machine_id': 2,'waiting_time':5, 'queue_input_id': [3], 'queue_output_id': [4], 'queue_process_id': [14], 'process': [2, 7], 'set_up': [{'start': 2, 'end': 7, 'mean': 0.8800168197636069, 'deviation': 0.0, 'type': 'normal'}, {'start': 7, 'end': 2, 'mean': 1.4140742063085612, 'deviation': 0.0, 'type': 'normal'}]},
{'machine_id': 3,'waiting_time':5, 'queue_input_id': [4], 'queue_output_id': [5], 'queue_process_id': [15], 'process': [3, 6], 'set_up': [{'start': 3, 'end': 6, 'mean': 1.3126545004777332, 'deviation': 0.0, 'type': 'normal'}, {'start': 6, 'end': 3, 'mean': 1.1796101423682712, 'deviation': 0.0, 'type': 'normal'}]}]
queue_dict = [{'queue_id':1, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},{'queue_id':2, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':3, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},{'queue_id':4, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':5, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},{'queue_id':6, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':7, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},{'queue_id':8, 'number_of_positions':3, 'location':[4,5,0],'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
]
queue_process_dict = [{'queue_id':12, 'number_of_positions':1, 'location':[4,5,0], 'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':13, 'number_of_positions':1, 'location':[10,5,0], 'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':14, 'number_of_positions':1, 'location':[4,15,0], 'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},
{'queue_id':15, 'number_of_positions':1, 'location':[20,5,0], 'add_time': {'mean': 1.0685729521901768, 'deviation': 0.28984742714339595, 'type': 'normal'}, 'remove_time': {'mean': 1.5275942986146165, 'deviation': 0.3318619177096951, 'type': 'normal'}},]
Start_Queue
Parameters
number_of_queue: defines the number of start queues
- settings: list with dict{‘queue_id’, ‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
queue_id: number
number_of_positions: 1..n
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[Start_Queue]
number_of_queue = 1
settings = [{'queue_id':8,'location': [0, 0, 0], 'number_of_positions': 3, 'add_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}, 'remove_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}}]
End_Queue
Parameters
number_of_queue: defines the number of end queues
- settings: list with dict{‘queue_id’, ‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
queue_id: number
number_of_positions: only 1 possible
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
Code Example
[End_Queue]
number_of_queue = 1
settings = [{'queue_id':9,'location': [0, 0, 0], 'add_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}, 'remove_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}}]
Deadlock_Queue
Parameters
number_of_queue: defines the number of deadlock queues
- settings: list with dict{‘queue_id’, ‘location’, ‘number_of_positions’, ‘add_time’, ‘remove_time’}
queue_id: number
number_of_positions: 1..n
location: [x, y, z] list with 3 numbers
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
deadlock_waiting_time: Time in which the part cannot be transported in the deadlock queue
Code Example
[Deadlock_Queue]
number_of_queue=1
settings=[{'location':[3,3,0],'number_of_positions':5,'add_time': {'mean':1,'deviation':0.2,'type':'normal'},'remove_time': {'mean':1,'deviation':0.2,'type':'normal'}}]
deadlock_waiting_time = 5
ProductType
Parameters
- settings: list with dict{‘id’, ‘path’}
id: number
config: nested list
[ProductType]
settings=[{'id':0,'config':[[0,1,2],[2,2,1,0]]},
{'id':1,'config':[[0,2,1]]},
{'id':2,'config':[[0,1,3,4,7]]},
{'id':3,'config':[[5,6,7,6,0]]},
{'id':4,'config':[[4,5,2,3,0]]},
{'id':5,'config':[[0,7,7,6,6,1]]}
]
Task
Parameters
- settings: list with dict{‘product_type’, ‘number_of_parts’, ‘type’}
product_type:
number_of_parts:
- type: defines the type of task
start: these products are not logged, there only task is to reduce the starting effect
logging: after the first logging product is inserted the logging starts
end: these products are not logged, there only task is to reduce the ending effect, when every logging product is produced the production ends
Code Example
settings=[{'product_type':0,'number_of_parts':10,"type":'start'},
{'product_type':0,'number_of_parts':150,"type":'logging'},
{'product_type':1,'number_of_parts':150,"type":'logging'},
{'product_type':2,'number_of_parts':150,"type":'logging'},
{'product_type':0,'number_of_parts':10,"type":'end'}
]
Process
Parameters
- settings: list of dict{‘id’, ‘default’, ‘adjusted’}
id: this number must be identical to the id in the pnml-file and in the machine section
default: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
- adjusted: list with dict of {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
(optional) every machine can now have for a process it’s own distribution
Code Example
[Process]
settings = [{'id': 0, default:{'mean': 6.862095883770332, 'deviation': 0.0, 'type': 'normal'},
adjusted: [{'machine_id':2,'mean': 6.862095883770332, 'deviation': 0.0, 'type': 'normal'}] }, {'id': 4, 'mean': 5.778627553085438, 'deviation': 0.0, 'type': 'normal'}, {'id': 1, 'mean': 6.927675665841848, 'deviation': 0.0, 'type': 'normal'},
{'id': 5, 'mean': 3.607603706460525, 'deviation': 0.0, 'type': 'normal'}, {'id': 2, 'mean': 3.3168779683080283, 'deviation': 0.0, 'type': 'normal'}, {'id': 7, 'mean': 5.629809687872099, 'deviation': 0.0, 'type': 'normal'}, {'id': 3, 'mean': 5.158519573931287, 'deviation': 0.0, 'type': 'normal'}, {'id': 6, 'mean': 3.9434044637703973, 'deviation': 0.0, 'type': 'normal'}]
Transporter
Parameters
number_of_transporter: defines the number of transporters
- settings: list with dict{‘number_of_positions’, route’, ‘location_id’, ‘speed’, ‘add_time’, ‘remove_time’}
number_of_positions: 1..n
location_id: number, must be defined in start_location
speed: number
add_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
remove_time: {‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}, type have to be normal
waiting_time: idle waiting time
- route: dict which provides further information
free: transporter are allowed to drive to every queue; {‘type’:’free’}
restricted: transporter is only allowed to drive to some queues; {‘type’:’restricted’,’queue_list’: list with queue id’s}
- ordered: transporter drives to the defined queues in the exact orders, {‘type’:’ordered’,’queue_list’: list with queue id’s}
this option is currently not available
- start_location: list of dict{‘id’, ‘location’}
id: number
location: [x,y,z], list with 3 numbers
Code Example
[Transporter]
number_of_transporter = 3
settings = [{'number_of_positions': 3,'waiting_time':5, 'location_id': 0,'route':{'type':'free'} ,'speed': 3, 'add_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}, 'remove_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}},
{'number_of_positions': 3,'waiting_time':5, 'location_id': 0,'route':{'type':'restricted','queue_list':[5,9,11]}, 'speed': 3, 'add_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}, 'remove_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}},
{'number_of_positions': 3,'waiting_time':5, 'location_id': 0,'route':{'type':'ordered','queue_list':[1,2,3,4,5,9,11]}, 'speed': 3, 'add_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}, 'remove_time': {'mean': 1, 'deviation': 0.2, 'type': 'normal'}}]
start_location = [{'id': 0, 'location': [1, 1, 0]}]
Defect
only needed if a defect is added to the simulation
Parameters
transporter_defect_possible: bool, True or False
- transporter_random: {‘type’, ‘min’, ‘max’}
type: ‘random’
min: 0
max: number of transporter defect_types -1
- transporter_normal: list of dict{‘defect_type’, ‘defect’, ‘repair’}
defect_type: any string
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
machine_defect_possible: bool, True or False
- machine_random: {‘type’, ‘min’, ‘max’}
type: ‘random’
min: 0
max: number of transporter defect_types -1
- machine_normal: list of dict{‘defect_type’, ‘defect’, ‘repair’}
defect_type: any string
- defect: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the probability of the defect
- repair: dict{‘mean’: number, ‘deviation’: number, ‘type’: ‘normal’}
defines the repair time of the defect
Code Example
[Defect]
transporter_defect_possible=True
transporter_random={'type':"random",'min':0,'max':2}
transporter_normal=[{'defect_type':"short",'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"medium",'defect':{'type':"normal",'mean':1500,'deviation':300},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"long",'defect':{'type':"normal",'mean':2000,'deviation':400},'repair':{'mean':20,'deviation':1,'type':"normal"}}]
machine_defect_possible=True
machine_random={'type':"random",'min':0,'max':2}
machine_normal=[{'defect_type':"short",'defect':{'type':"normal",'mean':1000,'deviation':250},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"medium",'defect':{'type':"normal",'mean':1500,'deviation':300},'repair':{'mean':20,'deviation':1,'type':"normal"}},
{'defect_type':"long",'defect':{'type':"normal",'mean':2000,'deviation':400},'repair':{'mean':20,'deviation':1,'type':"normal"}}]
Repair
only needed when defect is added
Parameters
machine_repair = 1..n
transporter_repair = 1..n
Code Example
[Repair]
machine_repair=2
transporter_repair=1
RandomSeed
each simulation run through provides the same results, to change it you need to vary the AppendValue
Parameters
AppendValue: number
Code Example
[RandomSeed]
AppendValue=0