Clase 2 - Lenguaje LD

Embed Size (px)

Citation preview

  • 8/16/2019 Clase 2 - Lenguaje LD

    1/12

  • 8/16/2019 Clase 2 - Lenguaje LD

    2/12

    Programas LD del ejemplo 1

    PLC

    I1

    O1

    I2

    Relé 1

    A1 A2Relé 1

    M

    I1

    I2

    O1

    Encendido por I1 OR I2

    I1 I2 O1

    Encendido por I1 AND I2

    Orígenes históricosPrograma LD del ejemplo 2

    Relé 2

    Motor

    PLC

    NC NA

    I1

    O1

    I2

    Relé 2

    I2

    I1

    O1

    O1

    S

    R

    Orígenes históricos

    Estructura programa LDLenguaje gráfico

    Programa consiste en una secuencia de escalones (rungs)

    Comienza en una barra de alimentación izquierda ( positivo de la fuente)1

    Estructura de cada escalón:

    Condiciones y acciones, conectadas por líneas de conexión2

    Termina en una barr a de alimentación derecha (negat ivo de la fuente)3

    Los escalones se ejecutan de arriba hacia abajo

    Cada escalón se ejecuta de izquierda a derecha

    I1 I2 O1

    Diferencias entre fabricantes

    Diferencias entre fabricantes: implementación ynomenclatura de las instrucciones

    Este curso usa la nomenclatura de los PLCs dellaboratorio:

    En algunos aspectos estándar

    Fácilmente comprensible

  • 8/16/2019 Clase 2 - Lenguaje LD

    3/12

    Símbolos básicos

    O1Bobina (salida)

    I1Contacto (entrada)

    Cada símbolo tiene asociado un bit de memoria

    Un bit de memoria se refiere por:

    Su dirección

    Su etiqueta (label)

    Operaciones Básicas

    I1

    I2

    O1

    AND (conexión serie):

    OR (conexión paralelo):

    I1 I2 O1

    (O1 = 1) si (I1 = 1) y (I2 = 1)

    (O1 = 1) si (I1 = 1) o (I2 = 1)

    Instrucciones con BITsContacto directo Contacto invertido

    Bobina directa Bobina invertida

    Contacto normalmente abierto

    Verdadero si bit vale 1

    Función inversa de bobina directa Análoga a la bobina de un relé

    Si el escalón es 1, escribe 1 en bit asociado

    Si el escalón es 0, escribe 0 en bit asociado

    Contacto normalmente cerrado

    Verdadero si bit vale 0

    SET (o LATCH) RESET (UNLATCH)

    Instrucción de salida retentiva

    Si el escalón es 1, escribe 1 en bit asociado

    Si el escalón es 0, no hac e nada

    S

    Se usa en conjunto con el SET

    R

    Si el escalón es 1, escribe 0 en bit asociado

    Si el escalón es 0, no hac e nada

    Instrucciones con BITsEjemplo: BOBINA vs. SET/RESETContador de pulsos con rebotes

    Solución con bobina I1 AUX

    Siguen instrucciones para contar pulsos

    I1

    AUX

    Solución con SET I1 AUX

    Siguen instrucciones par a contar pulsos y realizar RESET luego defiltrado

    SI1

    AUX

  • 8/16/2019 Clase 2 - Lenguaje LD

    4/12

    Bloques funcionalesn Las instrucciones de aquí en adelante

    se representan gráficamente comobloques funcionales

    n Bloque funcional: objeto gráfico que serepresenta por un rectángulo, conpuntos de conexión de entradas,conexión de salidas y un identificador

    Bloques funcionalesn El identificador describe función del bloquen Ejemplo: bloque funcional que implementa la

    función FUN, con dos entradas y dos salidas

    n Las entradas y salidas son datos. El tipo dedato de cada una depende del bloque.

    Contadoresn Existen tres tipos:

    n UP - Counters: CTUn DOWN – Counters: CTDn UP-DOWN Counters: CTUD

    n Rango de cuenta: depende de fabricante. EnPLCs de laboratorio:

    n CTU cuenta desde 0 a 32767n CTUD cuenta desde 0 a 32767

    Contadoresn Entrada CU (bit): “Pulso”, se conecta al tren

    de pulsos que se cuentann Entrada RESET (bit): escribe 0 en acumuladorn Entrada PV (Word): límite máximo de cuenta

    (Preset Value)n Salida Q (bit): “Done”, indica si acumulador

    >= PVn CV (Word) = cuenta, acumulador (Current

    Value)

  • 8/16/2019 Clase 2 - Lenguaje LD

    5/12

    Contadores: Ejemplo Contadores: Ejemplon Observación: el contador se incrementa a

    intervalos de tiempo variables (dependen delpulso I1)

    n Timer: instrucción destinada a esperar ciertotiempo antes de una acción

    n Tres tipos de timers:n TON: Timer On Delay (retardo en el encendido):

    luego que la entrada pasa a 1 durante X seg, lasalida pasa a 1.

    n TOF: Timer Off Delay (retardo en el apagado): luegoque la entrada pasa 0 durante X seg, la salida pasa a0.

    n Timers retentivos: no existen en los PLCs de lab.Cuenta el tiempo que la entrada es 1, congelando lacuenta con cambios de 1 a 0.

    Timers Timers: TONn Timer On Delay TON:

    n Entrada IN (bit): “Habilitación”, se conecta al pulsoque el timer retarda

    n Entrada PT (time): “Preset”, determina valor delacumulador para el que se ejecuta acción del timer

    n Salida Q (bit): “Done”, indica la expiración del tiempode retardo

    n Salida ET (time): “Elapsed Time”, la cuenta deltiempo transcurrido

  • 8/16/2019 Clase 2 - Lenguaje LD

    6/12

    Timers: Ejemplo TON Timers: Ejemplo Retentivo

    Timers: TPn Timer de Pulso TP:

    n Entrada IN (bit): entrada que genera el pulso cuandopasa a 1

    n Entrada PT (time): “Preset”, duración del pulso desalida

    n Salida Q (bit): se mantiene en 1 durante el tiempo PTluego de 1 en la entrada

    n Salida ET (time): “Elapsed Time”, la cuenta deltiempo transcurrido

    Timers: Ejemplo TP

  • 8/16/2019 Clase 2 - Lenguaje LD

    7/12

    n La cuenta del timer es independiente dela ejecución del programa (a cargo delsistema operativo)

    n La cuenta del contador SI depende dela ejecución del programa

    Timersn Precisión

    n Demora en la entrada: 1 tiempo de ciclon Demora en ejecución del timer: 1 tiempo

    de ejecución (máx 1 ciclo)n Demora en la salida: 1 tiempo de ciclon Total: 3 tiempos de ciclon Ejemplo: tiempo de ciclo de 5 mseg lleva a

    error de 15 mseg

    n Retardos en filtrado y en la electrónica

    Timers

    Triggers: R_TRIGn Trigger Ascendente (Rising):

    n Detección de flanco ascendenten Entrada CLK (bit): activa la salida cuando pasa a 1

    (flanco)n Salida Q (bit): se mantiene en 1 durante 1 ciclo de

    ejecución ante flanco en CLK, luego pasa a 0

    Triggers: F_TRIGn Trigger Ascendente (Falling):

    n Detección de flanco descendenten Entrada CLK (bit): activa la salida cuando pasa a 0

    (flanco)n Salida Q (bit): se mantiene en 1 durante 1 ciclo de

    ejecución ante flanco en CLK, luego pasa a 0

  • 8/16/2019 Clase 2 - Lenguaje LD

    8/12

    Shift Registersn Instrucción que almacena eventos en área de

    memoria por desplazamiento o rotación de losbits individuales

    n En el PLC del laboratorio, se denomina “SH_L” o “SH_R”

    Shift Registersn Entradas de instrucción SHIFT:

    n E (W o DW): operando (almacena los eventos)n D/W (bit): tipo de dato En ANZ (W): número de posiciones del movimienton LKS (bit): direcciónn ROT (bit): operación es rotaciónn ROTC (bit): operación es rotación con CY_En SLOG (bit): operación es desplazamienton SARI (bit): operación es desplazamiento aritméticon CY_E (bit): valor inicial de carry flag

    n Salidas de instrucción SHIFT:n Salida CY_A (bit): valor final de carry flagn Salida A (W o DW): resultado de la operación

    Shift Registersn Operaciones ROT/ROTC de SHIFT:

    Shift Registersn Operación SLOG de SHIFT:

  • 8/16/2019 Clase 2 - Lenguaje LD

    9/12

    n JSR (Jump to subroutine)n En PLC de laboratorio, salto condicional a

    valor TRUE de un bit, definido por:n Jump symbol: símbolo asociado a instrucción

    JUMPn Bit que define el salton Jump label: posición donde salta (siempre hacia

    adelante)

    Control de Flujon Esquema instrucción JUMP PLC lab:

    Control de flujo

    Símbolo

    Instrucción salteada

    Label

    Bit que habilita el salto

    Otras Instruccionesn Existen muchas instrucciones en forma

    de bloques funcionales (varias seestudian en otras partes del curso)

    n Desde el punto de vista del programaLADDER se clasifican en:

    n Instrucciones de entrada: evalúan si elescalón es verdadero o falso

    n Instrucciones de salida: se ejecutan segúnresultado del escalón

    Otras Instruccionesn Ejemplos de instrucciones de entrada:

    n Instrucciones de comparación: Igual (EQ),Mayor (GT), etc. Salida verdadera o falsoen función de comparación de entradas(tipo Bool, Word, etc.)

  • 8/16/2019 Clase 2 - Lenguaje LD

    10/12

    Otras Instruccionesn Ejemplos de instrucciones de salida:

    n Operaciones aritméticas o lógicas: ADD, AND, MUL, etc. Entradas y salida tipoWord, Real, etc.

    n Operaciones de movimiento de memoria:permiten copiar áreas de memoria

    n Funciones de control PIDn Funciones de comunicaciones: permiten

    intercambio de mensajes entre PLCs

    EjemploSe desea escribir un programa que controle el encendido -

    apagado de una bomba.La bomba será encendida si:1) Se pulsa el botón de arranque.2) La protección térmica está deshabilitada.3) Está abierto el botón de alarma.4) Está abierto el botón de parada.Desde un tiempo T después del encendido, no puede haber ni

    sobre corriente ni baja corriente. Expresado de otra forma,desde un tiempo T después del arranque, la corriente Idebe cumplir I MIN< I < I MAX, siendo I MIN e I MAXlímites

    prefijados.

    Ejemplo

    El motor de la bomba se apagará si:

    1) Se pulsa el botón de parada.

    2) Se cierra la protección térmica.

    3) Se pulsa el botón de alarma.4) Los límites de corriente no son los correctos.

    Conexiones al PLC

  • 8/16/2019 Clase 2 - Lenguaje LD

    11/12

  • 8/16/2019 Clase 2 - Lenguaje LD

    12/12

    Diagrama de Estados en LDn Método para convertir un diagrama de

    estados al lenguaje LD

    ARRANQUEX_ APAGADO PARADA TERMICO AL ARMA

    S

    R

    X_APAGADO

    X_TRANSITORIO

    S

    X_TRANSITORIO

    S

    R

    X_TRANSITORIO

    X_ENCENDIDO

    S

    SALIDA_TIMER

    X_TRANSITORIO

    S

    R

    X_ENCENDIDO

    X_APAGADO

    S

    PARADA

    TERMICO

    ALARMA

    X_ENCENDIDO

    S

    R

    X_ENCENDIDO

    X_APAGADO

    S

    PARADA

    TERMICO

    ALARMA

    ERROR

    1

    2

    3

    4

    Transiciones

    Ejemplo Apagado

    Apaga bomba

    Transitorio

    Enciende bombaEnciende timer

    Encendido

    ERROR = (CORRIENTE > MAX) OR (CORRIENTE < MIN)

    SALIDA_TIMER = 1

    2

    ARRANQUE and(NO PARADA) an d(NO ALARMA) and

    (NO TERMICO)

    1

    PARADA or ALARMA or

    TERMICO

    3

    ERROR or PARADA or

    ALARMA or TERMICO

    4

    R

    X _A PA GA DO B OMB A_ ON

    S

    X_TRANSITORIO BOMBA_ON Acciones

    Ventajas / Desventajasn Método sistemáticon Minimiza/elimina errores posterioresn LD disponible en todos los PLCsn Poco intuitivo, difícil de comprender sin

    el diagrama de estados asociadon Cambios requieren estudio del diagrama

    previamente