presentaciones introduccion a los plc

Upload: nick-carter

Post on 07-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    1/59

    1

    PLC

    INTRODUCCIÓN

    Historia de los PLC

    Primer controlador programable:MODICON, a fines de los 60

    Objetivo: sustituir la lógica de relé Lógica de relé:

    Circuitos lógicos basados en contactores,relés y temporizadores discretos

    Utilizada para automatización de procesossecuenciales en ambientes industriales

    Historia de los PLC Primer cambio cualitativo con PLCs:

    posibilidad de reprogramación de la lógica sincambios drásticos en el cableado delhardware, sustituyendo relés mecánicos porrelés virtuales

    Historia de los PLC

    Ejemplo: uso de un PLC en elencendido de un motor

    circuito de arranque de un motor por lógica

    de relé

    Historia de los PLC

    Cableado del PLC para implementar loanterior:

    Historia de los PLC

    Observaciones sobre cableado dePLC anterior: PLC se conecta a las entradas y salidas

    de la planta El relé intermedio “Relé 1” se sustituye

    por software del PLC

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    2/59

    2

    Historia de los PLC

    Si se agrega un botón adicional dearranque.- Nuevo cableado con lógica de relé:

    Historia de los PLC

    - Nuevo cableado del PLC:

    Ventajas: cambio de hardware por software

    flexibilidad

    Historia de los PLC La capacidad de los PLCs se amplía

    en la década de los 70: Introducción de comunicaciones: protocolo

    MODBUS (en MODICON). Permitedescentralización del sistema

    Introducción de entradas y salidasanalógicas. Permite uso más amplio delPLC como recolector de datos y laposibilidad de realizar control

    Historia de los PLC

    La ampliación de capacidad delos PLCs en los 70 se sustentaen:

    Evolución de microprocesadoresy microcontroladores Conversores análogo-digitales

    Historia de los PLC

    Década de los 80: Programación por lenguajes gráficos desde

    ambientes de desarrollo de PCs (realizadahasta los 80 por consolas especiales)

    Uso de microntroladores más potentesdentro de la CPU de los PLC (INTEL,Motorola, AMD).

    Historia de los PLC

    Década de los 90: 386 de INTEL y 68000 de Motorola

    Estandarización de protocolos decomunicaciones y lenguaje

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    3/59

    3

    Historia de los PLC

    Estándar de lenguajes: 1131-3.- No se utiliza en forma amplia.- Se definen 5 lenguajes.

    Historia de los PLC

    Hoy día existen fábricas de PLCprácticamente en todos los paísesdesarrollados:- Modicon, Allen Bradley y General Electric en

    Estados Unidos- Siemens en Alemania- Telemécanique en Francia- Omrom en Japón

    Dentro de un PLC

    Un PLC se compone de un CPU, memoriay entradas/salidas.

    Diferencias con PC:

    - El PLC no tiene interfaz gráfica- El hardware del PLC es de mejor calidad- El sistema operativo del PLC es más robusto

    Dentro de un PLC

    Las entradas digitales del PLC se conectana las entradas físicas del proceso.- Presentan aislación óptica.

    - Normalmente se manejan con baja tensión decontinua.

    Dentro de un PLC

    Sustituyendo la lógica de relés- Los relés intermedios de la lógica de relé sesustituyen por los relés virtuales del PLC(lenguaje LD).

    - Otro elemento de la lógica de relés: el timer.El PLC puede correr cientos de timerssimultáneamente, por software.

    Dentro de un PLC

    Las salidas digitales del PLC actúandirectamente sobre el mundo. Pueden sertransistores o relés.

    Las salidas digitales presentan aislacióngalvánica.

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    4/59

    4

    Dentro de un PLC

    El PLC ejecuta cíclicamente un programade usuario.

    El período de ejecución se denominatiempo de ciclo del PLC.

    Dentro de un PLC

    Cada ciclo se divide en tres etapas:1) Actualización de entradas físicas y de

    comunicaciones.2) Ejecución del programa.3) Actualización de salidas físicas y de

    comunicaciones

    Dentro de un PLC

    Debido a la división del ciclo:- las salidas no cambian mientras se ejecuta el

    programa

    - se ignoran los cambios de entradas mientras seejecuta el programa.

    Dentro de un PLC

    Tiempo de respuesta: tiempo desde que cambia unaentrada hasta que cambia la salida correspondiente.

    Peor caso de tiempo de respuesta: dos tiempos deciclo.

    Dentro de un PLC

    Ancho mínimo de entrada para serreconocida: tiempo de ciclo.

    Dentro de un PLC

    Configuración del PLC. Dos parámetrosimportantes: Tiempo de ciclo Modo de funcionamiento del PLC en red de

    comunicaciones

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    5/59

    5

    Dentro de un PLC

    Configuración del tiempo de ciclo Determina el tiempo de respuesta de PLC a

    estímulos externos Depende de largo del programa y configuración

    comunicaciones

    Dentro de un PLC

    Configuración del modo de funcionamientodel PLC en la red de comunicaciones: Unidad stand-alone o en red de comunicaciones El PLC puede tener módulos remotos de entrada

    salida, o comunicarse con otros PLCs Los módulos remotos se disponen lo más cerca

    posible de la toma de señales, resultando enahorro de cableado del orden del costo de losequipos

    PLC

    TIPOS DE DATOS

    La memoria del PLC

    Estructura de la memoria:- Memoria no accesible- Memoria de programa de usuario yconfiguración

    - Memoria accesible

    La memoria del PLC

    Memoria accesible:- Memoria E/S- Memoria Lectura/Escritura

    Memoria E/S se actualiza con E/S.

    Tipos de datos de un PLC

    Las localidades de la memoriaaccesible se agrupan formandodatos

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    6/59

    6

    Tipos de datos de un PLC

    Hay cuatro tipos de datos- Datos binarios (1 bit)- Palabras (2 bytes)- Palabras dobles (4 bytes)- Flotantes

     Variables y constantes

    Un dato puede ser variable o constante Constante: valor no se puede modificar en

    ejecución de programa Variable: valor se puede modificar en

    ejecución de programa

    Direcciones de los datos

    Un dato del PLC se refiere por sudirección

    Direcciones:- Entrada- Salida- Datos internos (memoria

    Lectura/Escritura)

    Direcciones de los datos

    Dirección:

    [Código letras] [Código números]

    Direcciones de los datos

    Código de letras: distingue el tipode dato y el espacio de la memoria

    Primer letra:- I/E: Dirección E- Q/O: Dirección S- M: Dirección dato interno

    Direcciones de los datos

    Segunda letra:- X: bit- B: byte (8 bits)- W: word (16 bits)- D: double word (32 bits)- L: long word (64 bits)

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    7/59

    7

    Direcciones de los datos

    Direcciones de datos binarios- Internos: M XX.YY - Entradas: I XX.YY - Salidas: O XX.YY 

    Direcciones de los datos

    Direcciones de palabras- Internas: MW XX.YY - Entradas Conversores A/D: IW XX.YY - Salidas Conversores D/A: OW XX.YY - Constantes (LAB): KW XX.YY 

    Direcciones de los datos

    Direcciones de palabras dobles- Internas: MD XX.YY - Constantes (LAB): KD XX.YY 

    Mapeo de extensiones yunidades remotas en memoria

    Las entradas/salidas de un sistema semapean como datos en memoria de E/Sdel PLC central

    Mapeo de extensiones yunidades remotas en memoria

    Operación de PLC central y unidades remotas:- Entrada: se transfieren entradas a

    zona de memoria (comunicaciones o bus dedatos)

    - Ejecución del programa- Salida: se transfiere zona de memoria a

    salidas

    PLC

    LADDER 

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    8/59

    8

    Porqué LADDER?

    Orígenes históricos Ejemplo 1 lógica de relés: A1 o A2

    encienden el motor M

    Porqué LADDER?

    Cambio conexión paralelo a serierequiere recableado

    Porqué LADDER?

    Con PLC:

    Porqué LADDER?

    Ejemplo 2 lógica de relés: encendido demotor con relé intermedio

    Porqué LADDER?

    Con PLC:

    Porqué LADDER?

    Objetivos Aumentar la confiabilidad Aumentar la flexibilidad Mantener la facilidad de soporte:

    lenguaje de programación fácilmenteentendido por electricistas de planta

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    9/59

    9

    Porqué LADDER?

    Programas LD ejemplo 1:

    Porqué LADDER?

    Programa LD ejemplo 2:

    Estructura programa LD Lenguaje gráfico Programa consiste en una secuencia de

    escalones (en inglés, rungs) Estructura de escalón:

    comienza en barra de alimentación a la izquierda

    (positivo de fuente) condiciones y acciones, conectadas por líneas de

    conexión termina en una barra de alimentación a la derecha

    (negativo de fuente)

    Estructura programa LD

    Los escalones se ejecutan de arribahacia abajo

    Cada escalón se ejecuta de izquierda aderecha

    Diferencias entre fabricantes:implementación y nomenclatura de lasinstrucciones

    En este curso se utiliza la nomenclaturade los PLCs del laboratorio, en algunosaspectos estándar y fácilmentecomprensible

    Diferencias entre fabricantes

    Contacto (entrada):

    Bobina (salida):

    Cada símbolo tiene asociado un bit dela memoria, que se refiere por sudirección o por una etiqueta (en inglés “label”)

    Símbolos básicos

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    10/59

    10

    Operaciones Básicas

    AND

    (Conexión

    serie)

    OR 

    (Conexión

    Paralelo)

    O1 = 1

    si

    (I1 = 1) y (I2 = 1)

    O1 = 1

    si

    (I1 = 1) o (I2 = 1)

    Instrucciones con BITs

    Contacto directo: Contacto normalmente abierto Verdadero si bit vale 1

    Contacto invertido: Contacto normalmente cerrado Verdadero si bit vale 0

    Instrucciones con BITs

    Bobina directa: Análogo a la bobina de un relé Si escalón es 1, escribe 1 en bit asociado Si escalón es 0, escribe 0 en bit asociado

    Bobina invertida: Función inversa de Direct coil

    Instrucciones con BITs SET (o LATCH):

    Instrucción de salida retentiva Si el escalón es 1 escribe 1 en el bit Si el escalón es 0 no hace nada Se utiliza en conjunto con RESET

    RESET (o UNLATCH): Si el escalón es 1 escribe 0 en el bit Si el escalón es 0 no hace nada

    Instrucciones con BITs

    Ejemplo BOBINA vs SET/RESET:contador de pulsos electromagnéticos Solución con Direct Coil

    Instrucciones con BITs Solución con SET:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    11/59

    11

    Bloques funcionales

    Las instrucciones de aquí en adelantese representan gráficamente comobloques funcionales

    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 funcionales El identificador describe función del bloque Ejemplo: bloque funcional que implementa la

    función FUN, con dos entradas y dos salidas

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

    Contadores Existen tres tipos:

    UP- Counters: CTU en PLC de laboratorio DOWN – Counters: Normalmente llamados CTD

    (PLC de laboratorio no tiene) UP-DOWN Counters: VRZ en PLC de laboratorio

    Rango de cuenta: depende de fabricante. EnPLCs de laboratorio: CTU cuenta desde 0 a 32767  VRZ cuenta desde -32768 a 32767

    Contadores

    Entrada CU (bit): “Pulso”, se conecta al trende pulsos que se cuentan

    Entrada R (bit): “Reset”, escribe 0 enacumulador

    Entrada PV (word): límite máximo de cuenta Salida Q (bit): “Done”, indica si acumulador

    >= PV CV (word) = acumulador

    Contadores: Ejemplo Contadores: Ejemplo

    Observación: el contador se incrementa aintervalos de tiempo variables (dependen delpulso I1)

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    12/59

    12

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

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

    lab, ESV y TON. Luego que escalón pasa a 1 duranteX seg, pasa bit de salida a 1.

    Timer Off Delay (retardo en el apagado): en PLC delab, ASV y TOFF. Luego que escalón pasa 0 duranteX seg, pasa bit de salida a 0.

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

    Timers Timers Timer On Delay ESV:

    La cuenta del tiempo se mantiene en variable interna “Acumulador” 

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

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

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

    Timers: Ejemplo ESV Timers: Ejemplo Retentivo

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

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

    Timers Precisión

    Errores en la entrada: 1 tiempo de ciclo Errores en la salida: 1 tiempo de ciclo Total: 3 tiempos de ciclo Ejemplo: tiempo de ciclo de 5 mseg lleva a

    error de 15 mseg Retardos en el filtrado y en la

    electrónica

    Timers

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    13/59

    13

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

    memoria por desplazamiento o rotación de losbits individuales

    En la familia del PLC del laboratorio, sedenomina “SHIFT” 

    No disponible en el PLC del laboratorio

    Shift Registers Bloque funcional asociado a instrucción SHIFT:

    Shift Registers Entradas de instrucción SHIFT:

    E (W o DW): operando (almacena los eventos) D/W (bit): tipo de dato E  ANZ (W): número de posiciones del movimiento LKS (bit): dirección ROT (bit): operación es rotación

    ROTC (bit): operación es rotación con CY_E SLOG (bit): operación es desplazamiento SARI (bit): operación es desplazamiento aritmético CY_E (bit): valor inicial de carry flag

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

    Shift Registers Operaciones ROT/ROTC de SHIFT:

    Shift Registers Operación SLOG de SHIFT:   JSR 

    GOTO En PLC de laboratorio, salto condicional al

    valor TRUE de un bit, definido por: Jump label: posición donde salta (siempre hacia

    adelante) Jump symbol: símbolo asociado a instrucción

    JUMP Bit que define el salto

    Control de flujo

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    14/59

    14

    Esquema instrucción JUMP PLC lab:

    Control de flujo Otras Instrucciones Existen muchas instrucciones en forma

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

    Desde el punto de vista del programaLADDER se clasifican en: Instrucciones de entrada: evalúan si el

    escalón es verdadero o falso Instrucciones de salida: se ejecutan según

    resultado del escalón

    Otras Instrucciones

    Ejemplos de instrucciones de entrada: Instrucciones de comparación: Igual

    (EQU), Mayor (GRT), etc. Verdadero ofalso las entradas tipo W sean iguales, unamayor que la otra, etc.

    Otras Instrucciones Ejemplos de instrucciones de salida:

    Operaciones aritméticas o lógicas: ADD, AND, MUL, etc. Entradas tipo W y salidatipo W

    Operaciones de movimiento de memoria:

    permiten copiar áreas de memoria Funciones de control PID 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 emergencia.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 IMIN < I < IMAX, siendo IMIN e IMAX límitesprefijados.

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

    4) Los límites de corriente no son los correctos.

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    15/59

    15

    Conexiones al PLC Ejemplo

    ARRANQUEX_APA GADO PARADA TERMIC O ALARM A

    S

    X_APAGADO

    X_TRANSITORIO

    S

    X_TRANSITORIO

    S

    X_TRANSITORIO

    X_ENCENDIDO

    S

    SALIDA_TIMER

    X_TRANSITORIO

    S

    X_ENCENDIDO

    X_APAGADO

    S

    PARADA

    TERMICO

    ALARMA

    X_ENCENDIDO

    SR 

    X_ENCENDIDO

    X_APAGADO

    S

    PARADA

    TERMICO

    ALARMA

    ERROR

    Ejemplo

    Apagado

    Transitorio

    Encendido

    ARRANQUE and(NO PARADA) and(NO ALARMA) and

    (NO TERMICO)

    ERROR orPARADA orALARMA orTERMICO

    PARADA orALARMA orTERMICO

    SALIDA_TIMER = 1

    Apaga bomba

    Enciende bombaEnciende timer

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

    2

    1

    34

    1

    2

    3

    4

    X _AP AGA DO B OM BA _O N

    S

    X_TRANSITORIO BOMBA_ON

    Transiciones

    Acciones

    PLC

    EL AC31GRAF

    Introducción

    PLCs laboratorio: 07KR51 ABB Ambiente de desarrollo: AC31GRAF

    Introducción

    Permite:- Desarrollar programas para el PLC- Comunicación con PLC

    Comunicación:- Cargar configuración en el PLC- Cargar programas en el PLC- Determinar variables y estado del

    PLC

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    16/59

    16

    La unidad de programación

    La unidad de programación es elproyecto.

    Un proyecto consta de uno o másmódulos.

    Un módulo puede ser: programa,subrutina o interrupción.

    La unidad de programación

    La compilación del proyecto resultaen un ejecutable.

    El Project Manager

    Los proyectos se manejan desde el ProyectManager.

    Para abrir: Open Para crear nuevo proyecto: New

    Un proyecto puede tener:- Más de un módulo (modular )- Un único módulo (main )

    Manejo de proyecto modular Desde Program Management del

    proyecto. Permite:

    - abrir, crear módulos

    - editar listas de variables- compilar módulos- configurar y establecer

    comunicación con el PLC

    Manejo de proyecto modular

    Hay tres tipos de módulos:- Programa- Subrutina- Interrupción: de hardware o de

    tiempo

    Manejo de proyecto modular Interfaz de comunicación con el

    PLC: Control Panel. Permite:- Establecer configuración- Transferir configuración de defecto- Transferir ejecutable del proyecto- Operaciones de control sobre PLC- Transferencia de mensajes de error

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    17/59

    17

    Manejo de proyecto modular

    Ejecución del programa se siguedesde la ventana debug

    Proyecto de módulo único

    Se trabaja desde el editor delmódulo main

    Editores de programas

    Cada lenguaje de programación tiene su editor Un módulo se edita bajo el editor de su

    lenguaje

    Editores de programas

    Los editores del paquete son:- Editor FBD/LD- Editor IL- Editor Quick LD

    - Editor SFC

    Editores de programas

    Instrucciones comunes a los editores:- Manejo de archivos- Edición de variables- Compilación de programas- Comunicación y configuración de la

    comunicación con el PLC

    Editores de programas

    El Editor LD/FBD:- Barra de herramientas FBD/LD- Comentarios- Labels, saltos- Edición de bloques- Instrucciones de LD- Insertando Timers, Contadores

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    18/59

    18

    PLC

    LENGUAJE FBD

    El bloque funcional

    Bloque funcional: rectángulo conentradas, salidas e identificador.

    Estructura de programa FBD Programa FBD: consiste de conexiones entre

    bloques funcionales y datos, a través delíneas de conexión.

    Se permite conectar la salida de un bloque ala entrada de otro.

    El programa se ejecuta de arriba abajo, y deizquierda a derecha.

    Figura 1-2

    Ejemplo En LD, el programa anterior queda:

    Grupos de instrucciones

    El 90% de los programas se resuelvecon el 20% de las instrucciones.

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    19/59

    19

    Grupos de instrucciones Clasificación:- Funciones binarias.- Funciones de timer.- Contadores.- Funciones de palabras simples y dobles: comparación,

    aritméticas, lógicas.- Funciones de control de programa.- Funciones de control.- Funciones de comunicación.- Funciones de conversión de formato (pack, unpack).- Funciones de alto nivel (multiplexor).- Funciones de acceso a memoria.

    Grupos de instrucciones Funciones binarias:

    - Entradas salidas de tipo binario- Ejemplos: AND, OR, XOR,

    =S (LATCH), =R (UNLATCH)

    - Se permite cambiar el número deentradas de ciertos bloques

    - Las variables pueden ser negadas

    Grupos de instrucciones

    Funciones de Timer y Contadores- Incluyen timers, contadores,

    monoestables, etc.

    Grupos de instrucciones

    Funciones de palabras simples y dobles:- Funciones de comparación: resultado es un bit.- Funciones aritméticas: el resultado es una

    palabra. Incluyen suma, resta, multiplicación y

    división.- Funciones lógicas de palabras: en general elresultado es una palabra. Ejemplos:* WAND, WOR, WXOR ejecutan AND, ORXOR bit a bit de las palabras de entrada.

    * Shift, Rotate.

    Grupos de instrucciones

    Funciones de control de programa.Ejemplos:- Jump: salto condicional. Una buenaestructura FBD lo evita.

    - DI y DO: lectura/escritura inmediata deentrada o salida,respectivamente.

    Grupos de instrucciones Funciones de control.

    - Incluyen control PI, PID, etc.

    )(100

    )1(/100

     xw KP 

     Z Y T TN 

     xw KP Y    −+−+

    −=  

     

      

     +=

    TN  s KP  s F 

    *

    11)(

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    20/59

    20

    Grupos de instrucciones

    Funciones de conversión de datos. Incluyen:- Conversión de palabra a palabra doble- Pack y unpack

    Grupos de instrucciones Funciones de comunicaciones La puerta serie del PLC se puede utilizar de

    dos maneras:- Mensajes con un PC (RS232 ASCII)- Ambientes industriales (protocolo Modbus)

    Las funciones de comunicación incluyen:- Inicio de puerta serie- Comunicación a través de protocolo Modbus

    Grupos de instrucciones Funciones de alto nivel: incluyen las

    compuertas selectoras AWT y AWTB AWT: asigna palabra de salida a una de dos

    palabras de entrada según el valor de un bit deentrada

    Grupos de instrucciones Funciones de acceso a memoria: movimientos

    de datos entre regiones de memoria. Ejemplo: COPY, copia los datos de una región

    de memoria a otra

    LD o FBD

    Hay dos diferencias entre un programa FBD yuno LD:- La implementación de las funciones lógicas debits

    - La concatenación de bloques funcionales: enLD no, en FBD sí.

    PLC

    LENGUAJE IL

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    21/59

    21

    Estructura de programa en IL Un programa en IL consta de una lista

    de instrucciones. Una instrucción comienza al inicio de

    una línea. Consta de:1) Un operador,2) Opcionalmente modificadores3) Uno o más operandos, separados por

     “,” 

    Estructura de programa en IL

    Se permiten labels y comentarios (entre “(*” y “*)”)

    Registro IL (resultado actual)

    Toda instrucción involucra al registro IL Si la instrucción es una operación:

    - Si hay más de un operando, el registroIL es uno

    - El resultado se devuelve en registro IL Lógicamente, hay un registro IL para

    cada tipo de datos permitido

    Ejemplos de instrucciones IL

    Label Operador Operando Comentario  

    Inicio: LD BOTON (*BOTON ->A"*)ANDN %I62.02 (*!%I62.02 AND *)

    (*A -> A*)

    ST INIC_MOTOR (*A ->(* INIC_MOTOR*)

    Llamados a funciones desde IL

    Se llaman mediante una de lassentencia “CAL” o la sentencia “!BA 0” 

    Ejemplo: llamado a TIMER:

    CAL ESV(DISPARO,TIEMPO_DELAY,SALIDA)

    Modificadores de operadores

    N=Negación booleana del operador C=Ejecución de instrucción

    condicional al valor del registro IL

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    22/59

    22

    PLC

    SFC

    Introducción

    El SFC es un lenguaje basado enoperaciones secuenciales

    Programa en SFC: secuencia depasos, transiciones y saltos

    Introducción Reglas:

    Entre dos pasos debe existir al menos unatransición

    Entre dos transiciones debe existir al menos unpaso

    Debe existir al menos un paso inicial

    Secuencia de ejecución en SFC

    Consideremos un programa quecomienza como sigue:

    Secuencia de ejecución en SFC Ejemplo

    La bomba será encendida si:- Se pulsa botón de arranque- Protección térmica deshabilitada- Botón de emergencia abierto- Botón de parada abierto

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    23/59

    23

    Ejemplo

    Después de un tiempo T a partir delencendido no puede ni sobre nibaja corriente

    Ejemplo

     Apagado:- Se pulsa botón de parada- Salta protección térmica- Se pulsa botón de emergencia- Se pasa uno de los límites de

    corriente

    Ejemplo: Nivel 1 Ejemplo

    Elementos nuevos:- Divergencia simple- Salto

    Ejemplo

    Nivel 2 del Programa:

    PASO 1 (*BOMBA APAGADA*):BOMBA_ON(R);

    TRANSICIÓN 1:

    Ejemplo

    PASO 2 (*ARRANQUE*):DISPARO_TIMER;BOMBA_ON(S);

    TRANSICIÓN 2 (*ESPERO*):

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    24/59

    24

    Ejemplo

    TRANSICIÓN 4: (*CONDICIÓN DEPARADA PRECIPITADA*)

    Ejemplo

    PASO 3 (*ENCENDIDO*): ACTION (N) :

    LD CORRIENTEGE CORRIENTE_MAXST ERRORLD CORRIENTE_MINGE CORRIENTEST ERROR_MINLD ERROR_MINOR ERROR ST ERROR(*ERROR = (CORRIENTE > CORRIENTE_MAX) OR

    (CORRIENTE < CORRIENTE_MIN) *)END_ACTION;

    Ejemplo

    TRANSICIÓN 3 (*CONDICIÓN DEPARADA):

    Componentes SFC

    Componentes básicos:- pasos- pasos iniciales- transiciones

    - saltos a pasos

    El Paso

    Representación:

    El Paso

    Nivel 1: comentario y número Estados: Activo y Pasivo (Inactivo) Estado Activo: Desde el disparo de una

    transición cualquiera anterior hasta el disparode una transición cualquiera posterior

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    25/59

    25

    El Paso

    Consiste de una secuencia de acciones. Hay tres tipos de acciones:

    - Boolean: relaciona valor de variable conestado del paso

    - Non-Stored: se ejecuta en cada ciclo deejecución mientras el paso está activo

    - Pulse: se ejecuta una sola vez durante elestado activo del paso

    Sintaxis de las acciones

     Acción tipo boolean: var: actividad del paso -> "var"/var;negación de actividad del paso -> "var"var(S); setea “var” al activarse pasovar(R); resetea “var” al activarse paso

    Sintaxis de las acciones

     Acción tipo P ( pulse ): ACTION (P):

    (* Instrucciones IL *)END_ACTION;

    Sintaxis de las acciones

     Acción tipo N (non-stored  ): ACTION (N):

    (* Instrucciones IL *)END_ACTION;

    El Paso Inicial

    Un programa comienza en el paso inicial. El paso inicial se representa:

    La transición

    Representación:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    26/59

    26

    La transición

    Nivel 1: número y comentario Dos estados posibles: habilitada o inhabilitada Una transición está habilitada si todos los paso

    anteriores están en estado activo.

    La transición

    Nivel 2: secuencia de sentencias con resultadobooleano

    Condición de disparo: resultado = TRUE El disparo activa el paso siguiente

    La transición

    Lenguajes en que se programa:- QUICK LD (un solo rung)- IL (resultado = valor final de registro IL)

    Salto

    Representación:

    Divergencias y convergencias

    Las Divergencias / Convergencias puedenser Simples o Dobles

    Convergencias/DivergenciasSimples

    Divergencia simple: La actividad del pasohabilita todas las transiciones.

    Convergencia simple: El disparo de unatransición cualquiera activa el paso.

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    27/59

    27

    Convergencias/DivergenciasDobles

    Divergencia doble: el disparo de una transiciónactiva todos los pasos.

    Convergencia doble: la transición estáhabilitada si todos los pasos están activos

    PLC

    HERRAMIENTASDE DIAGNÓSTICO

    Introducción

    Todo PLC tiene:- Códigos de error.- LEDs indicadores.

    Introducción

    Los códigos de error permitenidentificar errores de programación yoperación.

    LEDs indicadores, en general:

    - LED rojo significa problema- LED verde significa correcto- LED parpadeando significa estado

    de espera y ocupado

    Clasificación de errores

    Errores fatales: abandona ejecucióny pasa a estado de falla.

    Errores no fatales: continúaejecución; se indican mediante.mensajes o bits de error

    Errores de programación oconfiguración.

    PLC

    COMUNICACIONES

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    28/59

    28

    Introducción

    Opciones de transmisión deseñales: Conexión directa en lazos de

    corriente (4-20 mA; señal analógica aconversor A/D)

    Comunicaciones digitales

    Introducción

    Principios básicos de la comunicación: Datos se envían por un par de cables, en

    forma serial, a una velocidad detransmisión prefijada (baudios)

    Los datos se envían de a un byte

    Introducción Modelo de comunicación digital serial:

    Introducción Operación de comunicación digital serial:

    Llave cerrada -> transmite 1 lógico Llave abierta -> transmite 0 lógico Estado de reposo: 1 lógico Transmisión de un byte:

    Bit de inicio (0 lógico por medio t iempo de bit) 8 bits de datos (un bit por tiempo de bit) Bit de parada (0 lógico)

    Introducción Estados:

    Introducción

     Ventajas de la comunicación digital: Baja dramáticamente el costo de

    cableado No pérdida de precisión analógica

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    29/59

    29

    Introducción

    Desventaja de comunicacionesdigitales: no hay estándar.

    Existen muchos protocolos:Modbus, Profibus, Interbus, Bitbus,etc.

    Introducción

    El protocolo más extendido:Modbus.

    Los protocolos de comunicacionesdigitales que involucran PLCs sonmaestro-esclavo.

    Introducción Introducción

    PLC puede actuar en doble funciónde maestro/esclavo. Esto permite:- Utilizar la interfaz gráfica de un PC

    para desplegar variables de un PLC- Mejorar la perfomance de la red de

    instrumentación.

    Redes Físicas

    Gran mayoría de redes: RS-485 o RS-422.

    Redes multidrop: Maestro envía mensaje a dispositivos;

    todos reciben. Sólo el dispositivo referido habilita la

    transmisión y envía los datos. Nunca hay más de un transmisor activo.

    Redes Físicas

    Red Multidrop RS 485:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    30/59

    30

    Redes Físicas

    RS 485 y 422:- Dos hilos flotantes. Resistencias de terminación- Transmisión diferencial: 0.2V define cambio de

    estado- Gran inmunidad al ruido- Unión de tierras digitales de transmisión y recepción- Número máximo de dispositivos: 32- Distancia máxima con par trenzado: 1600m- Problema: una falla puede hacer caer la red

    Protocolo MODBUS

    Se analiza en detalle el MODBUS,uno de los protocolos másdifundidos

    Dos versiones: ASCII y RTU(binario). El ASCII no se usaporque lleva el doble de tiempo

    Protocolo maestro esclavo Se transmiten mensajes de error y

    timeout de respuesta

    Protocolo MODBUS

    Mensaje genérico enviado por elmaestro:

    Protocolo MODBUS

    Funciones:- leer n bits (función 01)- leer n palabras (función 03)- escribir un bit (función 05)

    - escribir una palabra (función 06)- escribir n bits (función 0F)- escribir n palabras (función 10)

    Protocolo MODBUS

    Texto de mensaje. Consiste de: Dirección de Lectura o Escritura (2

    bytes) Número de direcciones de Lectura o

    Escritura a partir de la dirección inicial En caso de escritura, los datos

    escritos.

    Protocolo MODBUS

    Ejemplo: Lectura de N palabras (03)del esclavo NS. El maestro envía:

    Los 2 bytes ADH AHL indican la direccióninicial de lectura

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    31/59

    31

    Protocolo MODBUS

    Respuesta del esclavo:

    Protocolo MODBUS

    Si el esclavo o maestro recibe unmensaje erróneo, transmite unmensaje de error.

    La comunicación MODBUS delesclavo del PLC es independiente dela ejecución del programa; dependesólo del sistema operativo.

    Protocolo MODBUS

    Requisitos para lectura o escriturade variables del PLC:- Conocer direcciones a las que se

    accede- Fijar en PLC el número de esclavo

    Protocolo MODBUS

    Las funciones MODBUS sonorientadas a bits o palabras, por loque en otro caso hay que hacerconversiones necesarias.

     Aplicación de MODBUS: lectura oescritura de registros de uncontrolador.

    PLC

    INTRODUCCIÓN ATCP/IP

    Introducción a redes TCP/IP

    Objetivo: en base a un ejemplo- Explicar conceptos básicos de

    arquitectura de capas- Explicar funciones de las distintas

    capas de TCP/IP

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    32/59

    32

    Ejemplo TCP/IP: Planteo Red de comunicaciones: conjunto de nodos

    conectados por enlaces físicos Esquema de comunicaciones: la red se

    compone de nodos clientes y servidores Nodo servidor: escucha la red en forma

    permanente Nodo cliente: encargado de inicio de

    comunicación con servidor Un nodo puede ser cliente y servidor

    simultáneamente

    Ejemplo TCP/IP: Planteo Se presentan elementos que intervienen en

    las comunicaciones con transporte TCP/IP

    Protocolo de aplicación Cliente se comunica con servidor a través de

    protocolo cliente – servidor: mensajes ycodificación

    Protocolo de ejemplo. Transmisión depalabras. Mensajes (se codifican con una

    palabra): WRITE_DATA (01) (CL → SV) RCPT_READY (02) (SV → CL) READ_DATA (03) (CL → SV) DATA (04) (CL → SV , SV → CL ) END_TRANSFER (05) (CL → SV, SV → CL)

    Protocolo de aplicación

    CLIENTE SERVIDOR  WRITE_DATA

    RCPT_READY 

    DATAEND_TRANSFER 

    Ejemplo de comunicación:

    El caso de LAN 10BaseT

    Nodos se conectan a través de LANEthernet 10BaseT

    Descripción de Ethernet 10BaseT:- Consiste de nodos y hubs- Conexiones: 5 cables terminados en RJ-45- Un hub tiene varias bocas; repetidor por

    difusión

    El caso de LAN 10BaseT

    Ejemplo Ethernet:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    33/59

    33

    El caso de LAN 10BaseT

    Medio Ethernet: protocolo IEEE 802.3- medio de difusión- colisiones; detección y retransmisión- cada nodo se identifica de forma única

    Límites de tamaño 10BaseT:- Largo máximo de segmento: 100 m- Número máximo de segmentos: 5

    El caso de LAN 10BaseT Implementación de protocolo de

    aplicación sobre LAN:- Programa servidor- Bloques funcionales asociados acliente de protocolo de aplicación

    - Bloques funcionales asociados aprotocolo Ethernet

    El caso de LAN 10BaseT

    Cliente protocolo de aplicación

    El caso de LAN 10BaseT

    Bloques Ethernet:

    El caso de LAN 10BaseT

    Bloques Ethernet:(utilizado por servidor paraescuchar la red)

    El caso de LAN 10BaseT

    ¿Por qué implementamos dospartes y no una? Debido a que lainterfaz Ethernet es independiente de la aplicación

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    34/59

    34

     Análisis del código WRITE

    CLIENTE SERVIDOR  WRITE_DATA

    RCPT_READY 

    DATAEND_TRANSFER 

    WRITEENABLELAN_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

     Análisis de código WRITECLIENTE SERVIDOR  

    WRITE_DATAWRITEENABLE

    LAN_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    TR_WRITEDATA=S

    LAN_TR TR_WRITEDATA

    LAN_ADDR 

     ADDR_WRITEDATA

    %1 = BUFFERSIZE

    ENABLE

    TR_WRITEDATA_END

    TR_WRITEDATA=R TR_WRITEDATA_END

    Código:

     Análisis de código WRITECLIENTE SERVIDOR  

    RCPT_READY WRITEENABLE

    LAN_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    RCV_RCPTDATA=S

    LAN_RCVRCV_RCPTDATA

    LAN_ADDR 

    TEMP_BUFFER 

    %1

    TR_WRITEDATA_END

    RCPTDATA_END

    RCV_RCPTDATA=R 

    RCPTDATA_END

    Código:

     Análisis de código WRITECLIENTE SERVIDOR  

    DATAWRITEENABLE

    LAN_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    TEMP_BUFFER 

    COPY BUFFER_SIZE

    LOCAL_BUFFER 

    TEMP_BUFFER+3

    MENS_DATA

    Código:1) Construyo mensaje [DATA][BUFFER_SIZE][REMOTE_BUFFER][DATOS]

    en TEMP_BUFFER 

    TEMP_BUFFER+1BUFFER_SIZE

    TEMP_BUFFER+2REMOTE_BUFFER 

     Análisis de código WRITECLIENTE SERVIDOR  

    DATAWRITEENABLE

    LAN_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    TR_DATA=S

    LAN_TR TR_DATA

    LAN_ADDR 

    TEMP_BUFFER 

    BUFFER_SIZE+3

    RCPTDATA_END

    TR_DATA_END

    TR_DATA=R 

    TR_DATA_END

    2) Envío mensaje en TEMP_BUFFER

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    35/59

    35

    El caso de LAN 10BaseT El caso de LAN 10BaseT

    0001Encabezado

    Ethernet

    Cola Ethernet

    LAN_LISTEN

    PROGRAMA CLIENTE WRITE PROGRAMA SERVIDOR 

    0001

    BUFR_ADR 

    BUFR_ADR 

    LAN_TR 

    01BUFR_ADR 

    0001

    WRITE_DATA 00

    El caso de LAN 10BaseT

    La forma en que se transmite elmensaje a través de Ethernet estransparente a programas cliente yservidor

    Esta arquitectura se conoce como “arquitectura de capas” 

    El caso de LAN 10BaseT

    Cada nodo es una pila de N capas La capa i (i = 1...N) se comunica con la

    capa i del otro extremo, utilizandoservicios de capa (i-1), accedidos a

    través de interfaz

    El caso de LAN 10BaseT

    En nuestro caso hay tres capas: Capa de aplicación Capa Ethernet Capa física

    Interfaz Aplicación-Ethernet: LAN_TR,LAN_RCV, LAN_LISTEN

    Red más complicada: IP

    Se analiza ahora la red de la figura:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    36/59

    36

    Red más complicada: IP

    Objetivo: transmitir un mensaje desdenodo cliente PLC1 a nodo servidor PLCA

    Problema: PLCA no tiene direcciónEthernet

    Solución: protocolo que definadirecciones de forma independiente dela red; protocolo IP

    Red más complicada: IP Dirección IP: única a lo largo de toda la red.

    Consta de 32 bits agrupados por octetos ¿Cómo llega un paquete a destino a través de

    IP? Se definen tablas de ruteo en cada nodo. Entrada genérica de tabla de ruteo: “Para

    llegar a IP X1.X2.X3.X4, transmitir a IP Y1.Y2.Y3.Y4”.

    Red más complicada: IP Resolución de la comunicación en la red

    nueva requiere que programa cliente yservidor accedan a interfaz IP y no a interfazLAN

    Protocolo IP aparece en capa intermedia

    entre LAN y la capa de aplicación. Utiliza losservicios de Ethernet y transmisión por puertoserie.

    Red más complicada: IP

    Los protocolos de transmisión porpuerto serie y Ethernet constituyen unacapa inferior a la capa IP

    Se enumeran las modificaciones

    necesarias respecto del caso detransmisión a través de LAN

    Red más complicada: IP

    Modificaciones en READ y WRITE:sustituyen LAN_RCV/TR por RCV/TR_IP

    Modificaciones en programa servidor:LAN_RCV/TR por RCV/TR_IP,LAN_LISTEN por LISTEN_IP.

    Red más complicada: IP

    Bloque RCV_IP

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    37/59

    37

    Red más complicada: IP

    Bloque TR_IP

    Red más complicada: IP

    Bloque LISTEN_IP

    Red más complicada: IP

    Bloques funcionales asociados a puertoserie: RX_232 y TX_232

     Análisis del código WRITE

    CLIENTE SERVIDOR  WRITE_DATA

    RCPT_READY 

    DATAEND_TRANSFER 

    WRITEENABLEIP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

     Análisis de código WRITECLIENTE SERVIDOR  

    WRITE_DATAWRITEENABLE

    IP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    TR_WRITEDATA=S

    TR_IPTR_WRITEDATA

    IP_ADDR 

     ADDR_WRITEDATA

    %1 = BUFFERSIZE

    ENABLE

    TR_WRITEDATA_END

    TR_WRITEDATA=R 

    TR_WRITEDATA_END

    Código:

     Análisis de código WRITECLIENTE SERVIDOR  

    RCPT_READY WRITEENABLE

    IP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    RCV_RCPTDATA=S

    RCV_IPRCV_RCPTDATA

    IP_ADDR 

    TEMP_BUFFER 

    %1

    TR_WRITEDATA_END

    RCPTDATA_END

    RCV_RCPTDATA=R 

    RCPTDATA_END

    Código:

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    38/59

    38

    Bloque TR_IP

    Implementación bloque TR_IP Construyo paquete IP a partir de BUFFER 

    Encuentro en tabla de ruteo nodo vecino paraalcanzar IP_DEST = N1

    Si N1 en LAN, LAN_TR a dirección LAN de N1, conpaquete en buffer

    Si N1 en puerto serie, TX_232

    Ruteo IP ¿Qué sucede con el mecanismo de ruteo? Necesariamente recae sobre el sistema

    operativo El sistema operativo de cada dispositivo

    ejecuta LISTEN a cada puerto decomunicaciones

    Ejemplo de implementación de etapa deactualización de entradas de un PLC conpuertos serie y Ethernet

    Ruteo IP Red más complicada: IP

    CLIENTE SERVIDOR  

    LAN_TR(PC2)

    PLC1 PC2 PLCA

    TR IP(IP_PLCA,01)LISTEN _IP

    RX_232

    LAN ENLACE SERIE

    WRITE_DATA = 01

    IP_PLCA IP_PLC1 01

    SI DEST PLCATR A PC2

    SI DEST PLCATR A PLCA

    IP_PLCA IP_PLC1 01IP_PLCA IP_PLC1 01

    01

    LAN_LISTEN TX_232

    Red más complicada: IP

    CAPA DE APLICACIÓN

    CAPA IP

    CAPA DE ENLACE DE DATOS

    CAPA FÍSICA

    Estructura de capas:

    Red más complicada: IP

    CAPA FÍSICA

     APL

    IP

    ENL

    Capa de aplicación se comunica extremo aextremo; las demás con el “vecino” 

     APL

    IP

    ENL

    IP

    ENL

    PC1

    PC2

     A

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    39/59

    39

    Fragmentación Los mensajes tipo “DATA” tienen tamaño

    variable. Este hecho determina la necesidad de

    fragmentación de mensajes. Causa: tamaño limitado de buffers,

    restricciones impuestas por los encabezados(largo paquete IP < 64kB)

    Fragmentación de una capa transparente a lacapa de arriba

    Fragmentación

    IP

    ENL

    IP

    ENLD1E1 D2E2 D1E1 D2E2

    PAQ IPPAQ IP

    Fragmentación

    La fragmentación requiere decambios en la implementación delDaemon de ruteo IP: buffer paraalmacenar fragmentos intermedios

    en tanto no se haya completadomensaje

    Mensajes perdidos: TCP

    ¿Qué sucede si se pierde un mensaje?Depende de la capa

    Capa de enlace: orientada a conexión;en general hay reenvío

    Capa IP: servicio de mejor esfuerzo. Análogo al correo. En general, nodo IPno recibe notificación.

    Mensajes perdidos: TCP

    Ejemplo: paquete IP perdido

    PC1

    HUB

    PC2 C

    M2

    M21 M22

     A

    M1 M3

    M22

    BM21

    M21

    M1 M3?

    ¡Congestión!

    Mensajes perdidos: TCP Resultado del ejemplo: C recibe sólo

    mensajes 1 y 3. ¿Cómo se resuelve ésta situación

    errónea? Cambio protocolo deaplicación, incorporando esquema denumeración con reconocimiento

    Esquema de reconocimiento: mensaje “recibí mensaje número N” 

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    40/59

    40

    Mensajes perdidos: TCP

    Recepción de mensaje “recibí mensajenúmero N” implica transmisión correctadesde último reconocido hasta el N

    CLIENTE SERVIDOR M1

    M3M2

     ACK1

    Timeout ACK2!!!M2 ACK3

    M3->buffer

    M4

    Mensajes perdidos: TCP

    El nuevo esquema es independiente dela aplicación. Por tanto, separo estasfunciones extremo a extremo y definouna nueva capa: TCP.

    Mensajes perdidos: TCP

    Conclusión: aparece una nueva capa,entre la aplicación y la IP, llamada TCP,que se comunica extremo a extremo.

    Distinción aplicaciones en CL

    ¿Qué sucede si dos aplicaciones enun nodo cliente envían mensajes aun mismo nodo servidor?

    Distingo las aplicaciones generandoun canal de comunicaciones paracada una

    Distinción aplicaciones en CL

     Al iniciar comunicación la aplicaciónejecuta función TCP “iniciar canalde comunicaciones a IP” 

    Se genera comunicación entre TCPde origen y destino. El módulo TCPde origen reserva un númeroespecial a comunicación entreaplicaciones: puerto.

    Distinción aplicaciones en CL

    Ejemplo:CLIENTE A SERVIDOR 

    TCP NODO 1

    RED

    Inicio Ch a N2Solicitud de reserva

    Canal establecido puerto 1

    P1

    CLIENTE B

    P2 Inicio Ch a N2

    TCP NODO 2

    LISTEN Nuevo Ch: P1/IP_A

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    41/59

    41

    Distinción aplicaciones SERV

    Esquema de capas definitivo:

    CAPA DE APLICACIÓN

    CAPA IP

    CAPA DE ENLACE DE DATOS

    CAPA FÍSICA

    CAPA TCP

    Distinción aplicaciones SERV

    ¿Cómo se distinguen dosaplicaciones servidoras en el mismonodo? Asignando un número acada una: puerto

    El puerto se asigna cuando laaplicación servidora comienza aescuchar la red

    Distinción aplicaciones SERV

    Cuando una aplicación cliente secomunica con una aplicación en unnodo servidor, se comunica al IPdel nodo y al puerto de la

    aplicación

     Acceso a puerto de APL SERV

    ¿Cómo hace la aplicación clientepara saber en qué puerto escuchala aplicación servidora?

    El puerto tiene que estar convenido

    de antemano El canal queda determinado por:

    Puerto origen, IP origen, Puertodestino, IP destino.

     Aplicación sobre TCP

    Se enumeran las modificacionesnecesarias para la transmisión sobreTCP/IP

     Aplicación sobre TCP

    Modificaciones en cliente: READ yWRITE:- Inician conexión a servidor ejecutando

    CONNECT- Sustituyen RCV_IP por RCV_TCP- Sustituyen TR_IP por TR_TCP

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    42/59

    42

     Aplicación sobre TCP

    Modificaciones en servidor:- Sustituye LISTEN_IP por LISTEN_TCP- Sustituye RCV_IP por RCV_TCP- Sustituye TR_IP por TR_TCP

     Aplicación sobre TCP

    Se agregan bloques funcionalesasociados a TCP: CONNECT,LISTEN_TCP, RCV_TCP, TR_TCP.

     Aplicación sobre TCP

    CONNECT y LISTEN_TCP:

     Aplicación sobre TCP

    TR_TCP y RCV_TCP:TR_TCPENABLE

    BUFFER_ADDR 

    READY 

    REMOTE_PORT

    BUFFER_SIZE

    LOCAL_PORT

    IP_ADDR 

    ENABLE

    BUFFER_ADDR 

    READY 

    REMOTE_PORT

    BUFFER_SIZE

    LOCAL_PORTNUM_DATA

    BUFFER_OWIP_ADDR 

    RCV_TCP

     Análisis del código WRITE

    CLIENTE SERVIDOR  WRITE_DATA

    RCPT_READY 

    DATAEND_TRANSFER 

    WRITEENABLEIP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

     Análisis de código WRITEWRITEENABLE

    IP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    INIT_CONNECTION=S

    CONNECTINIT_CONNECTION

    REMOTE_PORT

    IP_ADDR 

    ENABLE

    CONNECT_END

    INIT_CONNECTION=R 

    CONNECT_END

    Código: Inicio conexión a servidor

    LOCAL_PORT

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    43/59

    43

     Análisis de código WRITECLIENTE SERVIDOR  

    WRITE_DATAWRITEENABLE

    IP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    TR_WRITEDATA=S

    TR_TCPTR_WRITEDATA

    IP_ADDR 

     ADDR_WRITEDATA

    CONNECT_END

    TR_WRITEDATA_END

    TR_WRITEDATA=R TR_WRITEDATA_END

    Código:

    REMOTE_PORT

    %1 = BUFFERSIZE

    LOCAL_PORT

     Análisis de código WRITECLIENTE SERVIDOR  

    RCPT_READY WRITEENABLE

    IP_ADDR 

    LOCAL_BUFFER 

    BUFFER_SIZE

    REMOTE_BUFFER READY  

    RCV_RCPTDATA=S

    RCV_TCPRCV_RCPTDATA

    REMOTE_PORT

    IP_ADDR 

    LOCAL_PORT

    TR_WRITEDATA_END

    RCPTDATA_END

    RCV_RCPTDATA=R RCPTDATA_END

    Código:

    TEMP_BUFFER 

    %1

     Aplicación sobre TCP

    Los bloques asociados a TCP acceden alos bloques IP

    PLC

    MODBUS/TCP

    Protocolo MODBUS/TCP

    TCP/IP es el protocolo de transportemás extendido en Internet

    Ethernet: estándar de facto en redesempresariales.

    Costo de Ethernet ha bajado mucho

    Protocolo MODBUS/TCP

    Utilización de TCP/IP a nivel deplanta permite integrar redempresarial con red de planta

    Tendencia: TCP/IP estándar deredes industriales

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    44/59

    44

    Protocolo MODBUS/TCP

    Marzo de 1999: MODBUS/TCP, 1.0.Shneider Electric (MODICON).

    Combina: TCP/IP, Ethernet yMODBUS.

    Protocolo MODBUS/TCP

    Diferencias con MODBUS:- Protocolo cliente - servidor- Diferencias en la trama de datos:

    encabezado distinto (Unit Id por Slave Ad; se incluye largo del mensaje) y nohay CRC.

    Protocolo MODBUS/TCP

    Protocolo cliente - servidor:- El cliente establece una conexión alpuerto 502 del servidor.

    - Una estación MODBUS/TCP puede ser

    simultáneamente cliente y servidor

    Protocolo MODBUS/TCP

    Trama de datos:

    ENCABEZADOMODBUS/TCP

    CÓDIGO DEFUNCIÓN

    DATOS

    Protocolo MODBUS/TCP

    Encabezado MODBUS/TCP:CAMPO LARGO DESCRIPCIÓN CLIENTE SERVIDOR  

    Identificadorde transacción

    2B Identificatransacción

    Iniciado porcliente

    Copiado porservidor

    Identificadorde protocolo

    2B ProtocoloMODBUS = 0

    Iniciado porcliente

    Copiado porservidor

    Largo 2B Número de bytesque siguen

    Iniciado porcliente (pedido)

    Iniciado porservidor(respuesta)

    Identificadorde unidad

    1B Identifica esclavoRTU remoto

    Iniciado porcliente

    Copiado por elservidor

    Protocolo MODBUS/TCP

    Tipos de datos de MODBUS/TCP:bits y palabras (16 bits)

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    45/59

    45

    Protocolo MODBUS/TCP

    Ejemplo de red MODBUS/TCP:

    Protocolo MODBUS/TCP

     Análisis de ejemplo de red MODBUS/TCP:- A, B, D: MODBUS/TCP. Tanto clientecomo servidor.- E y F: esclavos MODBUS/RTU. Sedistinguen por id. de unidad

    - C: maestro MODBUS/RTU.

    PLC

    SISTEMAS SCADA

    Objetivo

    El objetivo de un sistema SCADA(Supervisory Control And Data Acquisition)es el control y supervisión de una planta

    Ejemplos de plantas: red de distribución de

    energía eléctrica, red de saneamiento,proceso industrial

    Componentes Un sistema SCADA consta de 5 grupos

    de componentes:

    - La instrumentación de campo- Las estaciones remotas- La red de comunicaciones- La estación central de supervisión- El software que se ejecuta en la estacióncentral de supervisión

    La instrumentación de campo

    La instrumentación de campo consta desensores y actuadores distribuidos en laplanta Sensor: convierte magnitud física (caudal,

    velocidad, voltaje) en magnitud eléctrica leídapor estación remota

     Actuador: dispositivo que actúa sobre equiposde la planta

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    46/59

    46

    La estación remota La instrumentación de campo se conecta a la

    estación remota Se instala en las vecidades de equipos

    supervisados o controlados Puede ser:

    PLC RTU (Remote Terminal Unit) Sistema de módulos comunicándose en un plano

    distinto que el sistema SCADA

    La red de comunicaciones La red de comunicaciones es el medio para

    transferir información desde la estación remota.Ejemplos: Enlace cableado: utilizado normalmente en fábricas;

    no es práctico en sistemas que cubren grandes áreasgeográficas

    Enlace telefónico: utilizado en sistemas que cubrengrandes áreas geográficas (línea dedicada o discada)

    Enlace de telefonía celular y de radio: utilizados enpuntos no accesibles líneas telefónicas

    La estación de supervisión Estación de supervisión es la unidad maestra del

    sistema SCADA Dos funciones principales:

    Recibir información de las estaciones remotas ygenerar acciones según eventos detectados

    Interfaz hombre – máquina, del sistema al operador(MMI - Man Machine Interface) Las estaciones centrales de supervisión pueden

    estar dispuestas en red, para intercambio deinformación de distintos sistemas SCADA

    Conexión de los componentes

    Ejemplo Software de unidad central Se denomina igual que el sistema: “sistema

    SCADA” o SCADA Realiza muchas tareas Las tareas se organizan verticalmente en capas,

    de modo que cada capa brinda servicios a lacapa por encima

    El acceso de la capa A a los servicios de la capaB se realiza por la interfaz entre ambas

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    47/59

    47

    La arquitectura del softwaredel SCADA Software de unidad central

    Comentarios a figura de arquitecura: Cada capa realiza varias funciones Flechas verticales: interfaces entre capas

    adyacentes Flechas horizontales: interfaces entre

    funciones de una misma capa Flechas bidireccionales: acceso de lectura

    escritura

    Software de unidad central

    Plataforma de adquisición de datos: manejo de entrada salida de datos de la

    planta utiliza servicio la capa física, que es la red de

    comunicaciones

    Software de unidad central Plataforma de datos

    Manipulación de datos: transformación de datosadquiridos de la interfaz con plataforma deadquisición a formato interpretable por aplicacionesde la plataforma de datos y de la capa MMI

     Almacenamiento de datos: muestreo y

    almacenamiento de datos en arhcivos de histórico Control: aplicación automática de algoritmos de

    control del proceso  Alarma: reconocimiento y reporte inmediato de

    eventos predefinidos

    Software de unidad central MMI: interfaz al usuario. Funciones:

    Monitorización: despliegue de datos entiempo real

    Control de supervisión: permite al operador lamodificación de parámetros de la plantadesde la estación central

    Reporte de datos: exportación de archivos dehistórico a archivos en formatos útiles paraanálisis posterior

    Operación del software SCADA

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    48/59

    48

    Operación del software SCADA

     Adquisición de datos: tarea I/O driver Plataforma de datos, exceptuando

    almacenamiento: SAC (Scan, Alarm,Control)

    Interfaz I/O driver - SAC: DriverImage Table

    Interfaz SAC – MMI: Base de datos

    Operación del software SCADA

     Adquisición de datos: Hardware: interfaz al bus de campo (por ej.

    puerto serie o tarjeta instalada en zócalo deestación central)

    Software I/O Driver: se comunica con unidadremota por protocolo de comunicaciones

    Operación del software SCADA

    Driver Image Table: se puede pensar como un conjunto de

    casilleros, que definen imágenes de lasmemorias de las estaciones remotas

    Cada casillero se denomina “poll record”, ycontiene un único dato o datos contiguos enmemoria de estación remota

    Se actualiza cíclicamente (poll time)

    Operación del software SCADA El SAC tiene las siguientes funciones:

    - Lee los datos del Driver Image Table (interfaz con laplataforma de adquisición de datos).- Traduce los datos a formato de la base de datos- Compara los datos con límites de alarma, y generamensajes de alarma.

    - Ejecuta la lógica de control- Detección de excepciones- Cumple con los pedidos de escritura de datos en el

    Driver Image Table  (datos a ser transmitidos a launidad remota). Estos pedidos corresponden a lastareas de la misma capa y de capas superiores

    Operación del software SCADA

    Base de datos: Representación del proceso Se crea uniendo bloques de lógica de control

    de proceso Bloques primarios Bloques secundarios

    La interfaz entre las capas Programación Sistemas en Red Conexión con los Sistemas de Información

    de la planta

    Otros Temas

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    49/59

    49

    PLC

    LENGUAJE ST

    Introducción ST (Structured Text) es el quinto lenguaje

    definido en norma IEC 1131-3. Lenguaje de texto de alto nivel, con sintaxis

    similar a la de Pascal Lenguaje pequeño: 40 palabras reservadas y

    10 tipos de sentencias. Existen menos implementaciones de ST

    respecto de LD; casi todas basadas en IEC1131-3.

    Estructura de programa

    Un programa ST consiste en unconjunto de sentencias

    Cada sentencia contieneexpresiones válidas ST

    Operadores de expresiones

    Una expresión resulta en un únicovalor. Se compone de operadores yoperandos

    Operadores de expresiones

    Operadores: Paréntesis: “()”  Invocación a función: identificador(args) Exponente: ** Aritméticos: +, -, / , *, MOD Comparación: , =, =, Booleanos: NOT, AND, OR, XOR 

    Operadores de expresiones

    Ejemplo operadores booleanos:Var1:=(Var1 AND Var2) OR Var3

    Ejecución: (1) (VAR1 AND VAR2) (2) OR de resultado de (1) con Var3 (3) Asignación de resultado en (2) a Var1

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    50/59

    50

    Sentencias Se definen los siguientes tipos:

    Comentario  Asignación Invocación a bloque funcional Retorno Selección Iteración

    Sentencias: Comentarios Comentarios: se sitúan entre símbolos (* y

    *). Ejemplo:

    (* Este es un comentario *)

    Sentencias: Asignación  Asignación: transferencia del valor de

    expresión válida a una variable. Ejemplos:A:= B;

    C:= C+1;

    VAR := 7;

    VAR:= VAR * 10;

    Y:= COS(X) + 12;

    Sentencias: Bloque funcional Invocación a bloque funcional: tiene dos

    partes definición de instancia del bloque funcional en

    sección de definición de variables nombre de instancia de bloque seguido de l ista de

    asignaciones de entrada entre paréntesis Una salida de un bloque funcional se refiere

    por dirección en formatonombre_bloque_funcional.nombre_salida

    Sentencias: Bloque funcional Ejemplo de invocación a instancia de Bloque

    Funcional: Nombre de instancia: FUN Entradas: IN1, IN2, IN3 Salidas: OUT1, OUT2, OUT3FUN(IN1:=1, IN2:=B, IN3:= %IW2.3);

    FOO := FUN.OUT1;

    BAR := FUN.OUT2;

    Sentencias: Retorno Sentencia Return: termina una función o un

    programa ST. Por ejemplo, la función queincluye esta sentencia termina si A>B:

    IF A>B THEN

    RETURN;

    END_IF;

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    51/59

    51

    Sentencias de selección Existen dos tipos de sentencias de selección:

    IF .. THEN .. ELSE .. END_IF CASE .. OF

    Sentencias de selección

    Sentencia IF: ejecución de instruccionesde acuerdo al valor de una expresiónbooleana (TRUE o FALSE). Sintaxis:IF THEN

    ELSEIF THEN

    ...

    ELSEIF THEN

    ELSE

    END_IF;

    Sentencias de selección Ejemplo sentencia IF:

    IF A=3 THEN

    B:=7;

    END_IF

    Sentencias de selección

    Sentencia CASE: ejecución condicionadaal valor de una variable. Sintaxis:CASE OF

    :

    :

    :

    ...

    :

    ELSE

    END_CASE;

    Sentencias de selección

    Ejemplo sentencia CASE:CASE INT1 OF

    1: BOOL1 := TRUE;

    BOOL3 := FALSE;

    2: BOOL2 := FALSE;

    BOOL3 := TRUE;

    ELSE

    BOOL6 := NOT BOOL1;

    BOOL7 := BOOL1 OR BOOL2;

    END_CASE

    Sentencias de iteración Existen 3 tipos de sentencias de iteración:

    FOR .. DO WHILE .. DO REPEAT .. UNTIL

    La sentencia EXIT finaliza la ejecución de unaiteración

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    52/59

    52

    Sentencias de iteración

    El bucle FOR se utiliza para programarprocesos que se repiten. Sintaxis:INT_Var: INT;

    FOR INT_Var:= TO

    {BY }

    DO

    END_FOR;

    Sentencias de iteración Ejecución bucle FOR:

    se ejecutan mientras que elcontador INT_VAR no es mayor que

    Condición de finalización se verifica antes que laejecución de

    Cada vez que se ejecutan instrucciones, seincrementa el valor de la variable INT_VAR en elvalor de .

    Sentencias de iteración Ejemplo FOR. Si el valor inicial de VAR1 es 1,

    el valor al finalizar la ejecución del bucle FORes 32:

    FOR Contador:=1 TO 5 BY 1 DO

    Var1:=Var1*2;

    END_FOR;

    Sentencias de iteración Ejemplo FOR/EXIT: si el valor inicial de VAR1

    es 1, el valor al finalizar la ejecución del bucleFOR es 8:

    FOR Contador:=1 TO 5 BY 1 DO

    Var1:=Var1*2;

    IF Var1 > 5 THEN

    EXIT;

    END_IF

    END_FOR;

    Sentencias de iteración Evitando bucles infinitos FOR: el

     VALOR_FINAL debe pertenecer al rango delcontador.

    Sentencias de iteración En el bucle WHILE, la condición de

    terminación puede ser cualquier condiciónbooleana. El bucle termina si la condición determinación resulta FALSE. Sintaxis:

    WHILE

    END_WHILE;

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    53/59

    53

    Sentencias de iteración Ejecución bucle WHILE:

    se ejecutan cíclicamentemientras que devuelveTRUE

    En cada iteración, seevalúa antes de la ejecución de instrucciones.

    Observación: Nunca se ejecuta si< Expresión booleana > devuelve FALSE en laprimer iteración.

    Sentencias de iteración Evitando bucles infinitos WHILE: si

    nunca toma valorFALSE, las se repitenindefinidamente, resultando en un bucleinfinito.

    Para eliminar la posibilidad de bucles infinitos,se puede utilizar un contador auxiliar:WHILE Contador0 DO

    Var1 := Var1*2;

    Contador := Contador – 1;

    END_WHILE

    Sentencias de iteración El bucle REPEAT: se diferencia de WHILE en

    que la verificación de condición de salida esposterior a la ejecución del bucle, y noanterior

    Sintaxis:

    REPEAT

    UNTIL

    END_REPEAT;

    Sentencias de iteración Ejecución bucle REPEAT:

    se ejecutan cíclicamentemientras que devuelveTRUE

    En cada iteración, seevalúa antes de la ejecución de instrucciones.

    Observación: se ejecutanuna sola vez si esTRUE en la primer evaluación

    Observación:El bucle REPEAT siempre seejecuta al menos una vez.

    Sentencias de iteración Evitando bucles infinitos REPEAT: si

    nunca toma valorFALSE, las se repitenindefinidamente, resultando en un bucleinfinito.

    Para eliminar la posibilidad de bucles infinitos,se puede utilizar un contador auxiliar:REPEAT

    Var1 := Var1*2;

    Contador := Contador – 1;

    UNTIL Contador

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    54/59

    54

    EjemploEl 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 emergencia.

    4) Los límites de corriente no son los correctos.

    Ejemplo en ST - 1(* Inicialización *)

    IF (NOT CICLOINI_FLAG)

    THEN

    ESTADO_APAGADO := TRUE;

    ESTADO_TRANSITORIO := FALSE;

    ESTADO_ENCENDIDO := FALSE;

    CICLOINI_FLAG := TRUE;

    END_IF;

    Ejemplo en ST - 2TIMER1 (E := ESTADO_TRANSITORIO, T := DELAY );

    TIMEOUT_TIMER1 := TIMER1.A;

    IF (ESTADO_APAGADO AND ARRANQUE) THEN

    ESTADO_TRANSITORIO := TRUE;

    BOMBA_ON := TRUE;

    ESTADO_APAGADO := FALSE;

    ELSIF (ESTADO_APAGADO AND (NOT ARRANQUE)) THEN

    BOMBA_ON := FALSE;

    Ejemplo en ST - 3ELSIF (ESTADO_TRANSITORIO AND (TERMICO OR ALARMA

    OR PARADA)) THEN

    ESTADO_TRANSITORIO := FALSE;

    BOMBA_ON := FALSE;

    ESTADO_APAGADO := TRUE;

    ELSIF (ESTADO_TRANSITORIO AND TIMEOUT_TIMER1)

    THEN

    ESTADO_TRANSITORIO := FALSE;

    ESTADO_ENCENDIDO := TRUE;

    Ejemplo en ST - 4ELSIF (ESTADO_ENCENDIDO AND (TERMICO OR ALARMA OR

    PARADA OR (CORRIENTE > CORRIENTE_MAX)

    OR(CORRIENTE

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    55/59

    55

    Ejemplo en ST - 6(* Continuación de declaración de variables *)

    TIMER1: ESV;

    ESTADO_APAGADO AT %MX0.0: BOOL;

    ESTADO_TRANSITORIO AT %MX0.1: BOOL;

    ESTADO_ENCENDIDO AT %MX0.2: BOOL;

    TIMEOUT_TIMER1 AT %MX0.3: BOOL;

    CORRIENTE_MAX AT %MW3001.0: INT := 120;

    (* KW00,00 .. KW31,15 -> %MW3000.00 .. %MW3031.15 *)

    CORRIENTE_MIN AT %MW3001.1: INT := 50;

    END_VAR

    Ejemplo en ST - 7Declaración de variables globales:

    VAR_GLOBAL

    ARRANQUE AT %IX62.0 : BOOL;

    PARADA AT %IX62.1 : BOOL;

    ALARMA AT %IX62.2 : BOOL;

    TERMICO AT %IX62.3 : BOOL;

    (* ... *)

    BOMBA_ON AT %QX62.2 : BOOL;

    CORRIENTE AT %IW1062.1 : INT;

    (* ... *)

    CICLOINI_FLAG AT %MX255.15 : BOOL;

    END_VAR

    Sentencias de iteración Restricciones lenguaje ST para series 40..50:

    Rango limitado de operadores Rango limitado de tipos de datos No existen las s iguientes instrucciones: CASE,

    FOR, WHILE, REPEAT, EXIT.

    ST Series 40..50 en manual Entradas relevantes en el manual AC1131. En

    pestaña “Contenido” Restricciones:

     “907 AC1131 – peculiarities and restrictions for S40..50”   “Data types and variables for S40..50”   “Operators and blocks for S40..50” 

     Aspectos de programación de series S40..50:  “System Technology of basic units series S40..50”. En

    pestaña contenido. En particular, en el tópico "Operandsof the basic units S40..50“ se describe el espacio dememoria.

    PLC

     ARQUITECTURA DELPLC SEGÚN IEC 1131-1

    Introducción  Arquitectura hasta ahora consiste en

    ejecución cíclica de programa, con tres fases: Lectura de entradas Ejecución de programa  Actualización de salidas

    La ejecución del programa puede alterarsesólo por una interrupción

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    56/59

    56

    Introducción Por avance continuo del hardware, la IEC-

    1131 define arquitectura más avanzada quela considerada hasta el momento

    La arquitectura se basa en la programación jerárquica, con 4 niveles:

    Configuración Recursos Tareas Programas

    Introducción Configuración define:

    recursos datos compartidos por los recursos datos accesibles desde exterior del PLC

    Recurso define: tareas datos compartidos por todos los programas datos de recurso accesibles desde exterior del PLC programas que ejecutan las tareas del recurso

    Introducción

    Tarea define: Programas asociados a la tarea Condición de disparo Prioridad

    Los programas se organizan sobreunidades POU (Program OrganizationalUnit)

    La Tarea Tarea tiene asociado al menos un programa Los programas asociados a una tarea se

    ejecutan cada vez que se dispara la tarea Condición de disparo puede ser:

    Intervalo periódico de tiempo expresado en mseg(tarea tiene un ciclo asociado, análogo al del PLC)

    Evento

    La Tarea Cada tarea tiene asignada una prioridad

    (número 1 a n), de modo que: 1 indica prioridad máxima; tarea de

    prioridad 1 no puede ser interrumpida porotra tarea

    Tarea de prioridad n+1 puede serinterrumpida por tarea de prioridad n

    Tareas de igual prioridad se ejecutansecuencialmente

    La Tarea Ejemplo: declaración de tareas lab 2 (se

    observa la simplificación de la programación):

    Task Configuration:

    TAREA1(PRIORITY:=1,INTERVAL:=T#100ms)

    PWM

    TAREA2(PRIORITY:=2,INTERVAL:=T#1sec);

    CONTROL

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    57/59

    57

    Las POU

    Hay tres tipos de POU (ProgramOrganizational Unit): Programa propiamente dicho Bloques funcionales Funciones o procedimientos

    Las POU

    Programas: Se ejecutan al dispararse una tarea Un programa puede llamar a funciones e

    instancias de templates de bloquesfuncionales

    Un programa no puede llamar a otroprograma

    Las POU

    Funciones: Aceptan múltiples parámetros de entrada Salida única Por ej., la función “FuncionEjemplo”

    devuelve una variable tipo WORD:

    FUNCTION FuncionEjemplo: WORD

    Las POU

    Bloques funcionales: Se definen sobre la base de “templates” de

    bloques Template de bloque: programa que define

    el bloque Para utilizar un template de bloque, la

    tarea declara una instancia del template

    Las POU Diferencia entre bloque funcional y

    función: Número de salidas:

    Función permite sólo una salida Bloque funcional permite más de una

     Variables permanentes (conservan valorentre ejecuciones):

    Función no Bloque funcional sí 

     Variables En lo que va del curso cada variable se asocia

    a una dirección de memoria fija Una variable puede ser:

    Global: se define al nivel de configuración, derecurso; las variables globales de un recurso sonaccesibles desde todo POU del recurso

    Local: variable automática, local al POU

    En el ejemplo de 2 tareas, la única variableglobal necesaria es la salida del control

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    58/59

    58

     Variables  Variables globales incluyen las variables con

    dirección de memoria asignada, accesiblesdesde fuera del PLC: variables representadasde forma directa

     Variables Declaración genérica de variable:

    NombreVar [AT %DirecciónVar] :TipoDeDato [::= ValorInicial];

     AT %DirecciónVar se usa para variablesrepresentadas de forma directa

     Variables DirecciónVar:

    [Código letras] [Código números]

     Variables Código de letras: distingue el tipo de dato Primer letra:

    - I/E: Dirección E- Q/O: Dirección S- M: Dirección dato interno

     Variables Segunda letra:

    - X: bit- B: byte (8 bits)- W: word (16 bits)- D: double word (32 bits)- L: long word (64 bits)

     Variables Tipo de dato: uno de los tipos de dato

    reconocido por IEC 1131-3: INT: entero con signo de 16 bits (prefijo S, D, L

    cambia tamaño) BOOL: Bit BYTE, WORD, DWORD, LWORD REAL, LREAL: punto flotante (32 bit, 64 bit) TIME, DATE, TIME_OF_DAY, DATE_AND_TIME STRING Tipo de datos derivado (STRUCT, ARRAY)

  • 8/18/2019 Presentaciones Introduccion a Los PLC

    59/59

     Variables Ejemplos tipos derivados por el usuario:

    TYPE my_array ARRAY [1..3] OF INT;END_TYPE

    TYPE my_structSTRUCT

    speed : INTposition : my_array

    END_STRUCTEND_TYPE