Universidad de Oviedo Area de Ingeniería de Sistemas y Automática El Autómata S7 200 Problemas PROBLEMA 9.1 Diseñar el programa de control de un autómata programable que realice el enunciado siguiente: Un semáforo ha de regir el paso de vehículos, pero éste estará sujeto a una variación en su temporización, según el número de vehículos que se encuentren en cola de espera. La calle, como se puede apreciar en el dibujo, tiene un carril con sus respectivos sensores (S1, S2). S1 Cuando en uno cualquiera de los carriles se encuentran 20 o más vehículos la temporización ha de ser la siguiente: verde: 30 s ámbar: 5 s fijo y 3 s a 2 Hz rojo: 15 s Cuando tengamos menos de 20 vehículos en ambos carriles la temporización ha de ser la siguiente: verde: 20 s ámbar: 5 s fijo y 3 s a 2 Hz rojo: 20 s El valor de la cuenta efectiva para efectuar el cambio de la secuencia de la temporización es la que realiza desde el momento en que el semáforo se pone en rojo hasta un instante antes de producirse el cambio a verde. Nota: • Se supone que el carril es de dirección única. • Los vehículos que se controlan son solamente automóviles (no bicicletas). • Hacer una subrutina para obtener la temporización de la luz roja y verde. • El incremento y decremento de vehículos se debe hacer mediante interrupción. J. Argüelles / J. Alonso / V. González 1 Inicializaciones T37 Network 4 SM0.0 Network 3 T40 SM0.1 Network 2 SM0.1 T40 / Ciclo del semáforo P +50 PT IN T38 TON TVerde:VW4 PT IN T37 TON EN ATCH 3 / 16 Incrementa:INT0 INT 0 EVNT NumCoches:VB0 N_Coch~T_Verde TVerde:VW4 T_Rojo TRojo:VW2 EN CalculaTiempo OUT NumCoches:VB0 MOV_B ENO Selección del tiempo de temporización 0 IN EN ENO Se asocian las interrupciones 0 (Flanco ascendente sobre E0.0) y 1 (Flanco ascendente sonbre E0.1) a las rutinas de interrupción 0 y 1 respectivamente Network 1 prob0901, PRINCIPAL (OB1) ATCH Decrementa:INT1 INT 2 EVNT EN ENO ENI T37 Network 10 SM0.0 Network 9 T32 >=I +250 Network 8 SM0.0 Network 7 T39 Network 6 T38 Network 5 Salidas R 1 LuzVerde:A0.2 LuzVerde:A0.2 S 1 M0.0 T32 / Oscilador 2 Hz TRojo:VW2 PT IN +30 PT IN T40 T39 IN +500 PT TON TON T32 TON 4 / 16 prob0901, PRINCIPAL (OB1) T39 / T40 T39 / T38 Network 12 T38 / T37 Network 11 LuzRoja:A0.0 M0.0 LuzAmbar:A0.1 5 / 16 prob0901, PRINCIPAL (OB1) T_Verde T_Rojo LW1 LW3 LB0 Nombre EN N_Coches Dirección Tipo var. IN IN IN IN IN IN_OUT OUT OUT TEMP TEMP WORD WORD Tipo de datos BOOL BYTE Comentario 7 / 16 prob0901, CalculaTiempo (SBR0) 20 #N_Coches:LB0 <B Network 2 #N_Coches:LB0 >=B 20 +200 IN EN +150 IN EN OUT #T_Rojo:LW3 MOV_W ENO OUT #T_Rojo:LW3 MOV_W ENO TÍTULO DE SEGMENTO (una línea) COMENTARIOS DE SEGMENTO Network 1 +200 IN EN +300 IN EN 8 / 16 OUT #T_Verde:LW1 MOV_W ENO OUT #T_Verde:LW1 MOV_W ENO prob0901, CalculaTiempo (SBR0) SM0.0 NumCoches:VB0 IN EN INC_B TÍTULO DE SEGMENTO (una línea) COMENTARIOS DE SEGMENTO Network 1 OUT NumCoches:VB0 ENO 11 / 16 prob0901, Incrementa (INT0) SM0.0 NumCoches:VB0 IN EN DEC_B TÍTULO DE SEGMENTO (una línea) COMENTARIOS DE SEGMENTO Network 1 OUT NumCoches:VB0 ENO 14 / 16 prob0901, Decrementa (INT1) Nombre NumCoches LuzRoja LuzAmbar LuzVerde TRojo TVerde SenEnt SenSal Dirección VB0 A0.0 A0.1 A0.2 VW2 VW4 E0.0 E0.1 Comentario numero de coches 15 / 16 prob0901, USR1 (USR1)