Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de...

115
Sistemas de Aprendizaje para la Automatización y la Comunicación Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto

Transcript of Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de...

Page 1: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Sistemas de Aprendizaje para la Automatización y la Comunicación

Controlador Lógico Programable

Nivel Básico TP 301

Libro de Texto

Page 2: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado
Page 3: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capitulo 1 El PLC en la Tecnología de la Automatización

Page 4: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

1.1 Introducción El primer Control Lógico Programable (Programable Logic Control o PLC) fue desarrollado por un grupo de ingenieros en la General Motors en 1968, cuando la empresa estaba buscando una alternativa para reemplazar los complejos sistemas de control por relés. El nuevo sistema de control tenía que cumplir con los siguientes requerimientos: • Programación sencilla • Cambios de programa sin intervención en el sistema (sin tener que rehacer el

cableado interno) • Más pequeño, más económico y más fiable que los correspondientes sistemas de

control por relés • Sencillo y con bajo coste de mantenimiento Los sucesivos desarrollos llevaron a un sistema que permitía la conexión sencilla de señales binarias. Los requerimientos de cómo estaban conectadas debe distinguirse señales se especificaban en el programa de control. Con los nuevos sistemas, fue posible por primera vez mostrar las señales en una pantalla y archivar los programas en memorias electrónicas. Desde entonces han pasado tres décadas, durante las cuales los enormes progresos hechos en el desarrollo de la micro electrónica han favorecido la proliferación de los controles lógicos programables. Por ejemplo, a pesar de que en sus comienzos la optimización del programa y con ello la necesidad de reducir la ocupación de memoria representaba una tarea importante para el programador, en la actualidad esto apenas tiene importancia. Además, las funciones disponibles han crecido considerablemente. Hace quince años, la visualización de procesos, el procesamiento analógico o incluso la utilización de un PLC como un regulador, eran considerados una utopía. Actualmente, muchos de estos elementos son parte integral de muchos PLCs. En las páginas siguientes de este capítulo de introducción, describiremos el diseño básico de un PLC junto con las tareas y aplicaciones más importantes actualmente.

1.2 Areas de Todas las máquinas o sistemas automáticos tienen un control. Dependiendo del aplicación de un PLC tipo de tecnología utilizada, los controles pueden dividirse en neumáticos,

hidráulicos, eléctricos y electrónicos. Con frecuencia se utiliza una combinación de las diferentes tecnologías. Además, debe distinguirse entre controles con programa cableado (es decir, conexionado físico de componentes electromecánicos (relés, etc) o componentes electrónicos (circuitos integrados)) y controles lógicos programables. Los primeros se utilizan principalmente en casos en los que la reprogramación por el usuario está fuera de toda duda y el alcance de la tarea justifica el desarrollo de un sistema de control especial. Las aplicaciones típicas de tales controles pueden hallarse en los electrodomésticos, video cámaras, vehículos, etc.

Page 5: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Sin embargo, si la tarea de control no justifica el desarrollo de un control especial, o si el usuario debe tener la posibilidad de hacer cambios sencillos, o de modificar tiempos o valores de contadores, entonces el uso de un control universal, en el que el programa se escribe en una memoria electrónica, es la opción preferida. El PLC representa un control universal. Puede utilizarse para diferentes aplicaciones y, dado que el programa se halla escrito en su memoria electrónica, el usuario puede modificar, ampliar y optimizar con cierta sencillez sus procesos de control.

Figura B 1.1 Ejemplo de una aplicación de PLC

La tarea original de un PLC es la interconexión de señales de entrada, de acuerdo con un determinado programa y, si el resultado de esta interconexión es "cierta", activar la correspondiente salida. El álgebra de Boole forma la base matemática para esta operación, ya que solamente reconoce dos estados definidos de una variable: "0" (falso) y "1" (cierto). Consecuentemente, una salida solo asume estos dos estados. Por ejemplo, una electroválvula conectada a la salida puede estar activada o desactivada, es decir, controlada. Esta función ha acuñado el nombre de PLC: Programmable Logic Control o Control Lógico Programable. En él, el comportamiento de las entradas/salidas es similar al

Page 6: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

de los controles realizados con relés electromagnéticos o con elementos lógicos neumáticos o electrónicos; la diferencia reside en que el programa en lugar de estar 'cableado' está almacenado en una memoria electrónica. Sin embargo las tareas del PLC se ampliaron rápidamente: las funciones de temporización y recuento, operaciones de cálculo matemático, conversión de señales analógicas,etc., representan funciones que pueden ejecutarse en casi todos los PLCs actuales. Las demandas que se requieren de los PLCs siguen creciendo al mismo ritmo que su amplia utilización y desarrollo en la tecnología de automatización. Por ejemplo: la visualización, es decir, la representación de los estados de las máquinas o la supervisión de la ejecución del programa por medio de una pantalla o monitor. También el control directo, es decir, la facilidad de intervenir en los procesos de control o, alternativamente, impedir tal intervención a las personas no autorizadas. También se ha visto la necesidad de interconectar y armonizar sistemas individuales controlados por PLC, por medio de redes o buses de campo. Aquí, un ordenador master permite la generación de órdenes de mayor nivel para el procesamiento de programas en los diversos sistemas PLC interconectados. La conexión entre de varios PLCs, así como la de un PLC con el ordenador máster se realiza por medio de interfaces de comunicación especiales. Para ello, la mayoría de los más recientes PLCs son compatibles con sistemas de bus abiertos estandarizados, tales como Profibus según DIN 19 245. Gracias al enorme aumento de la potencia y capacidad de los PLCs avanzados, estos pueden incluso asumir directamente la función de un ordenador máster. Hacia finales de los setenta, las entradas y salidas binarias fueron finalmente ampliadas con la adición de entradas y salidas analógicas, ya que hay muchas aplicaciones técnicas que emiten y requieren señales analógicas (medición de fuerzas, velocidades, sistemas de posicionado servoneumáticos, etc.). Al mismo tiempo, la adquisición y emisión de señales analógicas permite la comparación de valores reales con los de consigna y, como consecuencia, la realización de funciones de regulación automática; una tarea que va más allá del ámbito que sugiere el nombre de control lógico programable.

Page 7: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Los PLCs que existen actualmente en el mercado han sido adaptados a los requerimientos de los clientes hasta tal punto que ya es posible adquirir un PLC exactamente adaptado para casi cada aplicación. Así, hay disponibles actualmente desde PLCs en miniatura con unas decenas de entradas/salidas hasta grandes PLCs con miles de entradas/salidas. Muchos PLCs pueden ampliarse por medio de módulos adicionales de entradas/salidas, módulos analógicos y de comunicación. Hay PLCs disponibles para sistemas de seguridad, barcos o tareas de minería. Otros PLCs son capaces de procesar varios programas al mismo tiempo (multitarea). Finalmente, los PLCs pueden conectarse con otros componentes de automatización, creando así áreas considerablemente amplias de aplicación.

Figura B 1.2 Ejemplo de un PLC AEG

Modicom A120 El término 'control lógico programable' se define en IEC 1131, parte 1, como 1.3 Definición básica sigue: de un PLC "Un sistema electrónico de funcionamiento digital, diseñado para ser utilizado en un entorno industrial, que utiliza una memoria programable para el almacenamiento interno de instrucciones orientadas al usuario, para la realización de funciones específicas tales como enlaces lógicos, secuenciación, temporización, recuento y cálculo, para controlar, a través de entradas y salidas digitales o analógicas, diversos tipos de máquinas o procesos. Tanto el PLC como sus periféricos asociados están diseñados de forma que puedan integrarse fácilmente en un sistema de control industrial y ser fácilmente utilizados en todas las aplicaciones para las que están previstos."

Page 8: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Por lo tanto, un control lógico programable es sencillamente un ordenador, adaptado específicamente para ciertas tareas de control. La figura B 1.3 ilustra los componentes del sistema de PLC.

Figura B 1.3 Sistema de componentes de un PLC

La función de un módulo de entrada es la de convertir señales de entrada en señales que puedan ser procesadas por el PLC y pasarlas a la unidad de control central. La tarea inversa es realizada por el módulo de salida. Este convierte las señales del PLC en señales adecuadas para los actuadores. El verdadero procesamiento de las señales se realiza en la unidad central de control, de acuerdo con el programa almacenado en la memoria. El programa de un PLC puede crearse de varias formas: a través de instrucciones parecidas al lenguaje ensamblador (assembler) en ' lista de instrucciones', el lenguaje de alto nivel orientados al problema, tales como el texto estructurado, o en forma de diagrama de flujo como se representa en el diagrama de funciones secuencial. En Europa, la utilización de los diagramas de bloques de función basados en los diagramas de funciones con símbolos gráficos para puertas lógicas (logigramas) es ampliamente utilizado. En América el lenguaje preferido por los usuarios es el ' diagrama de contactos' o ' diagrama en escalera' (ladder diagram). Dependiendo de como se halla conectada la unidad central a los módulos de entrada y salida, hay que distinguir entre PLCs compactos (módulo de entrada, unidad central y módulo de salida en un solo cuerpo) o PLCs modulares.

Page 9: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La figura B1.4 muestra el control FX0 de Mitsubishi, representando un ejemplo de un PLC compacto.

Figura B1.4 PlC Compacto (Mitsubishi FX0) Modular PLC (Siemens S-3000) PLC Modular (Festo FPC 405)

Los PLCs modulares pueden configurarse individualmente. Los modos requeridos por la aplicación práctica -aparte de los módulos de entradas/salidas digitales que pueden, por ejemplo, incluir módulos analógicos, de posicionamiento y comunicación- se insertan en un rack, en el que todos los módulos están enlazados por un sistema de bus. Este diseño se conoce también como tecnología modular. Dos ejemplos de PLCs modulares se muestran en las figuras B1.2 y B1.4. Estos representan la familia modular de PLC de AEG Modicon y el S7300 de Siemens. Existe una amplia gama de variantes, particularmente en el caso de las PLCs más recientes. Esto incluye tanto las características compactas como las modulares y características importantes tales como el ahorro de espacio, flexibilidad y posibilidad de ampliación. La tarjeta con formato PLC es un tipo especial de PLC modular desarrollado durante los últimos años. Con este tipo, varios módulos realizados sobre tarjetas de circuito impreso se montan en una caja estandarizada. El FPC 405 de Festo es representativo de este tipo de diseño (Fig. B1.4).

Page 10: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El diseño del hardware de un control lógico programable está hecho de forma que pueda soportar los entornos típicos industriales en cuanto los niveles de las señales, calor, humedad, fluctuaciones en la alimentación de corriente e impactos mecánicos.

1.4 El nuevo estándar A finales de los setenta, se plantearon en Europa algunos estándares válidos para

para PLC, 1 programación de PLCs, enfocados principalmente al estado de la tecnología en IEC131 aquel momento. Tenían en cuenta sistemas de PLC no interconectados, que

realizaban operaciones lógicas con señales binarias. DIN 19 239, por ejemplo, especifica un lenguaje de programación que posee las correspondientes instrucciones para estas aplicaciones. Anteriormente, no existían elementos de lenguaje estandarizados ni equivalentes para el desarrollo de programas de PLC. Los desarrollos aparecidos en los años ochenta, tales como el procesamiento de señales analógicas, interconexión de módulos inteligentes, sistemas de PLC en red, etc., agravaron el problema. Consecuentemente, los sistemas PLC de diferentes fabricantes requerían técnicas de programación completamente diferentes. Desde 1992, existe un estándar internacional para controles lógicos programables y dispositivos periféricos asociados (herramientas y programación y diagnosis, equipos de verificación, interfaces hombre-máquina, etc.). En este contexto, un dispositivo configurado por el usuario y compuesto por los elementos citados anteriormente, se conoce como un sistema PLC. El nuevo estándar IEC 1131 consta de cinco partes: Parte 1: Información general Parte 2: Requerimientos y verificaciones del equipo Parte 3: Lenguajes de programación Parte 4: Directrices para el usuario Parte 5: Especificación del servicio de mensajes Las partes 1 a 3 de este estándar se adoptaron sin enmiendas como el estándar Europeo EN 61 131, partes 1 a 3. La finalidad del nuevo estándar era definir y estandarizar el diseño y funcionalidad de un PLC y los lenguajes requeridos para la programación hasta un grado en el que los usuarios pudieran hacer funcionar sin ninguna dificultad los diferentes sistemas de PLC de los distintos fabricantes.

Page 11: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Los siguientes capítulos tratarán con detalle sobre este estándar. Por el momento, será suficiente la siguiente información: El nuevo estándar tiene en cuenta la mayoría de los aspectos posibles en relación con el diseño, aplicación y utilización de sistemas PLC. Las amplias específicaciones sirven para definir sistemas de PLC abiertos y estandarizados. Los fabricantes deben ajustarse a las especificaciones de este estándar, tanto en el aspecto puramente técnico de los requerimientos de un PLC como en lo que se refiere a la programación de tales controles. Todas las variaciones de vencer completamente documentadas para el usuario. Tras unas reticencias iniciales, será formado un grupo relativamente grande de personas interesadas (PLCopen) para apoyar este estándar. La mayoría de los principales proveedores de PLC son miembros de la asociación, es decir, Allen Bradley, Klöcker-Moeller, Philips, para mencionar algunos. Otros fabricantes de PLC como Siemens o Mitsubishi también ofrecen controles y sistemas de programación conformes con IEC1131. Los sistemas de programación iniciales ya están disponibles en el mercado y otros están siendo desarrollados. Sin embargo, la norma tiene una buena oportunidad de aceptación y de éxito. Esperamos que este libro de texto contribuirá, en cierto modo, al desarrollo de este estándar.

Page 12: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 2 Fundamentos

Page 13: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

2.1 El sistema de La característica del sistema de numeración decimal, comúnmente utilizado, es la Numeración disposición lineal de los dígitos y su emplazamiento significativo. El número 4344, Decimal por ejemplo, puede representarse como sigue:

4344= 4 x 1000 + 3 x 100 + 4 x 10 + 4 x 1 El número 4 que se halla en el extremo izquierdo, tiene un significado diferente del número 4 situado en el extremo derecho. La base del sistema de numeración decimal es la disponibilidad de 10 dígitos diferentes (decimal: originario del latin 'decem' = 10). Estos 10 diferentes dígitos permiten contar de 0 a 9. Si la cuenta sobrepasa el número 9, esto constituye un arrastre para el dígito de la siguiente posición a la izquierda. El significado de esta posición en 10, y el siguiente arrastre se realiza cuando se alcanza el valor 99. Utilizaremos el número 71.718.711 como ejemplo:

