示例#1
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
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)
示例#7
0
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)
示例#8
0
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)
示例#9
0
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)
示例#10
0
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)
示例#11
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
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)
示例#16
0
        	'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)


	
示例#17
0
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)