52
A A U U T T Ó Ó M M A A T T A A S S P P R R O O G G R R A A M M A A B B L L E E S S P P R R O O G G R R A A M M A A C C I I Ó Ó N N D D E E L L A A U U T T Ó Ó M M A A T T A A P P R R O O G G R R A A M M A A B B L L E E ( ( I I ) ) 8 8

UNIDAD 8 52 PAG

Embed Size (px)

Citation preview

Page 1: UNIDAD 8 52 PAG

AAUUTTÓÓMMAATTAASS PPRROOGGRRAAMMAABBLLEESS

PPRROOGGRRAAMMAACCIIÓÓNN DDEELL AAUUTTÓÓMMAATTAA

PPRROOGGRRAAMMAABBLLEE ((II))

88

Page 2: UNIDAD 8 52 PAG
Page 3: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 1

ÍNDICE ♦ OBJETIVOS .................................................................................................3

♦ INTRODUCCIÓN..........................................................................................4

8.1. Consideraciones iniciales .....................................................................5 8.1.1. ¿Cómo interpretamos en nuestro programa una entrada, salida o

marca? ..............................................................................................5 8.1.2. Operandos byte, palabra y doble palabra .........................................6 8.1.3. El acumulador (accu) ......................................................................10 8.1.4. Imagen de proceso de entradas (pae) y de salidas (PAA).............10 8.1.5. El RLO.............................................................................................11

