Vous êtes sur la page 1sur 18

Tutorial de programacin en Simatic S5-90U

INDICE volver

Objetivos.

Introduccin

Introduccin a la automatizacin. Control mediante autmatas programables. Ciclo de trabajo en un autmata. Lenguajes de programacin.

Estructura interna del autmata


Entradas y salidas. Marcas de memoria. Registros y acumuladores. Temporizadores y contadores. Constantes. Estructura del programa. Tipos de mdulos.

Operaciones

Inhibicin. Operaciones combinacionales. Operaciones de memoria. Operaciones de transferencia. Operaciones de tiempo. Operaciones de contaje. Operaciones de comparacin. Operaciones aritmticas. Operaciones de llamada a mdulo (salto). Otras operaciones. Operaciones combinacionales (mdulos FB). Activacin de indicadores.

Ejemplo

Programa de ejemplo. Control de estacin de bombeo con un motor M1.

OBJETIVOS
Con este pequeo tutorial no se pretende ensear todo lo referente al autmata Simatic S590U, ms bien se debe tomar como gua base para iniciarse en la programacin bsica de este aparato y de los autmatas en general. Por lo tanto nos limitaremos a las operaciones, datos, entradas, y salidas bsicas. Por supuesto lo aqu expuesto tambin 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 estarn en el nmero de mdulos, contadores, etc. Es necesario que el lector est familiarizado con el lgebra de Boole, y si se est familiarizado con algn otro lenguaje de programacin (como basic o ensamblador) ser mucho ms sencillo y rpido.

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 mayora de las ocasiones esto no es posible debido al tamao del proceso. Una de las alternativas son los procesos automticos 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. Caractersticas 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 transicin entre estados se controla mediante las seales procedentes de los sensores, a travs 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 opcin para el control de procesos industriales es el empleo de autmatas programables.

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 mayora de los autmatas, tambin 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 autmata(en la mayora de los casos). Otra ventaja es que el autmata tambin nos permite saber el estado del proceso, incluyendo la adquisicin de datos para un posterior estudio.

CICLO DE TRABAJO EN UN AUTOMATA


El autmata 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 instruccin tarda un tiempo determinado en ejecutarse, por lo que en procesos rpidos ser un factor crtico. En un sistema de control mediante autmata programable tendremos los siguientes tiempos: 1. Retardo de entrada. 2. Vigilancia y exploracin de las entradas. 3. Ejecucin del programa de usuario. 4. Transmisin de las salidas. 5. Retardo en salidas. Los puntos 2,3 y 4 sumados dan como total el tiempo de ciclo del autmata. Tras este ciclo es cuando se modifican las salidas, por lo que si varian durante la ejecucin del programa tomarn como valor el ltimo que se haya asignado.

LENGUAJES DE PROGRAMACION
Para toda la familia de autmatas SIMATIC S5 se emplea el lenguaje STEP 5, en sus 4 posibles representaciones: - Lista de instrucciones (AWL). - Esquema de funciones (FUP): se representa grficamente con smbolos lgicos. - Esquema de contactos (KOP): se representa grficamente con smbolos elctricos. - GRAPH 5/GRAPH Mini: solo puede emplearse, con limitaciones, en el S5-95U. Aqu estudiaremos el formato AWL, el cual representa el programa como sucesin de abreviaturas de instrucciones. En este formato una instruccin tiene la siguiente estructura:

002: | | | Direccin relativa de la instruccin en el mdulo respectivo

Operacin | | Identificador del operando | | U E 32.0 Operacin AND lgica | | Parmetro Comentarios

La operacin indica al autmata lo que debe hacer con el operando. El parmetro indica la direccin del operando.

ENTRADAS Y SALIDAS
Hay 8 entradas (E) normales de 1bit: E32.0 ... E32.7 Y tambin 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 rpida (E33.1). Hay 6 salidas (A), de 1bit cada una: A32.0 ... A32.5

