tutorial de programación en simatic s5

18

Click here to load reader

Upload: carlos-tovar

Post on 11-Aug-2015

27 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Tutorial de programación en Simatic S5

Tutorial de programación en Simatic S5-90U

INDICE volver

Objetivos.

Introducción

Introducción a la automatización.

Control mediante autómatas programables.

Ciclo de trabajo en un autómata.

Lenguajes de programación.

Estructura interna del autómata

Entradas y salidas.

Marcas de memoria.

Registros y acumuladores.

Temporizadores y contadores.

Constantes.

Estructura del programa.

Tipos de módulos.

Operaciones

Inhibición.

Operaciones combinacionales.

Operaciones de memoria.

Operaciones de transferencia.

Operaciones de tiempo.

Operaciones de contaje.

Operaciones de comparación.

Operaciones aritméticas.

Operaciones de llamada a módulo (salto).

Otras operaciones.

Operaciones combinacionales (módulos FB).

Activación de indicadores.

Ejemplo

Programa de ejemplo.

Control de estación de bombeo con un motor M1.

Page 2: Tutorial de programación en Simatic S5

OBJETIVOS

Con este pequeño tutorial no se pretende enseñar todo lo referente al autómata Simatic S5-

90U, más bien se debe tomar como guía base para iniciarse en la programación básica de

este aparato y de los autómatas en general. Por lo tanto nos limitaremos a las operaciones,

datos, entradas, y salidas básicas.

Por supuesto lo aquí expuesto también vale para el S5-95U, ya que este último contiene al

S5-90U, y para toda la serie Simatic S5 (ya que todos emplean el mismo lenguaje AWL).

Las únicas diferencias estarán en el número de módulos, contadores, etc.

Es necesario que el lector esté familiarizado con el álgebra de Boole, y si se está

familiarizado con algún otro lenguaje de programación (como basic o ensamblador) será

mucho más sencillo y rápido.

INTRODUCCION A LA AUTOMATIZACION

Todo proceso industrial se compone de secuencias de acciones que deben ser controladas.

En los procesos sencillos un operario es el que se encarga de este control y de vigilar la

marcha correcta del sistema, pero en la mayoría de las ocasiones esto no es posible debido

al tamaño del proceso.

Una de las alternativas son los procesos automáticos discretos, en los que los operarios son

sustituidos por un sistema de control secuencial y las variables de entrada y salida son del

tipo todo-nada.

Características de los controladores secuenciales:

- El proceso a controlar se puede descomponer en una seria de fases o estados que se

suceden de forma secuencial.

- A cada uno de los estados del proceso se le asigna una variable interna que es la

encargada de memorizar el estado actual del proceso.

- Cada uno de los estados, cuando está activo, puede realizar una serie de acciones sobre las

variables de salida.

- La transición entre estados se controla mediante las señales procedentes de los sensores, a

través de las variables de entrada.

- El controlador realiza siempre, y en el mismo orden, la misma secuencia de estados.

CONTROL MEDIANTE AUTOMATAS PROGRAMABLES

La mejor opción para el control de procesos industriales es el empleo de autómatas

programables.

Page 3: Tutorial de programación en Simatic S5

Estos aparatos se basan en el empleo de un microcontrolador para el manejo de las entradas

y salidas. La memoria del aparato contendrá tanto el programa de usuario que le

introduzcamos como el sistema operativo que permite ejecutar secuencialmente las

instrucciones del programa.

Opcionalmente, en la mayoría de los autómatas, también se incluyen una serie de funciones

pre-implementadas de uso general (como reguladores PID).

La mayor ventaja es que si hay que variar el proceso basta con cambiar el programa

introducido en el autómata(en la mayoría de los casos). Otra ventaja es que el autómata

también nos permite saber el estado del proceso, incluyendo la adquisición de datos para un

posterior estudio.

CICLO DE TRABAJO EN UN AUTOMATA

El autómata va a ejecutar nuestro programa de usuario en un tiempo determinado, el cual va

a depender sobre todo de la longitud del programa. Esto es debido a que cada instrucción

tarda un tiempo determinado en ejecutarse, por lo que en procesos rápidos será un factor

crítico.

En un sistema de control mediante autómata programable tendremos los siguientes tiempos:

1. Retardo de entrada.

