automatica 2015 uco

194
Tema 6 Programación de los autómatas programables

description

uco automatica 2015

Transcript of automatica 2015 uco

  • Tema 6

    Programacin de los

    autmatas programables

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Representacin de sistemas de

    control

  • Automtica

    Programacin del autmata

    La programacin de un autmata

    programable o PLC consiste en el

    establecimiento de una secuencia

    ordenada de instrucciones que resuelven

    una determinada tarea de control.

    Dicha secuencia establece la relacin entre

    las distintas variables lgicas y constituye

    el programa del autmata programable.

  • Automtica

    Lenguaje de programacin

    Un lenguaje de programacin es el conjunto de smbolos y textos inteligibles por la unidad de programacin que le sirven al usuario para codificar sobre un cierto autmata las leyes de control deseadas.

    [Balcells]

  • Automtica

    Lenguajes de programacin de PLC

    Los lenguajes de programacin que se suelen emplear en los autmatas programables son: Lenguajes literales

    Instrucciones formadas por letras, nmeros y smbolos especiales.

    Lenguajes booleanos y de lista de instrucciones (nemnicos) [STL] (AWL)

    Lenguajes de texto estructurado (SCL)

    Lenguajes grficos Las instrucciones se representan mediante smbolos grficos

    Lenguaje de diagrama de contactos [LAD] (KOP)

    Lenguaje de diagrama lgico o plano de funciones [FBD] (FUP)

    Lenguaje funcional de secuencia [SFC] (S7- GRAPH).

  • Automtica

    Programacin bsica en diagrama

    de contactos

    La tarea que debe realizar el autmata

    programable se especifica grficamente

    mediante un diagrama o esquema de

    contactos.

    Facilita el cambio de sistemas de control

    lgico implementados con rels

    Facilita el diseo de sistemas sencillos a

    tcnicos habituados a sistemas de control con

    rels

  • Automtica

  • Automtica

    Asignacin de variables

    I124.0 I124.0

    Q124.0

  • Automtica

    KOP Diagrama de contactos

    Operaciones con contactos

    Operaciones lgicas

    Operaciones de memorizacin

    Operaciones de inversin

    Operaciones con contactos y bloques

    Operaciones con flancos

    Operaciones de temporizacin y contaje

  • Automtica

    KOP - Ejemplo bsico

  • Automtica

    Programacin bsica en lista de

    instrucciones

    El lenguaje de lista de instrucciones

    (AWL) de STEP 7 consiste en un conjunto

    de cdigos simblicos, cada uno de los

    cuales corresponde a una o ms

    operaciones o instrucciones de lenguaje

    mquina.

  • Automtica

    AWL - Lista de instrucciones

    Ms de 130 instrucciones bsicas

    Nombres de variables e instrucciones:

    Denominacin inglesa

    Denominacin alemana

    Diferencias poco significativas con IEC 1131-3

    Instrucciones:

    Operador [Modificador] Operando

  • Automtica

    STEP7 inglesa (Internacional) STEP7 alemana (SIMATIC)

    Variables

    predefinidas

    Entradas I, IB, IW, ID E, EB, EW, ED

    Salidas Q, QB, QW,QD A, AB, AW, AD

    Marcas M, MB, MW, MD M, MB, MW, MD

    Operaciones

    lgicas

    bsicas

    Carga inicial A O U O

    Y A U

    NO-Y AN UN

    O O O

    NO-O ON ON

    O-exclusiva X X

    NO-O-exclusiva XN XN

    Operaciones

    con

    parntesis

    Y A( U(

    NO-Y AN( UN(

    O O( O(

    NO-O ON( ON(

    O-exclusiva X( X(

    NO-O-exclusiva XN( XN(

    Cerrar parntesis ) )

    Terminar

    una cadena

    lgica

    Asignar = =

    Desactivar R R

    Activar S S

    Operaciones

    con flancos

    Flanco negativo FN FN

    Flanco positivo FP FP

  • Automtica

    AWL. Instrucciones segn

    acciones que ejecutan

    Instrucciones que operan con variables lgicas

    Instrucciones de temporizacin

    Instrucciones de contaje

    Instrucciones que operan con combinaciones binarias

    Instrucciones de control

  • Automtica

    AWL Ejemplo bsico

    O(

    A I 124.0

    AN I 124.1

    A Q 124.2

    )

    O(

    A M 0.0

    A I 124.3

    A M 0.2

    )

    = Q 124.5

  • Automtica

    Programacin bsica en diagrama

    de funciones

    Lenguaje simblico en el que las distintas

    combinaciones entre variables se

    representan mediante los smbolos de las

    puestas lgicas correspondientes.

    FUP para Siemens

  • Automtica

    FUP Diagrama de funciones

    Operaciones lgicas

    Operaciones de memorizacin

    Operaciones con flancos

    Operaciones de temporizacin

    Operaciones de contaje

  • Automtica

    FUP Ejemplo bsico

  • Tema 6

    Programacin de los

    autmatas programables

    Parte prctica

  • Automtica

    Tipos de datos en Step 7Denominacin Bit

    s

    Ejemplo Descripcin

    BOOL 1 FALSE o TRUE Variable binaria o lgica (Boolean)

    INT 16 -32768 .. 32767 Nmero entero con signo

    DINT 32 -231 .. +231 - 1 Nmero entero doble con signo

    REAL 32 0.4560 Nmero real

    BYTE 8 0 ..255 Conjunto de 8 bits

    WORD 16 0 ..65535 Conjunto de 16 bits

    DWORD 32 0 .. 231 -1 Conjunto de 32 bits (Double Word)

    TIME 32 T#5d2h2m38s3.5ms Duracin

    DATE 16 D#2002-01-01 Fecha

    TIME_OF_DAY 32 TOD#15:35:08.36 Hora del da

    S5TIME 16 S5T#2h2m38s Duracin

    DATE_AND_TIME 64 DT#2002-01-01-15:35:08.36 Fecha y hora

    CHAR 8 A Carcter

    STRING AUTOMATA Cadena de caracteres

  • Automtica

    Siemens S7 314C-2DP

    La direccin de una entrada o salida de un mdulo digital se compone de la

    direccin de byte y la direccin de bit:

    E 124.0 (N. Alemana) I 124.0 (N. Inglesa)

  • Automtica

    Concepto de instruccin

    Instruccin(unidad ms pequea del programa)

    Operacin(qu debe hacerse?)

    Operando(con qu?)

    Ubicacin Parmetro

    A I 124.0

    A I 124.0

    I 124.0

    Direccin byte Direccin Bit

    Concepto de Instruccin

    A I124.0

  • Automtica

    Tipos de datos

    Los operandos de las instrucciones se componen de un dato que puede ser de distintos tipos, atendiendo a su ubicacin en memoria. Los tipos de datos posibles son:

    Alemn Ingls

    E I entrada

    A Q salida

    M M marca

    P P periferia (acceso directo)

    L L datos locales

    T T temporizador

    Z C contador

    DB DB mdulo de datos

  • Automtica

    Tipos de datos

    Cada uno de estos tipos se pueden direccionar

    en 4 posibles modos (salvo T y Z):

    Por defecto (X para DB): Bit.

    B: byte (8 bits).

    W: palabra (16 bits).

    D: palabra doble (32 bits).

  • Automtica

    Tipos de datos Por defecto (X para DB): Bit. B: byte (8 bits).

    W: palabra (16 bits).

    D: palabra doble (32 bits).

  • Automtica

    Direccionamiento simblico

    Operando

    Direccionamiento absoluto

    Ubicacin en memoria

    I 124 . 0

    Direccin byte

    Direccin Bit

    (I/Q/M/P/L/C/DB)

    Operando

    Direccionamiento simblico

    Smbolo

    I 124.0 Bolla_nivel_alto

  • Automtica

    Direccionamiento simblico

    Es posible asignar nombre simblico a los siguientes operandos:

    I/Q (E/A) Entradas/salidas

    M, MB, MW, MD Marcas (bit, byte, palabra y doble palabra)

    T y C (T y Z) Temporizadores y contadores

    FB, FC, SFB, SFC, OB, DB Bloques de programa

  • Automtica

    Q

  • Automtica

    I

  • Automtica

  • Automtica

  • Automtica

    Programacin bsica en diagrama

    de contactos

    Operaciones lgicas con bits. Contacto normalmente abierto

    Contacto normalmente cerrado

    Bobina de rel, salida

    Activar salida

    Desactivar salida

    Desactivar flip-flop de activacin SR

    Activar flip-flop de desactivacin RS

    Detectar flanco decreciente N

    Detectar flanco creciente P

  • Automtica

    Contactos

    ---| |--- (Contacto normalmente abierto) se cierra si el valor del bit consultado, que se almacena en el indicado, es "1". Si el contacto est cerrado, la corriente fluye a travs del contacto y el resultado lgico (RLO) es "1".

    De lo contrario, si el estado de seal en el indicado es "0", el contacto est abierto. Si el contacto est abierto no hay flujo de corriente y el resultado lgico de la operacin (RLO) es "0".

    Conexiones en serie, el contacto ---| |--- se combina por medio de una Y lgica con el RLO. Conexiones en paralelo, el contacto se combina con el RLO por medio de una O lgica.

    ---| / |--- (Contacto normalmente cerrado) se abre si el valor del bit consultado, que se almacena en el indicado, es "0". Si el contacto est cerrado, la corriente fluye a travs del contacto y el resultado lgico (RLO) es "1".

    Si el estado de seal en el indicado es "1" , el contacto est abierto. Si el contacto est abierto no hay flujo de corriente y el resultado lgico de la operacin (RLO) es "0".

  • Automtica

    Contactos en serie y en paralelo

    En serie -> Operacin lgica Y AND

    En paralelo -> Operacin lgica O - OR

  • Automtica

    Bobina de rel, salida

    Opera como una bobina en un esquema de circuitos.

    Si la corriente fluye hasta la bobina (RLO = 1), el bit en el se pone a "1".

    Si no fluye corriente hasta la bobina (RLO = 0), el bit en el se pone a "0".

    Una bobina de salida slo puede colocarse dentro de un esquema de contactos en el extremo derecho de un circuito.

    Como mximo puede haber 16 salidas mltiples.

    Se puede crear una salida negada anteponiendo a la bobina de salida la operacin ---|NOT|--- (invertir el resultado lgico).

  • Automtica

    Salidas mltiples - NOT

  • Automtica

    Activar y desactivar salida

    ---( S ) (Activar bobina) slo se ejecuta si el RLO de las operaciones anteriores es "1" (flujo de corriente en la bobina). Si el RLO es "1", el indicado del elemento se pone a "1".

    Un RLO = 0 no tiene efecto alguno, de forma que el estado de seal actual del operando indicado del elemento no se altera.

    ---( R ) (Desactivar salida) slo se ejecuta si el RLO de las operaciones anteriores es "1 (flujo de corriente en la bobina). Si fluye corriente a la bobina (RLO es "1"), el indicado del elemento se pone a "0". Un RLO de "0" (= no hay flujo de corriente en la bobina) no tiene efecto alguno, de forma que el estado de seal del operando indicado del elemento no vara. El tambin puede ser un temporizador (N. de T) cuyo valor de temporizacin se pone a "0", o un contador (N. de Z) cuyo valor de contaje se pone a "0".

  • Automtica

    Flip-flop de desactivacin

    RS (Activar flip-flop de desactivacin) se desactiva si el estado en la entrada R es "1" y si el estado en la entrada S es "0".

    De no ser as, cuando el estado en la entrada R es "0" y el estado en la entrada S es "1", se activa el flip-flop.

    Si el RLO es "1" en ambas entradas, la operacin Desactivar flip-flop de activacin ejecuta en el indicado primero la operacin Desactivar y seguidamente la operacin Activar, de modo que la direccin permanece activada para el resto del ciclo de programa.

    Las operaciones S (Activar) y R (Desactivar) slo se ejecutan si el RLO es 1. Si el RLO es 0 estas operaciones no se ven afectadas y el operando indicado no vara.

  • Automtica

    Flip-flop de activacin

    SR (Desactivar flip-flop de activacin) se activa si el estado en la entrada S es "1" y si el estado de la entrada R es "0". De no ser as, cuando el estado en la entrada S es "0" y el estado de la entrada R es "1", se desactiva el flip-flop. Si el RLO es "1" en ambas entradas, la operacin Desactivar flip-flop de activacin ejecuta en el indicado primero la operacin Activar y seguidamente la operacin Desactivar, de modo que la direccin permanece desactivada para el resto del ciclo de programa.

    Las operaciones S (Activar) y R (Desactivar) slo se ejecutan si el RLO es 1. Si el RLO es 0, estas operaciones no se ven afectadas y el operando indicado no vara.

  • Automtica

    ---( N )--- Detectar flanco

    decreciente (1 --> 0)

    ---( N )--- (Detectar flanco decreciente (1 --> 0)) detecta un cambio del estado de seal en el operando de "1" a "0", e indica este cambio tras la operacin con RLO = 1.

    El estado de seal del RLO se compara con el estado de seal del operando, es decir, con la marca de flancos.

    Si el estado de seal del operando es "1" y el RLO anterior a la operacin es "0", el RLO posterior a la operacin ser "1" (impulso); en todos los otros casos ser "0".

    El RLO anterior a la operacin se almacena en el operando.

  • Automtica

    ---( P )--- Detectar flanco creciente

    RLO (0 --> 1)

    ---( P )--- (Detectar flanco creciente RLO (0 --> 1)) detecta un cambio del estado de seal en el operando, de "0" a "1", e indica este cambio tras la operacin mediante RLO = 1.

    El estado de seal actual del RLO se compara con el estado de seal del operando, es decir, con la marca de flancos.

    Si el estado de seal del operando es "0" y el RLO anterior a la operacin es "1", el RLO detrs de la operacin ser "1" (impulso); en todos los dems casos ser "0".

    El RLO anterior a la operacin se almacena en el operando.

  • Automtica

    Conversin de funciones lgicas a

    diagrama de contactos

    Producto de variables: contactos en serie.

    Suma de variables: contactos en paralelo.

    Uso de parntesis

  • Tema 6

    Programacin de los autmatas programables

    Parte prctica. AWL, temporizadores y contadores

  • Automtica

    Programacin bsica AWL

    Operaciones lgicas con bits. AND - A

    OR - O

    OR exclusiva - X

    Salida - =

    NOT

    Activar - S

    Desactivar - R

    Flip-Flop SR y RS SET, CLR

    Flancos FP, FN

  • Automtica

    AND

    A I 124.0

    A I 124.1

    = Q 124.1

  • Automtica

    AND NOT

    AN I 124.0

    A I 124.1

    = Q 124.1

  • Automtica

    OR

    O I 124.0

    O I 124.1

    = Q 124.1

  • Automtica

    OR NOT

    O I 124.0

    ON I 124.1

    = Q 124.1

  • Automtica

    OR exclusiva

    A I 124.0

    AN I 124.1

    O

    AN I 124.0

    A I 124.1

    = Q 124.2

    Equivale a:

    X I 124.0

    X I 124.1

    = Q 124.2

  • Automtica

    NOT

    A I 124.0

    A I 124.1

    NOT

    = Q 124.2

  • Automtica

    Activar - Desactivar

    A I 124.0

    S Q 124.1

    A I 124.1

    R Q 124.1

  • Automtica

    Flip-Flop

    A I 124.0

    S M 0.0

    A I 124.1

    R M 0.0

    A M 0.0

    = Q 124.2

  • Automtica

    SET - CLR

    SET

    = Q 124.0

    = Q 124.1

    CLR

    = Q 124.3

    = Q 124.4

  • Automtica

    Flancos creciente y decreciente

    A I 124.0

    FP M 0.0

    = Q 124.1

    A I 124.0

    FN M 0.1

    = Q 124.2

  • Automtica

    Carga y transferencia de datosCarga y Transferencia de Datos

    KOP

    AWL

    L - Carga

    T - Transferencia

    (Todos los tipos de

    datos con 8, 16, 32

    bits)

    Ejemplos:

    L +5 // Carga entero de 16-bit

    L L#523123 // Carga entero de 32-bit

    L B#16#EF // Carga hexadecimal de 8-bit

    L 2#0001_0110_1110_0011

    // Carga binario de 16-bit

    L TOD#1:10:3.3

    // Carga tiempo de 32-bit

    T MB0 // Transferir valor al byte de

    marcas 0

    T AD256 // Transferir valor a la

    doble palabra de salida 256

    MOVE (KOP) Asigna un valor a una variable. Si EN est activa el valor en la entrada IN

    se copia en la direccin especificada en la salida OUT. ENO = EN

    L y T (AWL) Posibilitan el intercambio entre reas de memoria.

    Las instrucciones de carga y transferencia son independientes del RLO.

    El intercambio de datos tiene lugar a travs del ACUMULADOR.

  • Automtica

    Carga y transferencia de datos

    ACUMULADORES:Registros auxiliares (de 32 bits) en la CPU que

    se utilizan en el intercambio de datos y para operaciones de comparacin y matemticas.

    La instruccin de carga escribe el valor que haya en la direccin de origen en el Acumulador 1, y la instruccin de transferencia copia el contenido del acumulador al destino especificado.

    Al realizar la operacin de carga, el valor actual del ACU1 pasa automticamente al ACU 2.

  • Automtica

    Temporizadores

    S_IMPULS. Parametrizar y arrancar temporizador como impulso [S_PULSE]

    S_VIMP. Parametrizar y arrancar temporizador como impulso prolongado [S_PEXT]

    S_EVERZ. Parametrizar y arrancar temporizador como retardo a la conexin [S_ODT]

    S_SEVERZ. Parametrizar y arrancar temporizador como retardo a la conexin con memoria [S_ODTS]

    S_ABRES. Parametrizar y arrancar temporizador como retardo a la desconexin [S_OFFDT]

    ---( SI ) Arrancar temporizador como impulso

    ---( SV ) Arrancar temporizador como impulso prolongado

    ---( SE ) Arrancar temporizador como retardo a la conexin

    ---( SS ) Arrancar temporizador como retardo a la conexin con memoria

    ---( SA ) Arrancar temporizador como retardo a la desconexin

  • Automtica

    Temporizadores

    Tienen un rea reservada en la memoria de la CPU

    Una palabra de 16 bits para cada operando de temporizador

    256 temporizadores

    Decrementa hasta alcanzar el valor 0

    Bits 0 a 9 de la palabra de temporizacin contienen el valor de temporizacin en cdigo binario

  • Automtica

    Temporizadores

    Valor de temporizacin:

    binario

    hexadecimal

    decimal codificado en binario (BCD)

    Area de temporizacin va de 0 a 9 990

    segundos (2 h, 46 min, 30 s)

  • Automtica

    Temporizadores

    Formatos del valor de temporizacin

    w#16#txyz t= base de tiempo (0-10 ms, 1-100ms, 2-1s, 3-10s)

    xyz = valor de temporizacin en formato BCD

    S5T#aH_bM_cS_dMS H (horas), M (minutos), S (segundos), MS

    (milisegundos)

    La base de tiempo se selecciona automticamente y el valor de temporizacin se redondea al prximo nmero inferior con esa base de tiempo

  • Automtica

    Temporizadores

    Ejemplos

    S5TIME#4S --> 4 segundos

    s5t#2h_15m --> 2 horas y 15 minutos

    S5T#1H_12M_18S --> 1 hora 12 minutos

    y 18 segundos

  • Automtica

    Temporizadores

    Base de tiempo

    bits 12 y 13 de la palabra de temporizacin

    contienen la base de tiempo en cdigo binario

  • Automtica

    Temporizadores

    Tiempos mximos para cada base (999

    BCD)

    Base 10ms= 9s 990ms

    Base 100ms= 1 min 39s 900ms

    Base 1s= 16min 39s

    Base 10s= 2h 46min 30s

  • Automtica

    Temporizadores Palabra de temporizacin

    bits 0 a 11 almacenan el valor de

    temporizacin en BCD

    bits 12 a 13 almacenan la base de tiempo en

    cdigo binario

  • Automtica

    Temporizadores

    [S_PULSE]

    [S_PEXT]

    [S_ODT]

    [S_ODTS]

    [S_OFFDT]

  • Automtica

    Temporizadores

    [S_PULSE]

    [S_PEXT]

    [S_ODT]

    [S_ODTS]

    [S_OFFDT]

  • Automtica

    S_IMPULS [S_PULSE]

    Impulso

  • Automtica

    S_IMPULS [S_PULSE]

    arranca cuando hay un flanco creciente en la entrada de arranque S

    funciona mientras el estado de la entrada S sea "1", y como mximo el tiempo indicado en TV/TW

    se pone a 0 si la entrada de desactivacin R se pone a "1"

    valor de temporizacin actual queda depositado en las salidas BI/DUAL y BCD/DEZ

  • Automtica

    S_IMPULS [S_PULSE]

  • Automtica

    S_IMPULS [S_PULSE]A I 124.0

    L S5T#3S

    SP T 1

    A I 124.1

    R T 1

    L T 1

    T MW 10

    LC T 1

    T MW 12

    A T 1

    = Q 124.1

  • Automtica

    S_VIMP [S_PEXT]

    Impulso prolongado

  • Automtica

    S_VIMP [S_PEXT]

  • Automtica

    S_VIMP [S_PEXT]

    A I 124.0

    L S5T#3S

    SE T 1

    A I 124.1

    R T 1

    L T 1

    T MW 10

    LC T 1

    T MW 12

    A T 1

    = Q 124.1

  • Automtica

    S_EVERZ [S_ODT]

    Retardo a la conexin

  • Automtica

    S_EVERZ [S_ODT]

  • Automtica

    S_EVERZ [S_ODT]A I 124.0

    L S5T#3S

    SD T 1

    A I 124.1

    R T 1

    L T 1

    T MW 10

    LC T 1

    T MW 12

    A T 1

    = Q 124.1

  • Automtica

    S_SEVERZ [S_ODTS]

    Retardo a la conexin con memoria

  • Automtica

    S_SEVERZ [S_ODTS]

  • Automtica

    S_SEVERZ [S_ODTS]A I 124.0

    L S5T#3S

    SS T 1

    A I 124.1

    R T 1

    L T 1

    T MW 10

    LC T 1

    T MW 12

    A T 1

    = Q 124.1

  • Automtica

    S_AVERZ [S_OFFDT]

    Retardo a la desconexin

  • Automtica

    S_AVERZ [S_OFFDT]

  • Automtica

    S_AVERZ [S_OFFDT]A I 124.0

    L S5T#3S

    SF T 1

    A I 124.1

    R T 1

    L T 1

    T MW 10

    LC T 1

    T MW 12

    A T 1

    = Q 124.1

  • Automtica

    Temporizadores en AWL

    FR Habilitar temporizador (Vuelve a arrancar)

    L Cargar valor actual del temporizador en ACU 1 como entero

    LC Cargar el valor actual de temporizacin en ACU 1 como nmero BCD

    R Desactivar temporizador

    SI Temporizador como impulso [SP]

    SV Temporizador como impulso prolongado [SE]

    SE Temporizador como retardo a la conexin [SD]

    SS Temporizador como retardo a la conexin con memoria [SS]

    SA Temporizador como retardo a la desconexin [SF]

  • Automtica

    Contadores

    Los contadores tienen reservada un rea

    de memoria propia en la CPU.

    Dicha rea de memoria reserva una

    palabra de 16 bits para cada contador.

    La programacin con AWL permite un

    mximo de 256 contadores.

  • Automtica

    ZAEHLER [S_CUD]

    Incrementar/decrementar

  • Automtica

    ZAEHLER [S_CUD]

    ZAEHLER (Parametrizar e incrementar/decrementar contador) queda inicializado con el valor de la entrada PV cuando se produce un flanco ascendente en la entrada S.

    Si hay un 1 en la entrada R, el contador se pone a cero y el valor de contaje es 0. El contador incrementa en "1" si el estado de seal de la entrada CU cambia de "0" a "1" y el valor del contador era menor que "999".

    El contador se decrementa en "1" si en la entrada CD se produce un flanco ascendente y el valor del contador es mayor que "0". Al producirse un flanco ascendente en ambas entradas de contaje se ejecutan ambas operaciones, y el valor de contaje no vara. Si se inicializa el contador y el RLO de las entradas CU/CD = 1, el contador contar as en el siguiente ejemplo aunque no haya habido ningn cambio de flanco.

    El estado de seal de la salida Q ser "1" si el valor de contaje es mayor que cero, y ser "0" si el valor de contaje es igual a cero.

  • Automtica

    ZAEHLER [S_CUD]A I 124.1

    CU C 1

    A I 124.2

    CD C 1

    A I 124.3

    L C#5

    S C 1

    A I 124.4

    R C 1

    A C 1

    = Q 124.1

  • Automtica

    Z_VORW [S_CU]

    Incrementar

  • Automtica

    Z_VORW [S_CU]

    S_CU (Parametrizar e incrementar contador) toma el valor predeterminado de la entrada ZW si en la entrada S hay un flanco ascendente.

    Si el estado de seal de la entrada R es "1" el contador se pone a 0, y entonces el valor de contaje es cero.

    El contador incrementa en "1" si el estado de seal en la entrada CU cambia de "0" a "1", siempre y cuando el valor de contaje sea menor que "999". Si se inicializa el contador y el RLO de las entrada CU = 1, el contador contar as en el siguiente ejemplo aunque no haya habido ningn cambio de flanco.

    La salida Q ser "1" siempre que el valor de contaje sea mayor que cero, y ser "0" si el valor de contaje es cero.

  • Automtica

    Z_VORW [S_CU]A I 124.1

    CU C 1

    BLD 101

    A I 124.3

    L C#5

    S C 1

    A I 124.4

    R C 1

    NOP 0

    NOP 0

    A C 1

    = Q 124.1

  • Automtica

    Z_RUECK [S_CD]

    Decrementar

  • Automtica

    Z_RUECK [S_CD]

    S_CD (Parametrizar y decrementar contador) toma el valor predeterminado de la entrada ZW si en la entrada S hay un flanco ascendente.

    Si el estado de seal de la entrada R es "1" el contador se pone a 0, y entonces el valor de contaje es cero. El contador decrementa en "1" si el estado de seal en la entrada CD cambia de "0" a "1" y el valor de contaje era mayor que cero.

    Si se inicializa el contador y el RLO de la entrada CD= 1, el contador contar as en el siguiente ejemplo aunque no haya habido ningn cambio de flanco.

    La salida Q ser "1" si el valor de contaje es mayor que cero, y ser "0" si el valor de contaje es cero.

  • Automtica

    Z_RUECK [S_CD]A I 124.1

    CD C 1

    BLD 101

    A I 124.3

    L C#5

    S C 1

    A I 124.4

    R C 1

    NOP 0

    NOP 0

    A C 1

    = Q 124.1

  • Automtica

    Contadores en AWL

    FR Habilitar contador

    L Cargar valor actual del contador en ACU 1 en forma de entero

    LC Cargar valor actual del contador en ACU 1 como nmero BCD

    R Desactivar contador

    S Poner contador al valor inicial

    ZV Incrementar contador

    ZR Decrementar contador

  • Tema 6

    Programacin de los autmatas programables

    Formatos de representacin

    Operaciones complejas

  • Automtica

    3.Formato de representacin

    Existen 3 formatos de representacin

    numrica:

    Binario

    Hexadecimal

    BCD

    Existen 3 formatos de nmeros:

    Entero

    Doble entero

    Real

  • Automtica

    3.1 Nmeros binarios

    Representa nmeros naturales mayores o

    iguales que cero.

    Lmite 32 bits => 232 1 = 4.294.967.295

    Ejemplo: L 2#0110 //Carga en ACU1 el nmero 6 en formato

    binario

    Rango:

    Byte: B#2#0 B#2#1 ....1 (8 unos)

    Palabra: W#2#0 W#2#1....1 (16 unos)

    Doble palabra: DW#2#0 DW#2#1....1 (32 unos)

  • Automtica

    3.2 Hexadecimal

    Representa nmeros naturales mayores o

    iguales que cero.

    Lmite 32 bits => 232 1 = 4.294.967.295

    Ejemplo:

    L DW#16#1FFE_1ABC //Carga 536.746.684 (32 bits)

    en ACU1

    Rango:

    Byte: B#16#0 B#16#FF

    Palabra: W#16#0 W#16#FFFF

    Doble palabra: DW#16#0 DW#16#FFFFFFFF

  • Automtica

    3.3 BCD

    BCD Decimal codificado en binario. Cada 4 bits representan un dgito.

    Hay 2 formatos de BCD, de 3 cifras y de siete cifras.

    Palabra (16 bits): BCD de 3 cifras con signo

    Rango: -999 999

    Ejemplo: +310

    0000 0011 0001 0000

    + 3 1 0

    signo: 0000 -> positivo; 1111 -> negativo

  • Automtica

    3.3 BCD

    Doble palabra (32 bits): 7 cifras con

    signo.

    Rango: -9999999 9999999

    Ejemplo:

    L 2#0000_0011_0001_000 //Cargo +310 en

    BCD formato en ACU1

    LC T1 //Cargo el valor de temporizacin

    de T1 en formato BCD en ACU1

  • Automtica

    Los nmeros enteros se denominan como I (de Integer)

    Un nmero entero es un nmero binario de 16 bits que

    tiene como signo el bit ms significativo.

    Lmite:

    N positivos: 215-1 = 32767 (El 0 se considera positivo)

    N negativos: 215= -32768

    3.4 Enteros

  • Automtica

    Los nmeros dobles enteros se denominan como D

    Son nmeros enteros de 32 bits que tienen como signo el bit ms significativo.

    Lmite:

    N positivos: 232-1= 2147483647 (El 0 se considera positivo)

    N negativos: 232= -2141483648

    3.5 Doble entero

  • Automtica

    Los nmeros reales se denominan como R

    Son nmeros binarios de 32 bits que constan de 2

    partes:

    Mantisa : los 3 bytes ms altos

    Exponente : el byte ms alto

    Rango:

    Negativos: -3,4028235E+38 a -1,401298E-45

    Positivos: 1,401298E-45 a 3,4028235E+38

    3.6 Reales

  • Automtica

    3.6 Reales

    Se pueden expresar de forma exponencial o

    como quebrados.

    Ejemplo:

    L 4.83 //Carga el nmero real 4,83 en ACU1

    El editor Step-7 lo pasa automticamente a la

    forma exponencial:

    L 4.830000e+000

    Se redondea con exactitud hasta el 6 dgito

    Ejemplo:

    L 4780000000.0 = L 4.780000e+009

  • Automtica

    4. Operaciones complejas

    Operaciones de comparacin

    Operaciones aritmticas

  • Automtica

    4.1 Operaciones de Comparacin

    Las operaciones de comparacin se dividen en tres grupos, segn sea el tamao de las variables a comparar:

    Comparacin de nmeros enteros

    Comparacin de nmeros enteros dobles

    Comparacin de nmeros reales

  • Automtica

    4.1.1 Instrucciones de Comparacin (AWL)

    Las operaciones Comparar nmeros (enteros, dobles enteros o en coma flotante) comparan el contenido del ACU 2 con el contenido del ACU 1. Los contenidos del ACU 1 y del ACU 2 se evalan como nmeros enteros, dobles enteros o en coma flotante.

    El RLO y los bits relevantes de la palabra de estado

    indican el resultado de la comparacin.

    RLO = 1 indica que el resultado de la comparacin es verdadero.

    RLO = 0 indica que el resultado de la comparacin es falso.

    Los bits A1 y A0 de la palabra de estado indican la relacin "menor que", "igual que" o "mayor que".

  • Automtica

    4.1.1.1 Comp. de enteros (AWL)

    Formato: ==I, I, >I, =I, I //Comparar si el ACU2-L (MW10) es mayor (>) que el //ACU1-L (IW24).

    = M 2.0 //RLO = 1, si MW10 > IW24.

  • Automtica

    4.1.1.2 Comparacin de enteros dobles(AWL)

    Formato: ==D, D, >D, =D, D //Comparar si el ACU 2 (MD10) es mayor (>) que el //ACU 1 (ID24).

    = M 2.0 //RLO = 1, si MD10 > ID24.

  • Automtica

    4.1.1.3 Comparacin de reales (AWL)

    Formato: ==R, R, >R, =R, R //Comparar si el ACU 2 (MD10) es mayor (>) que el //ACU 1 (1.359E+02).

    = M 2.0 //RLO = 1, si MD10 > 1.359E+02.

  • Automtica

    4.1.2 Operaciones de Comparacin (KOP)

    Las operaciones comparan las entradas IN1 e IN2 segn los tipos de comparacin siguientes:

    == IN1 es igual a IN2

    IN1 es diferente a IN2

    > IN1 es mayor que IN2

    < IN1 es menor que IN2

    >= IN1 es mayor o igual a IN2

  • Automtica

    4.1.2.1 Comp. de enteros (KOP)

    Ejemplo:

    La salida Q124.1 se activa si I124.1 es 1 y si MW0 = MW2.

  • Automtica

    4.1.2.2 Comparacin de enteros dobles (KOP)

    Ejemplo:

    La salida Q124.1 se activa si I124.1 es 1 y MD0 > MD4.

  • Automtica

    4.1.2.3 Comparacin de reales (KOP)

    Ejemplo:

    La salida Q124.1 se activa si I124.1 es 1 y MD0 > MD4.

  • Automtica

    Problema de comparadores

    La figura muestra un sistema con dos cintas transportadoras y un

    rea de almacenamiento temporal (capacidad 100 paquetes) colocada

    entre ambas.

    La cinta transportadora 1 transporta paquetes al rea de

    almacenamiento. Una barrera ptica situada al final de la cinta 1 junto

    al rea de almacenamiento determina cuntos paquetes se

    transportan a dicha rea.

    La cinta transportadora 2 transporta paquetes desde el rea de

    almacenamiento a una plataforma de carga donde llegan camiones y

    los recogen para suministrarlos a los clientes.

    Una barrera ptica situada al principio de la cinta transportadora 2

    junto al rea de almacenamiento determina cuntos paquetes

    abandonan el rea de almacenamiento para ser transportados a la

    plataforma de carga.

    Un panel indicador con cinco lmparas seala el nivel del rea de

    almacenamiento temporal.

  • Automtica

    Problema de comparadores

    BARRERA1 I 124.1 >= CINCUENTA % Q 124.2

    BARRERA2 I 124.2 >= NOVENTA % Q 124.3

    VACIO Q 124.0 LLENO Q 124.4

    NO VACIO Q 124.1

  • Automtica

    4.2 Operaciones aritmticas

    Operaciones aritmticas con enteros y

    dobles enteros:

    Suma, resta, multiplicacin y divisin

    Operaciones aritmticas con nmeros

    reales:

    Suma, resta, multiplicacin y divisin

    Otras operaciones

  • Automtica

    4.2.1 Operaciones Aritmticas (AWL)

    Combinan el contenido de ACU1 y ACU2.

    El resultado se deposita en ACU1 y el ACU2

    permanece inalterado.

    Son operaciones incondicionales del RLO y

    no lo afectan.

  • Automtica

    4.2.1.1.1 Suma de enteros (AWL)

    La instruccin de suma +I, +D suma el contenido de ACU2 con ACU1 y el resultado lo almacena en ACU1.

    En el caso de sumar dos enteros esta operacin acta

    sobre las palabras bajas de los acumuladores y el

    resultado lo almacena en la palabra baja del ACU1.

    Ejemplo:

    L 8

    L 9

    +I //ACU2+ACU1; ACU1=17; ACU2=8

  • Automtica

    4.2.1.1.2 Resta de enteros (AWL)

    La instruccin de resta I, D resta el contenido de ACU2 con ACU1 y el resultado

    lo almacena en ACU1.

    Ejemplo:

    L 10

    L 3

    -I //ACU2-ACU1; ACU1=7; ACU2=10

  • Automtica

    4.2.1.1.3 Multiplicacin de enteros (AWL)

    La instruccin de multiplicacin *I, *Dmultiplica el contenido de ACU2 por ACU1 y

    el resultado lo almacena en ACU1.

    Si se multiplican dos enteros el resultado se

    almacena como doble entero en ACU1

    Ejemplo:

    L 2

    L 100

    *D //ACU2*ACU1; //ACU1=200; ACU2=2

  • Automtica

    4.2.1.1.4 Divisin de enteros (AWL)

    La instruccin de divisin /I, /D divide el contenido de ACU2 entre ACU1 y el resultado se almacena de dos formas distintas segn se dividan enteros o

    dobles enteros:

    En caso de divisin de enteros el resultado se almacena en ACU1

    en forma de dos enteros de 16 bits.

    Si se dividen enteros dobles el resultado se almacena como doble

    entero en ACU1 y el resto de la divisin se obtiene realizando la

    operacin MOD. Slo para dobles enteros

    L MW0

    L MW2

    /I //ACU2/ACU1;

    L MD0

    L MD4

    /D //Cociente

    T MD20 //Almacena cociente

    L MD0

    L MD4

    MOD

    T MD24 //Almacena resto

  • Automtica

    4.2.1.2 Ops. Aritm. con reales (AWL)

    Las instrucciones +R, -R, *R, /Rcombinan el contenido de ACU2 (32 bits)

    con ACU1 (32 bits) y el resultado lo

    almacenan en ACU1 (32 bits).

    Ejemplo:

    L 1.0

    L 2.4

    +R //ACU2+ACU1

    //ACU1=3.4;

    //ACU2=1.0

  • Automtica

    4.2.1.3 Otras operaciones con reales (AWL) Instruccin ABS: Valor absoluto de ACU1, y el resultado se deposita

    en ACU1. Instruccin SQRT: Raz cuadrada de ACU1 (debe ser >= 0), y el

    resultado se deposita en ACU1. Instruccin SQR: Cuadrado de ACU1, y el resultado se deposita en

    ACU1. Instruccin LN: Logaritmo natural de ACU1 (logaritmo con base e), y

    el resultado se deposita en ACU1. Instruccin EXP: Calcula el exponente (valor exponencial con base e)

    de ACU1, y el resultado se deposita en ACU1. Instrucciones SIN, COS y TAN: Calculan el seno, coseno o

    tangente de un ngulo indicado en radianes, y el resultado se deposita en ACU1.

    Instruccin ASIN : Calcula el arcoseno de ACU1 (entre 1 y 1). El resultado es un ngulo indicado en radianes: -pi/2

  • Automtica

    4.2.2 Operaciones Aritmticas (KOP)

    Combina las entradas IN1 y IN2 si el estado

    de seal en la entrada de habilitacin (EN)

    es "1". La salida OUT proporciona el

    resultado.

    Si el resultado es un valor fuera del margen

    vlido los bits OV y OS son 1 y ENO es 0,

    de forma que otras operaciones que siguen

    a esta operacin aritmtica, combinadas a

    travs de ENO (ejecucin en cascada), no

    se ejecutan.

  • Automtica

    4.2.2.1 Suma de enteros (KOP)

    Ejemplo:

    El cuadro ADD_DI se activa si I 0.0 es 1. El resultado de la suma MD1 + MD5

    se deposita en MD10. Si el resultado es un valor fuera del margen vlido para

    enteros dobles, o si el estado de seal de I 0.0 es 0, la salida Q0.1 se pone a 0,

    si no a 1.

  • Automtica

    4.2.2.2 Resta de enteros (KOP)

    Ejemplo:

    El cuadro SUB_DI se activa si I 0.0 es 1. El resultado de la sustraccin MD1 MD5 se deposita en MD10. Si el resultado es un valor fuera del margen vlido

    para enteros dobles, o si el estado de seal de I 0.0 es 0, la salida Q 0.1 se

    pone a 0.

  • Automtica

    4.2.2.3 Multiplicacin de enteros (KOP)

    Ejemplo:

    El cuadro MUL_I se activa si I 0.0 es 1. El resultado de la multiplicacin MW0 x

    MW2 se deposita en MW4. Si el resultado es un valor fuera del margen vlido

    para enteros, o si el estado de seal de I 0.0 es 0, la salida Q 0.1 se pone a 0

  • Automtica

    4.2.2.4 Divisin de enteros (KOP)

    El cuadro DIV_DI (MOD_DI) se activa si I 0.0 es 1. El cociente (resto) de la

    divisin de MD0 entre MD4 se deposita en MD8 (MD12). Si el resultado es un

    valor fuera del margen vlido para enteros, o si el estado de seal de I 0.0 es 0,

    la salida Q 0.0 (Q0.1) se pone a 0.

    Ejemplo:

  • Automtica

    4.2.2.2 Ops. Aritm. con reales (KOP)

    Ejemplo:

    Una vez activada la entrada I0.0, se multiplica el contenido de las marcas MD0

    y MD4 y su resultado se divide entre 7,5. El resultado final se almacena en

    QD0.

  • Automtica

    4.2.2.3 Otras operaciones con reales (KOP)

  • Automtica

    5.1 Palabra de estado (16 bits) Es un registro de la memoria de la CPU que contiene bits que pueden

    direccionarse en el operando de las operaciones lgicas con bits y con palabras:

  • Automtica

    5.1 Evaluacin bits palabra estadooperaciones de enteros

    Las operaciones aritmticas bsicas influyen sobre los

    siguientes bits de la palabra de datos: A1 y A0

    OV

    OS

  • Automtica

    5.1 Evaluacin bits palabra estado operaciones de enteros

  • Automtica

    5.2 Evaluacin bits palabra estadooperaciones en coma flotante

  • Automtica

    Relacin entre bits, bytes (B),

    palabras (W) y dobles palabras (D)

  • Automtica

    6. Instrucciones avanzadas

    Operaciones de conversin

    Operaciones de control de programa

    Operaciones de rotacin y desplazamiento

  • Automtica

    6.1 Operaciones de conversin

    Las operaciones de conversin son

    incondicionales ya que ni afectan ni

    dependen del RLO.

    Se pueden dividir en:

    Conversin de enteros

    Conversin de reales

  • Automtica

    6.1.1 Conversin de enteros

    Las operaciones de conversin de enteros se realizan con

    las instrucciones: BTD : Convierte el nmero BCD de 7 dgitos en doble entero.Valores

    admisibles: -9999999 9999999. Resultado de la conversin (bits 0-27),

    signo (bit 31).

    BTI : Convierte el nmero BCD de 3 dgitos de la palabra baja de ACU1 en un entero (16 bits) que se guarda en la palabra baja de ACU1.Valores

    admisibles: -999 999. Resultado de la conversin (bits 0-11 ),

    signo (bit 15).

    DTB : Convierte un entero doble (32 bits) de ACU1 en un BCD de 7 dgitos.Resultado de la conversin (bits 0-27, N BCD), signo (bits 28-

    31,+:0000,-:1111)

    ITB : Convierte un entero (16 bits) de ACU1 en BCD de 3 dgitos. El resultado lo guarda en la palabra baja del ACU1. Resultado de la

    conversin (bits 0-27, N BCD), signo (bits 28-31,+:0000,-:1111)

    ITD : Convierte un entero (16 bits) de la palabra baja de ACU1 en doble entero

  • Automtica

    6.1.2 Conversin de reales

    Las operaciones de conversin de reales se realizan con las

    instrucciones:

    DTR: Convierte un entero doble (32 bits) de ACU1 en real (32 bits). Si es necesario se redondea el resultado. Un entero de 32

    bits es ms exacto que un real.

    RND: Redondea un nmero real (32 bits) a entero (32 bits). Primero lo convierte y luego lo redondea al entero ms prximo.

    RND+: Redondea el resultado al nmero entero mayor o igual que el real convertido.

    RND-: Redondea el resultado al nmero entero menor o igual que el real convertido.

    TRUNC : Convierte un real (32 bits) a doble entero (32 bits) y lo redondea al entero de menor valor absoluto.

  • Automtica

    Esquema operaciones conversin

  • Automtica

    6.1.4 Intercambio

    CAW: Cambia el orden de los octetos del

    ACU1-L (16 bits)

    CAD: Cambia el orden de los octetos del

    ACU1 (32 bits)

    TAK: Intercambia el contenido del ACU1

    con el del ACU2.

  • Automtica

    6.2 Operaciones de control de programa

    Operaciones de salto

    Llamada a funciones o a bloques de

    funcin, CALL

    Operaciones con las que se va a controlar el orden

    de ejecucin de las instrucciones

  • Automtica

    6.2.1 Salto incondicional

    - JU (SPA): se efecta un salto hacia una meta definida, independientemente de condiciones.

    - JL (SPL): Salto utilizando lista de metas. La meta del salto se escoge segn el valor contenido en el ACU1. La lista de metas se indica con la instruccin JU. (Implementa una estructura select case)

  • Automtica

    6.2.1 Salto incondicional

    A I 1.0 // cargamos en el RLO el valor de la entrada 1.0

    JU AQU // saltamos de forma incondicional a la lnea con meta "AQUI"

    NOP 0 // esta lnea no se ejecuta (es saltada)

    AQUI: A I 2.0 // aqu contina la ejecucin del programa

    = Q 3.0 // introducimos el resultado en la salida 3.0

    Ejemplo:

    JU

    L MB100 // cargamos en el ACU1 un byte

    JL DEF // saltamos a DEF si el valor de ACU1 no est en la lista

    JU CERO // se salta a CERO si ACU1 vale 0

    JU UNO // se salta a UNO si ACU1 vale 1

    JU DOS // se salta a UNO si ACU1 vale 2

    DEF: ...

    ...

    BEU //(fin de bloque incondicionado). Salta al final del bloque

    CERO: ...

    ...

    BEU // Fin de bloque incondicionado

    UNO: ...

    ...

    BEU // Fin de bloque incondicionado

    DOS: ...

    ...

    BEU // Fin de bloque incondicionado

    JL

    Lista de metas

  • Automtica

    6.2.1 Salto incondicional

    Ejemplo

    FUNCIONAMIENTO:

    El estado de la salida salida Q 124.0 ser:

    El estado de la entrada (I 124.0), si el byte de entrada IB 4 vale 0

    El estado de la entrada (I 124.1), si el byte de entrada IB 4 vale 1

    FALSE, si la palabra de entrada no toma ninguno de los valores anteriores

    L IB 4 // cargamos en ACU1 un valor del byte de entrada

    JL NORM // se salta a NORM si el valor de ACU1

    // no est en lista

    JU UNO // se salta a UNO si ACU1 vale 0

    JU DOS // se salta a CONT si ACU1 vale 1

    NORM: CLR

    JU CONT // se salta a CONT de forma incondicional

    UNO: A I 124.0 // instruccin meta del salto UNO

    JU CONT // se salta a CONT de forma incondicional

    DOS: A I 124.1 // instruccin meta del salto DOS

    JU CONT // se salta a CONT de forma incondicional

    CONT: = Q 124.0 // aqu saltamos finalmente,

    // continuando el programa

    Solucin

  • Automtica

    6.2.1 Salto incondicional

    Ejemplo

    FUNCIONAMIENTO:

    Segn el contenido de IB0 :

    Si 0 => QW4= FFFF

    Si 1 => QW4=AAAA

    Si 2 => QW4=5555

    Si 3 => QW4=0000

  • Automtica

    6.2.2 Salto condicional en funcin del RLO

    - JC/JCN (SPB/SPBN): se efecta un salto hacia una meta definida si RLO = 1 RLO = 0 respectivamente.

    - JCB/JNB (SPBB/SPBNB): se efecta un salto hacia

    una meta definida si RLO = 1 RLO = 0

    respectivamente, salvando el RLO en RB.

    Ejemplos:

    JU

    JC A I 1.0 //cargamos en el RLO el valor de la entrada 1.0JCN AQUI //saltamos a la lnea con meta "AQUI si I 1.0 = 0 (RLO=0)

    A I 2.0 //esta lnea se ejecutar si el RLO=1

    = Q 3.0 //esta lnea se ejecutar si el RLO=1

    AQUI: NOP 0

    A I 1.0 // cargamos en el RLO el valor de la entrada 1.0

    JU AQU // saltamos de forma incondicional a la lnea con meta "AQUI"

    NOP 0 // esta lnea no se ejecuta (es saltada)

    AQUI: A I 2.0 // aqu contina la ejecucin del programa

    = Q 3.0 // introducimos el resultado en la salida 3.0

  • Automtica

    6.2.3 Salto condicional en funcin de RB

    y OV/OS

    - JBI/JNBI (SPBI/SPBIN): se efecta un salto hacia una meta definida si RB = 1 RB = 0 respectivamente.

    - JO (SPO): se efecta un salto hacia una meta definida si OV = 1

    - JOS (SPS): se efecta un salto hacia una meta definida si OS = 1

  • Automtica

    6.2.3 Salto condicional en funcin de RB

    y OV/OS- JO (SPO): se efecta un salto hacia una meta definida si OV = 1

    - JOS (SPS): se efecta un salto hacia una meta definida si OS = 1

    L IW10

    L MW12

    *I

    JO OVER1 // Saltar si hay desbordamiento en el producto anterior, OV = 1

    L DBW25

    +I

    L MW14

    -I

    JOS OVER2 // Saltar si desbordamiento en una de las 3 operaciones, OS = 1

    T MW16 // La ejecucin del programa contina aqu

    A M 4.0 // en caso de no ejecutarse el salto

    R M 4.0

    A M 4.1

    R M 4.1

    JU NEXT

    OVER1: AN M 4.0 // El programa contina aqu despus de saltar a la meta OVER1

    S M 4.0

    JU NEXT

    OVER2: AN M 4.1 // El programa contina aqu despus de saltar a la meta OVER2

    S M 4.1

    NEXT: NOP 0 // El programa contina aqu despus de saltar a la meta NEXT

    Ejemplo:

  • Automtica

    6.2.4 Salto condicional en funcin del

    Acumulador

    - JZ (SPZ): salto si resultado es cero (ACU 1)

    - JN (SPN): salto si resultado no es cero

    - JP (SPP): salto si resultado es mayor que cero

    - JM (SPM): salto si resultado es menor que cero

    - JMZ (SPMZ): salto si resultado es menor o igual que cero

    - JPZ (SPPZ): salto si resultado es mayor o igual que cero

    - JUO (SPU): salto si el resultado no es vlido (uno de los operandos en una operacin de coma flotante no es un nmero en coma flotante)

    Se encuentran casi siempre despus de una operacin con el Acumulador

  • Automtica

    6.2.4 Salto condicional en funcin del

    Acumulador

    Los bits A1 y A0 de la

    palabra de estado

    indican el estado del

    acumulador tras una

    operacin

  • Automtica

    6.2.4 Salto condicional en funcin del

    Acumulador

    Ejemplo:

    L IW8

    L MW12

    -I //Restar el contenido de MW12 del contenido de IW8.

    JZ RES0 //Saltar si resultado = 0 (es decir, si el contenido de ACU 1 = 0).

    JM RES1 //Saltar si resultado < 0 (es decir, si el contenido de ACU 1 < 0).

    JUO RES2 //Saltar si resultado no vlido

    AN M 4.0 //La ejecucin del programa contina aqu en caso de no ejecutarse

    S M 4.0 //ningn salto.

    JU NEXT

    RES0: AN M 4.1 //La ejecucin del programa contina aqu despus de haber

    S M 4.1 // saltado a la meta RES0.

    JU NEXT

    RES1: AN M 4.2 //La ejecucin del programa contina aqu despus de haber saltado

    S M 4.2 //a la meta RES1.

    JU NEXT

    RES2: AN M 4.3 //La ejecucin del programa contina aqu despus de haber saltado

    S M 4.3 //a la meta RES2.

    JU NEXT

    NEXT: NOP 0 //La ejecucin del programa contina aqu despus de haber saltado

    //a la meta NEXT.

  • Automtica

    6.2.5 Saltos que finalizan bloque:

    - BEU (BEA): Fin de bloque incondicionado. Finaliza la ejecucin del mdulo actual y devuelve el control al mdulo que llam al mdulo finalizado. Esta instruccin se ejecuta sin depender del RLO ni de cualquier otra condicin.

    - BEC (BEB): Fin de bloque condicionado. Finaliza la ejecucin del mdulo actual y devuelve el control al mdulo que llam al mdulo finalizado. Esta accin se realiza si el RLO es 1. Si no es as se continua la ejecucin del actual mdulo, pero pone el RLO a 1.

    Si el mdulo que finaliza es el OB1 se finaliza el ciclo de ejecucin del programa, volviendo a comenzar uno nuevo.

  • Automtica

    Ejemplo:

    A I 1.0 //introducimos en el RLO el valor de la entrada 1.0

    BEC //si la entrada 1.0 vale 1 el mdulo acaba aqu

    A I 2.0

    = Q 3.0

    BEU //aqu finaliza el mdulo de forma incondicional

    A I 1.1 //estas instrucciones nunca se ejecutaran

    S Q 4.0

    - BEU (BEA): Fin de bloque incondicionado. Finaliza la ejecucin del mdulo actual y devuelve el control al mdulo que llam al mdulo finalizado. Esta instruccin se ejecuta sin depender del RLO ni de cualquier otra condicin.

    - BEC (BEB): Fin de bloque condicionado. Finaliza la ejecucin del mdulo actual y devuelve el control al mdulo que llam al mdulo finalizado. Esta accin se realiza si el RLO es 1. Si no es as se continua la ejecucin del actual mdulo, pero pone el RLO a 1.

    6.2.5 Saltos que finalizan bloque:

  • Automtica

    - La operacin LOOP sirve para llamar varias veces a un segmento del programa.

    - Esta operacin decrementa la palabra baja del ACU 1 en 1.

    - Despus comprueba el valor depositado en la palabra baja del ACU 1. Si no es igual a 0, se ejecuta un salto a la meta indicada en la operacin LOOP. En caso contrario, se ejecuta la siguiente operacin normalmente.

    Cargar n de

    iteraciones en

    ACU1 L

    META: Grupo de

    instrucciones

    ACU1 L= ACU1 L -1

    ACU1 L=0?

    Siguiente

    instruccin

    SI

    NO

    6.2.6 Instruccin LOOP

  • Automtica

    - La operacin LOOP sirve para llamar varias veces a un segmento del programa.

    - Esta operacin decrementa la palabra baja del ACU 1 en 1.

    - Despus comprueba el valor depositado en la palabra baja del ACU 1. Si no es igual a 0, se ejecuta un salto a la meta indicada en la operacin LOOP. En caso contrario, se ejecuta la siguiente operacin normalmente.

    L +5 //Hacemos el ACU 1 igual a 5

    PROX: T MW 10 //transferimos valor del ACU 1 a la memoria de datos

    - //En estos guiones estara el segmento del programa

    - //que se va a ejecutar 5 veces

    -

    L MW 10 //leemos el valor de la memoria de datos en ACU 1

    LOOP PROX //decrementamos ACU 1 y saltamos a PROX si no es cero

    Ejemplo:

    6.2.6 Instruccin LOOP

  • Automtica

    Ejemplo

    FUNCIONAMIENTO:

    Realizar un programa que active el bit del byte de salida QB4 que indique el

    valor que haya en el IB0, es decir:

    - Si IB0 toma el valor 0, activar el bit 0 de QB124

    - Si IB0 toma el valor 1, activar el bit 1 de QB124

    - .......

    - Si IB0 toma el valor 7, activar el bit 7 de QB124

    Para valores no vlidos se apagarn todos los bits de salida

    6.2.7 Problemas instrucciones salto

  • Automtica

    Ejemplo de estructura if...then

    FUNCIONAMIENTO:

    Se trata de realizar una estructura if ... else if ... else ... que funcione de la

    siguiente manera:

    Si I 124.0 = 0 e I 124.1 = 1, resta los valores introducidos en las palabras de entrada IW 4 e IW 6.

    Si I 124.0 = 1 e I 124.1 = 0, multiplica los valores introducidos en las palabras de entrada IW 4 e IW 8.

    Si I 124.0 = 1 e I 124.1 = 1, suma los valores introducidos en las palabras de entrada IW 6 e IW 8.

    Si no se da ninguna de las condiciones anteriores, mostrar un 0 en la palabra de salida QW 4

    En todas las acciones anteriores hay que comprobar y actuar del modo y con la

    prioridad siguiente:

    Si se produce desbordamiento, indicarlo en la salida Q 124.0 Si el resultado es menor de 0, indicarlo en la salida Q 124.1 Si el resultado es igual a 0, indicarlo en la salida Q 124.2 y mostrarlo en la palabra de salida QW 4

    Si no se produce desbordamiento y el resultado es mayor que 0, mostrarlo en la palabra de salida QW 4

    6.2.7 Problemas instrucciones salto

  • Automtica

    Se trata de realizar el siguiente algoritmo con instrucciones de salto:

    6.2.7 Problemas instrucciones salto

    Inicio

    I124.0=1

    M1.2 I124.3 Q124.1 Q124.0 I124.0

    Q124.2 M1.0

    Fin

    S No

  • Automtica

    Se trata de realizar el siguiente algoritmo con instrucciones de salto:

    6.2.7 Problemas instrucciones salto

    Inicio

    I124.0=1

    QW2 MW5

    Fin

    S No

    Q124.0=1S No

    M1.0 1 M1.0 0

  • Automtica

    6.2.7 Problemas instrucciones salto

    Resolver el siguiente

    diagrama de flujo:

  • Automtica

    6.2.7 Problemas instrucciones salto

    Encontrar cul es el fallo de este cdigo

    L 0

    T MW0

    L 5

    SALTO: L MW0

    L 8

    +I

    T MW0

    LOOP SALTO

    L MW0

    T QW0

  • Automtica

    6.2.7 Problemas instrucciones salto

    Explicar qu hace el siguiente cdigoL 5

    meta: T MB0

    L 5

    L MB0

    ==I

    S Q4.0

    L 4

    L MB0

    ==I

    S Q4.1

    L 3

    L MB0

    ==I

    S Q4.2

    L 2

    L MB0

    ==I

    S Q4.3

    L 1

    L MB0

    ==I

    S Q4.4

    L 0

    L MB0

    ==I

    S Q4.5

    L MB0

    LOOP meta

  • Automtica

    6.2.8 Instrucciones de salto en KOP

    Se dispone de las operaciones de salto

    siguientes: --(JMP) Salto absoluto

    --(JMP) Salto condicional

    --(JMPN) Saltar si la seal es 0

    El operando de una operacin de salto es una

    meta.

    La meta de destino ha de encontrarse siempre

    al principio de un segmento. Para introducirla

    hay que seleccionar LABEL en el cuadro KOP

  • Automtica

    6.2.8 Instrucciones de salto en KOP

    --(JMP) Salto absoluto

    No hay otro elemento

    KOP entre el conductor

    izquierdo y la operacin

    Cada salto tiene que

    tener una meta.

  • Automtica

    6.2.8 Instrucciones de salto en KOP

    --(JMP) Salto

    condicional

    Cuando el RLO de la

    combinacin lgica

    anterior es "1"

    Si un salto condicional

    no se ejecuta, el RLO

    cambia a "1" despus

    de la operacin de

    salto.

  • Automtica

    6.2.8 Instrucciones de salto en KOP

    --(JMPN) Saltar si la

    seal es 0

    Salta cuando el RLO de

    la combinacin lgica

    anterior es 0"

    Si un salto condicional

    no se ejecuta, el RLO

    cambia a "1" despus

    de la operacin de

    salto.

  • Tema 6

    Programacin de los autmatas programables

    Tratamiento de seales analgicas

  • Automtica

    Ejemplos de seales analgicas

    Temperatura -50 ... +150C

    Caudal 0 ... 200 l/min

    Revoluciones 500 ... 1500 R/min

    Velocidad: 0-150 Km/h

  • Automtica

    Conversin en Autmata

    Las seales analgicas son convertidas a

    valores de voltaje, intensidad o resistencia

    normalizados por un transductor.

    Ej: Velocidad entre 500 y 1500 rev/min se

    traduce a un rango de tensin entre 0-10V.

  • Automtica

    Para 865 rev/min, el captador de medida

    emitir un voltaje de + 3.65 V.

    Como el rango de medida es de 1000

    rev/min y el del sensor 10 V, la resolucin

    es de 0.01 V/rev/min.

    Conversin en Autmata. Ejemplo

  • Automtica

    Conversin en Autmata (A/D)

    Si se procesan mediciones similares con un

    PLC, entonces el voltaje, intensidad o valor de

    resistencia introducido debe ser convertido a

    informacin digital.

    Esta conversin se denomina conversin

    Analgico--Digital (Conversin A/D). Esto

    significa que, por ejemplo, el valor de voltaje de

    3.65V se deposita como informacin en un

    registro digital equivalente de unos y ceros

  • Automtica

    Conversin en Autmata (A/D)

    A mayor nmero de bits utilizados para la

    representacin digital, mayor resolucin.

    Con un bit de resolucin para el rango de

    voltaje 0... +10V, obtenemos dos estados, uno

    en el rango de 0...+5V y otro en el de

    +5V...+10V.

    Con dos bits, el rango se divide en 4 reas

    individuales: 0... 2.5 / 2.5...5 / 5...7.5 / 7.5...10V.

    Conversores A/D tpicos: 8 y 11 bits (256 y 2048

    reas, respectivamente).

  • Automtica

    Entradas analgicas en Siemens

    Las entradas analgicas son seales de entrada

    continuas.

    El autmata incorpora un convertidor analgico

    digital (A/D), muestrea un valor (seales

    industriales homologadas) y lo traduce a bits.

    Cuantos ms bits, ms definicin y precisin. La

    resolucin de los mdulos utilizados es 27648.

    Por tanto, son tratadas como tipo WORD

    (entero). Para acceder a dicha palabra, lo

    hacemos de forma directa (PIW). Ej: L PIW 752

  • Automtica

    Salidas analgicas en Siemens

    Las salidas analgicas son seales de salida

    continuas.

    El autmata incorpora un convertidor digital

    analgico (D/A), que es el que realiza la

    conversin del valor real.

    Estas salidas tienen formato WORD (entero). Su

    valor mximo es 27648. Se escriben directamente

    en la periferia (PQW). Ej: T PQW 752

  • Automtica

    Tratamiento en Siemens

    Posibles resoluciones de valores analgicos

    Tarjeta 8 bits= 28 =256 de resolucin x 128 =32768 cantidad de resolucin

    Tarjeta 12 bits= 212 =4096 de resolucin x 8 =32768 cantidad de resolucin

    Con resoluciones

  • Automtica

    Tratamiento en Siemens

    Rango de entradas bipolares

    Representacin binaria de los rangos de entrada

  • Automtica

    Tratamiento en Siemens

    Rango de entradas unipolares

  • Automtica

    Escalado entradas analgicas

    Una vez que el autmata tiene a su entrada un valor (0-

    27648) asociado al transductor que ha traducido el

    rango de la variable del sensor hay que programar el

    escalado de dicho entero al valor real que representa. As, se puede establecer una relacin lineal entre el

    nmero entero que tenemos asociado a la entrada del

    autmata y el valor real que representa.

    mnValorEntradabitsRango

    mnValormxValorrealValor _

    _

    ___

  • Automtica

    Ejemplo escalado entrada analgica

    Se tiene un sensor de temperatura cuyo rango de

    medida es 10C-90C. Qu temperatura mide si en la

    entrada de periferia se lee el valor 10428?

    Valor mn.: 10C (entrada=0)

    Valor mx.: 90C (entrada=27648); Rango bits= 27648

    mnValorEntradabitsRango

    mnValormxValorrealValor _

    _

    ___

  • Automtica

    Ejemplo escalado entrada analgica

    La ecuacin que relaciona la entrada con el valor real es:

    CrealValor

    EntradarealValor

    17.40)10428(_

    10*029.0_

    10

    90

    27648

    Valor

    Entrada

  • Automtica

    Ejemplo escalado entrada analgica

    Solucin en AWL:

    L PIW 752 // Valor analgico de entrada de 0 a 10 V:

    // contiene valores enteros de 0 a 27648 (16 Bits)

    ITD // Conversin de entero (16 Bits) a entero (32 Bits)

    DTR // Conversin de entero (32 Bits) a valor real

    L 2.7648e+4 //

    /R // Divisin con el nmero real 27648

    L 8.000e+1

    *R // Multiplicacin con el nmero real 80 (90-10)

    L 1.000e+1

    +R // Suma con el nmero real 10 (Deriva)

    T MD10 // Valor normalizado 10 a 90 en formato real

    mnValorEntradabitsRango

    mnValormxValorrealValor _

    _

    ___

  • Automtica

    Desescalado salida analgica

    Si se quiere llevar un actuador a un valor real, es

    necesario cargar en una salida analgica el entero que

    corresponde a dicho valor.

    As, se puede establecer una relacin lineal entre el

    valor real deseado y el nmero entero que necesitamos

    a la salida del autmata.

    _ _( _ )

    _ _

    Valor real Valor mnSalida Rango bits

    Valor mx Valor mn

  • Automtica

    Ejemplo desescalado salida analgica

    Se quiere imprimir a un motor una velocidad que oscila de

    500 rev/min a 1500 rev/min. Qu valor hay que cargar en

    la salida de periferia si la velocidad deseada es de 850

    rev/min?

    Valor mn.: 500 rev/min (salida=0)

    Valor mx.: 1500 rev/min (salida=27648); Rango bits= 27648

    _ _( _ )

    _ _

    Valor real Valor mnSalida Rango bits

    Valor mx Valor mn

  • Automtica

    Ejemplo desescalado salida analgica

    La ecuacin que el valor real con la salida es:

    y = 27,64x - 13824

    -5000

    0

    5000

    10000

    15000

    20000

    25000

    30000

    0 200 400 600 800 1000 1200 1400 1600

    Relacin Salida_aut-Valor_real

    (Valor redondeado entero ms prximo)9677)850(

    13824_648,27

    Salida

    realValorSalida

    Salida

    Valor_real (rpm)

  • Automtica

    Ejemplo desescalado salida analgica

    Solucin en AWL:

    L MD20 // Valor de 500 a 1500 rpm en formato real

    L 5.000e+2

    -R // Resta el Valor_mn 500.0 (Deriva)

    L 1.000e+3

    /R // Divisin por Valor_mx-Valor_mn 1000.0

    L 2.7648e+4

    *R // Multiplicacin por Rango_bits 27648.0

    RND // Redondeo a entero

    T PQW 288 // El nmero entero de 0 a 27648 (16 Bits)

    // corresponde al valor analgico de

    // salida de 0 a 10 V

    _ _( _ )

    _ _

    Valor real Valor mnSalida Rango bits

    Valor mx Valor mn

  • Automtica

    Notas al escalado y desescalado

    A la hora de programar ambos procesos en el autmata

    hay que trabajar con los tipos de datos correctos

    (Enteros y Reales) y hay que utilizar las instrucciones de

    conversin correspondientes. Ej: valor redondeado de

    salida del valor del problema anterior (9676,8)

    Las ecuaciones de las rectas se pueden calcular de la

    forma que se considere ms adecuada (punto-

    pendiente, dos puntos, continua).

    El rango de bits depender de que se trabaje de forma

    unipolar (0->27648) o bipolar (-27648->27648).

  • Automtica

    Bibliografa

    MANDADO, E.; et al. Autmatas programables y sistemas de automatizacin. 2 edicin. Barcelona: Marcombo, 2009. 1085 p. ISBN:978-84267-1575-3.

    Siemens; S7-300 CPU 31XC y CPU31x: Configuracin e instalacin. Siemens, 2011.

    Siemens; Esquema de contactos (KOP) para S7-300 y S7-400. Manual de referencia. Siemens, 2006.