Como puede verse arriba, el significado del "7" en el extremo izquierdo es 70 000 000 = 70 millones, mientras que el significado del "7" en la tercera posición desde la izquierda es de 700. El dígito del extremo derecho se conoce como el 'dígito menos significativo' y el dígito del extremo izquierdo como el 'dígito más significativo'. Cualquier sistema de numeración puede ser configurado basándose en este ejemplo, cuya estructura fundamental puede aplicarse a sistemas de numeración de cualquier cantidad de dígitos. Consecuentemente, cualquier operación de cálculo y método de computación que utilice el sistema de numeración decimal puede ser utilizado con otros sistemas de numeración.

2.2 El sistema de Fue Leibnitz quien aplicó por primera vez las estructuras del sistema de Numeración numeración decimal al cálculo con dos dígitos. Allá por el año 1679, esto creó las Binario premisas esenciales para el desarrollo de los actuales ordenadores, ya que la

tensión eléctrica o la corriente eléctrica sólo permite un cálculo utilizando dos valores: es decir "circula corriente" o "no circula corriente". Estos dos valores se representan en forma de dígitos "1" y "0".

Page 14: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Si en un número estuviéramos limitados a exactamente 2 dígitos por posición, el sistema de numeración quedaría configurado como sigue:

Ejemplo El principio es exactamente el mismo que el del método utilizado para crear un número decimal. Sin embargo, sólo se dispone de dos dígitos, razón por la cual la posición significativa no se calcula con la base 10x, sino con la base 2x. Así, el número menos significativo en el extremo derecho es 20= 1, y para la siguiente posición 21 = 2, etc. Dado el uso exclusivo de dos dígitos, este sistema de numeración se conoce como sistema binario o sistema dual. Con ocho posiciones, pueden representarse un máximo de:

28 - 1 = 256 - 1 = 255 valores que alcanzarían hasta el número 1111 11112 Cada una de las posiciones de un sistema de numeración binario puede adoptar uno de los dos dígitos 0 o 1. La menor unidad posible del sistema binario es de 1 bit. En el ejemplo citado arriba, se configurado un número consistente en 8 bits, es decir, un byte (en un ordenador que utilice 8 señales eléctricas representando "tensión disponible" o "tensión no disponible"). El número considerado, 1011 00012 , corresponde al valor decimal 17710.

Ejemplo

Page 15: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

2.3 El código BCD Para las personas acostumbradas a tratar con el sistema decimal, los número binarios son difíciles de leer. Por esta razón, se introdujo una representación numérica de más fácil lectura, es decir, una notación decimal codificada de un número binario: el denominado BCD (binary coded decimal). Con este código BCD, cada dígito del sistema de numeración decimal representa a su correspondiente número binario.

Tabla B2.1 Representación Decimal de un Numero en código BCD Por lo tanto, se necesitan 4 dígitos en la notación binaria para representar el

sistema decimal. A pesar de que es una notación binaria de 4 dígitos pueden representarse los valores de 0 a 15, los valores correspondientes al 10, 11, 12, 13, 14 y 15 no se usan en BCD. Así el número decimal 7133 se representa como sigue en código BCD:

0111 0001 0011 0011BCD

Por lo tanto, se necesitan 16 bits para representar un número decimal de cuatro dígitos en código BCD. La codificación en BCD se utiliza a menudo para visualizadores de siete segmentos y para interruptores rotativos de introducción de valores.

2.3 El sistema de La utilización de números binarios es difícil y la utilización del código BCD ocupa numeración bastante espacio de memoria. Por esta razón se desarrollaron los sistemas octal y hexadecimal hexadecimal. En el caso del sistema octal se utilizan grupos de tres dígitos. Esto

permite contar de 0 hasta 7, es decir, contar con "ochos".

Page 16: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Alternativamente, en el sistema de numeración hexadecimal se combinan 4 bits. Estos 4 bits permiten la representación de los números 0 al 15, es decir, contar en "dieciseis". Para representar estos números se utilizan los dígitos 0 al 9, seguidos de las letras A, B, C, D, E y F, en donde A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15. La posición significativa de cada dígito se evalúa con las potencias de 16.

Por lo tanto el número 87BC16 dado como ejemplo se lee como sigue: 8 x 163 + 7 x 162 + 11 x 161 + 12 x 160 = 34 748 10 Hasta ahora hemos tratado solamente con números enteros y positivos, sin tener 2.5 Números binarios en cuenta los números negativos. Para poder trabajar con estos números, se decidió con signo que el bit más significativo en el extremo izquierdo de un número binario se utilizaría para representar el signo: así "0" corresponde al "+" y "1" al "-". Así, 1111 11112 = -12710 y 0111 11112 = +12810 Cuando se utiliza el bit más significativo para el signo, se dispone de un bit menos para la representación de un número con signo. Para la representación de un número binario de 16 dígitos, se obtiene el siguiente margen de valores:

Tabla B2.2 Rango de valores Para números binarios

Aunque ahora ya es posible representar con 0 y 1 números enteros positivos con 2.6 Números reales signo, aún hay la necesidad de poder representar los decimales o números reales. Para representar un número real en notación binaria de ordenador, el número se descompone en dos grupos, una potencia de 10 y un factor de multiplicación. Esto se conoce también como notación científica de números.

Page 17: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El número 27,334 se convierte así en 273 341 x10-4. Por lo tanto se necesitan dos números enteros con signo para representar un número real en un ordenador.

2.7 Generación de Como ya parece haber quedado claro en la sección anterior, todos los señales digitales ordenadores, y por lo tanto todos los PLCs, funcionan utilizando señales digitales o

y binarias binarias. Por binario, entendemos una señal que sólo reconoce dos valores definidos.

Figura B2.1 Señal binaria

Estos valores se les llama "0" o "1", aunque también se utilizan los términos "bajo" y "alto". Las señales pueden realizarse muy fácilmente con componentes de contactos. Un contacto activado corresponde a una señal de lógica 1 y uno sin activar a una de lógica 0. Cuando se trabaja con elementos sin contacto, esto puede forzar unos ciertos márgenes de tolerancia. Por esta razón, hay que definir ciertos márgenes de tensión para definirlos como lógica 0 ó lógica 1.

Fig. B2.2 Márgenes de tensión

Page 18: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

IEC 1131-2 define un margen de valores de -3 V a 5 V como señal de lógica 0, y de 11 V a 30 V como señal de lógica 1. Esto es de obligado cumplimiento para PLCs cuya tecnología deba seguir la norma IEC 1131-2. En la práctica existen tensiones muy parecidas para lógica 0 y lógica 1: Ampliamente usadas son: -30V a +5V para lógica 0 y +13V a +30V para lógica 1. A diferencia de las señales binarias, las señales digitales pueden asumir cualquier valor. Se les conoce también como etapas de valor. Así, una señal digital se define por cualquier cantidad de etapas de valor. El cambio entre estas etapas no es secuencial. La siguiente ilustración muestra tres posibles métodos de convertir una señal analógica en una señal digital.

Figura B2.3

Conversión de una Señal análoga a digital

Las señales digitales pueden formarse a partir de señales analógicas. Este método se utiliza, por ejemplo, para el procesamiento analógico a través de un PLC. Consecuentemente, una señal de entrada analógica en el margen de 0 a 10V se reduce a una serie de etapas de valores. Dependiendo de la calidad del PLC y de la resolución, la señal digital será capaz de operar en etapas de valores de 0,1V, 0,01V ó 0,001V. Naturalmente, en este caso se seleccionaría el margen más pequeño para poder reproducir la señal analógica con la mayor precisión posible.

Page 19: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Un ejemplo simple de una señal analógica es la presión, que se mide y se visualiza en un manómetro. La señal de presión puede asumir cualquier valor intermedio entre sus valores mínimo y máximo. A diferencia de la señal digital, cambia continuamente. En el caso del procesamiento de valores analógicos a través de un PLC, como se ha descrito, las señales analógicas de tensión se evalúan y se convierten. Por otra parte, las señales digitales pueden formarse reuniendo un cierto número de señales binarias. De esta forma, de nuevo como se ha descrito en el párrafo anterior, con ocho señales binarias es posible generar una señal digital con 256 valores.

Ejemplo

Este proceso se utiliza, por ejemplo, para la realización de temporizadores o de contadores.

Page 20: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 3 Operadores Booleanos

Page 21: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

3.1 Funciones lógicas Como se ha descrito en el capítulo anterior, cualquier ordenador e igualmente básicas cualquier PLC, funcionan utilizando el sistema de numeración de base 2. Esto se

aplica también a los sistemas octal (23) y hexadecimal (24). Por ello, las variables individuales pueden asumir sólo dos valores, "0" o "1". Se utilizan unas matemáticas especiales para poder enlazar las relaciones entre variables -la denominada álgebra de Boole. Los enlaces entre variables también pueden representarse claramente por medio de contactos eléctricos. Función NOT, negación El pulsador mostrado representa un contacto normalmente cerrado. Cuando no estar físicamente accionado, el piloto H1 luce, mientras que en estado accionado, el piloto H1 se apaga.

Figura B3.1 esquema del circuito

El pulsador S1 actúa como una señal de entrada, el piloto constituye la salida. El estado actual puede ser registrado en una tabla de la verdad:

Por lo tanto, la Ecuación Booleana es como sigue:

Î= O (Léase: No-I igual a O)

Page 22: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El símbolo lógico es:

Fig. B3.2: Función NOT

Dos negaciones consecutivas se cancelan entre sí.

Fig. B3.3: Dos funciones lógicas NOT

Función AND, conjunción Si dos contactos abiertos se conectan en serie, el piloto conectado sólo lucirá si ambos pulsadores están físicamente accionados.

Fig. B3.4: Esquema del circuito

Page 23: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tabla de la verdad

La tabla de la verdad asigna la conjunción. La salida asume el valor 1 sólo si ambas entradas 1 y 2 se hallan con señal 1. Esto se conoce como una operación AND (operación Y), que se representa con la siguiente ecuación:

I1 ̂I2 = O

Fig. B3.5: Función AND

Además, valen las siguientes ecuaciones para la conjunción a ̂0 = 0 a ̂1 = a _ a ̂a = 0 a ̂a = a Función OR, disyunción Otra función lógica básica es la función OR (O). Si dos contactos normalmente

Page 24: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

abiertos se conectan en paralelo, el piloto luce siempre que por lo menos uno de los pulsadores se halle físicamente accionado.

Fig. B3.6: Esquema del circuito

Tabla de la verdad

Fig. B3.7 Función OR La operación lógica se escribe en forma de la siguiente ecuación:

I1 ∨ I2 = O

Page 25: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Valen también las siguientes ecuaciones para la disyunción: b ∨ 0 = b b ∨ 1 = 1 _ b ∨ b = 1 b ∨ b = b

3.2 Otras operaciones En la sección B3.1 se ha descrito la realización eléctrica de las operaciones NOT- lógicas /AND-/OR. Naturalmente, cada una de estas funciones pueden también realizarse

con componentes neumáticos y electrónicos. El álgebra de Boole reconoce también las siguientes operaciones lógicas. La siguiente tabla proporciona un resumen de ellas.

Tabla B3.1 : Conexiones lógicas

Page 26: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado
Page 27: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

3.3 Establecimiento de Derivación de ecuaciones booleanas de la tabla de la verdad funciones de A menudo, las operaciones lógicas mostradas en la sección anterior no son conmutación suficientes para describir adecuadamente un estado en la tecnología de control.

A menudo, hay combinaciones de diferentes operaciones lógicas. La conexión lógica en forma de una ecuación booleana puede establecerse fácilmente a partir de la tabla de la verdad. El ejemplo inferior clarificará esto: Tarea en una estación de clasificación Diversas piezas para cocinas prefabricadas son mecanizadas en un sistema de producción (máquina de taladrar y fresar). A los laterales y a las puertas de ciertos tipos de cocina se les han hecho diferentes disposiciones de agujeros. Los sensores B1 a B4 están previstos para la detección de estos agujeros.

Fig. B3.8: Estación de clasificación

Las piezas con la siguiente distribución de agujeros son para el tipo de cocina 'Estándar'. Estas piezas deben extraerse de la cinta transportadora por medio del cilindro de doble efecto 1.0.

Page 28: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Fig. 3.9: Distribución de los agujeros en las piezas

Asumiendo que un taladro realizado se lee como señal-1, se obtiene la siguiente tabla de verdad:

Tabla de verdad

Page 29: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Para obtener la ecuación lógica a partir de esta tabla existen dos opciones, que conducen a dos expresiones diferentes. Naturalmente ambas expresiones producen el mismo resultado, ya que se describen las mismas circunstancias. Forma estándar disyuntiva En la forma estándar disyuntiva, se agrupan todas las conjunciones (operaciones AND) de las variables de entrada que producen la señal de salida 1, en una operación disyuntiva (operación OR). El estado 0 de la señal de entrada se toma como valor negado, y el estado 1 de la señal de entrada, como no-negada (directa). Por lo tanto, en el caso del ejemplo dado, la operación lógica es la siguiente:

Forma estándar conjuntiva En la forma estándar conjuntiva, se agrupan todas las disyunciones (operaciones OR) de las variables de entrada que producen la señal de salida 0, en una operación conjuntiva (operación AND). A diferencia de la forma estándar disyuntiva, en este caso la variable de entrada es negada con el estado "1" y no-negada con el estado "0".

3.4 Simplificación Ambas ecuaciones para el ejemplo dado son bastante amplias, si bien más larga de funciones aún es la que se ha dado como forma estándar conjuntiva. Esto define el criterio lógicas para utilizar la forma estándar disyuntiva o conjuntiva: la decisión se hace a favor

de la forma más corta de la ecuación. En este caso la forma estándar disyuntiva.

Page 30: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Esta expresión puede simplificarse con la ayuda de las propiedades del álgebra de Boole, de las cuales las más importantes se muestran a continuación:

Propiedad conmutativa

Propiedad asociativa

Propiedad distributiva

Ley de De Morgan

Aplicadas al ejemplo citado se obtiene el siguiente resultado:

Por razones de claridad, el símbolo de la operación AND ha sido expresamente omitido en las ecuaciones indicadas. El principio básico de la simplificación es sacar el factor común de las variables y reducir las expresiones definidas. Sin embargo, este método requiere un buen conocimiento de las propiedades del álgebra de Boole y un cierto grado de práctica. Otra opción para la simplificación se presenta en la siguiente sección.

Page 31: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Diagrama de Karnaugh-Veitch En el caso de los diagramas de Karnaugh-Veitch (KV) la tabla de verdad se transforma en una tabla de valores.

Para el ejemplo se dispone de un total de 16 posiciones, con lo que la tabla de valores debe tener también 16 cuadrados.

Fig. B3.1 : Tabla de valores

