A-T4-Programacion PDF

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 PDF
Total Downloads 77
Total Views 154

Summary

Apuntes...


Description

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


Similar Free PDFs