Me encargaron el diseño de la lógica para los dormitorios. El diseño del dormitorio es que dos habitaciones comparten un baño (roomL-door-bathroom-door-roomR). Estoy teniendo problemas para diseñar la lógica para ello. Aquí están los requisitos:
- Si una persona de la sala L ingresa, la persona de la sala R tiene prohibido ingresar.
- Una persona no puede moverse entre las habitaciones a través del baño.
- (Deseado pero opcional) Si un cuarto de baño está ocupado por una persona de roomL, nadie puede entrar.
Cada puerta tendrá una cerradura electromagnética (normalmente abierta en caso de emergencia), por lo que puedo bloquear la puerta a través del software. Estaba pensando esto:
- Las puertas normalmente están desbloqueadas. Si una persona abre la puerta desde la habitación L, la puerta de la habitación R se bloqueará.
- Tendría, digamos, 30 segundos para presionar el botón ocupado (el temporizador está ahí para evitar que las personas dejen la puerta abierta).
- Después de presionar ambas puertas se bloquearán.
- Cuando se presiona nuevamente el botón, se desbloqueará la puerta de la que vino la persona (PLC recordará la última puerta abierta).
- Cuando una persona sale de la habitación y cierra la puerta, se abrirá la puerta de la otra habitación (nuevamente, 30 segundos después de presionar el botón, las puertas se desbloquearán).
¿Es este un buen diseño?
ACTUALIZAR
Así que he renovado el diseño y la lógica que se puede ver en el siguiente diagrama. ¡No veo ningún agujero en este nuevo diseño, pero un par de ojos nuevos no podría doler!