MARCAS DE MEMORIA
Tambin son denominadas como variables de memoria. Son de propsito general, es decir, podremos emplearlas en lo que deseemos. Se distinguen dos tipos de marcas de memoria: - Remanentes: Estas marcas permanecern en memoria aunque apaguemos el autmata. 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 borrarn en cuanto apaguemos el autmata. Tambin tenemos 64 bytes destinados a estas marcas, por lo que tendremos 512 marcas no remanentes de 1 bit cada una: M64.0 ... M127.7.

Hay que destacar que las marcas se ponen a cero cada vez que reseteamos el autmata. Esta caracterstica 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 algn sitio. En este caso tendremos: - Registro de estado (VKE): Su tamao es de 1 bit. Aqu es donde efectuaremos las instrucciones combinacionales, la carga de entradas y la asignacin de salidas a nivel de bit. - Acumuladores (AKKU1 y AKKU2): Sus tamaos 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 operacin entre AKKU's (como suma o resta) el resultado se introducir en el AKKU1, perdindose 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 autmata (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:

- KB: 8 bits (0 a 255 en decimal). - KC: 8 bits (2 caracteres alfanumricos). - 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 preseleccin de temporizadores, 0.0 a 999.3 en decimal). - KZ: 16 bits (valor de preseleccin de contadores, 0 a 999 en decimal).

ESTRUCTURA DEL PROGRAMA


Vamos a tener dos opciones para escribir el programa: - Lineal: Se emplea un nico mdulo de programa (OB1). Este mdulo se procesa cclicamente, es decir, tras la ltima instruccin 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 ms conveniente dividir el programa en mdulos. Mediante esta forma logramos un programa ms claro y adquirimos la posibilidad de poder llamar a un mdulo desde distintas partes del programa (lo que evita repetir cdigo).
+-----+ | | | | | | | OB1 | | | | | | | | | | | +-----+

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

En la programacin estructurada se comienza y termina en el mdulo OB1, desde el cual saltaremos y retornaremos a los mdulos que nos interesen. Por supuesto se podr saltar desde un mdulo a otro (anidado), siempre que no superemos los 16 niveles de salto que permite como mximo el autmata. Otras limitaciones son: - El salto de un mdulo 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 mdulo desde el mdulo actual. (ej. No se podr saltar dos veces a PB3 desde PB2, pero si puede saltarse a PB3 desde distintos mdulos). Tanto en la programacin lineal como en la estructurada los mdulos acabarn mediante la instruccin BE.

La memoria del autmata S5-90U est limitada a 2K bytes. Cada instruccin ocupa generalmente 2 bytes, por lo que dispondremos de 1000 lineas de programa aproximadamente.

TIPOS DE MODULOS
Existen cuatro tipos de mdulos en el S5-90U (5 en el S5-95U): - Mdulos de organizacin (OB): Son los que gestionan el programa de usuario. OB1, OB3, OB21 y OB22. Destacar el OB1, que es el mdulo del programa principal, el OB3, que es el que contiene el programa controlado por alarma, y el OB13, que es el mdulo para programas controlados por tiempo. El OB22 es empleado por el sistema operativo. - Mdulos de programa (PB): Son los que incluyen el programa de usuario dividido, normalmente, segn aspectos funcionales o tecnolgicos. PB0 ... PB63 - Mdulos funcionales (FB): Son mdulos 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 - Mdulos de datos (DB): En ellos se almacenan datos para la ejecucin del programa, como valores reales, textos, etc... DB0 ... DB63 Los mdulos DB1 y DB2 se emplean para definir las condiciones internas del autmata, por lo que no deben emplearse. 256 palabras de datos. Para emplear un mdulo de datos es necesario activarlo previamente (como se ver ms adelante).

