Tutorial de programación en Simatic S5

download Tutorial de programación en Simatic S5

of 18

Transcript of Tutorial de programación en Simatic S5

  • 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 S5-

    90U, 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:

  • Operacin

    |

    | Identificador del operando

    | |

    002: U E 32.0 Operacin AND lgica

    | | |

    | Parmetro Comentarios

    |

    Direccin relativa de la instruccin en el mdulo respectivo

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

    +-----+

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

    | | | |

    | | +-----+

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

    | | | | | |

    | | | |

  • 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 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

    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 32.0 Carga la entrada 32.0, negada, en el VKE.

    U E 32.1 Efectua una multipicacin lgica AND entre la entrada 32.1 y

    VKE.

    U E 32.3 Efectua una multipicacin lgica 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 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 E 32.0

    U(

    O E 32.1 Esta instruccin tambin 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 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 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 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).

    SE 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).

    SA 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).

    SS 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).

    R 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).

    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 Introducimos en el VKE el valor de la entrada 32.0.

    L KT 500.0 Cargamos en AKKU1 un valor de temporizacin de 5

    segundos.

    SI T 1 Si el VKE est a 1 continua la temporizacin (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 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 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 preseleccin 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 AKKU2 > AKKU1 VKE=1, sino VKE=0.

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

  • 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 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 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 # Se revisa el trmico

    spbpb 2 # Si est activado el trmico salta a PB2

    ue 32.5 # Se revisa si est en manual o automtico

    spbpb 0 # Si est en automtico 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 automtico

    ue 32.3 # Hacemos VKE=0

    =m 0.1 # Borramos la marca del pulsador manual

    ue 32.0

    une 32.1

    une 32.2 # Depsito 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 trmico est apagado VKE=1

    =a 32.0 # Encendemos motor

    =a 32.2 # Encendemos lmpara

    ue 32.3 # Ponemos VKE=0

    be

    ***

    :pb2 # Disparo del trmico

    ue 32.3

    =a 32.3

    spapb 3 # Apagamos el motor

    stp # Paramos el autmata

    be

    ***

    :pb3 # Apagar motor

    ue 32.3 # Si el trmico est apagado VKE=0

    =a 32.0 # Apagamos motor

    =a 32.2 # Apagamos lmpara

    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:

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