jueves, 21 de marzo de 2013

Ejercicios básicos

Hoy voy a publicar una serie de ejercicios muy sencillos que nos ayudaran a programar cosas mas complicadas en un futuro. Se trata de tres actividades sencillas, la primera un piloto que encienda y apague cada 2 segundos, la segunda el control simple de una puerta de garaje y por último un contador. En mi corta experiencia en este mundo me he dado cuenta que estos son ejercicios básicos, así que espero que os sirva. Vamos al lío ;)



1.- Realizar un programa que encienda y apague un piloto cada 2 segundos.




Suponiendo que tenemos un botón de marcha que inicia el proceso (E 125.0), y un botón de paro (E 125.1):

U E 125.0     // Si el botón de marcha se pulsa
UN A 124.0 //  Y la luz está apagada
L S5T#2S     // Cargamos el acumulador 2 segundos
SE T 1          // Cuenta 2 seg.
U T 1            // Cuando este termine
S A 124.0    // Enciende la luz
U A 124.0   // Si la luz está encendida
L S5T#2S    // Cargamos el acumulador, 2 seg.
SE T 2         // Cuenta 2 segundos
U T 2          // Cuenta dos segundos
R A 124.0  // Se apaga la luz
U E 125.1  // si pulso Botón de parada
R A 124.0  // Se apaga la luz





2.- Realizar un programa que controle la apertura y cierre de una puerta de garaje. El dispositivo dispone de un final de carrera para detectar que la puerta está arriba (E 124.2) y otro que detecta que la puerta está abajo (E 124.1). También dispone de una fotocélula de seguridad (E 124.3), que hará que abra la puerta en el caso de que ésta esté bajando y haya presencia de coche. La puerta en su funcionamiento habitual, se abre activando el contacto de apertura con llave (E 124.0). Una vez ha subido temporiza 6 seg. y baja.
En primer lugar y aunque el enunciado no nos indique nada, necesitamos definir el proceso de subida y el de bajada, por ejemplo, con un motor:

K1 = A 125.1 (La puerta sube)
K2 = A 125.2 (La puerta baja)

Las entradas son:

Llave = E 124.0                  FC1 = E 124.1                     FC2 = E 124.2                     CF = E 124.3

AWL
U E 124.1             // Si está pulsado FC1
U E 124.0             // y usamos la llave
S M0.1                  //activa marca 1 (Puerta sube)
UN E 124.1          //Si no toca FC1
U E 124.2             //y toca FC2
R M0.1                 //desactivamos marca 1 (motor arriba)
L S5T#6S              //Cargamos 6seg. en el acumulador
SE T 1                    //Cuenta 6 seg.
U T 1                     // Cuando acabe de contar
S M0.2                  // Se activa la marca 2 (motor baja)
U E 124.3             //Si la fotocélula detecta algo
R M0.2                 //Desactivo bajada
S M0.1                  //activo subida
U E 124.1             // Si está pulsado FC1
UN E 124.0          //Y no usamos la llave para abrir
R M0.2                 //Desactivamos marca 2 (Puerta deja de bajar)
U M0.1                 //Marca 1
= A 125.1             //Motor sube la puerta
U M0.2                 //Marca 2
= A 125.2             //Motor baja la puerta



3.- Realizar un contador ascendente (E 124.0), descendente (E 124.1), con carga predefinida igual a 10 (E 124.2) y con puesta a “0” (E 124.3). Activa la salida A 124.0 siempre que Z 1 sea distinto de cero.

UN M 130.0        // Si la marca 130.0 no está activada (esto se hace para poder iniciar el contador, elijo    // una marca cualquiera que no vayamos a usar)
L C#0                     // Carga el acumulador  0
S Z 1                      // Carga en el contador 0
UN M 130.0        // Si 130.0 no está activada
S M130.0             // Activo la marca 130.0
U E 124.0             // Si está activa la entrada 124.0
ZV Z 1                   // Contamos +1
U E 124.1             // Si se activa la entrada 124.1
ZR Z 1                    // Contamos -1
U E 124.2             // Si se activa la entrada 124.2
L C#10                  //Carga en el acumulador 10 seg.
S Z 1                      //Carga en el contador 10seg
U E 124.3             //Si se activa la entrada 124.3
R Z 1                      // Ponemos a 0 en contador
U Z 1                     // Si el contador es distinto de 0
= M 0.1                // Activamos la marca 0.1
U M0.1                 //Si marca 1 está activa
= A 124.0             // activa la salida A 124.0

No hay comentarios:

Publicar un comentario

Etiquetas