MIT OpenCourseWare


1.00 Introducción a la informática y a la resolución de problemas de ingeniería. Primavera 2002

Página principal
¿Qué es OCW?
Ayuda
Feedback
Preguntas frecuentes
Glosario
 
 
Página principal del curso
Programa
Calendario
  Material de clase
  Clases de repaso
Trabajos
  Exámenes
  Avisos
  Lecturas obligatorias
  Otras fuentes

   MIT

   
 

Boletín de problemas 7

Todos los cádigos y las imágenes se han elaborado con software Java™.

Fecha de entrega: viernes 12 de abril de 2002

Problema 1. Robots en una fábrica

Descripción del problema

Su tarea consiste en proyectar un sistema de gestión de materiales para una fábrica de equipos musicales. 

En la fábrica hay 2 cadenas de montaje completas que construyen y embalan los equipos, los cuales, a continuación, pasan a cintas transportadoras que los llevan a puntos de recogida robotizados. Los equipos llegan en cola al extremo final de la cinta, donde el robot los recoge uno a uno y los coloca en el soporte.

En esta foto se muestra un ejemplo de un robot recogiendo un equipo del final de la cinta transportadora. Los toma de la cinta por orden, es decir, el primero en entrar es el primero en cargar. (En esta tarea, ignoramos los detalles exactos de cómo el robot coloca los equipos en el soporte).

La carga de vacío del robot se desplaza al punto de recogida y allí “traba” el producto y lo coloca en su soporte. Unos sensores verifican que el producto permanece trabado por la carga de vacío durante la operación de recogida. Tras cargar 4 equipos en el soporte, el robot se desplaza hasta el área de almacenaje o estación de posición. En esta zona, se erigen pilas de productos. El producto se coloca en su estantería de almacenaje apropiada. Una vez que se termina la operación de apilamiento, el robot queda libre para antender las peticiones de servicio de otros puntos de recogida de las cintas de montaje.

Cuando se hace un pedido de equipos para transportarlos a un distribuidor, se produce una petición de transferencia desde el área de almacenaje a la estación de embalaje con plástico extensible. Cuando se solicita una transferencia, el vehículo de transferencia (otro robot) se desplaza al área de almacenaje (estación de posición). En el vehículo de transferencia y en la estación de posición respectiva se ponen en marcha cadenas transportadoras y la pila se desplaza desde la estación de posición al vehículo de transferencia. Una vez que el producto apilado está en el vehículo, éste se desplaza sobre raíles hasta el alimentador de un embalador automático de plástico extensible en donde tiene lugar la descarga. Así, el vehículo de transferencia queda libre para atender otras peticiones de transferencia. El embalador automático embala el producto apilado con plástico extensible y lo presenta para que se lo lleven los operarios de la carretilla elevadora a cargarlo en camiones o contenedores que parten al destino previsto.

La figura siguiente resume el funcionamiento del sistema de gestión de materiales. El enunciado del problema comenta los detalles de este esquema.

Es un esquema similar a sistemas actuales de producción en uso, que generalmente se controlan mediante un PC con una IGU para que un operario supervise la totalidad del proceso. Un solo operario puede gestionar todas las cintas transportadoras, los puntos de recogida, las estaciones de ubicación, el vehículo de transferencia y el embalador. Estos sistemas tienen un ‘modo de aprendizaje’ que permite al operario realizar manualmente los movimientos deseados con los robots y grabarlos; lo que resulta aún más efectivo que la programación. Después, puede editarlos y repetir los movimientos ya aprendidos en todas las estaciones.

Enunciado del problema

Su programa simulará el funcionamiento de la fabrica de equipos musicales. Debe modelar los siguientes procesos:

1.      La planta fabrica 6 tipos de equipos. Numérelos del 0-5.

2.      Una vez producido, cada equipo tiene un tipo y un número de serie.

3.      La planta tiene dos líneas de producción. Conviene que las modele en forma de cola.

a.      La línea 0 fabrica 8 equipos por minuto. 

b.      La línea 1 fabrica 4 equipos por minuto.

4.      Se pide al usuario, al inicio de cada minuto, que introduzca el tipo de equipo (0-5) que se va a producir en la línea 0 y en la línea 1. Una vez introducidos, se ‘producen’ y se añaden a las colas (líneas de producción).

5.      Las líneas de producción asignan un número de serie único a cada equipo, que empiezan por 0 y aumentan en una unidad por cada equipo producido. En primer lugar, la línea 0 obtiene el número de serie de todos los equipos que va a producir en el minuto siguiente, y después, la línea 1 obtiene los números de serie de los equipos que ensamblará en el minuto siguiente. En aras de la sencillez, asuma que la línea 0 acaba su producción un minuto antes de que la línea 1 comience la suya.

6.      La planta tiene un robot que desplaza los equipos en grupos de 4 desde el final de las líneas de producción hasta la zona de almacenamiento. Los quita de la cola en el extremo final de la línea de producción, y los coloca en la zona de almacenamiento, descrita anteriormente. Como la línea 0 fabrica 8 equipos por minuto, y el robot sólo puede llevar 4 a la vez, éste tiene que realizar dos viajes en cada minuto para atender a la línea 0.

7.      La planta tiene 6 áreas de almacenamiento, una por cada tipo de equipo. Cada área dispone de cuatro 4 estructuras de almacenamiento sobre las que se colocan los equipos. La altura de los productos apilados debe mantenerse lo más uniforme posible.

8.      Los clientes pueden hacer un pedido por la cantidad que deseen de cualquier tipo de equipo.

a.       Tramitamos un pedido por minuto, al ‘final’ del minuto de producción una vez que los equipos han sido depositados en las zonas de almacenamiento.

b.      Se pide al usuario que introduzca la cantidad de cada tipo de equipo (0-5) en el pedido.

