@Override
	public String iniciarProduccion() {
		double materiaPrima = getCantMateriaPrima();
		String averia = "";
		
		if(modoOperacion == 'C'){
			while (getCantMateriaPrima() > 0 && isActivo()) {
				if(verificarModoGamma()){
					materiaPrima = materiaPrima - getMoldeEnvases().obtenerPorcMateria() + getConsumoGamma();
					setCantMateriaPrima(materiaPrima);
				}else{
					materiaPrima = materiaPrima - getMoldeEnvases().obtenerPorcMateria();
					setCantMateriaPrima(materiaPrima);
				}
				
				// Se ha producido un envase mas.
				incrementarCantEnvasesProd();
				
				// Llamar al detector cada vez que se produce un envase.
				averia = detectorFallas.verificarAveria();
				if (averia != "") {
					desactivarMaquina();
					reportarAveria(averia);
				}
			}
		}else{
			while (numEnvases > cantEnvasesProd) {
				if(verificarModoGamma()){
					materiaPrima = materiaPrima - getMoldeEnvases().obtenerPorcMateria() + getConsumoGamma();
					setCantMateriaPrima(materiaPrima);
				}else{
					materiaPrima = materiaPrima - getMoldeEnvases().obtenerPorcMateria();
					setCantMateriaPrima(materiaPrima);
				}
				
				// Se ha producido un envase mas.
				incrementarCantEnvasesProd();
				
				// Llamar al detector cada vez que se produce un envase.
				averia = detectorFallas.verificarAveria();
				if (averia != "") {
					desactivarMaquina();
					reportarAveria(averia);
				}
				
			}
		}
		return averia;
	}