[Examen marzo 2010] Duda con resolución.

[Examen marzo 2010] Duda con resolución.

de Maria Valentina Da Silva De Souza -
Número de respuestas: 1
Esta es la letra del ejercicio:
Se desea controlar el proceso de llenado y tapado de botellas de la compañía Algarrobo Cola.  
Existe una sola cinta transportadora, en cuyo ancho solo cabe una botella, y una máquina para cada 
acción (una para el llenado y otra para el tapado).
Las botellas vienen a intervalos irregulares y no siempre se está en situación de accionar las dos 
máquinas al mismo tiempo.  
El controlador debe determinar cuál(es) máquina(s) se va(n) a accionar en cada oportunidad (si es que 
se puede accionar alguna) y luego activar la cinta transportadora, la cuál se mueve a intervalos discretos 
constantes, para pasar a la(s) siguiente(s) botella(s). 
El circuito tendrá dos entradas, una correspondiente a la máquina de llenado y otra a la de tapado. El
funcionamiento de cada una de estas entradas es: 
- si la máquina está desactivada la entrada permanecerá en 0 mientras no haya una botella bajo la 
misma y estará en 1 cuando haya una botella y por tanto esté disponible para ser accionada.  
- luego de activada la máquina, la entrada permanece en 1 hasta que la máquina haya llenado/tapado 
la botella en cuestión.  
Por otro lado se deberán generar tres salidas: una para activar la máquina de llenado, una para la de 
tapado y otra para mover la cinta un intervalo.  
Se debe esperar a que ambas máquinas terminen de operar antes de mover la cinta. Se asume que el 
tiempo que tarda la cinta en moverse un intervalo es despreciable frente al período del clock del circuito. 
Se pide: 
Diseñar el circuito controlador siguiendo la metodología del curso. Se dispone de flip flops tipo D y 
compuertas básicas. 


Mi solución, es diferente a la propuesta en la solución. Porque utilizo dos estados, queria saber si estaba bien igual:
Entradas: m1m0   m1(máquina de tapado), m0(maquina de llenado)
Salidas:  ca1a0    c(muevo cinta) a1(activo máq.1) a0(activo máquina 0)

Estado q0, me quedo en el mientras m1=0 y m=0, y pongo como salida 001.
Si estando en q0 me llega 01, me voy a q1 (q1 es el estado de llenar o tapar),
y tiro 001.
Si estando en q0 me llega 10, me voy a q1 (q1 es el estado de llenar o tapar),
y tiro 010.
Si estando en q0 me llega 11, me voy a q1 (q1 es el estado de llenar o tapar),
y tiro 011.

Si estando en q1 me llega:
*11 me quedo en q1 y tiro 011.
*01 me quedo en q1 y tiro 001.
*10 me quedo en q1 y tiro 010.
*00 vuelvo a q0 y tiro 100.

Igual un problema que le veo, que estando en q1 por ejemplo si yo recibo como entrada 10 ( lo que me esta indicando que hay una botella debajo de la maquina 1 ), despues no voy a poder recibir como entrada estando en q1 11, porque para eso tendria que mover la cinta, y este automata como lo plantee es como que permitiera eso. Aunque yo sé que no va a pasar porque para eso deberia activar la cinta cosa que no hago.

Agradezco si alguien me puede decir si esta bien como lo plantee, o si necesito modelarlo con más estados.
Saludos.