c.       En este ejercicio, asuma que habrá suficientes equipos para cumplir con el pedido. No es necesario que se ocupe del supuesto en que se pidan más equipos de los que haya disponibles.  Cuando se realiza un pedido, se activa el vehículo de desplazamiento para satisfacerlo.

9.      La planta tiene un vehículo de transferencia que desplaza cualquier cantidad de equipos (suposición que realizamos para simplificar el problema) desde la zona de almacenamiento hasta la estación de embalaje. El vehículo mueve los equipos en orden individual hasta la zona de embalaje. Debe mantener la altura de las pilas lo más uniforme posible en las áreas de almacenamiento. 

10.  Cuando el vehículo de desplazamiento realiza un movimiento muestra (utilizando System.out.println):

a.       el número de orden, comenzando en 1 e incrementando de uno en uno;

b.      por cada equipo de la orden:

                                                   i.      el tipo de equipo (0-5);

                                                 ii.      el número de serie del equipo

11.  No es necesario que modele la estación de almacenaje o la salida de mercancías. Una vez que el vehículo de transporte haya mostrado el pedido y sus detalles, ya ha terminado con su actividad de un minuto.

12.  El programa tiene que modelar 5 minutos de actividad en la planta (esto es, repetir 5 veces los pasos anteriores). No es necesario que el programa muestre el tiempo real.

Utilice adecuadamente estructuras de datos en el programa (pilas y colas) para modelar el movimiento físico de los speakers en la planta.

  1. Modele una línea de producción como una Queue. Utilice la clase ArrayQueue u otro tipo de implementación de la interfaz Queue presentada en clase.
  2. Cree una clase StackingArea para ocultar los detalles de implementación de la gestión de almacenaje. Modele las áreas de almacenaje como arrays de Stacks. Utilice la clase ArrayStack u otra implementación de la interfaz Stack presentada en clase. Tendrá que ampliarla ligeramente para ser capaz de controlar la altura de los productos apilados.
  3. Modele el Robot y la TransferCar como clases con comportamientos apropiados. Pueden ser bastante sencillas.
  4. Cree una clase Product para representar los objetos (equipos musicales) que se producen (añaden a las colas) y se gestionan en pilas de productos almacenados.
  5. El método main() puede contener la lógica general que se va a ejecutar:
    1. Para cada uno de los 5 minutos de funcionamiento de la planta, solicite los productos que se van a producir en cada línea, invoque las operaciones correctas en el robot y en las líneas de producción, solicite la cantidad del pedido de cada speaker e invoque las operaciones correctas en el vehículo de desplazamiento.
  6. No es necesario que el programa sea general.  Sólo necesita funcionar con 2 líneas de producción, 6 productos, etc. Si le sirve de ayuda puede utilizar arrays de dimensión fija, etc.

Vigile los conflictos con los nombres. En Java™ existen las clases Stack, Queue y Robot, entre otras.  

Nota extra

Si desea obtener un máximo de 20 puntos extra, escriba una interfaz gráfica de usuario (IGU) para el programa principal del boletín de ejercicios. Tiene la posibilidad de hacerlo en cualquier boletín de problemas del 6 al 10; pero sólo en uno de ellos. En general, es libre de diseñar la IGU que usted quiera; como si se tratase de un ejercicio en una 'hoja de papel en blanco'. No podrá utilizar System.out.println en su solución; todas las entradas y salidas de datos deben hacerse con Swing. Si opta por crear la interfaz gráfica de usuario ha de entregar dos soluciones:

- El trabajo general, sin la IGU, tal y como se describe en el encargo, lo que nos permite calificar la parte principal de trabajo sin tener que preocuparnos por los posible errores introducidos por la IGU.

- La solución completa con la IGU. En esta segunda entrega sólo se tendrá en cuenta, a efectos de calificación, la IGU, hasta un máximo de 20 puntos. Sólo se calificará la IGU (y sus interfaces inmediatas con el resto del código). Recibirá entre 0 y 20 puntos; aunque reciba 0 su nota general en el trabajo no se verá perjudicada o reducida.

Requisitos específicos para el boletín de problemas 7: debe mostrar gráficamente elementos de la planta (línea de producción, área de almacenaje, vehículo de transferencia, estación de embalaje en plástico extensible) y de las entradas del usuario para obtener la puntuación máxima. La representación puede ser estilizada o abstracta, pero ha de tener ciertos elementos gráficos. A continuación, mostramos una posible representación de la IGU:

Entrega del trabajo

Requisitos

  • Problema 1: solamente por correo electrónico. No es necesario entregarlo en papel.
  • Problemas 2 y 3: copia en papel y copia electrónica de TODOS los códigos fuente (todos los archivos con la extensión .java).
  • Incluya en TODOS los archivos que presente su nombre, el nombre de usuario, la sección, el nombre del profesor ayudante, el número de trabajo y una relación de las personas con las que haya comentado el boletín de problemas. 
  • NO entregue copias electrónicas o en papel de código compilado (archivos .class).

Sanciones

  • Por pérdida de copia en papel: -10% de la puntuación del boletín de problemas.
  • Por pérdida de copia electrónica: -30% de la puntuación del boletín de problemas.
  • Por entrega fuera del plazo: -20% de la puntuación del boletín de problemas si es un día de retraso. Por más de un día de retraso = NO SE PUNTUARÁ

Información Jurídica | Privacidad
Todo uso del sitio de MIT OpenCourseWare y sus materiales de curso queda sujeto a las condiciones y términos de uso detallados
en la sección sobre Información Jurídica
Contacta con nosotros: Usuarios | Empresas-Instituciones-Medios comunicación
Código Ético | Aviso Legal | Política de confidencialidad | Quiénes somos: Sala de Prensa