INHIBICION

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 prxima instruccin combinacional ser de carga. En cada ciclo de programa siempre se comienza con el VKE inhibido, es decir, la primera instruccin combinacional empleada ser siempre de carga. Hay que sealar tambin que la operacin de carga se podr negar si empleamos una operacin combinacional negada (como un NOR o un NAND). Ejemplos (se supone el VKE inhibido):
UN E 32.0 1=>0). O E 32.5 Hace que el VKE valga la entrada 32.0 negada (0=>1, Hace que el VKE valga la entrada 32.5 directamente.

OPERACIONES COMBINACIONALES
U( AND del VKE con el resultado de las operaciones entre parntesis.

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

) Fin del parntesis.

U E,A,M,Z,T AND (multiplicacin lgica) del VKE con E, A, M, Z o T.

O E,A,M,Z,T OR (suma lgica) 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:

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 ms adelante):
UN E U E VKE. U E VKE. = A BE 32.0 32.1 32.3 32.2 Carga la entrada 32.0, negada, en el VKE. Efectua una multipicacin lgica AND entre la entrada 32.1 y Efectua una multipicacin lgica AND entre la entrada 32.3 y Asigna el valor de VKE a la salida 32.2.

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 continuacin hemos multiplicado el contenido del VKE con las entradas 32.1 y 32.3. Es decir, si las dos entradas son 1 lgico (activadas) el VKE pasar a valer 1, siempre y cuando la entrada 32.0 sea 0 lgico. Despus 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 instruccin BE (que indica al autmata el fin del mdulo). El esquema de contactos equivalente a este programa sera:
|-----[/]----[ ]----[ ]----( )-----| E32.0 E32.1 E32.3 A32.2

El mismo ejemplo empleando parntesis sera:


UN U( O U ) = BE E 32.0 E 32.1 E 32.3 A 32.2 Esta instruccin tambin puede ser UE 32.1, da lo mismo.

En este caso lo que sucede es que el resultado de las operaciones entre parntesis se multiplican con el valor previo del VKE. Como podemos ver, la primera instruccin tras abrir parntesis se realiza con el VKE inhibido con lo que da igual utilizar una operacin 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.

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 (bscula S-R):


U S U R BE E A E A 32.0 32.2 32.1 32.2 Leemos la entrada 32.0. Si VKE=1 la salida 32.2 se hace 1 (SET). Leemos la entrada 32.1. Si VKE=1 la salida 32.2 se hace 0 (RESET).

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 simultneamente.

OPERACIONES DE TRANSFERENCIA
LDW Copia en el AKKU1 el contenido de la palabra de datos del mdulo de datos activo (ver ADB).

TDW Copia el contenido de AKKU1 en la palabra de datos del mdulo de datos activo (ver ADB).

LKZ Transfiere un valor constante (0-999) al AKKU1, este valor es de preseleccin 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 preseleccin de temporizadores.

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

* La base de tiempos es el segundo nmero: 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 ms 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 travs de una operacin) un flanco de subida en la seal de entrada reinicia el temporizador (ver ejemplo).
SI Arranca como impulso una temporizacin. Con el flanco creciente de VKE se arranca la temporizacin. Con VKE igual a cero se reinicia la temporizacin. Durante la temporizacin la salida es 1.(Inhibe VKE).

SV

Arranca una temporizacin como impulso prolongado. La temporizacin comienza con el flanco creciente del VKE. Un VKE=0 no afecta la temporizacin. Durante la temporizacin la salida es 1.(Inhibe VKE). Arranca como retardo a la conexin una temporizacin. La temporizacin se arranca con el flanco creciente del VKE. Con VKE=0 se reinicia la temporizacin. La salida es 1 cuando transcurra la temporizacin y en la entrada VKE se mantenga a 1. (Inhibe VKE). Arranca como retardo a la desconexin una temporiz. La temporizacin arranca con el flanco decreciente del VKE. VKE=1 reinicia la temporizacin. La salida es 1 si VKE=1 o corre la temporizacin. (Inhibe VKE). Arranca como retardo a la conexin memorizada una temporizacin. La temporizacin arranca con el flanco creciente del VKE. VKE=0 no afecta la temporizacin. La salida es 1 tras la temporizacin y no regresa a cero hasta ejecutar la instruccin RT. (Inhibe VKE). Reponer (borrar) un temporizacin. La temporizacin se repone al valor inicial mientras VKE sea 1. VKE=0 no afecta a la temporizacin. Tras RT la salida del temporizador es cero hasta que que se reinicie. (Inhibe VKE).