2. Vigilancia y exploración de las entradas.

3. Ejecución del programa de usuario.

4. Transmisión de las salidas.

5. Retardo en salidas.

Los puntos 2,3 y 4 sumados dan como total el tiempo de ciclo del autómata. Tras este ciclo

es cuando se modifican las salidas, por lo que si varian durante la ejecución del programa

tomarán como valor el último que se haya asignado.

LENGUAJES DE PROGRAMACION

Para toda la familia de autómatas SIMATIC S5 se emplea el lenguaje STEP 5, en sus 4

posibles representaciones:

- Lista de instrucciones (AWL).

- Esquema de funciones (FUP): se representa gráficamente con símbolos lógicos.

- Esquema de contactos (KOP): se representa gráficamente con símbolos eléctricos.

- GRAPH 5/GRAPH Mini: solo puede emplearse, con limitaciones, en el S5-95U.

Aquí estudiaremos el formato AWL, el cual representa el programa como sucesión de

abreviaturas de instrucciones. En este formato una instrucción tiene la siguiente estructura:

Page 4: Tutorial de programación en Simatic S5

Operación

|

| Identificador del operando

| |

002: U E 32.0 Operación AND lógica

| | |

| Parámetro Comentarios

|

Dirección relativa de la instrucción en el módulo respectivo

La operación indica al autómata lo que debe hacer con el operando. El parámetro indica la

dirección del operando.

ENTRADAS Y SALIDAS

Hay 8 entradas (E) normales de 1bit:

E32.0 ... E32.7

Y también dos entradas especiales de 1bit:

E33.0 y E33.1

Estas últimas tienen la peculiaridad de funcionar como entradas digitales o como entrada de

alarma (E33.0) y entrada rápida (E33.1).

Hay 6 salidas (A), de 1bit cada una:

A32.0 ... A32.5

MARCAS DE MEMORIA

También son denominadas como variables de memoria. Son de propósito general, es decir,

podremos emplearlas en lo que deseemos. Se distinguen dos tipos de marcas de memoria:

- Remanentes: Estas marcas permanecerán en memoria aunque apaguemos el autómata. En

total hay 64 bytes de memoria para estas marcas, por lo que tendremos 512 marcas

remanentes de 1 bit cada una:

M0.0 ... M63.7.

- No remanentes: Estas marcas se borrarán en cuanto apaguemos el autómata. También

tenemos 64 bytes destinados a estas marcas, por lo que tendremos 512 marcas no

remanentes de 1 bit cada una:

M64.0 ... M127.7.

Page 5: Tutorial de programación en Simatic S5

Hay que destacar que las marcas se ponen a cero cada vez que reseteamos el autómata. Esta

característica nos puede ser de mucha utilidad en algunos casos (ver el programa de

ejemplo al final del tutorial).

REGISTROS Y ACUMULADORES

Todas las operaciones que hagamos con las entradas y las salidas se deben efectuar en

algún sitio. En este caso tendremos:

- Registro de estado (VKE):

Su tamaño es de 1 bit.

Aquí es donde efectuaremos las instrucciones combinacionales, la carga de entradas y la

asignación de salidas a nivel de bit.

- Acumuladores (AKKU1 y AKKU2):

Sus tamaños son de 16 bits cada uno.

Cada vez que carguemos un dato en los acumuladores se seguirá la siguiente secuencia:

Contenido de AKKU2 ===> Se pierde el contenido

Contenido de AKKU1 ===> AKKU2

DATO ===> AKKU1

A su vez, cuando realicemos una operación entre AKKU's (como suma o resta) el resultado

se introducirá en el AKKU1, perdiéndose el valor antes allí contenido.

TEMPORIZADORES Y CONTADORES

En el S5-90U tenemos 32 temporizadores:

T0 ... T31

y 32 contadores:

Z0 ... Z31

De los 32 contadores hay 8 que no se borran al desconectar el autómata (son remanentes),

dichos contadores son Z0 a Z7.

Para consultar el estado de cada uno de ellos podremos usarlos como si fueran entradas

(mediante operaciones combinacionales) o introduciendo su valor en los AKKU.

CONSTANTES

A la hora de cargar datos en acumuladores, temporizadores, etc... tendremos varias

posibilidades en la forma de introducir el dato:

Page 6: Tutorial de programación en Simatic S5

- KB: 8 bits (0 a 255 en decimal).

- KC: 8 bits (2 caracteres alfanuméricos).

- KF: 16 bits (nº en coma fija, +32768 a -32768).

- KH: 16 bits (nº hexadecimal, 0000 a FFFF).

- KM: 16 bits (binario natural).

- KY: 16 bits (2 bytes, 0 a 255 en decimal cada uno).

- KT: 16 bits (valor de preselección de temporizadores, 0.0 a 999.3 en decimal).

- KZ: 16 bits (valor de preselección de contadores, 0 a 999 en decimal).

ESTRUCTURA DEL PROGRAMA

Vamos a tener dos opciones para escribir el programa:

- Lineal: Se emplea un único módulo de programa (OB1). Este módulo se procesa

cíclicamente, es decir, tras la última instrucción se volverá a ejecutar la primera. Si la tarea

a controlar es simple esta es la mejor forma.

- Estructurada: Para el caso de tareas complejas es más conveniente dividir el programa en

módulos. Mediante esta forma logramos un programa más claro y adquirimos la posibilidad

de poder llamar a un módulo desde distintas partes del programa (lo que evita repetir

código).

+-----+

| | ===> +-----+

| | | |

| | <=== +-----+

| OB1 |

| | ===> +-----+

| | | | ===> +-----+

| | | | | |

| | | | <=== +-----+

| | <=== +-----+

+-----+

En la programación estructurada se comienza y termina en el módulo OB1, desde el cual

saltaremos y retornaremos a los módulos que nos interesen. Por supuesto se podrá saltar

desde un módulo a otro (anidado), siempre que no superemos los 16 niveles de salto que

permite como máximo el autómata. Otras limitaciones son:

- El salto de un módulo a otro debe ser siempre hacia adelante (ej. Se podrá saltar de PB1 a

PB2, pero no a la inversa).

- No se pueden dar dos saltos a un mismo módulo desde el módulo actual. (ej. No se podrá

saltar dos veces a PB3 desde PB2, pero si puede saltarse a PB3 desde distintos módulos).

Tanto en la programación lineal como en la estructurada los módulos acabarán mediante la

instrucción BE.

Page 7: Tutorial de programación en Simatic S5

La memoria del autómata S5-90U está limitada a 2K bytes. Cada instrucción ocupa

generalmente 2 bytes, por lo que dispondremos de 1000 lineas de programa

aproximadamente.

TIPOS DE MODULOS

Existen cuatro tipos de módulos en el S5-90U (5 en el S5-95U):

- Módulos de organización (OB):

Son los que gestionan el programa de usuario.

OB1, OB3, OB21 y OB22.

Destacar el OB1, que es el módulo del programa principal, el OB3, que es el que contiene

el programa controlado por alarma, y el OB13, que es el módulo para programas

controlados por tiempo. El OB22 es empleado por el sistema operativo.

- Módulos de programa (PB):

Son los que incluyen el programa de usuario dividido, normalmente, según aspectos

funcionales o tecnológicos.

PB0 ... PB63

- Módulos funcionales (FB):

Son módulos de programa especiales. Aquí se introducen las partes de programa que

aparecen con frecuencia o poseen gran complejidad. Poseen un juego de instrucciones

ampliado.

FB0 ... FB63

- Módulos de datos (DB):

En ellos se almacenan datos para la ejecución del programa, como valores reales, textos,

etc...

DB0 ... DB63

Los módulos DB1 y DB2 se emplean para definir las condiciones internas del autómata,

por lo que no deben emplearse.

256 palabras de datos.

Para emplear un módulo de datos es necesario activarlo previamente (como se verá más

adelante).

INHIBICION

Page 8: Tutorial de programación en Simatic S5

En adelante mencionaremos varias veces que el VKE es inhibido.

Esto quiere decir que el VKE no puede operarse (salvo dos operaciones de memoria

seguidas) y que la próxima instrucción combinacional será de carga.

En cada ciclo de programa siempre se comienza con el VKE inhibido, es decir, la primera

instrucción combinacional empleada será siempre de carga.

Hay que señalar también que la operación de carga se podrá negar si empleamos una

operación combinacional negada (como un NOR o un NAND).