Page 32: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El resultado de la tabla de la verdad se transfiere al diagrama KV tal como se indica en la figura. En principio, de nuevo es posible la representación en la forma estándar disyuntiva o conjuntiva. Sin embargo, en este ejemplo nos limitaremos a la forma estándar disyuntiva.

Fig. B3.11: Tabla de valores El siguiente paso consiste en la combinación de los estados para los cuales se ha introducido un "1" en la tabla de valores. Esto se hace en bloques, observando las siguientes reglas: La combinación de estados en el diagrama KV debe ser en forma de rectángulo o de cuadrado. La cantidad de estados combinados debe ser el resultado de una función 2x. De esto resulta lo siguiente:

Fig. B3.12: Tabla de valores Los valores de las variables se seleccionan para el bloque establecido y estos a su vez se combinan en forma disyuntiva.

Page 33: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Naturalmente, el diagrama KV no está limitado a 16 casillas. Con 5 variables, por ejemplo, se producirían 32 casillas y con 6 variables 64 casillas.

Page 34: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 4 Diseño y modo de funcionamiento de un PLC

Page 35: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

4.2 Unidad de Control El hardware del PLC o, como es el caso de casi todos los sistemas Central de los PLCs microordenadores actuales -está basado en un sistema de bus. Un sistema de bus

es un determinado número de líneas eléctricas divididas en líneas de direcciones, de datos y de control. La línea de direcciones se utiliza para seleccionar la dirección de un elemento conectado al bus y la línea de datos para transmitir la información requerida. Las líneas de control son necesarias para habilitar el dispositivo conectado al bus como emisor o como receptor. Los principales elementos conectados al sistema de bus son el microprocesador y la memoria. La memoria puede dividirse en memoria para el firmware y memoria para el programa y los datos del usuario. Según la estructura del PLC, los módulos de entradas y salidas se conectan a un simple bus común o -con la ayuda de un interfase de bus- a un bus externo de E/S. Especialmente en el caso de grandes sistemas modulares de PLC, es más usual un bus externo de E/S. Finalmente, se necesita una conexión para el aparato programador o un PC, actualmente y en la mayoría de los casos en forma de un interfase serie.

Fig. B4.1: Diseño fundamental de un microordenador

La Fig. B4.1 ilustra el diseño fundamental de un microordenador.

Page 36: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

En los ordenadores, generalmente se distingue entre hardware, firmware y software. 4.2 Estructura de Lo mismo se aplica a los PLCs, ya que esencialmente también basados están en un un PLC. microprocesador. El hardware a las partes físicas del dispositivo, es decir, los circuitos impresos, los circuitos integrados, el cableado, la batería, el chasís, etc. El firmware lo constituyen aquellos programas (software) que se hayan permanentemente instalados en el hardware del ordenador y que son suministrados por el fabricante del PLC. Esto incluye las rutinas fundamentales del sistema, utilizadas para poner en marcha el procesador al aplicar la tensión. Adicionalmente, existe el sistema operativo que, en el caso de los controles lógicos programables, generalmente se halla almacenado en una memoria ROM de sólo lectura o en una EPROM. Finalmente, existe el software, que es el programa escrito por el usuario del PLC. Los programas de usuario se instalan generalmente en la memoria RAM, una memoria de acceso aleatorio, en donde pueden ser fácilmente modificados.

La Fig. B4.2 ilustra el FPC 101 de Festo como ejemplo.

Fig. B4.2: Control Lógico Programable Festo FPC 101

Page 37: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

4.2 Unidad Central En esencia, la unidad central de un PLC consiste en un microordenador. El sistema de un PLC operativo del fabricante del PLC hace que el ordenador que hay en el PLC esté

optimizado específicamente para tareas de tecnología de control. Diseño de la unidad central La Fig.B4.3 muestra una versión simplificada de un microprocesador que representa el corazón de un microordenador.

Fig. B4.3 Diseño de un microprocesador

Un microprocesador consiste principalmente en unidad aritmética y lógica, una unidad de control y un pequeño número de unidades de memoria internas, denominadas registros. La tarea de la unidad aritmética y lógica -la ALU (arithmetic logic unit)- es ejecutar las operaciones lógicas y aritméticas con los datos transmitidos. El acumulador, AC para abreviar, es un registro especial asignado directamente a la unidad ALU. Este almacena tanto los datos a procesar como los resultados de una operación. El registro de instrucciones almacena cada orden o instrucción llamada desde la memoria del programa hasta que es decodificada y ejecutada. Una orden o instrucción (command) tiene una parte de ejecución y una parte de dirección. La parte de ejecución indica que operación debe realizarse. La parte de dirección define la dirección de los operandos (señales de entrada, flags, etc.) con los que hay que realizar la operación indicada.

Page 38: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El contador de programa es un registro, que contiene la dirección de la siguiente orden a procesar. La sección siguiente tratará este apartado con más detalle. La unidad de control regula y controla toda la secuencia de operaciones requeridas para la ejecución de una orden. Ciclo de instrucciones en la unidad central Los sistemas microordenadores convencionales de hoy en día funcionan según el denominado "principio de von-Neumann". Según este principio, el ordenador procesa el programa línea a línea. En términos sencillos, podríamos decir que cada línea del programa de usuario del PLC es procesada secuencialmente. Esto es válido independientemente del lenguaje de programación en el que haya sido escrito el programa de PLC, sea en forma textual (lista de instrucciones) o en forma gráfica (diagramas de contactos, diagramas de funciones secuencial). Dado que estas diversas formas de representación siempre resultan en una serie de líneas de programa dentro del ordenador, se procesan consecuentemente una tras otra. En principio, una línea de programa, es decir, generalmente una orden se procesa en dos etapas: • Recogida de la orden desde la memoria de programa • Ejecución de la orden

Fig. B4.4: Secuencia de instrucciones

Page 39: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El contenido del contador de programa es transferido al bus de direcciones. A continuación, la unidad de control hace que la instrucción en la dirección especificada de la memoria del programa sea depositada en el bus de datos. Desde aquí, se lee en el registro de instrucciones. Una vez ha sido decodificada, la unidad de control genera una secuencia de señales de control para su ejecución. Durante la ejecución de un programa, las instrucciones se van a buscar secuencialmente. Para ello se necesita un mecanismo que permita esta secuencia. Esta tarea se realiza por un simple incrementador, es decir, un elemento de habilitación de pasos en el contador de programa. Modo de funcionamiento de un PLC Los programas para el procesamiento convencional de datos, generalmente se procesan una sola vez, de arriba abajo y terminan. A diferencia de estos, el programa de un PLC es procesado continua y cíclicamente.

Fig. B4.5: Procesamiento cíclico de un programa de PLC

Page 40: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Las características del procesamiento cíclico son: Así que el programa ha sido ejecutado una vez, salta automáticamente al principio y se va repitiendo el proceso continuamente. Antes de que se procese la primera línea del programa, es decir, al inicio del ciclo, el estado de las entradas es almacenado en la tabla de imagen de entradas. La imagen del proceso es una zona de memoria aparte a la que se accede durante un ciclo. Así el estado lógico de una entrada permanece constante durante un ciclo, incluso aunque en este intervalo haya cambiado físicamente. De forma similar a las entradas, las salidas no son inmediatamente activadas o desactivadas durante un ciclo, sino que estado es almacenado temporalmente en la tabla imagen de salidas. Solamente al final del ciclo se activan o desactivan físicamente las salidas según el estado lógico almacenado en la memoria. El procesamiento de una línea de programa a través de la unidad central de un PLC ocupa un tiempo que, dependiendo del PLC y de la instrucción que contenga, puede variar desde unos pocos microsegundos hasta unos pocos milisegundos. El tiempo requerido por el PLC para una simple ejecución de un programa, incluyendo la actualización de las salidas y la imagen del proceso, se denomina tiempo de ciclo o tiempo de scan. Cuanto más largo sea el programa y cuanto más tiempo necesite el PLC respectivo para procesar cada línea del programa, tanto más largo será el tiempo del ciclo. Los tiempos reales de ciclo varían aproximadamente entre 1 y 100 milisegundos. Las consecuencias del procesamiento cíclico de un programa de PLC que utilice una imagen del proceso son las siguientes: • Las señales de entrada de una duración inferior al tiempo de ciclo posiblemente

no serán reconocidas. • En algunos casos, puede haber un retardo de dos ciclos entre la presencia de

una señal de entrada y la deseada reacción de una salida ante esta señal. Dado que las instrucciones se procesan secuencialmente, el comportamiento específico de la secuencia de un programa de PLC puede ser crucial. En algunas aplicaciones, es esencial que pueda accederse directamente a entradas y salidas durante un ciclo. Por ello, este tipo de procesamiento de programa, saltándose la imagen del proceso, también es posible en algunos sistemas PLC.

Page 41: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

4.3 Memoria de Los programas específicamente desarrollados para determinadas programas de aplicaciones requieren una memoria de programa, de la cual puedan ser leídos

aplicación por la unidad central. Los requerimientos para tal memoria de programa son relativamente simples de formular: • Debería ser lo más sencilla de modificar o de crear y almacenar nuevos

programas con la ayuda de un dispositivo programador o un PC. • Debe haber mecanismos que aseguren que el programa no pueda perderse -

incluso ante un fallo de tensión o por tensiones de interferencia • La memoria de programa debe ser económica • La memoria de programa debería ser suficientemente rápida para no retardar el

funcionamiento de la unidad central. Actualmente, se utilizan tres tipos de memoria en la práctica: • RAM • EPROM • EEPROM RAM La memoria RAM (random access memory/memoria de acceso aleatorio) es una memoria muy rápida y económica. Dado que la memoria principal de los ordenadores (y también de los PLCs) consiste en memorias RAM, se producen en grandes cantidades, lo que le permite disponer de tales memorias a costes relativamente bajos. Las RAMs son memorias de lectura/escritura y pueden programarse y modificarse fácilmente. La desventaja de una RAM es que es volátil, es decir,el programa almacenado en la RAM se pierde en el caso de un fallo de tensión. Esta es la razón por la cual las RAMs deben estar respaldadas por una batería, acumulador o pila. Dado que la vida util y la capacidad de las modernas pilas les permiten durar varios años, el respaldo de una RAM por pila es relativamente simple. A pesar de que se utilizan pilas o baterias de altas prestaciones, es esencial sustituirlas en las fechas indicadas por el fabricante del PLC.

Page 42: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

EPROM La EPROM (erasable programmable read-only memory / memria de sólo lectura, programable y borrable) también es una memoria rápida y de bajo coste y, en comparación con la RAM tiene la ventaja añadida de que no es volátil, es decir, es remanente. Por ello, el contenido de la memoria permanece inalterable incluso ante un fallo de tensión.

Fig. B4.6: Ejemplo de una EPROM

Sin embargo, a efectos de modificar un programa, debe borrarse primero toda la memoria y, tras un tiempo de enfriamiento, reprogramarse completamente. El borrado requiere generalmente un dispositivo borrador y para su programación se utiliza un dispositivo especial (grabador de EPROMs). A pesar de su relativamente complejo proceso de borrado, -enfriado-, reprogramación, las EPROMs se utilizan con bastante frecuencia en los PLCs ya que poseen una gran fiabilidad y u bajo coste. En la práctica, a menudo se utiliza una RAM durante la fase de programación y puesta a punto de la máquina. Una vez finalizada la puesta en marcha, el programa se transfiere a una EPROM. EEPROM La EEPROM (electrically erasable programmable ROM / ROM programable y borrable eléctricamente), EEROM (electrically erasable ROM / ROM alterable eléctricamente) o las flash-EPROM han sido utilizadas desde hace algún tiempo. La EEPROM es especial, es ampliamente utilizada como memoria de aplicación en PLCs. La EEPROM es una memoria borrable eléctricamente, que puede reescribirse.

Page 43: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

4.5 Módulo de entradas El módulo de entradas de un PLC es el módulo al cual están conectados los sensores del proceso. Las señales de los sensores deben pasar a la unidad central. Las funciones importantes de un módulo de entradas (para la aplicación) es como sigue: • Detección fiable de la señal • Ajuste de la tensión, desde la tensión de control a la tensión lógica • Protección de la electrónica sensible de las tensiones externas • Filtrado de las entradas

Fig. B4.7: Diagrama de bloque de un módulo de entradas

El principal componente de los actuales módulos de entradas, que cumple con estos requerimientos es el optoacoplador. El optoacoplador transmite la información del sensor por medio de la luz, creando así un aislamiento eléctrico entre el control y los circuitos lógicos, protegiendo con ello a la sensible electrónica de las tensiones espúreas externas. Actualmente, los optoacopladores avanzados garantizan protección a picos de apróximadamente 5 kV, lo que es adecuado para aplicaciones industriales. El ajuste de la tensión de control y de lógica , en el caso corriente de una tensión de mando de 24 V, puede realizarse con la ayuda de un circuito diodo/resistencia. En el caso de 220 V AC, se conecta un rectificador en serie. Dependiendo del fabricante del PLC, se asegura una detección fiable de la señal por medio de un detector de umbral adicional o los correspondientes de diodos y optoacopladores. Los datos precisos en relación con las señales a detectar se especifican en DIN 19240.

Page 44: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El filtrado de la señal emitida por el sensor es crítica en automatización industrial. En la industria, las líneas eléctricas están generalmente muy cargadas debido a tensiones de interferencia inductivas, que producen muchas interferencias en las señales. Las líneas de las señales pueden protegerse con apantallamientos, canaletas metálicas o, alternativamente, el módulo de entrada del PLC realiza un filtrado por medio de un retardo de la señal de entrada. Esto necesita que la señal de entrada sea aplicada un periodo de tiempo suficientemente largo, antes de que sea reconocida como una señal de entrada. Dado que, debido a su naturaleza inductiva, los impulsos de interferencia son principalmente señales transitorias, es suficiente un retardo de la señal de entrada relativamente corto, del orden de milisegundos, para filtrar la mayor parte de los impulsos parásitos. El retardo de la señal de entrada se realiza principalmente por hardware, es decir, a través de un circuito RC en la entrada del PLC. Sin embargo, en casos aislados, también es posible producir un retardo de la señal por software. La duración de un retardo de entrada es de apróximadamente entre 1 y 20 milisegundos -dependiendo del fabricante y del tipo. Muchos fabricantes ofrecen entradas especialmente rápidas para aquellas tareas en las que el retardo de la señal de entrada es demasiado largo para reconocer la señal requerida. Cuando se conectan sensores a las entradas del PLC, debe distinguirse entre conexiones de conmutación positiva y de conmutación negativa. En otras palabras, hay que distinguir entre entradas que representan un consumo de corriente o una fuente de corriente. En Alemania, por ejemplo, cumpliendo con VDI 2880, se utilizan principalmente las conexiones de conmutación positiva, ya que ello permite la utilización de un tierra de protección. Conmutación positiva significa que la entrada del PLC representa un drenaje de corriente. El sensor suministra la tensión de funcionamiento o tensión de control a la entrada en forma de señal-1. Si se utiliza tierra de protección, la tensión de salida del sensor es cortocircuitada hacia los 0 voltios o se funde el fusible en caso de cortocircuito en la línea de señal. Esto significa que se aplica una lógica 0 en la entrada del PLC.

