def create_routing(env, first_step='op26'): tasks = { 'op26': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.3, 'run_time': 2.81, 'teardown_time': 0.16, 'route_to': 'op27' }, 'op27': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.14, 'run_time': 1.91, 'teardown_time': 0, 'route_to': 'op28' }, 'op28': misc_tools.make_quality_step(env=env, run_time=75, route_to=env['section_C_kanban'], transit_time=0), } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move18'): tasks = { # I added this move step in to create a place for the horn antenna to arrive # but do we need to take out to stay true to the Excel doc? 'move18': { 'location': env['forklift'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': .1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op18' }, 'op18': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.66, 'run_time': 3.61, 'teardown_time': 0.61, 'transit_time': 0, 'route_to': 'op19' }, 'op19': misc_tools.make_quality_step( env=env, run_time=0.2, route_to='op20', transit_time=0, ), 'op20': { 'location': env['MOD_FEEDASSY_PAT'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.5, 'run_time': 0.5, 'teardown_time': 0.5, 'transit_time': 0, 'yield': 0.9423, 'route_to_fail': 'op20_debug', 'route_to_pass': env['horn_antenna_kanban'] }, 'op20_debug': { 'location': env['MOD_FEEDASSY_PAT'], 'worker': env['technician'], 'manned': True, 'setup_time': 0, 'run_time': random.uniform(a=60, b=200), 'teardown_time': 0, 'transit_time': 0, 'route_to': env['horn_antenna_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move5'): ## if you have a problem with one of the values, ## just update outside of the tasks dictionary for now tasks = { 'move5': { 'location': env['forklift'], #previously 'OPTX_storage' 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op5' }, 'op5': misc_tools.make_quality_step(env=env, run_time=1, route_to='op7', transit_time=0), 'op7': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0, 'run_time': 7.6455, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op8' }, 'op8': { # is this even the right location and worker combination? Check! 'location': env['assembly_bench'], 'worker': env['technician'], # this step is an unmanned step --> update appropriately!! 'manned': False, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op9' }, 'op9': { 'location': env['OPTX_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': 5, 'run_time': 5, 'teardown_time': 1, 'transit_time': 0, 'route_to': env['OPTX_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move21'): tasks = { 'move21': { 'location': env['forklift'], #previously multiplexer_kanban 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op21' }, 'op21': { 'location': env['assembly_bench'], # make sure that this assembly bench is the same place that the next move picks up from!! 'worker': env['assembler'], 'manned': True, 'setup_time': 0.07, 'run_time': 1.38, 'transit_time': 0, 'teardown_time': 0.05, 'route_to': 'move22' }, 'move22': { 'location': env['assembly_bench'], # link to location from op21 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op22' }, 'op22': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.14, 'run_time': 1.91, 'transit_time': 0, 'teardown_time': 0, #'route_to': env['section_A_storage'] 'route_to': env['section_A_kanban'] }, } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move1'): tasks = { 'move1': { 'location': env['forklift'], 'worker': env['production_control'], 'manned': False, 'setup_time': 0, 'run_time': 0, 'teardown_time': 0, 'transit_time': 0, 'route_to': env['cover_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move1'): tasks = { 'move1': { 'location': env['forklift'], #was env['multiplexer_storage'] 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 0, 'teardown_time': 0, 'transit_time': 0, 'route_to': env['antenna_kit_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move1'): tasks = { 'move1': { 'location': env['forklift'], #was env['multiplexer_storage'] 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 0.012, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op1' }, 'op1': misc_tools.make_assembly_step(env=env, run_time=3.79, route_to='op2'), 'op2': misc_tools.make_quality_step(env=env, run_time=0.2, route_to='op3', transit_time=0), 'op3': { 'location': env['VSWR_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.09, 'run_time': 1.24, 'teardown_time': 0.07, 'transit_time': 0, 'yield': 0.99, 'route_to_pass': env['multiplexer_kanban'], 'route_to_fail': 'op4' }, 'op4': { 'location': env['VSWR_CTI_DBG'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.5, 'run_time': random.uniform(a=60, b=120), 'teardown_time': 0.5, 'transit_time': 0, 'route_to': env['multiplexer_kanban'] } } tasks['op1']['teardown_time'] = 0.14 tasks['op1']['setup_time'] = 0.21 return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move23'): tasks = { 'move23': { 'location': env['forklift'], #formerly section_A_kanban 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op23' }, 'op23': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.04, 'run_time': 0.64, 'transit_time': 0, 'teardown_time': 0.03, 'route_to': 'op24' }, 'op24': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.16, 'run_time': 1.65, 'teardown_time': 0.12, 'transit_time': 0, 'route_to': 'op25' }, 'op25': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.04, 'run_time': 0.58, 'transit_time': 0, 'teardown_time': 0.03, 'route_to': env['section_B_kanban'] #'route_to': env['section_B_storage'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move23'): tasks = { 'move23': { 'location': env['section_A_kanban'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op23' }, 'op23': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.04, 'run_time': 0.64, 'teardown_time': 0.03, 'route_to': 'op24' }, 'op24': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.16, 'run_time': 1.65, 'teardown_time': 0.12, 'route_to': 'op25' }, 'op25': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.04, 'run_time': 0.58, 'teardown_time': 0.03, 'route_to': env['section_B_kanban'] }, } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='op26'): tasks = { # Does the first step here need to be a move step to approximate the different pieces coming together? 'op26': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.3, 'run_time': 2.81, 'transit_time': 0, 'teardown_time': 0.16, 'route_to': 'op27' }, 'op27': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.14, 'run_time': 1.91, 'transit_time': 0, 'teardown_time': 0, 'route_to': 'op28' }, 'op28': { 'location': env['quality_bench'], 'worker': env['qual_inspector'], 'manned': True, 'setup_time': 0, 'run_time': 75, 'teardown_time': 0, 'transit_time': 0, 'route_to': env['section_C_storage'] } # 'op28': misc_tools.make_quality_step( # env=env, # run_time=75, # route_to=env['section_C_storage'], # transit_time=0 # ) } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='op1'): tasks = { 'op1': misc_tools.make_assembly_step(env=env, run_time=random.gauss(mu=3, sigma=0.25), route_to='op2'), 'op2': { 'location': env['machine_2'], 'worker': env['technician'], 'manned': False, 'setup_time': random.uniform(a=2, b=5), 'run_time': random.gauss(mu=5, sigma=0.5), 'teardown_time': 0, 'transit_time': 1, 'yield': 0.95, 'route_to_pass': '******', 'route_to_fail': 'rework' }, 'op3': { 'location': env['common_process'], 'worker': env['technician'], 'manned': True, 'setup_time': random.triangular(low=1, high=4, mode=2), 'run_time': random.gauss(mu=2, sigma=0.5), 'teardown_time': random.uniform(a=1, b=2), 'transit_time': 1, 'route_to': env['part_b_kanban'] }, 'rework': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0, 'run_time': random.expovariate(lambd=0.5) * 7, 'teardown_time': 0, 'transit_time': 1, 'fail_count': 2, 'route_to_pass': '******', 'route_to_fail': env['scrap_storage'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='op1'): tasks = { 'op1': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': manned, 'setup_time': 0.21, 'run_time': 3.79, 'teardown_time': 0.14, 'transit_time': 0.012, 'route_to': 'op2' }, 'op2': misc_tools.make_quality_step(env=env, run_time=0.2, route_to='op3', transit_time=0), 'op3': { 'location': env['machine'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.09, 'run)time': 1.24, 'teardown_time': 0.07, 'transit_time': 0, 'yeild': 0.99, 'route_to_pass': env['multiplexer_attempt_kanban'], #'route_to_fail': 'rework' } #'rework': { # 'location': env['assembly_bench'], # 'worker': env[''] # I just want to make this pause the entire system when # something needs to be debugged... is that reasonable? #} } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move15'): tasks = { 'move15': { 'location': env['forklift'], #formerly splitter storage # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op15' }, 'op15': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 1, 'run_time': 5, 'teardown_time': 1, 'transit_time': 1, 'route_to': 'move16' }, 'move16': { 'location': env['assembly_bench'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op16' }, 'op16': misc_tools.make_quality_step(env=env, run_time=2, route_to='move17', transit_time=1), 'move17': { 'location': env['quality_bench'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op17' }, 'op17': { 'location': env['VSWR_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': 10, 'run_time': 2, 'teardown_time': 10, 'transit_time': 1, 'yield': 94.23, 'route_to_pass': env['splitter_kanban'], 'route_to_fail': 'op17_debug' }, 'op17_debug': { 'location': env['VSWR_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': 0, 'run_time': random.uniform(a=60, b=200), 'teardown_time': 0, 'transit_time': 0, 'route_to_': env['splitter_kanban'], }, } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='op29'): tasks = { 'op29': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.09, 'run_time': 1.24, 'teardown_time': 0.1, 'route_to': 'op30' }, 'op30': { 'location': env['static_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.77, 'run_time': 5, 'teardown_time': 0.77, 'transit_time': 0, 'yield': 94.23, 'route_to_pass': '******', 'route_to_fail': 'op31' }, 'op31': { 'location': env['static_CTI-DBG'], 'worker': env['technician'], 'manned': True, 'setup_time':0, 'run_time': 60, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op30' }, # op30a is just a buffer step to split the jobs that need more processing from the ones that don't # there is DEFINITELY a better way to do this, I just don't know what it is yet 'op30a': { 'location': env['static_CTI'], 'worker': env['technician'], 'manned': False, 'setup_time': 0, 'run_time': 0, 'teardown_time': 0, 'transit_time': 0, 'yield': 90, 'route_to_pass': '******', 'route_to_fail': 'move32' }, 'move32': { 'location': env['static_CTI'], 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op32' } 'op32': { 'location': env['COND_EST'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.5, 'run_time': 120, 'teardown_time': 0.5, 'route_to': 'move33' }, 'move33': { 'location': env['COND_EST'], 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 0.0084, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op33' }, 'op33': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 0.09, 'run_time': 1.44, 'teardown_time': 0.07, 'route_to': env['section_D_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
def create_routing(env, first_step='move34'): tasks = { 'move34': { 'location': env['section_D_kanban'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 0.06, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op34' }, 'op34': { 'location': env['assembly_bench'], # make sure that this assembly bench is the same place that the next move picks up from!! 'worker': env['assembler'], 'manned': True, 'setup_time': 0.05, 'run_time': 0.55, 'teardown_time': 0.05, 'route_to': 'op35' }, 'op35': { 'location': env['RF_Fit_Test'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.26, 'run_time': 1.3, 'teardown_time': 0.16, 'transit_time': 0, 'yield': 94.23, 'route_to_pass': '******', 'route_to_fail': 'op35_debug' }, 'op35_debug': { 'location': env['RF_Fit_Test'], 'worker': env['technician'], 'manned': True, 'setup_time': 0, 'run_time': 30, 'teardown_time': 0, 'transit_time': 0, 'route_to_': 'move36', }, 'move36': { 'location': env['RF_Fit_Test'], # is this the right location to have the move take place from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op36' }, ## op36 is supposed to have a batch size of 8: how do you accommodate that? ## build it out into its own special step and have a bom for it? 'op36': { 'location': env['RF_CFG'], 'worker': env['technician'], 'manned': True, 'setup_time': 2, 'run_time': 5, 'teardown_time': 2, 'route_to': 'op37' }, 'op37': misc_tools.make_quality_step(env=env, run_time=5, route_to=env['FLT4_storage'], transit_time=0) } return misc_tools.make_steps(first_step=first_step, tasks=tasks)
'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op9' } 'op9': { 'location': env['common_process'], 'worker': env['technician'], 'manned': True, 'setup_time': 5, 'run_time': 5, 'teardown_time': 1, 'transit_time': 0, 'route_to': 'optx_kanban' } } tasks['op5']['setup_time'] = 1 tasks['op5']['teardown_time']=1 return misc_tools.make_steps(first_step=first_step, tasks=tasks) def create_kanban_attrs(env): return misc_tools.make_kanban_attrs(order_gen=env['gener.optx'], order_point=UNKNOWN, order_qty=UNKNOWN, init_qty=UNKNOWN, warmup_time=UNKNOWN)
def create_routing(env, first_step='move10'): ## if you have a problem with one of the values, ## just update outside of the tasks dictionary for now tasks = { 'move10': { 'location': env['forklift'], #formerly BFPD_storage 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op10' }, 'op10': { 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': True, 'setup_time': 5, 'run_time': 10, 'teardown_time': 5, 'transit_time': 0, 'route_to': 'move11' }, 'move11': { 'location': env['assembly_bench'], #how do we make sure this is the same assembly bench #that the last operation left off from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op11' }, 'op11': { # is this appropriate? Because the excel doc doesn't have information on who does the step 'location': env['assembly_bench'], 'worker': env['assembler'], 'manned': False, 'setup_time': 1, 'run_time': 5, 'teardown_time': 1, 'transit_time': 0, 'route_to': 'move13' }, 'move13': { 'location': env['assembly_bench'], #how do we make sure this is the same assembly bench #that the last operation left off from? 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op13' }, 'op13': { 'location': env['BFPD_CTI'], 'worker': env['technician'], 'manned': True, 'setup_time': .5, 'run_time': 4, 'teardown_time': .5, 'transit_time': 0, 'yield': .9423, 'route_to_pass': env['BFPD_kanban'], 'route_to_fail': 'move14' }, 'move14': { 'location': env['BFPD_CTI'], 'worker': env['production_control'], 'manned': True, 'setup_time': 0, 'run_time': 1, 'teardown_time': 0, 'transit_time': 0, 'route_to': 'op14' }, 'op14': { # check back to excel doc: this doesn't exactly agree with the number provided. # do we need to add another rework within operation 14?? # also, op14 is not in the diagram, what are the implications of that? 'location': env['BFPD_CTI_DBG'], 'worker': env['technician'], 'manned': True, 'setup_time': 0.5, 'run_time': random.uniform(a=60,b=200), 'teardown_time': 0.5, 'transit_time': 0, 'route_to': env['BFPD_kanban'] } } return misc_tools.make_steps(first_step=first_step, tasks=tasks)