Title | A-T4-Programacion |
---|---|
Author | Julio Castaño Amorós |
Course | Programacion 2 |
Institution | Universidad de Alicante |
Pages | 27 |
File Size | 2.1 MB |
File Type | |
Total Downloads | 77 |
Total Views | 154 |
Apuntes...
02/10/2018
T4. Lenguajes de programación de PLCs
AUTOMATIZACIÓN Grado en Ingeniería Robótica Curso 2018-19
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
2
Contenido Lenguajes IEC 61131-3. 2. Diagramas de contactos (LD, Ladder). 3. Diagramas de bloques funcionales (FBD). 4. Texto Estructurado (ST). 1.
1
02/10/2018
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
3
1. Lenguajes IEC 61131-3
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
4
Lista de instrucciones (IL, AWL) • Lenguaje de bajo nivel, parecido al lenguaje ensamblador, fácilmente traducible al lenguaje nativo de la CPU del PLC. • Es difícil de aprender y usar con eficiencia, y por eso se usa mucho menos que los otros lenguajes. • Es poco recomendable para usuarios que no son expertos en programación.
2
02/10/2018
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
5
Diagrama de contactos (LD, Ladder) • Fue el primer lenguaje propio de los PLCs, y sigue siendo el más utilizado. • Un programa se representa gráficamente como un esquema eléctrico de relés y contactos. • Muestra muy bien la lógica de un programa sencillo, pero es difícil implementar algoritmos complejos. • Es el más adecuado para operarios con formación en electricidad o electrotecnia.
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
6
Diagrama de bloques funcionales (FBD) • Un programa se representa como un diagrama de bloques conectados, como el esquema de un circuito electrónico digital. • Es fácil de programar y entender. • Pero se requiere más tiempo para especificar un programa que con otros lenguajes.
3
02/10/2018
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
7
Texto estructurado (ST) • Es un lenguaje derivado de Pascal y Basic que especifica el programa como sentencias de alto nivel escritas. • Es el más adecuado para personas con experiencia en programación. • Con cierta experiencia, permite especificar un programa bastante más rápido, y de forma más compacta, que con los lenguajes gráficos LD, FBD o SFC. • Pero es más difícil de entender los programas si no están bien comentados y documentados.
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
8
Diagrama secuencial de funciones (SFC) o GRAFCET. • El programa se representa con un diagrama derivado de las Redes de Petri, y que se compone de: Etapas: cuadros que representan un grupo de operaciones que se realiza durante un tiempo. Transiciones: barras horizontales que representan la transición de una etapa a otra. Cada una tiene una función booleana, que fuerza el cambio de etapa cuando vale “1”. Líneas de conexión entre etapas y transiciones.
• El diagrama se ejecuta de arriba hacia abajo, y se repite continuamente. • Es adecuado para especificar los algoritmos de procesos que consisten de una secuencia de etapas.
4
02/10/2018
1. Lenguajes IEC 61131-3
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
9
En este tema (4) veremos los principales aspectos de
LD, FBD y ST. En el tema 5 veremos como se programa con SFC. IL no lo vemos porque se usa muy poco. En cualquier caso, para conocer bien un lenguaje de
programación hay que programar con él. Los lenguajes LD, FBD y ST tienen la misma capacidad
para expresar programas: lo que se puede expresar en uno se puede traducir a los otros. SFC es diferente.
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
10
2. Diagramas de contactos (LD-Ladder)
5
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
11
Entre dos barras verticales que simbolizan las líneas de
alimentación de un circuito eléctrico, se dibujan ramas horizontales (redes) que representan funciones lógicas. Una red se compone básicamente de dos elementos: • Uno o más contactos que representan las entradas. • Una bobina de relé que representa la salida. Aunque se puede poner más de una bobina por red, no es recomendable. • Cada contacto o bobina se asocia a una variable, y puede ser normal (activo con un 1 en la variable) o invertido (activo con 0). Los elemento invertidos se representan con una barra diagonal dentro.
• Las variables de salida también se pueden usar como entradas.
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
12
La traducción de funciones lógicas, o de circuitos de
mando con contactos y relés, a LD es directa. • Los contactos en serie son operaciones de producto lógico. • Los contactos en paralelo son operaciones de suma lógica. • Se pueden usar las variables de las bobinas en los contactos para representar circuitos lógicos secuenciales (con estado). 24V
sKM(n+1)T = (eS1 + sKMnT)·eS2 0V
6
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
13
En un diagrama de LC también se puede incorporar
bloques para expresar algoritmos más complejos. Ejemplo: intermitente de 5 pulsos: • Dos bloques de temporización TON. • Cuenta con operaciones y comparación. • Contacto de detección de flanco Positivo (P). • Bobina de puesta a 0 (R).
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
14
Entre los bloques disponibles estándar resultan muy
útiles los siguientes: • Bloques de temporización: TON. Retardo de conexión. Activa su salida tras un tiempo. TOFF. Retardo de desconexión. Desactiva su salida tras un tiempo. TP. Generación de pulso. Su salida está activada un tiempo. TON EN
TP
TOFF ENO
EN
ENO
IN
Q
IN
Q
IN
Q
PT
ET
PT
ET
PT
ET
IN
PT
Q ET
EN
ENO
PT
IN Q
PT
ET
PT
IN Q
PT
ET
PT
7
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
15
Entre los bloques disponibles estándar resultan muy
útiles los siguientes: • Bloques de cuenta: CTU (Count Up). Cuenta creciente hasta el valor indicado. CTD (Count Down). Cuenta decreciente desde un valor cargado. CTUD. Cuenta creciente o decreciente, según la entrada que se use.
Con los bloques
predefinidos se pueden simplificar mucho los esquemas.
Contador de 5 pulsos del ejemplo anterior usando un bloque CTU
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
16
En LD y FBD los bloques de función tienen dos señales
adicionales que no se usan en los otros lenguajes: • EN (Enable): Entrada booleana de habilitación: El bloque se ejecuta cuando esta entrada vale 1 (true), o si está desconectada.
• ENO (Enable Out): Salida booleana que indica cuando el bloque concluye sin errores: Se pone a 1 (true) después de que EN pase a ser 1 y justo antes de empezar a ejecutar el bloque. Si la ejecución del bloque acaba correctamente, se mantiene a 1. Si se produce algún error durante la ejecución, se pone a o 0 (false). Cuando EN se pone a 0, ENO también pasa a ser 0.
8
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
17
Las señales EN y ENO permiten integrar bloques que no
tienen entradas booleanas dentro de un algoritmo de LD. • EN y ENO también fuerzan un orden de ejecución de los bloques.
Ejemplo de LD con operaciones aritméticas:
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
18
La ejecución de un diagrama sigue un orden: • La ejecución se realiza red a red, de arriba abajo. • Cada red se ejecuta completamente hasta determinar todas sus salidas, antes de pasar a la siguiente red. • Los bloques de función requieren disponer de todas las entradas para ejecutarse. • Se pueden usar EN y ENO para forzar un orden de ejecución. • Se puede alterar el flujo de ejecución con elementos de salto, pero éstos no son recomendables, y siempre se pueden evitar.
9
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
19
Ejemplo de orden de ejecución: • Los números rojos indican el orden de 1 4 ejecución.
10 11 5
Estos números no se suelen indicar en los diagramas.
6 2
3 7
• Los números .N al lado de los bloques indican el orden en que se ha dibujado.
8 9
Conviene dibujar el diagrama conforme al orden de ejecución.
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
20
No es posible definir un bucle explícitamente con líneas
de conexión, pero si mediante variables. • De todos modos, no se crea un bucle, porque, en un ciclo, la red se ejecuta solo una vez hasta determinar su primera salida. • Si que puede ocurrir una alternancia de estado en la variables en cada ciclo, lo que normalmente no es deseable. XOR
Suma exclusiva XOR
a 0 1 0 1
b 0 0 1 1
S 0 1 1 0
XOR
10
02/10/2018
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
21
Se dispone de elementos especiales para alterar la
secuencia de ejecución en determinados casos: • Salto a una etiqueta: el programa sigue a partir de la etiqueta indicada. Se recomienda evitar su uso. • Etiqueta: destino de un salto. • Retorno anticipado de una subrutina o bloque de función. • Todas las subrutinas acaban con un retorno implícito.
2. Diagramas de contactos (LD, Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
22
Ejercicio propuesto 4a: Sistema de apertura de una caja fuerte. • El sistema de apertura está compuesto por dos teclas A y B, un circuito lógico secuencial y un temporizador. • Se pide diseñar un programa en LD que implemente un circuito lógico secuencial y el temporizador para controlar el cierre y apertura de la caja según las siguientes especificaciones: Programa A Circuito lógico
Temporizador
Apertura
B
11
02/10/2018
2. Diagramas de contactos (LD-Ladder)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
23
Ejercicio propuesto 4a: Sistema de apertura de una caja fuerte. • Especificaciones: El temporizador que mantiene la caja fuerte abierta durante 5 minutos cuando recibe un nivel lógico 1 desde el circuito secuencial. El temporizador vuelve a cerrar la caja fuerte pasado dicho tiempo, independientemente del circuito secuencial. La tecla A es normalmente abierta, y cuando se pulsa llega un nivel lógico 1 a la entrada correspondiente de circuito secuencial. En cambio, la tecla B es normalmente cerrada, y cuando se pulsa llega un nivel lógico 0 a la entrada asociada. Para abrir la caja fuerte, la combinación secreta es: pulsar dos veces seguidas la tecla A, a continuación pulsar una vez la tecla B, y finalmente pulsar una vez la tecla A. Si se hace de esta manera, el circuito secuencial dará una salida a nivel lógico 1, que actuará sobre el temporizador, permitiendo la apertura de la caja fuerte durante 5 min. Si en cualquier momento se introdujera un error al pulsar la secuencia secreta, en el siguiente ciclo el sistema pasará al estado inicial, y la secuencia debe volver a introducirse desde el principio.
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
24
3. Diagramas de bloques funcionales (FBD)
12
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
25
Una sección de programa se diseña como un diagrama
de bloques interconectados con enlaces o variables. Hay tres tipos de bloques: • Funciones elementales (EF). Operaciones sin estado interno. • Bloques de función elementales (EFB). Con estado interno. • Bloques de función derivados (DFB). Creados por el usuario. Los EFB y DFB son tipos de datos, y para usarlos en un
programa se requiere declarar instancias de los mismos. Las EF se pueden usar directamente, sin necesidad de
crear instancias.
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
26
Con el lenguaje FBD los bloques también tienen señales
especiales EN y ENO como en LD. • Al contrario que en LD, con FBD estas señales suelen estar ocultas por defecto por que no se usan mucho. Se pueden activar en las propiedades de cada bloque. Instancias de TON (EFB)
Ejemplo del intermitente de cinco pulsos con FBD
Operaciones elementales (EF)
13
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
27
Funciones elementales (FE) comunes: • Lógicas: AND, OR, XOR, NOT, RE, FE, desplazamientos… Para BIT, BYTE, WORD, DWORD.
• Matemáticas: ADD, SUB, MUL, ABS, COS, SIN, EXP, LOG… Para INT, DINT, UINT, UDINT, REAL.
• Comparación: EQ, NE, GE, GT, LE, LT… Para BYTE, WORD, INT, UINT, REAL, STRING…
• Cadenas: CONCAT, EQUAL, FIND, LEFT, MID, REPLACE… • Conversión de tipos: BOOL_TO_INT, BYTE_TO_REAL… • Etc.
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
28
Bloques de función elementales (EFB) comunes: • Lógica: F_TRIG, R_TRIG, RS y SR (biestables)… • Temporizadores: TON, TOFF, TP. • Contadores: CTU, CTD, CTUD. • Acceso a archivos: abrir, cerrar, crear, borrar, escribir y leer datos, obtener espacio libre… • Control de diagramas GRAFCET. • Etc.
14
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
29
Otras funciones: • Fecha y hora, estadística, operaciones entre vectores… • Control continuo PID, generación PWM… • Gestión de módulos de control de movimiento. • Lectura y escritura de datos en puertos de comunicaciones. • Configuración avanzada de puertos E/S, y E/S asíncrona. • Sistema: acceso a fecha y hora, gestión de tareas de eventos, gestión de temporizadores, parada…
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
30
En los PLCs M340 hay dos tipos de bloques para la
detección de flancos en entradas o variables booleanas: • RE, FE. De tipo EB. Detectan el cambio de valor de una variable de tipo EBOOL en base a su bit de valor anterior. Una variable EBOOL (Extended BOOL) es una estructura que ocupa un byte e incluye tres bits: valor booleano, valor booleano anterior, e indicador de valor forzado. Las entradas y salidas lógicas o digitales son de tipo EBOOL.
• R_TRIG, F_TRIG. De tipo EFB. Determinan por sí mismas el cambio de valor de una variable de tipo BOOL o EBOOL.
En cualquier caso, la salida del bloque está activa solo
durante el ciclo en que se detecta que hay un cambio. En LD no hacen falta porque hay contactos con
detección de flacos (P y N).
15
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
31
Ejemplo: programa de control discreto de temperatura.
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
32
Ejemplo: control continuo de una servo-válvula con un
regulador PID. Consigna Bloque PIDFF
10V
Entrada analógica 1
e
td ·s 1 ·E U Kp 1 ti·s 1 td s · Kd
Entrada analógica 0
Reloj de muestreo
Sensor Temperatura
u
Salida analógica 0
PLC
PLANTA
Servo-válvula
16
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
33
Ejemplo: control continuo de una servo-válvula con un
regulador PID.
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
34
Ejemplo: procesamiento de cadenas. • Normalmente las cadenas no se pueden comunicar con enlaces entre bloques por no ser un tipo de datos elemental. Hay que usar variables STRING.
Resultado: cad_temp1 = ‘2017-09-25-00:58:21 valor=34’
17
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
35
Como en LD, se dispone de elementos para alterar la
secuencia de ejecución: • Salto a una etiqueta: el programa sigue a partir de la etiqueta indicada. Conviene evitar aconseja su uso. • Etiqueta: destino de un salto. • Retorno anticipado de una subrutina o bloque de función. • Todas las subrutinas acaban con un retorno implícito.
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
36
Con FBD también se pude hacer llamadas a subrutinas. • Al acabar la subrutina, el control vuelve a la parte del programa desde donde se llama. • Como en LD, se puede usar una operación de retorno anticipado. Sección FBD subrutina SR_CALL subrutina
18
02/10/2018
3. Diagramas de bloques funcionales (FBD)
AUTOMATIZACIÓN
T4. Lenguajes de programación de PLCs
37
Ejercicio propuesto 4b: control de luces intermitentes. • Se requiere implementar con FBD el programa de un s...