Page 45: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

En muchos países, es común utilizar sensores de conmutación negativa, es decir, las entrada del PLC funcionan como fuente de potencia. En estos casos, deben utilizarse diferentes medidas de protección para evitar que se aplique una señal 1 a la entrada del PLC en el caso de un cortocircuito en la línea de la señal. Un posible método es la puesta a tierra de la tensión de control positiva o la supervisión del aislamiento, es decir, tierra de protección como medida de protección.

4.6 Módulo de salida Los módulos de salida llevan las señales de la unidad central a los elementos

finales de control, que son activados según la tarea. Principalmente, la función de una salida -vista desde la aplicación del PLC incluye lo siguiente: • Ajuste de la tensión desde la tensión lógica a la de control • Protección de la electrónica sensible de tensiones espúreas hacia el control • Amplificación de potencia suficiente para el accionamiento de elementos finales

de control • Protección de cortocircuito y sobrecarga de los módulos de salida En el caso de módulos de salida, hay disponibles dos métodos fundamentalmente diferentes para conseguir lo indicado: El uso de relés o de electrónica de potencia.

Fig. B4.8: Diagrama de bloques de un módulo de salida

Actualmente, la protección ante cortocircuito, protección ante sobrecargas y amplificación de potencia, se ofrecen a menudo como módulos completamente integrados.

Page 46: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Las medidas estándar de protección ante cortocircuito miden el flujo de corriente a través de una resistencia de potencia para desconectar en caso de cortocircuito; un sensor de temperatura proporciona una protección ante sobrecargas; una etapa de Darlington o una etapa de transistor de potencia proporcionan la potencia necesaria. La potencia admisible de salida se utiliza específicamente de forma que permita una distinción entre la potencia admisible de una salida y la potencia acumulada admisible de un módulo de salidas. La potencia acumulada de un módulo de salidas es siempre considerablemente interior a la suma total de la potencia de cada salida, ya que los transistores de potencia se transmiten el calor unos a otros. Si se utilizan relés para las salidas, entonces el relé puede asumir prácticamente todas las funciones de un módulo de salida: El contacto del relé y la bobina del relé están eléctricamente aislados uno de otra; el relé representa un excelente amplificador de potencia y está especialmente protegido de sobrecargas, con lo que solamente debe preverse una protección ante cortocircuito con un fusible. Sin embargo, en la práctica se conectan optoacopladores en serie con el relé, ya que ello facilita el accionamiento del relé y pueden utilizarse relés más sencillos. Las salidas por relé, tienen la ventaja de que pueden utilizarse para diferentes tensiones de salida. En contraste, las salidas electrónicas tienen velocidades de conmutación considerablemente más elevadas y una vida útil más larga que la de los relés. En muchos casos, la potencia de relés muy pequeños utilizados en los PLCs, corresponde a la de las etapas de potencia de las salidas electrónicas. En Alemania, por ejemplo, las salidas también se conectan a conmutación positiva, según VDI 2880, es decir, la salida representa una fuente de potencia y suministra la tensión de funcionamiento para el dispositivo consumidor. En el caso de un cortocircuito de la línea de señal de salida a tierra, la salida se cortocircuita si se utilizan medidas normales de puesta a tierra de protección. La electrónica conmuta a protección de cortocircuito o se funde el fusible, es decir, el dispositivo consumidor no puede drenar corriente por lo que se desconecta y queda en estado seguro. (De acuerdo con DIN 0113, el estado de seguridad debe ser siempre el estado sin energía.)

Page 47: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Si se utilizan salidas de conmutación negativa, es decir, la salida repre senta un drenaje de corriente, deben adoptarse medidas de protección del tal forma que el dispositivo consumidor quede en un estado seguro en el caso de cortocircuito en la línea de señal. De nuevo, un tierra de protección con supervisión del aislamiento o la neutralización de la ten sión de control positiva son prácticas estándar en este caso.

4.7Dispositivo Cada PLC tiene una herramienta de diagnosis y programación para soportar la programador / aplicación del PLC Ordenador personal

• Programación • Verificación • Puesta punto • Localización de averías • Documentación del programa • Almacenamiento del programa Estas herramientas de programación y diagnosis son o bien dispositivos de programación específicos del fabricante u ordenadores personales con su software correspondiente. Actualmente, estos últimos son casi exclusivamente las variantes preferidas, ya que la enorme capacidad de los modernos PCs, combinada con su comparativamente bajo coste inicial y alta flexibilidad, representan ventajas cruciales. También se han desarrollado los denominados programadores de mano para pequeños sistemas de control y para tareas de mantenimiento. Con la creciente utilización de ordenadores personales portátiles (LapTop), funcionando con baterías, la importancia de los programadores de mano disminuye paulatinamente.

Page 48: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Las funciones esenciales del sistema de software forman parte de la herramienta de programación y diagnostico Cualquier software de programación según IEC 1131-1 deben proporcionar al usuario una serie de funciones. Así, el software de programación comprende módulos de software para: • Introducción de programas

Creación y modificación de programas en uno de los lenguajes de programación del un PLC

• Verificación de la sintaxis

Comprobación de la sintaxis del programa y los datos, minimizando así la introducción de programas defectuosos.

• Traductor

Traducción del programa introducido en un programa que puede ser leído y procesado por el PLC, es decir, la generación del código máquina del correspondiente PC.

• Conexión entre PLC y PC

A través de este enlace se realiza la carga de los programas al PLC y la ejecución de funciones de verificación

• Funciones de verificación

Ayuda al usuario durante la escritura y en la eliminación de fallos y verificación a través de: - una verificación del estado de las entradas, salidas temporizadores,

contadores, etc. - verificación de secuencias de programa por medio de operaciones de paso a

paso, órdenes de STOP, etc. - simulación por medio de activación manual de entradas/salidas,

establecimiento de valores, etc. • Indicación del estado de sistemas de control Emisión de información relacionada con la máquina, proceso y esta do del sistema PLC:

- Indicación de. estado de señales de entrada y salida - Registro/indicación de cambios de estado en señales externas y datos internos - Supervisión de los tiempos de ejecución - Formato en tiempo real de la ejecución del programa

Page 49: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

• Documentación Creación de una descripción del sistema PLO y el programa del usuario. Esto consiste en: - - Descripción de la configuración del hardware - Impresión del programa de usuario con los correspondientes datos e

identificadores para las señales y comentarios - Lista de referencias cruzadas para todos los datos procesados tales como

entradas, salidas, temporizadores, etc. - Descripción de las modificaciones

• Archivado del programa de usuario

Protección del programa de usuario en memorias no volátiles tales como EPROM, etc.

Page 50: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 5 Programación de un PLC

Page 51: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

5.1 Búsqueda de una Los programas de control representan un componente importante en un sistema de solución sistemática automatización.

Los programas de control deben ser diseñados sistemáticamente, bien estructurados y completamente documentados, para que sean: • libres de errores, • fáciles de mantener y • económicos Modelo de fases para la generación de software para PLC El procedimiento para el desarrollo de un programa de PLC que se muestra en la fig. B5.1 ha sido probado y verificado. La división en secciones definidas conduce a un funcionamiento sistemático y objetivado, y proporciona una disposición de resultados clara, que puede verificarse en relación con la tarea. El modelo de fases consiste en las siguientes secciones: • Especificación: Descripción de la tarea • Diseño: Descripción de la solución • Realización: Puesta en práctica de la solución • Integración/puesta a punto; Incorporación en el entorno y verificación de la

solución, que básicamente pueden aplicarse a todos los proyectos técnicos. Se producen diferencias en los métodos y herramientas utilizados en las fases individuales.

Fig. B5.1: Modelo de fases para la generación de software de PLC

Page 52: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El modelo de fases puede aplicaras a programas de control de complejidad diversa; para tareas de control complejas, es absolutamente esencial la utilización de tales modelos. Las fases individuales del modelo se describen abajo. Fase 1: Especificación (Formulación del problema) En esta fase, se formula una descripción detallada y precisa de la tarea de control. La descripción específica de la función del sistema de control, formalizada al máximo, revela cualquier requerimiento conflictivo, especificaciones incompletas o equivocadas. Al final de esta fase se dispone de lo siguiente: • Descripción escrita de la tarea de control • Estructura/distribución • Macroestructuración del sistema o proceso y con ello un esbozo de la estructura

de la solución. Fase 2: Diseño (Forma concreta del concepto de la solución) Un concepto de solución se desarrolla basándose en las definiciones establecidas en la fase 1. El método utilizado para describir la solución debe proporcionar un gráfico y una descripción orientada al proceso, a la función y comportamiento del sistema de control, y debe ser independiente de la realización técnica. Estos requerimientos se cumplen con el diagrama de funciones (FGH) según define DIN 40 719, Parte 6 o IEC 848. Empezando con una representación de una visión de conjunto del control (esbozo de la estructura de la solución), la solución puede refinarse paso a paso hasta que se obtenga un nivel de descripción que contenga todos los detalles de la solución (refinamiento de un esbozo de estructura). En el caso de tareas de control complejas, la solución es estructurada, en paralelo con esto, en módulos de software individuales. Estos módulos de software realizan las etapas de trabajo del sistema de control. Estos pueden ser funciones especiales como la realización de un interface para la visualización del proceso, o sistemas de comunicación, o incluso etapas de trabajo recurrentes permanentemente. El diagrama desplazamiento-fase, representa otra forma estándar para la descripción de sistemas de control aparte del diagrama de funciones según DIN 40 719, Parte 6.

Page 53: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Fase 3: Realización (Programación del concepto de la solución) La traducción del concepto de la solución en un programa de control se realiza a través de los lenguajes de programación definidos en IEC 1131-3. Estos son: diagrama de funciones secuencial, diagrama de bloques de función, diagrama de contactos, lista de instrucciones y texto estructurado. Los sistemas de control que funcionan en un proceso tiempo/lógica y están disponibles en FCH según DIN 40 719, P.6, pueden ser clara y fácilmente programados en diagrama de funciones secuencial. Un diagrama de funciones secuencial, en la medida de los posible, utiliza los mismos componentes para la programación que los utilizados para la descripción en el diagrama de funciones según DIN 40 719, P.6. Diagrama de contactos, diagrama de bloques de función y lista de instrucciones son los lenguajes de programación adecuados para la formulación de operaciones básicas y para sistemas de control que pueden ser descritos por simples señales lógicas combinadas por operaciones booleanas. El lenguaje de alto nivel denominado 'texto estructurado' se utiliza principalmente para crear módulos de software de contenido matemático, tales como módulos para la descripción de algoritmos de regulación. En la medida en que los sistemas de programación de PLCs lo permitan, los programas de control o parte de los programas creados, deberían ser simulados antes de la puesta a punto. Esto permite la detección y eliminación de errores ya en una etapa inicial. Fase 4: Puesta a punto (Construcción y verificación de una tarea de control) Esta fase verifica la interacción del sistema de automatización y la planta conectada. En casos de tareas complejas, es aconsejable poner a punto el conjunto de forma sistemática, paso a paso. Los tallos, tanto en el sistema como en el programa de control, pueden hallarse y eliminarse fácilmente utilizando este método.

Page 54: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Documentación Un componente importante y crucial de un sistema es la documentación, ya que es un requerimiento esencial para el mantenimiento y ampliación de un sistema. ~ documentación, incluyendo los programas de control, deberla estar disponible tanto en papel como en un soporte de almacenamiento de datos. La documentación consiste en la información sobre las fases individuales, listados del programa de control y de cualquier información adicional posible concerniente al programa de control. Individualmente estos son: • Descripción del problema • Croquis de situación • Esquema del circuito • Esquema técnico • Listados del programa de control en SFC, PBD, etc. • Lista de asignaciones de entradas y salidas • (esto también forma parte de los listados del programa de control) • Documentación adicional IEC 1131-3 es un estándar para la programación, no sólo de un PLC individual, 5.2 Recursos de sino también para sistemas de automatización complejos. Los programas de control estructuración para grandes aplicaciones deben ser claramente estructurados para ser inteligibles, IEC 1131-3 fáciles de mantener y si es posible también portátiles, es decir, transferibles a otros sistema de PLC. Las definiciones se necesitan no sólo para las instrucciones de lenguaje elemental, sino también para los elementos de lenguaje para estructuración. Los recursos de estructuración (fig. B5.2) se refieren a programas de control y a la configuración del sistema de automatización.

Figura B5.2: EC 1131-3