SE

SA

SS

Hay que destacar que la temporizacin, se decrementa internamente en el autmata hasta alcanzar el valor cero. Otra consideracin a tener en cuenta es que la temporizacin tiene un error igual a la base de tiempos considerada, por lo que se debe emplear la base de tiempos ms reducida posible.

Ejemplo (impulso):
U E 32.0 L KT 500.0 segundos. SI T 1 flanco NOP 0 NOP 0 NOP 0 U T 1 = A 32.5 32.5. Introducimos en el VKE el valor de la entrada 32.0. Cargamos en AKKU1 un valor de temporizacin de 5 Si el VKE est a 1 continua la temporizacin (con un de subida se reinicia sta). Cargamos en el VKE la salida digital del temporizador. Introducimos la salida del temporizador en la salida

El cronograma asociado sera:


+------+ +--+ E 32.0: -+ +-----+ +---+---+ +--+ A 32.5: -+ +--------+ +---5seg menos de 5seg

El motivo de emplear tres instrucciones NOP 0 seguidas tras la instruccin de temporizacin es para poder pasar a esquema de contactos dentro del programa STEP 5. Si no va a utilizar este sistema de representacin puede eliminar sin problemas estas lneas, 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.

* El contaje es cclico, 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 NOP 0 U E 32.1 LK Z 7 contadores. S Z 1 7. NOP 0 NOP 0 NOP 0 U Z 1 = A 32.5 BE

Con la entrada 32.0 decrementamos el contador Z1. La entrada 32.1 es para poner el contador Z1 a 7. Cargamos en AKKU1 el valor 7 de preseleccin de Con el flanco creciente de la entrada 32.1 ponemos Z1 a

Leemos la salida digital del contador. Asignamos la salida del contador a la salida 32.5.

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 ejecucin de operaciones no depende del VKE. El resultado de la operacin se

introduce en el VKE, si se cumple la comparacin el VKE ser 1, en caso contario ser cero. Tambin se activan los indicadores ANZ0 y ANZ1 dependiendo del resultado.

OPERACIONES ARITMETICAS
+F AKKU1. Se suman los AKKUs y el resultado se introduce en

-F AKKU1 = AKKU2 - AKKU1

Dependiendo del resultado se activan los indicadores.

OPERACIONES DE LLAMADA A MODULO (SALTO)


SPA PB,FB Salto absoluto a otro mdulo, sin depender del VKE.

SPB PB,FB Salto absoluto a otro mdulo, si el VKE=1.

ADB Indica el mdulo de datos a usar (desde el 2 al 63, los mdulos 0 y 1 son usados por el sistema).

BE Fin del mdulo, conservando el valor de VKE.

BEA Fin del mdulo de forma absoluta, conserva el VKE.

BEB Fin condicional del mdulo si VKE=1, si VKE=0 sigue la ejecucin del mdulo actual pero con VKE=1.

Recordar que el nmero mximo de anidamientos (saltos sin retorno) son 16, y que el salto simpre debe ser hacia adelante. Hay que tener precaucin, ya que el propio autmata puede emplear algn anidamiento en determinadas circunstancias.

OTRAS OPERACIONES

STP

Produce la parada del autmata.

NOP0 Operacin nula (16 bits a cero en la RAM).

NOP1 Operacin 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 autmata posee tres indicadores: - ANZ 0. - ANZ 1. - OV Desbordamiento (Overflow). Las siguientes operaciones afectan a las indicaciones: - Operaciones de comparacin. - Operaciones aritmticas. - Operaciones de desplazamiento. - Algunas operaciones de transformacin. El estado de las indicaciones condiciona diferentes operaciones de salto, las cuales no son objeto de este tutorial (ya que entonces sera absurdo no ver el resto de instrucciones que posee el autmata). Por tanto no veremos el resultado de las operaciones en los indicadores, si le es de utilidad vea la pgina 8-69 del manual de STEP 5.