8.2. Operaciones combinacionales ...........................................................12 8.2.1. Operación U (AND) .........................................................................12 8.2.2. Operación UN (AND con entradas negadas) ..................................13 8.2.3. Operación O (OR) ...........................................................................15 8.2.4. Operación on (or con entradas negadas) .......................................16 8.2.5. Operación O sin operando ..............................................................18 8.2.6. Operación U(...................................................................................19 8.2.7. Operación o( ...................................................................................20 8.2.8. La programación con marcas.........................................................22

8.3. Operaciones set y reset.......................................................................28 8.3.1. La operación S (SET)......................................................................28 8.3.2. La operación R (RESET) ................................................................28 8.3.3. La importancia del orden en que colocamos las instrucciones......29

8.4. Temporizadores ...................................................................................32 8.4.1. Carga del tiempo del temporizador .................................................32 8.4.2. Tipos de temporizaciones ...............................................................34

8.5. Contadores ...........................................................................................44 8.5.1. ¿Cómo cargar el valor de un contador?..........................................44 8.5.2. Operaciones de contaje ..................................................................45

♦ RESUMEN..................................................................................................49

Page 4: UNIDAD 8 52 PAG
Page 5: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 3

♦ OBJETIVOS

• Aprender a programar las operaciones combinacionales básicas.

• Aprender a desarrollar programas para aplicaciones secuenciales.

• Desarrollar la programación necesaria para trabajar con temporizadores.

• Aprender a programar contadores ascendentes y descendentes.

Page 6: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 4

♦ INTRODUCCIÓN

Escribir un programa para cualquier autómata requiere conocer el lenguaje de programación del mismo.

Los autómatas de la serie S7 de SIEMENS utilizan el lenguaje unificado STEP 7. Aprender el STEP 7 supone conocer las operaciones disponibles (operaciones como OR, AND, etc.) y la forma en que deben representarse.

También exige saber los diferentes operandos, cómo representarlos y cómo acceder a ellos (entradas, salidas, accediendo a nivel de bit, de byte, de palabra, etc.).

Seguramente podríamos obviar alguno de los conceptos que tratamos en el tema y comenzar a utilizarlas sin más. Pero utilizar y dominar son cosas distintas. Nosotros pretendemos dominar estas operaciones, y para ello creemos necesario enfocarlas tal y como lo hacemos.

Page 7: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 5

8.1. CONSIDERACIONES INICIALES

Antes de empezar a explicar los conceptos principales de programación es conveniente ver una serie de puntos que nos ayudarán a entender mejor los contenidos del tema.

8.1.1. ¿CÓMO INTERPRETAMOS EN NUESTRO PROGRAMA UNA ENTRADA, SALIDA O MARCA?

A modo de breve introducción, y para aclarar conceptos, a continuación hablamos de cada uno de ellos.

Entradas (E)

Aunque en principio podemos utilizar como operandos desde E0.0 hasta E127.7, sólo tiene sentido usar aquellos con los que realmente contemos. Si no contamos con módulos de periferia externa conectados al autómata, de nada sirve, por ejemplo, usar la entrada E0.0, dado que no existe para nuestro autómata.

En el autómata que nos ocupa utilizaremos las entradas integradas que ya tiene, es decir:

Byte 124: Entradas desde el bit E124.0 hasta el bit E124.7.

Byte 125: Entradas desde el bit E125.0 hasta el bit E125.7.

Byte 126: Entradas desde el bit E126.0 hasta el bit E126.3.

En total 20 entradas integradas:

Operación (Dirección del operando)

U E 32.0

Operación

Parámetro

Identificador del operando

Page 8: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 6

Salidas (A)

Con las salidas podemos hacer las mismas consideraciones que con las entradas.

En nuestro autómata utilizaremos:

Byte 124: Salidas desde el bit A124.0 hasta el bit A124.7.

Byte 125: Salidas desde el bit A125.0 hasta el bit A125.7.

En total 16 salidas integradas.

Marcas M

Las marcas vienen a ser los relés auxiliares de los circuitos eléctricos (como ya explicamos en temas anteriores). Podemos considerarlos como si de salidas se trataran, pero con la salvedad de que no tienen un terminal de salida. Contamos con 256 bytes de marcas para nuestro “uso y disfrute”.

Byte 0: Marcas desde el bit M 0.0 hasta el bit M 0.7.

Byte 256: Marcas desde el bit M 256.0 hasta el bit M 256.7.

8.1.2. OPERANDOS BYTE, PALABRA Y DOBLE PALABRA

Byte y palabra son conceptos que no tienen que sonarnos a nuevo.

Si repasamos un poco, recordaremos que definíamos a un byte como 8 bits, y que una palabra estaba compuesta por dos bytes.

Lo que nos toca ahora es conocer los operandos que trabajan con estas longitudes y cómo utilizarlos.

Operandos de longitud byte

El byte tiene una longitud de 8 bits que quedan definidos de derecha a izquierda con las direcciones bit de 0….7.

01234567

Byte

Page 9: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 7

Si pensamos en las entradas, salidas y marcas que venimos usando, casi está todo dicho.

Podemos usar por ejemplo desde la entrada E 124.0 hasta la E 124.7 (8 bits) accediendo a cada una de ellas a nivel de bit. (Ocho bits = 1 byte). Parece lógico que las entradas sean operandos a los que pueda accederse con una longitud de 1 byte.

Con las salidas y las marcas sucede exactamente lo mismo.

Los operandos de longitud byte son pues EB (entradas Byte), AB (salidas Byte) y MB (marcas Byte).

Para referirnos a la entrada 124 como operando byte escribiremos: EB 124.

La marca 10 será: MB 10.

La salida 125: AB 125.

Operandos de longitud palabra (Word)

La siguiente unidad al byte es la palabra, en inglés word. Tiene una longitud de 16 bits, que quedan definidos de derecha a izquierda con las direcciones bit de 0…15.

01234567

Byte

89101112131415

Byte

Word

Dos bytes de la zona de operandos de entradas, salidas y marcas, pueden formar conjuntamente una palabra de entradas EW, de salidas AW o de marcas MW.

Por ejemplo, EW 124, estará formada por EB 124 + EB 125.

Page 10: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 8

EB125EB124

EW124

E12

5.0

E12

5.7

E12

4.0

E12

4.7

Con los operandos EW, AW y MW, hay que tener presente que de los dos bytes, el de la izquierda debe tener la dirección byte más pequeña, siendo esta dirección byte idéntica a la dirección de la palabra.

Por ejemplo, la MW 8 será:

MB 9MB 8

MW 8

M9.

0

M9.

7

M8.

0

M8.

7

Y la MW 9:

MB 10MB 9

MW 9

M10

.0

M10

.7

M9.

0

M9.

7

Page 11: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 9

Si representamos la zona de memoria en la que se almacenan las marcas, lo veremos más claro.

M0.7 M0.6 M0.5 M0.4 M0.3 M0.2 M0.1 M0.0

M1.7 M1.6 M1.5 M1.4 M1.3 M1.2 M1.1 M1.0

MB 0

MB 1

MB 2

MB 3

MB 4

MB 5

MB 6

MB 7

... ... ... ... ... ... ... ...

MW

0M

W 2

MW

4

MW

1M

W 3

Operandos de longitud doble palabra (double word)

Tienen una longitud de 32 bits, que quedan definidos de derecha a izquierda con las direcciones bit de 0…31.

01234567891011121314152627282930

EW 124

202122232425 19 18 17 1631

EW 126

01234567012345670123456701234567

EB 124 EB 125 EB 126 EB 127

Dos palabras de la zona de operandos de entradas, salidas y marcas, pueden formar conjuntamente una doble palabra de entradas ED, de salidas AD, o de marcas MD.

Por ejemplo, ED 124, estará formada por EW124 + EW126

Page 12: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 10

8.1.3. EL ACUMULADOR (ACCU)

De momento nos conformaremos con saber que el acumulador es el registro donde se guardan todos los resultados de operaciones como transferencia de datos, operaciones aritméticas, con temporizadores, etc.

Nuestro autómata programable consta de dos acumuladores (ACCU1 y ACCU2) de 32 bits cada uno.

Cada uno de ellos se subdivide en ACCU-H y ACCU-L, es decir en parte alta (High) y parte baja (Low), tendremos pues:

ACCU1 (32 bits): ACCU1-H (16 bits) + ACCU1-L (16 bits) y

ACCU2 (32 bits): ACCU2-H (16 bits) + ACCU2-L (16 bits)

ACCU 1-LACCU 1-H

01631 15

ACCU 1

8.1.4. IMAGEN DE PROCESO DE ENTRADAS (PAE) Y DE SALIDAS (PAA)

La imagen de proceso de entradas (PAE) y salidas (PAA) es una zona de memoria que el autómata lee para actualizar cambios en las entradas y salidas del proceso.

De esta forma la PAE del autómata actualiza los posibles cambios que han podido suceder en el estado de entradas y la PAA actualiza las salidas que han podido cambiar después de ejecutar el programa. Todo esto lo indicamos en el siguiente esquema de bloques de forma simplificada:

Page 13: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 11

8.1.5. EL RLO

Es un bit de estado que nos indica si la operación en curso se cumple o no se cumple.

Por ejemplo, consideremos la siguiente instrucción: U E 124.0.

Suponiendo que el estado de la entrada sea “0” al ejecutar dicha instrucción el RLO será “0”, ya que la sentencia no se cumple. Si por el contrario el valor de la entrada es “1”, RLO será “1” ya que la instrucción se cumple.

Considerando la siguiente instrucción UN E 126.3 y que el valor de dicha entrada es “0”, ¿qué valor tiene RLO?

Leer entradas realesy almecenar en la PAE

Ejecutar el programainstrucción por instrucción,usando los valores dePAE y PAA

Actualizar las salidasreales en función delcontenido de la PAA

Page 14: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 12

8.2. OPERACIONES COMBINACIONALES

Las operaciones combinacionales son operaciones que trabajan con señales binarias. Como sabemos, las operaciones binarias sólo pueden tomar dos valores: “1” ó “0”, “ACTIVADO” o “DESACTIVADO”.

Como ya explicamos en el tema anterior, las operaciones combinacionales tratan básicamente la combinación de funciones AND y OR.

8.2.1. OPERACIÓN U (AND)

Con esta operación se consulta si se cumplen simultáneamente varias condiciones. Si se cumplen todas, el resultado en la salida será “1”, y basta con que una de ellas no se cumpla para que la salida esté a “0”.

Explicación:

Si cerramos los tres interruptores, el resultado de la combinación o RLO estará a “1” haciendo que la salida A 124.0 se active.

Si cualquiera de los tres interruptores se abre, el RLO será “0” y por lo tanto, la salida A 124.0 también estará a “0”.

Page 15: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 13

8.2.2. OPERACIÓN UN (AND CON ENTRADAS NEGADAS)

Con esta operación se consulta si no se cumplen simultáneamente varias condiciones.

Cuando no se cumple ninguna condición, la salida se activa, bastando que una de ellas se cumpla para que ésta esté a “0”.

SEA

SS0 S1 S2

E12

4.0

E12

4.1

E12

4.2

A12

4.0

K1AEsquema eléctrico

UN E 124.0UN E 124.1UN E 124.2= A 124.0

Page 16: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 14

Explicación:

La tabla de la verdad del programa es:

Y nos muestra que la única combinación que activa la salida A 124.0 se da, cuando las tres entradas están desactivadas (los tres interruptores abiertos).

La negación es otra operación combinacional cuyo único cometido es invertir una señal, poniéndola a “0” si estaba a “1” y viceversa. Se conoce en el mundillo como operación “NOT”.

Los “círculos” de entrada en el diagrama FUP son el símbolo de negación de las entradas.

E 124.0 E 124.1 E 124.2 A 124.0

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 0

Page 17: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 15

La tabla de verdad de la operación NOT es muy simple:

a a

0 1

1 0

donde a se lee “a negada”

Cuando utilizamos la operación UN, lo que hacemos es negar la entrada correspondiente y luego realizar la operación AND.

Volvamos al ejemplo anterior, y veamos la tabla de verdad con el paso intermedio de la negación:

Entradas reales Entradas negadas AND

E 124.0 E124.1 E 124.2 E 124.0 E 124.1 E 124.2 A 124.0

0 0 0 1 1 1 1

0 0 1 1 1 0 0

0 1 0 1 0 1 0

0 1 1 1 0 0 0

1 0 0 0 1 1 0

1 0 1 0 1 0 0

1 1 0 0 0 1 0

1 1 1 0 0 0 0

8.2.3. OPERACIÓN O (OR)

Con esta operación se consulta si se cumple una, de dos o más condiciones.

Bastará con que se cumpla una de ellas para que en la salida se ponga “1”

Para que la salida sea “0”, deberá ocurrir que no se cumpla ninguna condición.

Page 18: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 16

Explicación

Al cerrar cualquiera de los tres interruptores, dos de ellos o los tres, activaremos la salida A 124.0. La única combinación que desactiva la salida A 124.0, se da cuando los tres interruptores están abiertos.

8.2.4. OPERACIÓN ON (OR CON ENTRADAS NEGADAS)

Con esta operación se consulta si NO se cumple una, de dos o más condiciones.

Bastará con que no se cumpla una de ellas para que se ponga a “1” la salida.

SEA

S

S0 S1 S2

E12

4.0

E12

4.1

E12

4.2

A12

4.0

K1AEsquema eléctrico

ON E 124.0ON E 124.1ON E 124.2= A 124.0

Page 19: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 17

Explicación

Al cerrar los tres interruptores, desactivaremos la salida A 124.0. Ésta será la única combinación en que la salida A 124.0 estará a “0”.

Entradas reales Entradas negadas OR

E 124.0 E 124.1 E 124.2 E 124.0 E 124.1 E 124.2 A 124.0

0 0 0 1 1 1 1

0 0 1 1 1 0 1

0 1 0 1 0 1 1

0 1 1 1 0 0 1

1 0 0 0 1 1 1

1 0 1 0 1 0 1

1 1 0 0 0 1 1

1 1 1 0 0 0 0

Page 20: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 18

8.2.5. OPERACIÓN O SIN OPERANDO

Realizará la combinación OR de la primera parte del programa con la segunda. Lo mejor es ver un ejemplo:

SEA

S

S0 S1 S2

E12

4.0

E12

4.1

E12

4.2

A12

4.0

K1AEsquema eléctrico

E12

4.3

S3

U E 124.0U E 124.1OU E 124.2U E 124.3= A 124.0

Explicación

La salida A 124.0 se activará cuando E 124.0 y E 124.1 estén activadas o cuando E 124.2 y E 124.3 estén activadas.

En esencia, esta operación coloca dos ramas en paralelo, tal y como se observa en el esquema anterior de contactos.

Page 21: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 19

Desarrolla el programa correspondiente al siguiente esquema de contactos:

8.2.6. OPERACIÓN U(

Si nos piden que hagamos la operación 5x2+6, nos puede surgir la duda acerca de qué debemos realizar primero, si la suma o la multiplicación. Realizando 1º la multiplicación el resultado sería 16, mientras que si efectuamos la suma en primer lugar, sería 40.

Para evitar estas ambigüedades, utilizamos los paréntesis, de forma que para la expresión (5x2)+6 daríamos como resultado 16, y para 5x (2+6) diríamos que el resultado es 40 sin vacilar.

Los paréntesis dan prioridad a lo que tienen en su interior, puesto que al verlos, hacemos en primer lugar la operación que tienen dentro, y luego utilizamos el resultado de ésta para realizar las restantes.

Así pues la operación U( hará la combinación lógica AND entre la operación precedente, y el resultado de lo que contenga entre los paréntesis.

Desarrolla el programa correspondiente al siguiente esquema de contactos:

Page 22: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 20

El programa que nos piden será:

U E 124.0 O U E 124.1 U( O E 124.2 O E 124.3 ) = A 124.0

8.2.7. OPERACIÓN O(

La operación O hará la combinación lógica OR entre la operación precedente y el resultado de lo que contenga entre paréntesis.

Las consideraciones realizadas para la operación U son igualmente válidas para esta operación.

Desarrolla el programa correspondiente al siguiente esquema de contactos:

Page 23: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 21

La solución en este caso será:

U E 124.0 U( U E 124.1 O E 124.2 O( U E 124.3 U E 124.4 ) ) = A 124.0

Como podemos comprobar en el ejemplo, las operaciones O y U pueden estar anidadas, es decir, podemos tener paréntesis dentro de otros paréntesis.

Activar la salida A124.1 si de dos pulsadores, está activado solamente uno.

Siempre que los dos pulsadores estén activados o desactivados a la vez, activar la salida A 124.0

Page 24: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 22

8.2.8. LA PROGRAMACIÓN CON MARCAS

Ya dimos alguna pincelada de las marcas, diciendo que eran como salidas, pero sin terminal al exterior. Y eso es lo que son, sin más. Reciben el nombre de marcas, porque se usan entre otras cosas para “marcar” o recordar algún estado, como paso intermedio para activar, por ejemplo, una salida.

Supongamos un proceso en el que tenemos tres motores con sus correspondientes relés térmicos y un pulsador de paro general. Activando el pulsador “a” se activará el motor “A”, con el “b” el “B” y con el “c” el “C”. Cuando, cualquiera de los motores falle, deberán desconectarse todos. El esquema eléctrico tradicional sería como sigue:

a A b B c C

BA 124.1

CA 124.2

AA 124.0

E 124.4 E 124.5 E 124.6

P (E 124.0)

FA (E 124.1)

FB (E 124.2)

FC (E 124.3)

Page 25: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 23

P: pulsador de paro general (cerrado en reposo NC). FA: relé térmico motor A (NC). FB: relé térmico motor B (NC). FC: relé térmico motor C (NC). a: pulsador de marcha motor A (abierto en reposo NA). b: pulsador de marcha motor B (NA). c: pulsador de marcha motor C (NA). A: contactor motor A. B: contactor motor B. C: contactor motor C.

En primer lugar, vamos a hacer la asignación de entradas y salidas:

Entradas Salidas

P E 124.0 A: A 124.0

FA E 124.1 B: A 124.1

FB E 124.2 C: A 124.2

FC E 124.3

a E 124.4

b E 124.5

c E 124.6

Page 26: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 24

En principio, sin usar marcas, el programa podría ser como sigue:

U E 124.0 U E 124.1 U E 124.2 U E 124.3 U( O E 124.4 O A 124.0 ) = A 124.0 U E 124.0 U E 124.1 U E 124.2 U E 124.3 U( O E 124.5 O A 124.1 ) = A 124.1 U E 124.0 U E 124.1 U E 124.2 U E 124.3 U( O E 124.6 O A 124.2 ) = A 124.2

El diagrama KOP es:

Page 27: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 25

Utilizando una marca, el programa se simplificará bastante:

U E 124.0 U E 124.1 U E 124.2 U E 124.3 = M 0.0

Activamos esta marca si se dan las condiciones iniciales de funcionamiento, es decir P, FA, FB y FC. Si se observa la solución anterior, este pequeño programa se repite hasta tres veces.

U M 0.0 U( O A 124.0 O E 124.4 ) = A 124.0 U M 0.0 U( O A 124.1 O E 124.5 ) = A 124.1 U M 0.0 U( O A 124.2 O E 124.6 ) = A 124.2

La información referente a los contactos en serie desde la E124.0 hasta la E124.3 se encuentra en la marca M 0.0. Si esta marca está a “1” los contactos descritos anteriormente estarán cerrados.

Posteriormente en el programa no se arrastra la información de cada contacto si no que, se arrastra sólo la información de la marca.

Page 28: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 26

Explicación

Si todo está correcto (no ha saltado ningún relé térmico y no hemos pulsado el botón de paro), llegará tensión a las entradas E 124.0, E 124.1, E 124.2, y E 124.3 (recordemos que los contactos conectados a las mismas son cerrados en reposo), activándose la marca M 0.0.

Si la M 0.0 está activada (todo OK), pulsando cualquiera de los tres pulsadores a, b, o c, pondremos en marcha los motores correspondientes.

Para el 1er listado AWL utilizaremos 27 instrucciones, mientras que con el uso de la marca utilizaremos 23. Además de esta rebaja en el nº de instrucciones, también resulta más claro el seguimiento del programa.

Page 29: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 27

Realiza el programa correspondiente al siguiente esquema de contactos con marcas.

A 124.0

E 124.0

E 124.1 E 124.4 E 124.3

E 124.2

A 124.1

E 124.5

A 124.2

Page 30: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 28

8.3. OPERACIONES SET Y RESET

Estas instrucciones forman parte de las operaciones biestables que explicamos en el tema anterior.

Este tipo de instrucciones se utilizarán en aplicaciones donde se deben de tener en cuenta el estado anterior en el que encontraba el sistema.

8.3.1. LA OPERACIÓN S (SET)

La operación SET significa poner en marcha o lo que es lo mismo poner a “1”.

U E 124.0

S A 124.0

Al poner a “1” la entrada E 124.0, activaremos la salida A 124.0, y además permanecerá activada aunque la entrada E 124.0 vuelva a “0”.

8.3.2. LA OPERACIÓN R (RESET)

La operación RESET o más conocido RESETEAR significa poner a “0” o parar.

U E 124.0

S A 124.0

U E 124.1

R A 124.0

Del mismo modo que en el ejemplo anterior, activando la E 124.0, activa la salida A 124.0 permaneciendo así aunque E 124.0 se ponga a “0”.

Pero si activamos E 124.1, realizaremos el RESET de A 124.0 poniéndola nuevamente a “0”.

Page 31: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 29

Resumiendo, al activar E 124.0, pondremos a “1” A 124.0, y al activar E 124.1, pondremos a “0” A 124.0. Así pues tendremos en este pequeño programa el equivalente a un marcha-paro de un motor.

La única forma de poner a “0” un operando puesto a “1” por un SET es haciendo un RESET a ese mismo operando.

8.3.3. LA IMPORTANCIA DEL ORDEN EN QUE COLOCAMOS LAS INSTRUCCIONES

Retomemos el ejemplo anterior.

SEA

S

S0 S1

E12

4.0

E12

4.1

A12

4.0

L1Esquema eléctrico

U E 124.0S A 124.0U E 124.1R A 124.0

¿Qué sucederá si pulsamos a la vez S0 y S1?

Para contestar esta cuestión tenemos que recordar cuál es el funcionamiento del autómata.

Las entradas reales se convertían a unos y ceros y eran guardadas en la imagen de proceso de entradas (PAE).

Se ejecutaba el programa instrucción por instrucción, utilizando los valores almacenados en la PAE y actualizando la imagen de proceso de salidas (PAA).

Page 32: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 30

Y finalmente, se convertían los unos y ceros de la PAA en tensiones de las respectivas salidas y se volvía a empezar.

Si pulsamos S0 y S1 a la vez:

E 124.0 = "1"E 124.1 = "1"

U E 124.0S A 124.0U E 124.1R A 124.0

A 124.0 = "0"

Como la instrucción de RESET es la última, prevalecerá sobre la de SET, así que al pulsar S0 y S1 al mismo tiempo la salida A 124.0 no se activará y no lucirá la bombilla.

El programa se comportaría como un circuito con prioridad a la desconexión.

S0 K1A

K1A

S1

Page 33: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 31

Realizar un programa que arranque en cascada tres motores:

M1: Arranca con el pulsador 1(P1).

M2: Arranca con el pulsador 2 (P2) y sólo si M1 esta activo.

M3: Arranca con el pulsador 3 (P3) y sólo si M1 y M2 están activos.

Los motores tienen un único pulsador de paro común.

Descripción de entradas / salidas:

P1: E 124.1 P2: E 124.2 P3: E 124.3 Paro: E 125.0

M1: A 124.1 M2: A 124.2 M3: A 124.3

Page 34: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 32

8.4. TEMPORIZADORES

Tal y como contábamos en el tema anterior, un temporizador:

1. Se arranca con una condición de arranque.

2. Se carga con el tiempo deseado.

3. Se indica con qué tipo de temporización se quiere trabajar y con qué temporizador.

4. Cuando acabe de temporizar, el sistema activará un bit que podremos consultar.

Teniendo en cuenta todas estas fases, vamos a programar temporizadores con el autómata que nos ocupa.

8.4.1. CARGA DEL TIEMPO DEL TEMPORIZADOR

Los temporizadores tienen un área reservada en la memoria de la CPU. Esta área de memoria reserva una palabra de 16 bits para cada operando de temporizador.

Los 10 primeros bits (del 0 al 9) de la palabra de temporización contienen el valor de temporización en código binario. Este valor indica un número de unidades a contar. La actualización decremento el valor de temporización en una unidad y en el intervalo indicado por la base de tiempo hasta alcanzar el valor 0.

El valor de temporización se puede cargar en los formatos binario, hexadecimal o decimal codificado en binario (BCD).

El área de temporización va de 0 a 9.990 segundos.

El valor de temporización se puede cargar en cualquiera de los siguientes formatos:

w#16#txyz

siendo: t= la base de tiempo (es decir, intervalo de tiempo o resolución)

Page 35: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 33

Base de tiempo en código binario:

Base de tiempo Código binario

10 ms 00

100 ms 01

1 s 10

10 s 11

xyz = el valor de temporización en formato BCD.

Tiempo total = Base de tiempo x valor de temporización

Si queremos realizar una temporización de 5 segundos en este tipo de formato sería:

w#16#10005

donde: 10 equivale a “t”= 1 seg. (base de tiempos) y 005 equivale al valor “xyz” = valor de temporización.

Así pues tendremos: 1 seg. x 5= 5 seg.

S5T#aH_bM_cS_dMS

Siendo: H (horas), M (minutos), S (segundos), MS (milisegundos);

a, b, c, d los define el usuario.

La base de tiempo se selecciona automáticamente y el valor de temporización se redondea al próximo número inferior con esa base de tiempo.

El valor de temporización máximo que puede introducirse es de 9.990 segundos o 2H_46M_30S.

Page 36: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 34

Si queremos realizar una temporización de 5 segundos en este tipo de formato sería:

S5T#5S

Donde S5T# sería el formato obligatorio y 5S la temporización, en este caso 5 segundos.

A partir de ahora cargaremos el temporizador con el formato: S5T#XX, ya que consideramos que es mucho más sencillo y directo de manejar.

8.4.2. TIPOS DE TEMPORIZACIONES

Una vez cargado el dato del tiempo a temporizar nos dispondremos a utilizar un tipo de temporización u otra. El autómata S7-300 nos permite los siguientes:

Como opciones para el retardo de tiempo:

Temporizador como retardo a la conexión (SE).

Temporizador como retardo a la desconexión (SA).

Temporizador como retardo a la conexión con memoria (SS).

Como opciones de temporización por impulso:

Temporizador como impulso (SI).

Temporizador como impulso prolongado (SV).

Dependiendo de las necesidades del proceso utilizaremos un tipo u otro de temporizador, aunque en un porcentaje muy elevado se utilizan normalmente los temporizadores de retardo a la conexión (SE) y a la desconexión (SA).

Explicaremos ahora cómo funciona y cómo se programa cada uno de ellos:

Page 37: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 35

Temporizador como retardo a la conexión (SE)

Este temporizador arranca cuando existe un flanco ascendente en la condición de marcha. La salida se activará transcurrido el tiempo programado, siempre que haya permanecido activado la condición de marcha.

En el caso de que la condición de marcha se desactive, el temporizador deja de trabajar, esperando otro flanco para volver a empezar el contaje.

Se puede observar, que la salida “retarda” su conexión, el tiempo deseado. Todo esto se puede expresar mejor en un diagrama de tiempos:

"0"

"1"8 s 3 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t

El temporizador T 1 se pone a “1” al cabo de los 5 segundos preestablecidos, siempre y cuando el RLO continúe en estado “1”, es decir, E 124.0 siga activada.

U E 124.0

L S5T#5S

SE T1

Page 38: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 36

En este ejemplo, cuando activamos la condición U E 124.0 cargamos el temporizador con 5 segundos, con el temporizador T1 y en el modo de retardo a la conexión.

La operación SE es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

La operación L carga el valor de la temporización al acumulador. De momento nos quedaremos solamente con este concepto.

Es una instrucción que explicaremos con más detalle más adelante.

Temporizador como retardo a la desconexión (SA)

Cuando existe un flanco ascendente en la condición de marcha, RLO se pone a “1” y la salida se activa.

El tiempo empieza a contar cuando cae la condición de marcha. Una vez transcurrido el tiempo de retardo la salida también se desactiva.

Este temporizador “retarda” la desconexión de la salida una vez desactivada la condición de arranque.

Todo esto se puede expresar mejor en un diagrama de tiempos:

"0"

"1"8 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t

Page 39: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 37

Como se puede observar, al desactivar la entrada E 124.0 se produce un flanco decreciente del RLO, que activa la temporización de 5 segundos durante los cuales el T 1 continuará a “1”.

U E 124.0

L S5T#5S

SA T1

La operación SA es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

Temporizador como retardo a la conexión con memoria (SS)

La temporización se arranca con el flanco creciente de la condición de arranque. El temporizador se pone a “1” cuando ha transcurrido la temporización, independientemente del estado del RLO, es decir, cuando cae E 124.0.

Para colocar a “0” nuevamente al temporizador, tenemos que utilizar la instrucción reponer una temporización (R), que explicaremos a continuación. Veamos el funcionamiento en el siguiente cronograma:

"0"

"1"3 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t

Page 40: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 38

U E 124.0

L S5T#5S

SS T1

La operación SS es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

Temporizador como impulso (SI)

Esta operación arranca una temporización con el flanco creciente en la condición de arranque. En este momento se pone a “1” RLO.

Con RLO a “1” la salida se activa.

Mientras la condición de arranque está activada el temporizador cuenta el tiempo deseado.

Si la condición de arranque cae antes de que pase el tiempo programado, RLO se pone a “0” y la salida se desactiva.

Veamos el funcionamiento en el siguiente cronograma:

"0"

"1"8 s 3 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t3 s

Page 41: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 39

U E 124.0

L S5T#5S

SI T1

La operación SI es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

Temporizador como impulso prolongado (SV)

Esta operación arranca una temporización con el flanco creciente de la condición de entrada, por lo que RLO se pone a “1”.

Mientras dura la temporización, el temporizador estará a “1”, y además un cambio del RLO a “0” no afectará a la temporización.

Veamos el funcionamiento en el siguiente cronograma:

"0"

"1"8 s 3 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t5 s

En este caso, aunque la condición de entrada deje de cumplirse, el temporizador sigue contando y se desactiva cuando acaba de temporizar.

U E 124.0

L S5T#5S

SV T1

Page 42: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 40

La operación SV es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

Operación R. Reponer (borrar) una temporización

La temporización se repone al valor inicial mientras el RLO precedente a esta instrucción sea “1”. Si el RLO está a “0” la temporización no se borra.

U E 124.0

L S5T#5S

SS T 1

U E 124.1

R T 1

"0"

"1"3 s

"0"

"1"

RLO

E 124.0

"0"

"1"5 s

T1

t

t

t

"0"

"1"

E 124.1

t

"0"

"1"

RLO

t

Page 43: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 41

Cuando activamos E 124.0 arrancamos la temporización de T 1 como retardo a la conexión memorizada.

Una vez que el temporizador T 1 se ha puesto a “1”, la única forma de ponerlo a “0” es activando la entrada E 124.1, que coloca a “1” el RLO. Si el RLO está a “1” la instrucción R T 1 hace que T1 se ponga a “0”.

La operación R es inhibidora del RLO, es decir, que la siguiente instrucción de programa será tratada como instrucción de 1ª consulta.

Operaciones combinacionales con temporizadores. Los contactos del temporizador

Ya sabemos cómo cargar el tiempo de temporización, y hacer que el temporizador trabaje de una u otra forma mediante las operaciones de tiempo.

Ahora, necesitamos conocer cómo reflejar el estado de nuestro temporizador en alguna salida del autómata.

Con los temporizadores clásicos es muy sencillo, tan sólo habrá que utilizar los contactos que nos ofrecen y conectarlos como queramos al resto del circuito.

Cuando veíamos las operaciones combinacionales U, UN, O, etc, como operandos, usábamos entradas, salidas y marcas:

U E 124.0

= A 124.0

Con los temporizadores es idéntico:

U T 1

= A 124.0

Activará la salida A 124.0 cuando el temporizador T 1 esté a “1”.

U E 124.0

L S5T#5S

SI T 1

U T 1

= A 124.0

Page 44: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 42

Cronograma:

"0"

"1"8 s

"0"

"1"

T1

E 124.0

t

t5 s

"0"

"1"

A 124.0

t5 s

Al tratarse de una operación combinacional, obviamente podremos hacer combinaciones.

U E 124.0 Si activamos E 124.0, el RLO se pone a “1” (pasa de “0” a “1” flanco creciente).

L S5T#5S Cargamos la temporización de 5 seg.

SV T 1 Si ha habido un flanco creciente del RLO, arrancamos la temporización (5 segundos) como impulso prolongado (SV) y usando el temporizador T 1.

U E 124.1 Si la entrada E 124.1 está a “1”,

U T 1 y el temporizador T1 están a “1”,

= A 124.0 la salida A124.0 se pone a “1”.

Activar un motor (A 124.0) con un pulsador de marcha (E 124.1) y pararlo automáticamente 3 segundos después.

Page 45: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 43

Solución

Primeramente, buscaremos un temporizador que active el bit T1 una vez que ha terminado de temporizar. Éste puede ser el temporizador con retardo a la desconexión (SA).

Teniendo esto en cuenta tendremos:

U E 124.1

S A 124.0 Activamos el motor.

L S5T#3S

SA T1 Cargamos 3 seg. en T1 con el modo de temporización de retardo a la desconexión. También el bit de T1 se activará.

UN T1

R A 124.0 Si no está T1, habrá acabado de temporizar y reseteará la salida.

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.

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

"0"

"1"

A 124.0

t2 s 2 s 2 s

Page 46: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 44

8.5. CONTADORES

Ya hemos explicado anteriormente que son dispositivos que se utilizan para “contar” diferentes elementos.

La programación será:

1. CONDICIÓN DE INCREMENTO o DECREMENTO DE CONTADOR.

2. TIPO DE CONTADOR y CONTADOR A UTILIZAR.

3. ACTIVACIÓN DE BIT DEL CONTADOR (una vez que tenga la cuenta deseada).

8.5.1. ¿CÓMO CARGAR EL VALOR DE UN CONTADOR?

Para fijar un valor previo al contador, deberemos tenerlo cargado con antelación en el acumulador.

De nuevo este paso se realiza utilizando las operaciones de carga que veremos en capítulos siguientes.

Para salir del paso explicaremos la operación de carga de un valor de contador como constante. La operación en cuestión es L + Dato:

En el ejemplo se cargaría en el ACCU 1 un valor de contador de 57.

Los valores de contador válidos para esta instrucción van desde 0 hasta 999 inclusive.

Page 47: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 45

8.5.2. OPERACIONES DE CONTAJE

Estas operaciones permiten al autómata realizar directamente tareas de contaje.

Como comentábamos, es posible contar hacia delante (incrementar), ir hacia atrás (decrementar), cargar y borrar el contador.

Las operaciones de contaje disponibles son:

S: Activar o cargar un contador.

R: Borrar o reponer un contador.

ZV: Incrementar un contador (contaje hacia delante).

ZR: Decrementar un contador (contaje hacia atrás).

Operación S: activar o cargar un contador

Esta operación carga un contador con el valor depositado en el ACCU 1, si se ha producido un flanco creciente del RLO.

L C#5 Carga el valor 5 en el ACCU 1 como constante de contador.

U E 124.0 Si activamos la entrada E 124.0 (flanco creciente del RLO).

S Z 1 Carga el valor contenido en el ACCU 1 (5) en el contador Z1.

Aprovecharemos este ejemplo para comentar algo importante:

En primer lugar decir que la operación U no modifica el contenido del ACCU 1 al ejecutarse. La operación U, y en general todas las combinacionales, “pasan totalmente” del acumulador ACCU 1.

En segundo lugar, como veremos más adelante, las operaciones de carga, ni dependen, ni modifican el RLO. Así que éstas “pasan totalmente” de lo que le suceda al RLO.

Page 48: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 46

¿A dónde nos lleva todo esto?, pues a que el siguiente código de programa funcionaría exactamente igual que el propuesto en el ejemplo:

U E 124.0 Si activamos E 124.0, el autómata detecta un flanco creciente del RLO.

L C#5 Cargamos en el ACCU 1 el valor 5 (no se modifica el RLO).

S Z 1 Como se ha detectado un flanco creciente del RLO, cargamos el contenido del ACCU 1 (5) en el contador Z1.

La operación S es inhibidora del RLO, y lo que sigue a continuación ya deberíamos saberlo a estas alturas: la siguiente operación combinacional será tratada como si fuera de primera consulta.

Operación ZV: incrementar un contador (contaje hacia delante)

Es una operación muy simple, con un flanco creciente de la condición de activación del contador, se incrementa en 1 el valor de un contador.

U E 124.0 Si activamos E 124.0 (flanco creciente del RLO).

ZV Z 1 Incrementamos en 1 el valor deL contador Z1.

Si no hemos cargado previamente el contador con la operación S, su valor inicial será cero, es decir, comenzará a contar desde cero.

Si intentamos sobrepasar el valor de 999, no se nos permitirá, permaneciendo a este valor aunque utilicemos nuevamente la operación ZV.

Operación ZR: decrementar un contador (contaje descendente)

Es una operación muy simple, con un flanco creciente de la condición de activación del contador, se decrementa en 1 el valor de un contador.

U E 124.0 Si activamos E 124.0 (flanco creciente del RLO).

ZR Z 1 Decrementar en 1 el valor del contador Z1.

Page 49: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 47

Si no hemos cargado previamente el contador con la operación S, su valor inicial será cero, y cualquier intento de decrementarlo será desestimado.

Operación R: borrar o reponer un contador

Esta operación pone a 0 el valor del contador siempre y cuando se active la condición de borrado de contador.

U E 124.0 Si activamos E 124.0 (RLO = 1).

R Z 1 Pone a 0 el valor del contador.

Como esta operación no depende del flanco creciente del RLO, permanecerá activa durante el tiempo que lo esté el RLO, es decir, mientras el RLO esté a “1” no se tendrán en cuenta las operaciones S, ZV y ZR que se hubieran ejecutado anteriormente.

Tal y como advertimos en temas anteriores, el orden de colocación de las instrucciones influirá en el funcionamiento del programa. No es lo mismo incrementar y después borrar que borrar y después incrementar.

Operaciones combinacionales con contadores

Las operaciones combinacionales con contadores evalúan si el valor del contador es cero o diferente de cero:

Si el valor del contador es 0, se considera que su estado es “0”.

Si el valor del contador es diferente de 0, se considera que su estado es “1”.

Para usar las operaciones combinacionales con contadores, procederemos de igual forma que hasta ahora, indicando la operación combinacional deseada y el operando utilizado. Por ejemplo U Z1, UN Z1, ON Z1, etc.

Page 50: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 48

Analicemos el siguiente programa:

U E 124.0

R Z 1

U E 124.1

ZV Z 1

U Z 1

= A 124.0

S A 124.1

La entrada E 124.0 borrará el contenido del contador (pasando por tanto su estado a “0”).

La entrada E 124.1 incrementará el valor del contador en 1 (pasando su estado a “1”), cuando se produzca un flanco creciente del RLO.

Las salidas A 124.0 y A 124.1 se activarán cuando el valor del contador sea distinto de cero, con la única diferencia de que la A 124.0 se activará sólo cuando el valor de Z 1 sea distinto de cero, y la A 124.1 permanecerá activada desde el primer momento en que suceda esto.

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.

Page 51: UNIDAD 8 52 PAG

Autómatas Programables

Unidad 8. Programación del autómata programable (I). 49

♦ RESUMEN

• Se pueden representar operandos como bit, byte, palabra o doble palabra.

• El acumulador es el registro donde se guardan todos los resultados de operaciones como transferencia de datos, operaciones aritméticas, con temporizadores, etc.

• El RLO es un bit que almacena el resultado de las operaciones combinacionales ejecutadas. Si la combinación resulta cierta se pone a “1”, y si resulta falsa se pone a “0”.

• El “bit de primera consulta”, indica al autómata si la operación combinacional a tratar es una primera consulta (“1”) o si se trata de las siguientes consultas (“0”).

• Cuando una operación es inhibidora del RLO, coloca el bit de 1ª consulta a “1”.

• Las operaciones combinacionales binarias son U, UN, O, ON, O sin operando, U( y O(.

• Las salidas pueden activarse y ofrecernos una tensión, pero también tienen contactos abiertos y cerrados a nuestra disposición.

• Las marcas son como salidas, pero sin terminal al exterior.

• A la hora de realizar la programación de un automatismo, debemos tener muy en cuenta si los contactos reales de pulsadores, finales de carrera, etc., son abiertos o cerrados en reposo.

• Los diagramas de tiempo o cronogramas son gráficos que representan el estado de entradas, salidas, etc., en función del tiempo.

Page 52: UNIDAD 8 52 PAG

Formación Abierta

Unidad 8. Programación del autómata programable (I). 50

• Para cargar el tiempo de temporización en el ACCU 1 usaremos una operación de carga. En cualquier caso, deberemos especificar la Temporización con el formato S5T#xx

• Las operaciones de tiempo del S7-300 son SI, SV, SE, SS, SA, y R.

• Podemos comprobar el estado de un temporizador utilizando las operaciones combinacionales.

• Para cargar el valor de un contador en el ACCU 1 usaremos una operación de carga. El valor del contador tiene como límites mínimo y máximo 0 y 999 respectivamente.

• Las operaciones de contaje del S7-300 son S, ZV, ZR y R.