Page 55: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Recursos de estructuración del programa Los recursos de estructuración - programa, bloque de funciones y función - contienen la verdadera lógica de Control (reglas> del programa de control. Estos se conocen también como unidades de organización del programa. Estos recursos de estructuración están disponibles para cualquier lenguaje de programación. Se utilizan para la modularización de programas de control y del programa de usuario - esto concierne principalmente a programas y bloques de función - o también suministrados por el fabricante - en lo que se refiere a programas y bloques de función. IEC 1131-3 define un amplio juego que funciones y bloques de función estandarizados. Estos pueden ser ampliados por funciones propias del usuario, para tareas especiales o de continua recurrencia. Los módulos de software, que pueden utilizarse de diversas maneras, se introducen en librerías, de las que puede disponerse en cualquier momento. Los programas representan la capa más exterior de la organización del programa y pueden diferenciarse del bloque de función principalmente por el hecho de que no pueden ser invocados por ninguna otra unidad de organización del programa. El diagrama de funciones secuencial representa otro recurso para la estructuración de un programa. Los contenidos de los programas reales y los bloques de función pueden de nuevo representarse clara e inteligiblemente por medio de un diagrama de funciones secuencial. Recursos de estructuración a nivel de configuración Los elementos de lenguaje para configuración describen la incorporación de programas de control en el sistema de automatización y su control en relación con el tiempo. El sistema de automatización representa una configuración (elemento del lenguaje CONFIGURACION). Dentro de la Configuración hay las variables globales (elemento de lenguaje VAR_GLOBAL).

Page 56: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Un recurso (elemento de lenguaje RECURSO) corresponde al procesador de un sistema multiprocesador, al cual se asignan uno o varios programas. Además, comprende elementos de control, que incluyen el control de programas en relación con el tiempo. Este elemento de control es una tarea (elemento de lenguaje TAREA). El elemento de control Tarea define si un programa debe procesarse cíclicamente o sólo una vez, disparado por un evento específico. Los programas que no están específicamente enlazados a una tarea son procesados cíclicamente en segundo plano y con la prioridad mas baja.

Figura 5.3:Ejemplo Grafico De un configuración

Los recursos de estructuración para la configuración se muestran en un resumen combinado en la fig. B5.3. A continuación se explica el ejemplo que aplica este concepto a una tarea de automatización. La tarea planteada es la de diseñar y automatizar una línea de producción para el montaje de válvulas neumáticas. Se ha elegido un PLC multiprocesador con tres tarjetas de procesador para el montaje de las válvulas. Las tarjetas de procesador están asignadas al montaje de las válvulas, el control del transportador y el control de calidad.

Page 57: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Los programas Estadísticas y Guarda_datos están asociados con diferentes tareas. Como tales, poseen diferentes características de ejecución. El programa Estadísticas evalúa y comprime los datos de calidad a intervalos regulares. La prioridad de este programa es baja. Se pone en marcha regularmente, p.ej. cada 20 minutos, por la tarea Tarea_cíclica. En el caso de un PARO DE EMERGENCIA, el programa Guarda_datos transmite todos los datos disponibles a Un ordenador de célula de nivel superior para prevenir cualquier posible pérdida de datos. El programa se pone en marcha activado por un evento de la más alta prioridad con la señal de PARO DE EMERGENCIA. IEC 1131-3 proporciona interfaces definidos y por lo tanto estandarizados para el intercambio de datos dentro de una configuración. Si se requiere información específica, tal como la lectura de una variable, en diferentes unidades de organización de programas, esta variable es designada como variable global. Entonces los datos pueden ser intercambiados con una variable designada como tal. A las variables globales sólo se puede acceder desde programas y bloques de función. Lo que tiene interés para sistemas en red es la comunicación más allá de una configuración. Para ello, están a disposición del usuario bloques de funciones de comunicación estandarizados. Estos se definen en IEC 1131-5 y se utilizan en lEC 1131-3. Otra posibilidad es la definición de rutas de acceso (recurso de lenguaje RUTA_ACCESO) para variables específicas. Estas también pueden ser leídas o escritas desde otras posiciones.

5.3 Lenguajes de IEC 1131-3 define cinco lenguajes de programación. Aunque la funcionalidad y 5.4 programación estructura de estos lenguajes es muy diferente, son tratados como una sola familia

de lenguajes por IEC 1131-3, con elementos de estructura solapados (declaración de variables, partes de organización tales como funciones y bloques de función, etc.) y elementos de configuración. Los lenguajes pueden mezclarse de cualquier forma dentro de un proyecto de PLC. La unificación y estandarización de estos cinco lenguajes representa un compromiso de requerimientos históricos, regionales y específicos de cada sector. Se ha previsto la futura expansión (tal como el principio de bloque de función o el lenguaje de Texto Estructurado); además, se ha incorporado la información necesaria sobre detalles tecnológicos (tipo de datos, etc.)

Page 58: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Los elementos del lenguaje son explicados con la ayuda de un proceso de mecanizado involucrado en la producci6n de válvulas. Se utilizan dos sensores para establecer si una pieza con los talados correctamente realizados está disponible en la posición de mecanizado. Si la válvula a mecanizar es del tipo A o el tipo B - esto se establece con dos interruptores selectores - el cilindro avanza y mete la funda en el taladro realizado. El Diagrama de contactos o Diagrama en escalera (Ladder diagram) LD El Diagrama de contactos es un lenguaje de programación gráfico derivado de los esquemas de circuitos de los mandos por relés directamente cableados. El diagrama de contactos contiene líneas de alimentación a derecha e izquierda del diagrama; a estas líneas están conectados los reglones, que se componen de contactos (normalmente abiertos y normalmente cerrados) y de elementos de bobina.

Fig. B5.4 Ejemplo del lenguaje en diagrama de contactos

Diagrama de bloques de función (Function block diagram) FBD En el diagrama de bloques de función, las funciones y los bloques de función están representados gráficamente e interconectados en redes. El diagrama de bloques de función tiene su origen en el diagrama lógico que se utiliza en el diseño de circuitos electrónicos.

Fig. B5.5: Ejemplo del lenguaje en diagrama de contactos

Page 59: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Lista de Instrucciones (Statement list o Instruction List) IL La lista de instrucciones es un lenguaje textual tipo assembler; caracterizado por un modelo de máquina simple (procesador con un sólo registro). La lista de instrucciones se formula a partir de instrucciones de control consistentes en un operador y un operando.

Fig. B5.6 Ejemplo de lenguaje en lista de instrucciones

En lo que se refiere a filosofía de lenguaje, el diagrama de contactos, el diagrama de bloques de función y la lista de instrucciones han sido definidos en la forma en que son utilizados en la actual tecnología de PLC. Sin embargo, están limitados a las funciones básicas en lo que concierne a sus elementos. Esto los aparta esencialmente de los dialectos que las empresas utilizan en la actualidad. La competitividad de estos lenguajes es mantenida debido al uso de bloques y bloques de función. Texto estructurado (Structured text) ST El texto estructurado es un lenguaje de alto nivel basado en Pascal, que consiste en expresiones e instrucciones. Las instrucciones pueden definirse principalmente como: Instrucciones de selección, tales como IF...THEN...ELSE, etc, instrucciones de repetición tales como FOR, WHILE etc. y llamadas a bloques de función.

Fig. B5.7: Ejemplo de lenguaje en texto estructurado

El texto estructurado permite la formulación de numerosas aplicaciones, m s allá de la pura tecnología de funciones, tales como algoritmos (algoritmos de regulación de nivel superior, etc.) y manejo de datos (análisis de datos, procesamiento de estructuras de datos complejas, etc.)

Page 60: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Diagrama de funciones secuencial (Sequential function chart) SFC El diagrama de funciones secuencial (casi idéntico al GRAFCET francés) es un recurso de lenguaje para la estructuración de los programas de control orientados a secuencias. Los elementos del diagrama de funciones secuencial son las etapas, las transiciones y las derivaciones alternativas y en paralelo. Cada etapa representa un estado del proceso de un programa de control, que se halla activo o inactivo. Una etapa consiste en acciones que, al igual que las transiciones, están formuladas en los lenguajes IEC 1131-3. Las propias acciones pueden contener de nuevo estructuras secuenciales. Esta característica permite la estructura jerárquica de un programa de control. Por lo tanto el diagrama de funciones secuencial es una herramienta excelente para el diseño y la estructuración de programas de control.

Page 61: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 6 Elementos comunes de los lenguajes de programación

Page 62: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

6.1 Recursos de Según IEC 1131-3, s6lo las entradas, las salidas y los elementos de memoria un PLC pueden ser direccionados directamente por un programa de control. En este caso,

el direccionamiento directo significa que en el programa, una entrada, salida o elemento de memoria del control está afectado inmediatamente y no indirectamente a través de una variable simbólica definida. Naturalmente, IEC 1131-3 reconoce muchos otros recursos, p. ej. temporizadores y contadores. Sin embargo, estos están integrados en funciones y bloques de función para asegurar el más alto grado posible de portabilidad del programa de control entre los diferentes sistemas. Entradas, salidas y la memoria Los constituyentes más importantes de un control incluyen las entra das, salidas y la memoria. Sólo a través de estas entradas puede un control recibir información de los procesos conectados. De forma similar, solo puede influir en ellos a través de sus salidas o almacenar información para la subsecuente continuación del proceso. Las denominaciones para los recursos entradas, salidas y elementos de memoria, están definidos por IEC 1131-3 y son obligatorios..

Fig. B6.1: Designaciones para entradas, salidas y memoria

Sin posteriores referencias, estos designan sólo entradas y salidas binarias y elementos de memoria de un sólo bit, designados como flags (también denominado marcas). El estándar habla generalmente de variables representadas directamente. Estas son variables que están referidas directamente a las entradas, salidas y elementos de memoria del control disponibles, relacionadas con el hardware. La asignación de entradas, salidas y memorias (flags), y su posición física o lógica en el sistema de control es definido por el correspondiente fabricante del control.

Page 63: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Siempre que el control lo soporte, pueden direccionarse recursos que excedan de un bit. IIEC 1311-3 emplea otra letra para describirlos, que sigue a la abreviación I, Q y M y, por ejemplo, designa bytes y words. IEC 1131-3 designa los tipos de datos mostrados en la fig. B6.2 en relación con las entradas, salidas y flags.

Fig. B6.2: Tipos de datos

Los tamaños de 1 bit, tal como describe el tipo de datos BOOL (booleana) solamente pueden asumir los valores O ó 1. Consecuentemente, el margen de valores para un dato del tipo BOOL consiste en dos valores "0" y "1". A diferencia de esto, hay que destacar que en el caso de los tipos de datos de secuencia de bits, que consisten en más de un bit, no hay un rango de valores relacionado inmediatamente. Todos los tipos de datos de secuencias de bits, tales como p. ej. BYTE y WORD son meramen te una combinación de varios bits. Cada uno de estos bits tiene el valor O ó 1, pero su combinación no tiene su propio valor. Los métodos de designación obligatorios para entradas, salidas y flags de diferentes longitudes de bits están representados en la fig. B6.3.

Fig. B6.3 Designación de entradas, salidas y memorias

Page 64: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Un bit individual de una entrada, salida o flag también puede ser direccionado sin la abreviación adicional X para el tipo de dato. Como sea que los controles siempre tienen un número relativamente grande de entradas, salidas y flags disponibles, estos deben ser especialmente identificados a efectos de diferenciación. Para ello se utiliza la numeración indicada por IEC 1131-3, como en el siguiente ejemplo:

Ejemplo

IEC 1131-3 no especifica el margen de números que se permite para esta numeración ni si deben empezar por 0 ó por 1. Esto lo especifica el fabricante del control. También deben utilizarse una cantidad jerárquica de entradas, salidas y flags, si el control utilizado ha sido adecuadamente configurado. Se utiliza un punto para separar los niveles individuales de la jerarquía. El número de niveles de jerarquía no ha sido definido. En el caso de numeración jerárquica, la posición más alta en el número de la izquierda debe ser codificado, los números que siguen a la derecha representan consecutivamente las posiciones más bajas.

Ejemplo I3.8.5 • La entrada especificada 13.8.5 puede por lo tanto representar:

Fig. B6.4: Estructura de las designaciones jerárquicas

Page 65: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

IEC 1131-4 no hace ningún comentario en relación con la asignación de bits individuales en un BYTE o WORD. Los fabricantes de los controles a menudo eligen métodos de designación jerárquica para asignar bits individuales como partes de words. Así, F6.2 podría representar, por ejemplo, el bit número 2 de la flag word número 6. Sin embargo, esto no tiene que ser necesariamente así, ya que el flag bit F6.2 y la flag word FWS no necesariamente tienen que estar conectadas de alguna forma. Además, no se ha hecho ninguna definición sobre si la numeración de los bits individuales en una word deben empezar por la derecha o por la izquierda (hasta ahora, el bit número O en el extremo derecho ha sido el más frecuentemente utilizado) Variables directamente direccionadas. Si los recursos en un programa de control deben ser direccionados directamente, a la designación del recurso debe anteponerse el recurso %. Ejemplos de variables directamente direccionables:

El uso de variables directamente direccionadas solamente es permisible en programas, configuraciones y recursos. Las unidades de organización de programas Función y Bloque de Función deben operar exclusivamente con variables simbólicas, para mantener el programa lo más independiente posible del control y, con ello, lo más ampliamente utilizable.

Page 66: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

6.2Variables y La utilización de variables representadas exclusiva y directamente (recursos, tipos de datos entradas, salidas y memoria) no es suficiente para crear programas de control.

Frecuentemente, se requieren datos, que contienen información específica, también de una naturaleza más compleja. Estos datos pueden ser especificados directamente, es decir, datos de tiempo o valores de recuento, o accesibles sólo a través de variables -es decir, a través de una representación simbólica Las definiciones más importantes para tratar con datos o variables se indica abajo. Direccionamiento simbólico Un identificador simbólico siempre consiste en una letra mayúscula o minúscula, dígitos y un guión de subrayado. Un identificador debe empezar siempre con una letra o un guión de subrayado. El guión de subrayado puede utilizarse para hacer más leíble un identificador. Sin embargo, es un carácter significativo. Por ello, los dos identificadores Marcha_motor y Marchamotor son diferentes. No se permiten varios guiones de subrayado. Si el control permite letras mayúsculas y minúsculas, su utilización indistinta no debe tener significación alguna. Los dos identificadores MARCHAMOTOR y Marchamotor se interpretan idénticamente y designan el mismo objeto.

Además, los identificadores simbólicos no deben ser idénticos que las palabras clave. Como regla, las palabras clave son palabras reservadas para tareas específicas. Representación de datos En un programa de control, debe ser posible especificar valores de tiempo, de recuento, etc. Consecuentemente, IEC 1131-3 ha establecido las definiciones para la representación de los datos a especificar • Valores de recuento • Valores de tiempo • Cadenas

Page 67: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tabla B6.1: Representación numérica de datos numéricos

IEC 1131-3 prevé diferentes tipos de datos de tiempo: • Duración, es decir, para medición de resultados • Fecha • Hora del día, o.ej. para sincronización desde el inicio o el final de un evento

(también juntamente con la fecha)

Tabla B6.2: Representación de tiempo, fecha y hora

La especificación de la duración de un tiempo consiste en una parte introductoria, la palabra clave T# o t#, y una secuencia de secciones relacionadas con el tiempo -es decir, días, horas, minutos, segundos y milisegundos.

Page 68: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Abreviaciones para datos de tiempo:

También pueden utilizarse mayúsculas en lugar de minúsculas y guiones de subrayado para mejorar la lectura del dato. También IEC 1131-3 ha especificado un formato fijo para la indicación de una fecha, hora del día o una combinación de ambos. Cada especificación empieza con una palabra clave; la información real se representa como se muestra en la tabla 86.2. Otro método importante de representación de lechas es el uso de una secuencia de caracteres también conocida como cadena, que puede ser requerida para el intercambio de información, es decir, entre diferentes controles, con otros componentes de un sistema de automatización o también para la programación de textos para visualización en el control y en dispositivos de visualización. Una cadena consiste en ninguno o varios caracteres, que empiezan y terminan con una coma volada. Ejemplo

Tabla B6.3: Representación de cadenas

Page 69: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tipos de datos IEC 1131-3 define un gran número de tipos de datos para diferentes tareas. Uno de estos tipos de datos, BOOL, ya ha sido mencionado. Una variable del tipo BOOL asume el valor 0 ó bien el valor 1.

Tabla B6.4: Un número de tipos de datos elementales

Otros dos importantes tipos de datos, denominados INT e UINT definen números enteros. Las variables del tipo de datos INT (integer/entero) permiten valores numéricos de -32 768 hasta +32 767. El margen de valores del tipo de dato INT cubre tanto valores negativos como positivos. Las variables del tipo UNIT (unsigned integer/entero sin signo) sólo permiten valores positivos. El margen de valores para las UINT va desde O a 65 535. SINT (short integer/entero corto) y DINT (double integer/entero doble) son tipos de datos adicionales que definen números enteros. Sin embargo, estos tienen un margen de valores inferior o superior que el tipo de datos INT. El tipo de datos REAL contiene números en coma flotante. Estos son números que pueden contener lugares tras la coma, tales como el 3,24 ó -1,5. El tipo de datos TIME se utiliza para especificar el tiempo, y puede contener una duración de tiempo como por ejemplo: 2 minutos y 30 segundos.

Page 70: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Aparte de estos tipos de datos predefinidos elementales, el usuario tiene la posibilidad de definir sus propios tipos de datos. Esto es útil en casos en donde la definición del problema va más allá del ámbito de la pura tecnología de control. Los tipos de datos derivados se declaran dentro de la construcción TYPE. . .END_TYPE. La declaración completa se indica abajo para la enumeración del tipo Color en la tabla B6.5:

El significado de los tipos de datos individuales en la tabla B6.5 se explica brevemente abajo: Un dato del tipo Color solamente puede asumir uno de los valores ROJO, VERDE, AMARILLO o NEGRO. Un dato del tipo Margen_referencia sólo puede asumir valores entre 80 y 110, incluyen los límites inferior y superior 80 ó 110. Un dato del tipo Posicion, representa una lista con 10 entradas. Cada entrada tiene el valor de un número REAL. Con este índice pueden indexarse las entradas individuales. Un elemento del tipo de datos Coordenadas contiene dos números REAL, a los que puede accederse a través de sus nombres X e Y. No todos los controles necesitan reconocer todos estos tipos de datos. Cada fabricante dispone un juego de tipos de datos, que pueden utili zarse en el correspondiente control.

Page 71: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Declaración de variables Con el uso de datos, debe definirse claramente el derecho de acceso a estos datos. Con este fin, IEC 1131-3 utiliza una declaración de variables. Para comprender la función de una declaración de variables, es necesario establecer antes que el programa del control está construido en unidades de organización individuales. Estas unidades son: • Configuración • Recurso • Programas • Bloques de función • Funciones Todas las variables tienen una posición específica. En el caso de lenguajes de programación en forma textual (IL y ST), las declaraciones de variables son aproximadamente las mismas que las utilizadas en el lenguaje Pascal. Para las formas gráficas de representación sería factible una forma tabular con el contenido equivalente. Sin embargo, esto no está especificado en IEC 1131-3. Todas las declaraciones de variables (fig. B6.5) siempre empiezan con una palabra clave, que designa la posición de la variable en la unidad de organización del control, y termina con la palabra clave END_VAR.

Fig. B6.5: Declaración de variables

Las variables y su asignación a un tipo de datos, se introduce entre estas palabras clave en las que se especifica un identificador o identificadores simbólicos de las variables, el tipo de dato se indica tras dos puntos y la declaración se cierra con un punto y coma. Si se declaran varias variables, se repiten correspondientemente. Normalmente, cada declaración se escribe en una línea separada en este caso.

Page 72: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

IEC 1131-3 distingue entre seis tipos diferentes de acceso a las variables. Cada tipo tiene una palabra clave, que introduce la declaración de la variable.

Tabla B6.6: Palabras clave para la declaración de variables

Las variables de entrada son declaradas con las palabras clave VAR_INPUT y END_VAR.

Fig. B6.6: Declaración de una variable de entrada

Las variables especificadas de esta forma representan variables de entrada, alimentadas externamente a una unidad de organización, p. ej, un bloque de función. Estas sólo pueden leerse dentro de la unidad de organización. No es posible hacer modificaciones. Análogamente a esto, las variables de salida se definen con las pala bras clave VAR_OUTPUT y END_VAR

Fig. B6.7 Declaración de una variable de salida

El dato que calcula una unidad de organización y devuelve de nuevo el exterior se declara arriba. Todos los resultados de una unidad de organización deben ser transferidos más allá de la unidad de organización a través de variables de claradas de esta forma. Dentro de las unidades de organización, estas pueden ser leídas y escritas. Externamente, sólo se permite el acceso de lectura.

Page 73: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

En los casos en que se permitan variables conteniendo valores de entrada y salida, estos deben crearse con las palabras clave VAR_IN_OUT y END_VAR.

Fig. B6.8: Declaración de una variable de entrada/salida

Esta forma representa una tercera opción y permite la declaración de variables, que pueden ser leídas y utilizadas dentro de una unidad de organización. En el caso de una variable declarada como VAR_IN_OUT, se asume que ambos valores serán suministrados hacia y desde la unidad de organización. A menudo, se requieren variables para resultados intermedios, que deben permanecer desconocidos externamente. La declaración de tales variables, denominadas locales, empieza con VAR y termina con END_VAR.

Fig. B6.9: Declaración de una variable local

Las variables especificadas aquí son locales para una unidad de organización y solamente pueden ser utilizadas en ella. Son desconocidas para otras unidades organizacionales y por lo tanto inaccesibles. Una aplicación típica son las posiciones de memoria para resultados intermedios, que no son de interés en otras zonas del programa. En el caso de estas variables, hay que observar que también pueden existir varias veces en diferentes unidades de organización. De esta forma, es posible, por ejemplo, que varios bloques de función declaren la variable local Z. Estas variables locales son completamente independientes y difieren unas de otras. Una variable también puede ser declarada globalmente, en cuyo caso puede ser accedida universalmente. La necesaria declaración se realiza de una forma similar, utilizando las palabras clave VAR_GLOBAL y VAR_EXTERNAL.

Page 74: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Fig. B6.10: Declaración de una variable global

Así es como se declaran todos los datos globales para un programa de control. Los datos globales son accesibles universalmente. Esta decla ración s lo puede hallarse en unidades de organización, configuración y recurso.

Fig. B6.11: Declaración de acceso a una variable global

Para facilitar el acceso de datos global a una unidad de organización, esta declaración debe ser registrada en la unidad de organización. Sin la declaración mostrada arriba, el acceso a los datos globales no sería permisible. Esta estricta unidad de declaración para todas las variables define únicamente qué variables son reconocidas por una unidad de organización y como pueden ser usadas. Un bloque de función puede, por ejemplo, leer pero no cambiar sus variables de salida. Se utiliza la palabra clave AT para asignar variables a las entradas y salidas del control. Las declaraciones hechas de esta forma son el mejor medio para definir el significado de todas las entradas y salidas del control. Si se produce un cambio en el sistema y su conexión al controlador, sólo deberán ser cambiadas estas declaraciones. Cualquier utilización p. ej. del Pulsador paro, o de la Temperatura en un programa existente, no se ve afectada por el cambio.

Page 75: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Sin embargo, según IEC 1131-3 siempre es posible utilizar variables direccionadas directamente sin tener que asignarías a un identificador simbólico. La declaración en este caso es como sigue: VAR AT %14.2 :BOOL; AT %MW1 :WORD; END_VAR Inicialización A menudo es esencial que a una variable se le asigne un valor inicial. Este valor puede cambiar varias veces durante el procesamiento del programa, incluso aunque haya estado definida al principio. Los estados iniciales como estos también son importantes para otros datos. Tales valores iniciales se especifican conjuntamente con la de claración de las variables. Una variable global de este tipo denominada p. ej. Docena se declara para que al principio del programa asuma el valor 12. VAR_GLOBAL Docena :INT := 12; END_VAR Como se ha mostrado en este ejemplo, el valor de inicialización se inserta siempre entre el tipo de dato - en este caso INT - y el punto y coma de cierre. La especificación del valor de inicialización siempre requiere el signo :=. De esta forma, a cada variable se le puede especificar un valor inicial. Fundamentalmente, las variables siempre tienen un valor inicial defini do al inicio del programa. Esto lo facilita la característica definida en IEC 1131-3, en donde los tipos de datos tienen un valor preestableci do. Cada variable es preasignada al valor inicial correspondiente al tipo de dato - a no ser que se especifique lo contrario en el programa. Una lista de los valores iniciales de una selección de tipos de datos elemen tales puede verse en la tabla B6.7.

Tabla B6.7: valores iniciales preestablecidos

Page 76: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

6.3Programa El programa para un control está dividido en unidades de organización individuales, que son como sigue en el nivel de programación: • Programas • Bloques de función • Funciones Estas unidades de organización de programa están disponibles en to dos los lenguajes de programación IEC 1131-3 define una amplia gama de funciones estandarizadas y bloques de función para tareas de control típicas. Aparte de estas funciones especificadas y bloques de función, IEC 1131-3 permite la definición de sus propias funciones y bloques de función. Los fabricantes o los usuarios pueden así crear módulos de software hechos a su medida para determinadas aplicaciones. Funciones Las funciones son módulos de software que, cuando se les invoca, proporcionan exactamente un resultado (elemento de datos). Esta es la razón por la que en un lenguaje textual, la invocación de una función puede ser utilizada como un operando en una expresión. Las funciones no pueden contener información de estado. Esto significa que la invocación de una función con los mismos argumentos (parámetros de entrada) deben proporcionar el mismo resultado. La suma de valores enteros INT o la función lógica OR con ejemplos de funciones. Las funciones y su invocación puede representarse gráficamente o en forma de texto.

Fig. B6.14: Representación gráfica de una función

Page 77: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Gráficamente, una función se representa en forma de rectángulo. Todos los parámetros de entrada se relacionan en el lado izquierdo, mientras que los parámetros de salida se muestran en el lado derecho. En el interior del rectángulo se indica el nombre de la función. Los parámetros formales de entrada pueden especificarse a lo largo de los lados dentro del rectángulo. Esto es necesario con algunos grupos de funciones, tales como las funciones de desplazamientos de bits, por ejemplo (fig. BS.1 5b). Para funciones con entradas idénticas, como es el caso de la función de suma ADD (fig. B6.15a) no se requieren nombres de los parámetros formales.

Fig. B6.15: uso de parámetros formales con funciones

Las entradas o salidas booleanas de una función pueden ser negadas, es decir, invertidas especificando un círculo directamente fuera del rectángulo (fig. B6.16).

Fig. B6.16: Representación de negaciones Booleanas

Page 78: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Si se invoca una función, deben conectarse sus entradas y la salida de la función. La función suma ADD ilustrada en la fig. B6.1 6 procesa valores enteros INT, por lo cual, las variables direccionadas directamente tales como %QW4 etc. están declaradas como variables de tipo de dato INT. De la misma forma, la función ADD podría aplicarse a valores del tipo SINT o REAL. Las funciones como estas, que funcionan para entrar parámetros de tipos de datos diferentes, se denominan en IEC 1131-3 como funcio nes sobrecargadas, independientes del tipo. La Fig. B6.17 ilustra las características de una función sobrecargada utilizando el ejemplo de una función ADD.

Fig. B6.17: Función sobrecargada de tipo independiente

Page 79: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Si una función sobrecargada está limitada a un determinado tipo de datos por el control p. ej., el tipo de datos INT como se muestra en la fig B6.18 - esto se conoce como una función con tipo. Las funciones con tipo son reconocibles por el nombre de su función. El tipo se indica añadiendo un guión de subrayado, seguido del tipo deseado.

Fig. B6.18: Una función con tipo

Funciones estándar Las funciones estándar más importantes para la realización de tareas básicas de tecnología de control se relacionan a continuación. Dado que una gran variedad de funciones estándar pueden funcionar utilizando parámetros de entrada de diferentes tipos de datos, los tipos de datos se han combinado en grupos. A cada grupo se le ha dado un tipo de datos genérico. Los tipos de datos genéricos más importantes se muestran en la tabla B6.8.

Tabla B6.8: Tipos de datos genéricos

Page 80: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tabla B6.9: Funciones booleanas Bit-a-bit

Tabla B6.10: Funciones de desplazamiento de bits

Page 81: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tabla B6.11: Funciones de comparación

Tabla B6.12: Funciones para conversión de tipo

Page 82: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Tabla B6.13: Funciones aritméticas

Bloques de función Los bloques de función son módulos de software que proporcionan uno o varios parámetros resultantes. Una característica importante es la posibilidad de reutilización de los bloques de función. Si debe utilizarse un bloque de control en un programa, debe crearse una copia. Esto se realiza a través de la asignación de un nombre para cada caso. Junto con este identificador hay una estructura de datos, que almacena los estados de esa copia del bloque de función (valores de los parámetros de salida y variables internas). La información del estado de la copia del bloque de función permanece inalterable entre un procesamiento y el siguiente. Esto puede demostrarse utilizando el ejemplo del bloque de función estándar para operaciones de recuento. El valor actual del contador permanece de una operación de recuento a la siguiente y puede así ser interrogada en cualquier momento. Este tipo de comportamiento no puede realizarse a través del recurso lenguaje, como se describe arriba.

Page 83: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Fig. B6.19: Representación gráfica de una copia de un bloque de función

También se dispone de la representación gráfica de bloques de función (aparte de la representación en uno de los lenguajes textuales). Estos se representan por rectángulo de la misma forma que las funciones (fig.B6.19). Los parámetros de entrada se introducen por la izquierda y los parámetros de salida aparecen por la derecha. El tipo de bloque de función se especifica dentro del rectángulo. A continuación se introducen los nombres de los parámetros formales junto a los lados derecho e izquierdo dentro del rectángulo o caja. El identificador, bajo el cual se direcciona el módulo, se direcciona como se ha descrito para el bloque de función. Si se utiliza un bloque de función, se le debe dar un identificador. Si las entradas están asignadas - es decir, hay disponibles parámetros de transferencia actuales - entonces se utilizan estos para el procesamiento. Si las entradas no están conectadas, entonces se accede de nuevo a los valores almacenados en invocaciones anteriores o se utilizan los correspondientes valores iniciales. La Fig. B6.20 muestra el uso (invocación) del bloque de función estándar para un contador.

Fig. B6.20: Uso (invocación) del bloque de función CTU (contador incremental)

Page 84: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La copia utilizada del bloque de función CTU lleva el identificador Count_Pack. A cada flanco positivo de la entrada %l1.3 el valor actual del contador se incrementa en 1 unidad. Cuando se alcanza el valor preestablecido de 10, la salida Q del Count_pack, y con ello la salida %Q2.5 asume una señal 1; en los demás casos se asume una señal 0. También es posible crear varias copias de uno y del mismo bloque de función dentro de un programa de control, como se muestra en la fig. B6.21.

Fig. 86.21: Uso de varias copias de un bloque de función

Page 85: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Bloques de función estándar La Tabla B6.14 relaciona los bloques de función más importantes estandarizados por IEC 1131-3.

Tabla B6.14: Bloques de función estándar

Funciones definidas de usuario Aparte de las funciones especificadas, IEC 1131-3 permite la definición de funciones propias. Para la declaración gráfica se aplican las siguientes reglas: • Declaración de la función dentro de la construcción FUNCTION...

END_FUNCTION. • Especificación del nombre de la función y los nombres de los pará • metros formales y tipos de datos de entradas y salidas de la función • Especificación de los nombres y tipos de datos de variables internas utilizadas en

la función; para ello puede utilizarse una construcción VAR... ENO_VAR. No pueden utilizarse copias de bloques de fun

• ción como variables internas, ya que estas necesitarían el almace • namiento de información del estado. • Programación del cuerpo de la función en uno de los lenguajes LD, FBD, IL, o

ST.

Page 86: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

A la función ejemplo SPEC_MUL en la fig. B6.22 se le dan dos parámetros del tipo INT. Los valores de parámetros son multiplicados y se le añade la cifra 15. El valor así calculado es devuelto a la función como resultado.

Fig. B6.22: Ejemplo de una función SPEZ_MUL

El uso de la función podría ser como el que se ha mostrado en la fig. B6.23.

Fig. B6.23: Uso de la función SPEZ_MUL

Page 87: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

BIoques de función definidos por el usuario La generación de los propios bloques de función por el usuario es una característica importante de IEC 1131-3. Se aplican las siguientes reglas para una declaración gráfica: • Declaración de bloques de función en una construcción FUNCTION_BLOCK...

END_FUNCTION_BLOCK. • Especificación del nombre del bloque de función y de los nombres de los

parámetros formales y tipos de datos de las entradas y salidas del bloque de función.

• Especificación de los nombres y tipos de datos de variables internas; puede emplearse una construcción VAR... END_VAR.

• Programación del cuerpo de la función en uno de los lenguajes LD FBD, IL, o ST. Aquí no se ha tenido en cuenta el acceso de datos ampliado, tal como las variables globales.

Fig. B6.24: Declaración de un bloque de función

Page 88: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El bloque de función ilustrado en la fig. B6.24 representa un bloque de función para la eliminación de rebotes en las señales, consistentes en dos parámetros de entrada, es decir, una entrada booleana para la señal y una entrad de tiempo para el ajuste del tiempo de rebotes. El parámetros de salida S_OFF suministra la señal de salida sin rebotes. Programas Un programa consiste en cualquier cantidad de elementos de lenguaje y construcciones, necesarios para conseguir el comportamiento deseado de la máquina o proceso a través del PLC. Por ello, los programas están construidos principalmente por funciones, bloques de función y los elementos del diagrama de funciones secuencial. Por ello, las características de los programas son en gran parte idénti cos a los de los bloques de función. Lo único que nos interesa en esta etapa son las diferencias: • Las palabras clave delimitadoras para las declaraciones de progra • ma son PROGRAM... END_PROGRAM. • La utilización de variables directamente direccionables solamente se permite

dentro de programas. Un ejemplo de esto se muestra en la figura B6.25.

Fig. B6.25: Ejemplo de un programa

Page 89: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

El nombre del programa es "Luz_escalera". Tres variables booleanas lnterruptor_F, Interruptor_A y Luz, asignadas a dos entradas y una salida del PLC, han sido declaradas como variables internas. A esto se añade la declaración de una copia del bloque de función del tipo Pulse Timer (TP). El programa realiza la siguiente pequeña tarea: La luz de una escalera está encendida durante tres minutos, si se acciona uno de los dos interruptores; el de la puerta o el del apartamento.

Page 90: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 7 Diagrama de bloques de función

Page 91: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

7.1 Elementos del El diagrama de bloques de función es un lenguaje de programación gráfico que es diagrama de consistente, en la medida de lo posible, con la documentación estándar IEC 617, bloques de función P.12.

Fig. B7.1: Diagrama de bloques de función Los elementos del diagrama de bloques de función son funciones representadas gráficamente y bloques de función. Estas están interconectadas por líneas de flujo de señal, los elementos directamente enlazados formando una red de trabajo (Network) La Fig. B7.1 ilustra dos simples ejemplos del diagrama de bloques de función. En la Fig. B7.la, la variable Manual_desc y el resultado de una comparación 'mayor que' están enlazados en OR. El resultado es asignado a la variable puerta_cerrada. La Fig. B7.lb representa el uso de un bloque de función. El retardo de la señal T_arranque se pone en marcha con la entrada %l1.3 con el tiempo preestablecido de 7 segundos. El estado del retardo de la señal T_arranque.Q, se asigna a la salida %QP.4.

Page 92: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La dirección del flujo de señales es una red de izquierda a derecha. Si una unidad 7.2 Evaluación de redes de organización del programa consta de varias redes, estas son procesadas en secuencia de arriba a abajo. La secuencia de procesamiento dentro de una unidad de programa de organización puede ser influida por el uso de elementos para control de la ejecución. Este grupo de elementos incluye por ejemplo los saltos condicionales e incondicionales. En la fig. B7.2 se utiliza un salto condicional para realizar una derivación en el programa.

Fig. B7.2: Uso de un salto en FBD

El salto condicional, representado por una doble flecha, se ejecuta si se cumple la condición para el salto. Por ello, si la entrada %l1.1 y el flag %M2.5 llevan ambos señal 1, entonces se ejecutará un salto a la red con el identificador Variante_1 y el proceso continuará en este punto. Si hay que ejecutar un salto a una red, la red correspondiente debe prefijarse con un nombre simbólico, el flag del salto, terminando con dos puntos El flag de salto debe identificarse según las reglas para los nombres simbólicos.

Page 93: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

7.2 Estructuras en bucle Cuando se programa en el lenguaje FBD, hay que observar que dentro de las redes no se permiten estructuras de bucle. Las estructuras de este tipo sólo deben realizarse a través del uso adicional de una ruta de realimentación. La Fig. B7.3b ilustra un ejemplo de esto.

Fig. B7.3: FBD con estructuras en bucle

Por medio de la utilización de rutas de realimentación, la tercera entrada de la función OR asume un valor definido durante su procesamiento.

Page 94: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 8 Diagrama de contactos

Page 95: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

8.1 Elementos del El lenguaje de diagrama de contactos (o diagrama en escalera), al igual que del diagrama de diagrama de bloques de función representa un lenguaje de programación gráfico. contactos Los elementos disponibles en un diagrama de contactos son los contactos y las

bobinas en diferentes formas. Estas están dispuestas en renglones (rungs) entre las dos líneas verticales de mando a derecha e izquierda.

Fig. B8.1: Estructura básica de un renglón

La fig. B8.1 ilustra la estructura básica de un renglón. En este ejemplo, el estado del flag %M1.5 está directamente asignado a la salida %Q3.5. la tabla B8.1 contiene una lista de los elementos más importantes asignados a un diagrama de contactos.

Tabla B8.1: Elementos del diagrama de contactos

Page 96: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Un contacto normalmente abierto suministra el valor 1 cuando se activa el accionamiento del correspondiente interruptor. Un contacto normalmente cerrado reacciona correspondientemente con el valor 1, cuando no se activa el correspondiente interruptor o pulsador. Hay dos señales de flanco, que suministran señal 1 para la transición de 0 a 1 (flanco positivo) y de 1 a 0 (flanco negativo). Con una bobina normal, el resultado (resultado de la operación lógica entre los contactos) es copiado a la variable específica; en el caso de una bobina negada, se transfiere el inverso (negación) del resultado. La bobina de activación remanente asume el valor 1, si el resultado es 1, y permanece inalterable aunque el resultado pase a ser 0. De forma similar, la bobina de desactivación remanente asume el valor 0 si el resultado es 1. Se mantiene el estado 0 de la bobina. Los flancos de las bobinas se activan si el resultado cambia de 0 a 1 (flanco positivo) o de 1 a 0 (flanco negativo). Las funciones básicas AND y OR pueden ser realizadas por medio de una configuración correspondiente de contactos en el renglón actual.

Fig. B8.2: Conexiones básicas lógicas en diagrama de contactos

La función AND es representada por medio de la conexión en serie de dos contactos (fig. B8.2a). La salida %Q2.1 sólo se activa si ambas entradas %l1.3 y el flag %M3.2 se hallan activados. En todos los demás casos, la salida %Q2.1 es desactivada.

Page 97: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La función OR se obtiene a través de la conexión en paralelo de contactos (fig. B8.2b). La salida %Q2.3 asume el valor 1, si la entrada %I1.5 o el flag %F3.3 asumen el valor 1, o si ambas condiciones se cumplen simultáneamente.

8.2 Funciones y Aparte de los elementos de contacto y bobina, LD proporciona el uso ilimitado de bloques de función funciones y bloques de función siempre que esta función esté soportada por el

control utilizado. Un requisito previo para la incorporación de las denominadas unidades de organización, es la disponibilidad de por lo menos una entrada booleana y una salida booleana del bloque en cuestión. Si no es este el caso, la entrada booleana con el parámetro formal EN (enable/habilitación) se añada a las correspondientes funciones o módulos de función así como una salida booleana ENO (enable Ok /habilitación correcta). Las entradas/salidas booleanas son necesarias para permitir que la potencia fluya a través del bloque.

Fig. B8.3: Funciones y bloques de función en diagrama de contactos

La adición mostrada en la Fig. B8.3a solamente se realiza si se aplica una señal 1 a la entrada EN. Si es este el caso, las variables Cantidad_1 y Cantidad_2 se suman y el resultado de estas variables se asigna a la variable Nivel_llenado. Al mismo tiempo, el valor de la salida ENO indica si la adición ha sido ejecutada, activada y correcta (ENO=1). Si el bloque no ha sido procesado correctamente, la salida ENO asume el valor 0.

Page 98: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Los módulos de función, tales como por ejemplo el retardo de señal mostrado en la fig. B8.3 pueden incorporarse al diagrama de contactos sin una entrada EN adicional ni una salida ENO. El bloque de función es conectado con los elementos del renglón actual en la forma usual con la entrada booleana IN y la salida booleana Q. Si la entrada %l1 .3 en la fig. B8.3b asume el valor 1, la copia del bloque de función T_Marcha es procesada con la duración de tiempo preestablecida de 7 segundos. El valor de la salida Q de T_Marcha se asigna a la salida %Q2.4. De forma similar al lenguaje de programación gráfico FBD, el flujo de potencia, y 8.3 Evaluación como tal el procesamiento de una unidad de organización del programa, es de de los renglones izquierda a derecha y de arriba a abajo. De forma similar la secuencia de actuales procesamiento también puede cambiar en LD utilizando elemento para el control de la ejecución.

Fig. B8.4: Salto condicional en LD

Si la condición del salto, en este caso la operación AND de la entrada %l1.1 y el flag %M2.5 se cumple, se ejecuta un salto al renglón actual con el identificador Variante_1. El procesamiento continua entonces a partir de este renglón.

Page 99: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 9 Lista de instrucciones

Page 100: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

9.1 Lista de La lista de instrucciones es un lenguaje de programación textual, tipo ensamblador instrucciones (assembler). Sus instrucciones son más cercanas a las órdenes procesadas en un PLC.

Un programa de control formulado en lenguaje de Lista de Instrucciones consiste en una serie de instrucciones, en las que cada instrucción se empieza en una nueva línea. En la formulación de una instrucción, se especifica un formato fijo. Una instrucción (fig. B9.1) empieza con un operador con modificador opcional y, si es necesario para la operación en cuestión, uno o varios operandos, separados por comas. Las instrucciones pueden ser precedidas por una etiqueta seguida de dos puntos. La etiqueta actúa como una dirección de salto. Las etiquetas son identificadas de la misma forma que los símbolos. Si se utiliza un comentario, este debe representar el último elemento de la línea. Un comentario se inicia con la cadena (*, y termina con la cadena *).

Fig. B9.1: Estructura de una instrucción

El valor de la entrada %l1 .2 se carga en el acumulador y se enlaza en AND con el valor del flag %M3.7. El resultado es asignado a la salida %Q2.4.

Page 101: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Operadores

Tabla B9.1: Operadores en lista de instrucciones

Page 102: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

IEC 1131-3 define los operadores para la lista de instrucciones relacionadas en la tabla BS.1 Los operadores no están enlazados con ninguna prioridad. Consecuentemente, las operaciones se procesan en la secuencia en la cual se introducen en la lista de instrucciones. Si se desea una secuencia diferente, esta puede conseguirse con el uso de paréntesis - los denominados modificadores. La Fig. B9.2 explica el uso de algunos modificadores.

Fig. B9.2: Uso y significado de los modificadores 9.3 Funciones y En lista de instrucciones, también el uso de funciones y bloques de función es bloques de función ilimitado. Las funciones para tareas típicas de tecnología de control, tales como la

lógica booleana u operaciones aritméticas (véase fig. B9.3.a) se realizan directamente a través de los operandos especificados en la tabla BQ. 1.

Fig. B9.3: Invocación de funciones

Page 103: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Las funciones más complejas tales como las funciones de desplaza miento de bits se invocan con el nombre de la función situado en el campo del operador. El resultado actual (en el acumulador) debe ser utilizado como el primer argumento de la función. Si se requieren otros argumentos, estos deben especificarse en el campo de operando separados por comas. El valor devuelto por la función, representa el nuevo resultado actual. Los bloques de función pueden ser invocados según diferentes mecanismos (fig. B9.4).

Fig. B9.4: Invocación de bloques de función

Un requisito es que la variable T_arranque sea declarada como una señal de retardo. La invocación de un bloque de función puede establecerse claramente a través del operador CAL con una lista de parámetros de entrada asociados. La variable T_arranque de la Fig. B9.4a, declarada en todas partes como una señal de retardo, representa por ello un bloque del tipo seal de retardo. Siendo un argumento actual, este se asigna al valor de la entrada %l1.3 para la entrada de activación IN y una duración de tiempo de t#7s para la entrada PT. Como resultado, el bloque de función T_arranque se invoca siguiendo la actualización de parámetros. La transferencia de parámetros para un bloque de función también puede realizarse por separado a partir de la invocación del bloque de función actual. Como se muestra en la fig. B9.4b, los valores del parámetro actuales se cargan a través de operaciones elementales IL y se asignan a las entradas del bloque de función Solamente después de esto es invoca do el bloque de función T_arranque y procesado a través de una instrucción CAL. La ventaja de este método reside en el hecho que el tiempo de actualización de los argumentos y la invocación real del módulo de función pueden hacerse por separado.

Page 104: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Capítulo 10 Texto estructurado

Page 105: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

10.1 Expresiones El lenguaje Texto Estructurado (ST = Structured Text) es un lenguaje de alto nivel tipo Pascal, que incorpora los conceptos fundamentales de un lenguaje moderno de alto nivel, en particular los principios más importantes para la estructuración de datos e instrucciones. La estructuración de datos representa un constituyente común de los cinco lenguajes de programación; la estructuración de instrucciones, sin embargo, es tan sólo una característica importante del ST. Una expresión es un constituyente elemental para la formulación de instrucciones. Una expresión consiste en operadores y operandos. Los operandos que aparecen con más frecuencia son datos, variables o invocaciones a funciones. Sin embargo, un operando también puede ser una expresión en sí mismo. La evaluación de una expresión suministra un valor que corresponde a uno de los tipos de datos estándar o a un dato de un tipo definido por el usuario. Por ejemplo, si X es un número REAL, entonces la expresión SIN(X) proporciona también un número del tipo REAL. La tabla B1O.1 contiene un resumen de los operadores.

Tabla B10.1: Operadores del lenguaje Texto Estructurado

Page 106: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Lo que sigue son ejemplos de expresiones:

SIN(X) 4*COS(Y) A<=B A+B+C

La evaluación de una expresión consiste en aplicar los operadores a ¡OS operandos, en donde los operadores se evalúan en una secuencia definida por su prioridad en la tabla B10.1. Un operador con una prioridad mayor es evaluado antes que un operador con una prioridad inferior.

A, B, y C son variables del tipo de dato INT; A sume el valor 1, B el valor 2 y C el Ejemplo

valor 3. La evaluación de la expresión A+B*C proporciona el valor 7. Si se desea una secuencia diferente que la especificada por la prioridad, ello es posible utilizando los paréntesis. Utilizando los valores numéricos descritos antes, la expresión (A+B)*C proporciona el valor 9. Si un operador tiene dos operandos, el operando de más a la izquierda debe evaluarse primero. La expresión SIN(X)*COS(Y) se evalúa por lo tanto en la secuencia: cálculo de la expresión SIN(X), cálculo de la expresión COS(Y), seguida por el cálculo del producto SIN(X) y COS(Y). Como se ha demostrado en el párrafo anterior, una función sólo puede ser invocada dentro de una expresión. La invocación es formulada especificando el nombre de la función y la lista de argumentos entre paréntesis.

Page 107: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

10.2 Instrucciones La tabla B10.2 contiene una lista de posibles instrucciones en el lenguaje de Texto Estructurado. Una instrucción puede sobrepasar la longitud de una línea, con lo que el salto de línea será tratado de la misma forma que un espacio en blanco.

Tabla B10.2: Instrucciones del lenguaje Texto Estructurado

Page 108: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Asignaciones Una asignación es la forma más simple de una instrucción. Esta reemplaza el valor actual de la variable a la izquierda de := con el valor de la expresión a la derecha de :=. Cada asignación termina con un punto y coma. Una posible asignación (tabla B1O.2) es A := B en donde el valor de la variable B es asignado a la variable A. Como resultado de la asignación CV:=CV + 1, la variable CV es incrementada en 1 como resultado de la expresión CV+1. Bloques de función y funciones En lEC 1131-3 se establece un mecanismo definido para la invocación y también para la salida anticipada de una función o de un bloque de función. Como se ha descrito, una función es invocada sólo como parte de la evaluación de una expresión. La propia invocación consiste en la especificación del nombre de la función, seguida por los parámetros de entrada entre paréntesis. La invocación de un bloque de función es análoga a la especificación del nombre de instancia (copia) del bloque de función. Esta es seguida de una lista entre paréntesis consistente en la asignación de valores a los parámetros de entrada. La especificación del nombre del parámetro de entrada es obligatorio, los parámetros individuales de entrada pueden indicarse en cualquier secuencia.

Page 109: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Además, no es esencial para todos los parámetros de entrada que se les asigne un valor en cada invocación. Si a un determinado parámetro de entrada no se le asigna un valor en la invocación, se aplica el valor del parámetro previamente asignado o el valor inicial. La tabla B1O.2 contiene un ejemplo de una invocación a un bloque de función. Debe sonar un zumbador si una broca está defectuosa. El estado del zumbador se almacena por medio de un bloque de función RS. La instrucción RETURN sirve para permitir una salida anticipada de una función o bloque de función. Lo que sigue es un ejemplo de la utilización de la instrucción RETURN:

IF X< 0 THEN Valor := -1; Error := 1; RETURN; END_IF

Y := LOG(X); Si el valor de X es menor de 0, el bloque conteniendo la secuencia de instrucciones termina inmediatamente.

10.3 Instrucciones de Las instrucciones de selección - conocidas también como instrucciones de selección derivación del programa - están disponibles en la forma de instrucciones IF y

CASE. Pueden seleccionarse diferentes grupos de instrucciones y ejecutarse en relación con una condición definida. La unidad del programa de organización puede ramificarse de diferentes formas. Instrucción IF La forma general de una instrucción IF es: IF expresión booleana1 THEN instrucción(es)1; [ELSIF expresión booleana2 THEN instrucción(es)2;] [ELSE instruccion(es);] END_lF;

Page 110: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Las partes entre paréntesis rectangulares son opcionales, es decir, pueden producirse en una instrucción IF, pero no necesariamente. La instrucción IF más sencilla consiste en una construcción IF-THEN (derivación simple). Esto se demuestra por el siguiente ejemplo IF X <0 THENX :=-X; END_IF; Y := SORT(X); Si la condición que sigue a la palabra clave IF es cierta, se ejecutan las instrucciones que siguen a la palabra clave THEN. Si la condición no se cumple, las instrucciones en la parte THEN no se ejecutan. En el caso de un ejemplo concreto esto significa: Si la variable X es menor de 0, es decir, es negativa, se le añade un signo menos, con lo que representa un valor positivo; si no es este el caso, se ejecuta inmediatamente la función raíz cuadrada. Una derivación simple puede conseguirse por medio de una construcción IF-THEN-ELSE Error := 0; IF Pieza_Ok THEN Numero := Numero + 1; ELSE Error:=- 1, END_IF Las instrucciones que siguen a la palabra clave THEN se ejecutan, si la condición que sigue a la palabra clave IF se cumple; si la condición no se cumple, se ejecutan las instrucciones formuladas tras la palabra clave ELSE. El ejemplo dado, trata con piezas de producción. Si la pieza es buena (Pieza_ok = 1) se ejecuta la parte THEN, en este caso, la cantidad (Numero) de piezas producidas correctamente se incrementa en 1; de lo contrario se activa un bit para la detección del error.

Page 111: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Si debe programarse una derivación para más de dos ramificaciones, puede emplearse una construcción IF-THEN-ELSIF. La tabla B1Q.2 ilustra esto por medio de un ejemplo, en donde se establecen las soluciones de la ecuación de segundo grado AX2 + BX + C = 0. Si el discriminante - en este caso la variable B - es menor de O, se ejecuta la subsiguiente parte THEN: no hay solución, es decir, Num_sol := 0. Si no se cumple la primera condición, es decir, D es mayor o igual a 0, será evaluada la condición que sigue a ELSIF: Si se cumple, es decir, D igual a 0, se ejecutarán las instrucciones que siguen a la palabra clave THEN: La única solución existente es especificada como X1. De lo contrario (siendo D mayor de 0), se ejecutan las líneas que si guen a la instrucción ELSE: Se especifican las dos soluciones X1 y X2. Instrucción CASE Si debe hacerse una selección entre varios grupos de instrucciones posibles, puede utilizarse la instrucción CASE. La forma estándar de una selección múltiple con CASE es: CASE Selector OF Valor1: instruccion(es)1; Valor2: instruccion(es)2; ... ValorN: instruccion(es)n; [ELSE instruccion(es); 1] END_CASE: La instrucción CASE consiste en un selector, que suministra una variable del tipo INT durante su ejecución y una lista de grupos de instrucciones. A cada grupo se le asigna un valor (etiqueta). Los valores están separados por comas si un grupo de instrucciones depende de varios valores. Los valores también pueden representar variables del tipo INT.

Page 112: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Con la evaluación de la instrucción CASE, primero se determina el valor del selector, seguido por la ejecución del primer grupo de instrucciones a los cuales se aplica el valor del selector calculado. Sin el valor del selector no está contenido en ninguno de los grupos de instrucciones, se ejecutan las instrucciones que siguen a la palabra clave ELSE. Si no hay ELSE, no se ejecuta ninguna instrucción. En el ejemplo dado en la tabla B10.2, el texto para una instrucción se selecciona en relación con el valor medido disponible. Los valores para la selección de la instrucción son el tipo INT. A menudo es necesario ejecutar instrucciones repetidas veces (bucles de 10.4 Instrucciones programa). Si el número de repeticiones ha sido previamente definido, se utiliza el de iteración bucle FOR, de lo contrario se utiliza en bucle REPEAT o el WHILE. Bucle FOR La representación estándar para el bucle FOR es: FOR Variable:= Expresión TO expresion [expresion BY] DO instruccion(es); END_FOR; La denominada variable de control se establece a un valor inicial específico y se incrementa a cada bucle que se ejecuta hasta que la variable de control alcanza el valor de la variable final. Por lo tanto, un simple bucle FOR se ejecuta de acuerdo con el siguiente mecanismo: FOR variable de recuento:= valor inicial TO valor final DO Instruccion (es); END_FOR Si no se especifican incrementos, como se ha formulado arriba, la variable de control aumenta automáticamente en 1 a cada bucle completo. Si se necesita un incremento diferente, esto puede especificarse por la palabra clave BY, seguida por el valor deseado. Sin embargo, la variable de control no puede ser cambiada dentro del bucle - es decir, las instrucciones se ejecutan repetidamente. Además, la variable de control, el valor inicial y el valor final deben ser expresiones del mismo tipo de dato entero (INT, SINT, DINT>.

Page 113: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La prueba para la terminación de la condición se hace al inicio de cada iteración, de forma que las instrucciones no son ejecutadas si el valor inicial excede del valor final. Una característica adicional de los bucles FOR es que estos pueden anidarse en cualquier momento. Un ejemplo de la aplicación de un bucle FOR se da en la tabla B1O.2. En este ejemplo, se realiza una suma de los números 1 al 5 a través de un bucle. Cuando el bucle es ejecutado por primera ver, 1 tiene el valor inicial 1, el valor de la variable Total es también 1. A la segunda ejecución del bucle, 1 tiene el valor 2, la variable Total alcanza el valor 1+2 = 3 etc. Tras el quinto y último bucle, el valor de Total es isla variable de recuento ha alcanzado el valor final 5, y con ello se completa el procesamiento del bucle. Bucle REPEAT A diferencia del bucle FOR, en el bucle REPEAT el número de iteraciones no está previamente definido por medio de un valor final especificado. En su lugar, se utiliza una condición, denominada la condición de terminación. La forma del bucle REPEAT es como sigue REPEAT instruccion(es); UNTIL Expresión Booleana END_REPEAT; La terminación del bucle REPEAT se verifica tras la ejecución de las instrucciones de bucle. Por lo tanto el bucle se ejecuta por lo menos una vez. La condición de terminación debe ser cambiada en el bucle, ya que de lo contrario el bucle se ejecutaría indefinidamente. Por lo tanto, es importante asegurar que el bucle puede realmente completarse. Debe comprobarse lo siguiente: • ¿Incluye realmente la condición de terminación una variable, de forma que la

condición pueda suministrar el valor 1 (cierto)? • ¿Se alcanza alguna vez la condición de terminación?

Page 114: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

Un ejemplo de utilización del bucle REPEAT se demuestra en la tabla B1O.2. Aquí también, se suman los primeros cinco números enteros no negativos. En la primera ejecución del bucle, 1 tiene el valor 1, el valor de Total es también 1. Una comprobación de la condición de terminación muestra que esto no se cumple, por lo que el bucle se ejecuta de nuevo. El bucle se ejecuta repetidamente hasta que la condición de terminación es cierta. Este será el caso hasta la quinta ejecución del bucle en la que termina. Aquí también, el valor de la variable Total es 15. Bucle WHILE El bucle WHILE representa una segunda opción para la formulación de iteraciones especificando una condición de terminación. La representación estándar de un bucle WHILE es: WHILE Expresión Booleana DO instruccion <es>; END_WHILE; Si la expresión Booleana de la palabra clave WHILE se cumple, se ejecutan las instrucciones que siguen a la palabra clave DO. La terminación del bucle WHILE es por lo tanto verificada antes de la ejecución de las instrucciones del bucle. Por lo tanto, las instrucciones del bucle puede ser que no se ejecuten. La condición de terminación debe cambiar en las instrucciones que se repiten. Es importante que las condiciones del bucle se cumplan realmente para que el procesamiento del bucle pueda terminarse.

Page 115: Controlador Lógico Programable · Controlador Lógico Programable Nivel Básico TP 301 Libro de Texto . ... para PLC, 1 programación de PLCs, enfocados principalmente al estado

La tarea de sumar los números 1 al 5 también puede realizarse utilizando un bucle WHILE (tabla B1O.2). A diferencia del bucle REPEAT, el bucle WHILE se ejecuta repetidamente hasta que la condición de terminación es cierta. En realidad esto significa que el bucle se ejecutan mientas 1 sea menor que 5. Si es igual o mayor que 5, el bucle deja de procesarse. En principio, un bucle REPEAT puede reemplazarse por un bucle WHILE y viceversa. Instrucción EXIT para terminar un bucle La instrucción EXIT debe utilizarse para terminar iteraciones antes del final o de que se cumpla la condición de terminación. El siguiente programa ilustra el ejemplo de una instrucción EXIT: S := 0; FOR l := 1 TO 2 DO FOR J := 1 TO 3 DO IF error THEN EXIT; END_IF S := S + J; END_FOR; (* Si se ejecuta la instrucción EXIT se realiza un salto a este punto*') S := S + 1; END_FOR; Si la instrucción EXIT se halla dentro de un bucle anidado, la salida será desde el bucle más profundamente anidado en el que se halla la instrucción EXIT. La siguiente instrucción a ejecutar es la instrucción inmediatamente después del fin de bucle (END_FOR, END_WHILE END_REPEAT). En el ejemplo dado en la fig, B10.1, esta es la instrucción "S := S + I;". En el caso del ejemplo citado se aplica lo siguiente: Si el valor de la variable booleana Error es igual a 0, el algoritmo para la variable S proporciona el valor 15. Si la variable Error tiene el valor 1, el valor calculado por S es 3.