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
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
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
R
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
Top Related