Ejemplos (se supone el VKE inhibido):

UN E 32.0 Hace que el VKE valga la entrada 32.0 negada (0=>1,

1=>0).

O E 32.5 Hace que el VKE valga la entrada 32.5 directamente.

OPERACIONES COMBINACIONALES

U( AND del VKE con el resultado de las operaciones entre

paréntesis.

O( OR del VKE con el resultado de la operaciones entre

paréntesis.

) Fin del paréntesis.

U E,A,M,Z,T AND (multiplicación lógica) del VKE con E, A, M, Z o T.

O E,A,M,Z,T OR (suma lógica) del VKE con E, A, M, Z o T.

UN E,A,M,Z,T NAND (AND negado) del VKE con E, A, M, Z o T.

ON E,A,M,Z,T NOR (OR negado) del VKE con E, A, M, Z o T.

Ejemplos:

Page 9: Tutorial de programación en Simatic S5

En el siguiente ejemplo la salida se hace uno si la entrada 32.0 es cero y las entradas 32.1 y

32.3 son uno (las asignaciones se ven más adelante):

UN E 32.0 Carga la entrada 32.0, negada, en el VKE.

U E 32.1 Efectua una multipicación lógica AND entre la entrada 32.1 y

VKE.

U E 32.3 Efectua una multipicación lógica AND entre la entrada 32.3 y

VKE.

= A 32.2 Asigna el valor de VKE a la salida 32.2.

BE

Veamos que hemos hecho:

En primer lugar se ha efectuado una lectura de la entrada 32.0 y se ha introducido de

forma negada en el registro VKE. Esto se ha producido debido a que el VKE se encuentra

inhibido (ya que estamos en el principio del programa).

A continuación hemos multiplicado el contenido del VKE con las entradas 32.1 y 32.3.

Es decir, si las dos entradas son 1 lógico (activadas) el VKE pasará a valer 1, siempre y

cuando la entrada 32.0 sea 0 lógico.

Después hemos asignado el valor del VKE a la salida 32.2. Por tanto si llegados aquí el

VKE es 1 se activará la salida 32.2.

Por último hemos terminado el programa con la instrucción BE (que indica al autómata el

fin del módulo).

El esquema de contactos equivalente a este programa sería:

|-----[/]----[ ]----[ ]----( )-----|

E32.0 E32.1 E32.3 A32.2

El mismo ejemplo empleando paréntesis sería:

UN E 32.0

U(

O E 32.1 Esta instrucción también puede ser UE 32.1, da lo mismo.

U E 32.3

)

= A 32.2

BE

En este caso lo que sucede es que el resultado de las operaciones entre paréntesis se

multiplican con el valor previo del VKE.

Como podemos ver, la primera instrucción tras abrir paréntesis se realiza con el VKE

inhibido con lo que da igual utilizar una operación AND u OR, ya que el resultado será el

mismo.

OPERACIONES DE MEMORIA

S E,A,M SET (puesta a uno) de E, A, o M, si VKE=1.

Page 10: Tutorial de programación en Simatic S5

R E,A,M RESET (puesta a cero) de E, A, o M, si VKE=1.

= E,A,M Asigna a E, A, o M el valor del VKE.

Estas operaciones inhiben el VKE.

Ejemplo (báscula S-R):

U E 32.0 Leemos la entrada 32.0.

S A 32.2 Si VKE=1 la salida 32.2 se hace 1 (SET).

U E 32.1 Leemos la entrada 32.1.

R A 32.2 Si VKE=1 la salida 32.2 se hace 0 (RESET).

BE

Aquí vemos un claro ejemplo de RESET prevalente (RESET sobre SET). Esto quiere decir

que la orden RESET prevalece a la de SET si ambas son activadas simultáneamente.

OPERACIONES DE TRANSFERENCIA

LDW Copia en el AKKU1 el contenido de la palabra de datos

del módulo de datos activo (ver ADB).

TDW Copia el contenido de AKKU1 en la palabra de datos

del módulo de datos activo (ver ADB).

LKZ Transfiere un valor constante (0-999) al AKKU1, este

valor es de preselección de contadores.

LKB Transfiere un valor constante (0-255) al AKKU1.

LKT * Transfiere un valor constante (0.0-999.3) al AKKU1,

este valor es de preselección de temporizadores.

El valor anterior de AKKU1 se pasa a AKKU2, y el valor anterior de AKKU2 se pierde.

VKE no varia.

Page 11: Tutorial de programación en Simatic S5

* La base de tiempos es el segundo número: ej. en LKT 40.2 la base es 2.

BASE DE TIEMPOS: 0 (0.01 seg) 1 (0.1 seg) 2 (1 seg) 3 (10 seg)

Para ver con más claridad estas operaciones vea el ejemplo de las instrucciones de tiempo.

OPERACIONES DE TIEMPO

Todas las operaciones de tiempo se reinician con un cambio en el flanco del VKE. Esto

quiere decir que si el VKE depende de una entrada (o de varias a través de una operación)

un flanco de subida en la señal de entrada reinicia el temporizador (ver ejemplo).

SI Arranca como impulso una temporización. Con el flanco

creciente de VKE se arranca la temporización. Con VKE

igual a cero se reinicia la temporización. Durante la

temporización la salida es 1.(Inhibe VKE).

SV Arranca una temporización como impulso prolongado. La

temporización comienza con el flanco creciente del

VKE. Un VKE=0 no afecta la temporización. Durante la

temporización la salida es 1.(Inhibe VKE).

SE Arranca como retardo a la conexión una temporización.

La temporización se arranca con el flanco creciente

del VKE. Con VKE=0 se reinicia la temporización. La

salida es 1 cuando transcurra la temporización y en

la entrada VKE se mantenga a 1. (Inhibe VKE).

SA Arranca como retardo a la desconexión una temporiz.

La temporización arranca con el flanco decreciente

del VKE. VKE=1 reinicia la temporización. La salida

es 1 si VKE=1 o corre la temporización. (Inhibe VKE).

SS Arranca como retardo a la conexión memorizada una

temporización. La temporización arranca con el flanco

creciente del VKE. VKE=0 no afecta la temporización.

La salida es 1 tras la temporización y no regresa a

cero hasta ejecutar la instrucción RT. (Inhibe VKE).

R Reponer (borrar) un temporización.

La temporización se repone al valor inicial mientras

VKE sea 1. VKE=0 no afecta a la temporización.

Tras RT la salida del temporizador es cero hasta que

que se reinicie. (Inhibe VKE).

Hay que destacar que la temporización, se decrementa internamente en el autómata hasta

alcanzar el valor cero.

Otra consideración a tener en cuenta es que la temporización tiene un error igual a la base

de tiempos considerada, por lo que se debe emplear la base de tiempos más reducida

posible.

Page 12: Tutorial de programación en Simatic S5

Ejemplo (impulso):

U E 32.0 Introducimos en el VKE el valor de la entrada 32.0.

L KT 500.0 Cargamos en AKKU1 un valor de temporización de 5

segundos.

SI T 1 Si el VKE está a 1 continua la temporización (con un

flanco

NOP 0 de subida se reinicia ésta).

NOP 0

NOP 0

U T 1 Cargamos en el VKE la salida digital del temporizador.

= A 32.5 Introducimos la salida del temporizador en la salida

32.5.

El cronograma asociado sería:

+------+ +--+

E 32.0: -+ +-----+ +----

+---+ +--+

A 32.5: -+ +--------+ +----

5seg menos de 5seg

El motivo de emplear tres instrucciones NOP 0 seguidas tras la instrucción de

temporización es para poder pasar a esquema de contactos dentro del programa STEP 5. Si

no va a utilizar este sistema de representación puede eliminar sin problemas estas líneas, no

afectan al programa.

OPERACIONES DE CONTAJE

SZ Activa un contador si VKE=1. El contenido de AKKU1

pasa a ser el nuevo valor del contador. (Inhibe VKE).

RZ Borrar un contador (puesta a cero) si VKE=1.

(Inhibe VKE).

ZV * Incrementa el valor de un contador con el flanco

creciente de VKE, con VKE=0 no varia.

ZR * Decrementa el valor de un contador con el flanco

creciente de VKE, con VKE=0 no varia.

Page 13: Tutorial de programación en Simatic S5

* El contaje es cíclico, es decir, si el contador es cero y se decrementa pasará a tener valor

999, y viceversa al incrementar.

Siempre que el valor del contador sea diferente de cero, el valor de su salida será uno.

Ejemplo (contador descendente):

U E 32.0

ZR Z 1 Con la entrada 32.0 decrementamos el contador Z1.

NOP 0

U E 32.1 La entrada 32.1 es para poner el contador Z1 a 7.

LK Z 7 Cargamos en AKKU1 el valor 7 de preselección de

contadores.

S Z 1 Con el flanco creciente de la entrada 32.1 ponemos Z1 a

7.

NOP 0

NOP 0

NOP 0

U Z 1 Leemos la salida digital del contador.

= A 32.5 Asignamos la salida del contador a la salida 32.5.

BE

El efecto de las lineas NOP 0 es el mismo que en los temporizadores, solo sirven para poder

pasar a esquema de contactos.

OPERACIONES DE COMPARACION

!=F Si los AKKU son iguales VKE=1, sino VKE=0.

><F Si los AKKU son diferentes VKE=1, sino VKE=0.

>F Si AKKU2 > AKKU1 VKE=1, sino VKE=0.

>=F Si AKKU2 >= AKKU1 VKE=1, sino VKE=0.

<F Si AKKU2 < AKKU1 VKE=1, sino VKE=0.

<=F Si AKKU2 <= AKKU1 VKE=1, sino VKE=0.

Para poder comparar dos operandos es necesario cargarlos sucesivamente en los dos

AKKU's. La ejecución de operaciones no depende del VKE. El resultado de la operación se

Page 14: Tutorial de programación en Simatic S5

introduce en el VKE, si se cumple la comparación el VKE será 1, en caso contario será

cero.

También se activan los indicadores ANZ0 y ANZ1 dependiendo del resultado.

OPERACIONES ARITMETICAS

+F Se suman los AKKUs y el resultado se introduce en

AKKU1.

-F AKKU1 = AKKU2 - AKKU1

Dependiendo del resultado se activan los indicadores.

OPERACIONES DE LLAMADA A MODULO (SALTO)

SPA PB,FB Salto absoluto a otro módulo, sin depender del VKE.

SPB PB,FB Salto absoluto a otro módulo, si el VKE=1.

ADB Indica el módulo de datos a usar (desde el 2 al 63,

los módulos 0 y 1 son usados por el sistema).

BE Fin del módulo, conservando el valor de VKE.

BEA Fin del módulo de forma absoluta, conserva el VKE.

BEB Fin condicional del módulo si VKE=1, si VKE=0 sigue

la ejecución del módulo actual pero con VKE=1.

Recordar que el número máximo de anidamientos (saltos sin retorno) son 16, y que el salto

simpre debe ser hacia adelante. Hay que tener precaución, ya que el propio autómata puede

emplear algún anidamiento en determinadas circunstancias.

OTRAS OPERACIONES

Page 15: Tutorial de programación en Simatic S5

STP Produce la parada del autómata.

NOP0 Operación nula (16 bits a cero en la RAM).

NOP1 Operación nula (16 bits a uno en la RAM).

OPERACIONES COMBINACIONALES (MODULOS FB)

UW * AND de AKKU1 con AKKU2, resultado en AKKU1.

OW * OR de AKKU1 con AKKU2, resultado en AKKU1.

XOW * XOR de AKKU1 con AKKU2, resultado en AKKU1.

* Se realizan bit a bit y afectan a ANZ0 y ANZ1 (indicadores).

ACTIVACION DE INDICADORES

El autómata posee tres indicadores:

- ANZ 0.

- ANZ 1.

- OV Desbordamiento (Overflow).

Las siguientes operaciones afectan a las indicaciones:

- Operaciones de comparación.

- Operaciones aritméticas.

- Operaciones de desplazamiento.

- Algunas operaciones de transformación.

El estado de las indicaciones condiciona diferentes operaciones de salto, las cuales no son

objeto de este tutorial (ya que entonces sería absurdo no ver el resto de instrucciones que

posee el autómata). Por tanto no veremos el resultado de las operaciones en los indicadores,

si le es de utilidad vea la página 8-69 del manual de STEP 5.

PROGRAMA DE EJEMPLO

A continuación se verá un programa de ejemplo listo para introducir en el emulador de

autómata (disponible gratuitamente en esta Web).

Page 16: Tutorial de programación en Simatic S5

Se ha preferido este sistema, en vez de dar directamente el programa para Step 5, debido a

que la mayoría de la gente no posee un autómata en casa con el que practicar. No obstante

la sintaxis es casi la misma.

Se aconseja, para no despistarse, ver la ayuda del programa y observar las diferencias entre

el autómata y el emulador.

CONTROL DE ESTACION DE BOMBEO CON UN MOTOR M1

Se trata de automatizar la siguiente estación de bombeo:

+--+

/========>|M1|=======\

" +--+ "

---+ " +--- N3- | " |

| " | | |

| " |-N1 N2- | | (grifo de salida)

+---------+ +---------==

Depósito A Depósito B

Disponemos de un selector INT de dos posiciones manual/automático.

En modo manual el motor M1 funciona hasta que se pulsa el pulsador de paro P o hasta que

el agua del depósito A está por debajo de N1.

En modo autmático el motor se pone en marcha cuando el nivel del agua en el depósito A

está por encima de N1 y en depósito B por debajo de N2, continua funcionando hasta que el

nivel alcanza a N3 o se alcanza el nivel N1 en el depósito A.

En ambos modos de funcionamiento el motor está protegido por el térmico F2.

La instalación dispone de dos lámparas que indican:

- L1 motor M1 funcionando.

- L2 disparo del térmico F2.

Entradas y salidas que emplearemos:

Detector de nivel N1 = E32.0

Detector de nivel N2 = E32.1

Detector de nivel N3 = E32.2

Térmico = E32.3

Int. manual/automát. = E32.5

Parada manual = E32.6

Motor M1 = A32.0

Lámpara M1 conectado = A32.2

Lámpara dis. térmico = A32.3

SOLUCION:

Page 17: Tutorial de programación en Simatic S5

:ob1

ue 32.3 # Se revisa el térmico

spbpb 2 # Si está activado el térmico salta a PB2

ue 32.5 # Se revisa si está en manual o automático

spbpb 0 # Si está en automático salta a PB0

ue 32.5

om 0.1 # Hacemos VKE=1 si se conectó el pulsador antes

beb

ue 32.0 # Se revisa el nivel N1

une 32.6 # Se revisa la parada

spbpb 1 # Si se cumple lo anterior se conecta el motor

spbpb 3 # Se desconecta el motor

be

***

:pb0 # Modo automático

ue 32.3 # Hacemos VKE=0

=m 0.1 # Borramos la marca del pulsador manual

ue 32.0

une 32.1

une 32.2 # Depósito por debajo de N2 y N3

spbpb 1 # Si N1 está activado y N2 no, se conecta el motor

ue 32.3 # Ponemos VKE=0

oe 32.2

one 32.0

spbpb 3 # Si se alcanza N3 o N1 se desconecta el motor

one 32.3 # Ponemos VKE=1

be

***

:pb1 # Encender el motor

une 32.3 # Si el térmico está apagado VKE=1

=a 32.0 # Encendemos motor

=a 32.2 # Encendemos lámpara

ue 32.3 # Ponemos VKE=0

be

***

:pb2 # Disparo del térmico

ue 32.3

=a 32.3

spapb 3 # Apagamos el motor

stp # Paramos el autómata

be

***

:pb3 # Apagar motor

ue 32.3 # Si el térmico está apagado VKE=0

=a 32.0 # Apagamos motor

=a 32.2 # Apagamos lámpara

ue 32.6 # Revisamos el pulsador de parada

om 0.1 # Hacemos VKE=1 si se conectó el pulsador

=M 0.1 # Recordamos que se ha usado el pulsador

ue 32.3 # Ponemos VKE=0

be

***

NOTA:

Page 18: Tutorial de programación en Simatic S5

Como puede observarse se ha empleado la entrada del térmico para poner el VKE a 0 o 1.

Esto se ha hecho así debido a que esta entrada normalmente es cero, y si es uno se debe

parar el programa (por lo que no se incurre en ningún error).

También hay que destacar el uso que se le ha dado a la marca 0.1, que hemos utilizado

aprovechándonos de la característica ya mencionada en su momento (el borrado de éstas al

resetear el autómata).

Debido a esto podemos asegurar que en la primera ejecución del programa dicha marca es

cero y el pulsador no ha sido pulsado previamente.