PROGRAMA DE EJEMPLO
A continuacin se ver un programa de ejemplo listo para introducir en el emulador de autmata (disponible gratuitamente en esta Web).

Se ha preferido este sistema, en vez de dar directamente el programa para Step 5, debido a que la mayora de la gente no posee un autmata 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 autmata y el emulador.

CONTROL DE ESTACION DE BOMBEO CON UN MOTOR M1


Se trata de automatizar la siguiente estacin de bombeo:
+--+ /========>|M1|=======\ " +--+ " ---+ " +--N3- | " | | " | | | | " |-N1 N2- | | (grifo de salida) +---------+ +---------== Depsito A Depsito B

Disponemos de un selector INT de dos posiciones manual/automtico. En modo manual el motor M1 funciona hasta que se pulsa el pulsador de paro P o hasta que el agua del depsito A est por debajo de N1. En modo autmtico el motor se pone en marcha cuando el nivel del agua en el depsito A est por encima de N1 y en depsito B por debajo de N2, continua funcionando hasta que el nivel alcanza a N3 o se alcanza el nivel N1 en el depsito A. En ambos modos de funcionamiento el motor est protegido por el trmico F2. La instalacin dispone de dos lmparas que indican: - L1 motor M1 funcionando. - L2 disparo del trmico F2. Entradas y salidas que emplearemos: Detector de nivel N1 = E32.0 Detector de nivel N2 = E32.1 Detector de nivel N3 = E32.2 Trmico = E32.3 Int. manual/automt. = E32.5 Parada manual = E32.6 Motor M1 = A32.0 Lmpara M1 conectado = A32.2 Lmpara dis. trmico = A32.3 SOLUCION:

:ob1 ue 32.3 spbpb 2 ue 32.5 spbpb 0 ue 32.5 om 0.1 beb ue 32.0 une 32.6 spbpb 1 spbpb 3 be *** :pb0 ue 32.3 =m 0.1 ue 32.0 une 32.1 une 32.2 spbpb 1 ue 32.3 oe 32.2 one 32.0 spbpb 3 one 32.3 be *** :pb1 une 32.3 =a 32.0 =a 32.2 ue 32.3 be *** :pb2 ue 32.3 =a 32.3 spapb 3 stp be *** :pb3 ue 32.3 =a 32.0 =a 32.2 ue 32.6 om 0.1 =M 0.1 ue 32.3 be ***

# # # #

Se Si Se Si

revisa el trmico est activado el trmico salta a PB2 revisa si est en manual o automtico est en automtico salta a PB0

# Hacemos VKE=1 si se conect el pulsador antes # # # # Se Se Si Se revisa el nivel N1 revisa la parada se cumple lo anterior se conecta el motor desconecta el motor

# Modo automtico # Hacemos VKE=0 # Borramos la marca del pulsador manual # Depsito por debajo de N2 y N3 # Si N1 est activado y N2 no, se conecta el motor # Ponemos VKE=0 # Si se alcanza N3 o N1 se desconecta el motor # Ponemos VKE=1 # # # # # Encender el motor Si el trmico est apagado VKE=1 Encendemos motor Encendemos lmpara Ponemos VKE=0

# Disparo del trmico # Apagamos el motor # Paramos el autmata # # # # # # # # Apagar motor Si el trmico est apagado VKE=0 Apagamos motor Apagamos lmpara Revisamos el pulsador de parada Hacemos VKE=1 si se conect el pulsador Recordamos que se ha usado el pulsador Ponemos VKE=0

NOTA:

Como puede observarse se ha empleado la entrada del trmico 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 ningn error). Tambin hay que destacar el uso que se le ha dado a la marca 0.1, que hemos utilizado aprovechndonos de la caracterstica ya mencionada en su momento (el borrado de stas al resetear el autmata). Debido a esto podemos asegurar que en la primera ejecucin del programa dicha marca es cero y el pulsador no ha sido pulsado previamente.