09 - Capitulo IV - Lenguajes de Programación

28
Universidad de Mendoza – Facultas de Ingenieria CAPITULO IV LENGUAJES DE PROGRAMACION Martín Ruggeri 81 Automatización de Máquina Conformadora de Cápsulas para Vino con PLC Martín O. Ruggeri

description

Lenguajes de programación para autómatas programables-PLC

Transcript of 09 - Capitulo IV - Lenguajes de Programación

CAPITULO IV

Universidad de Mendoza Facultas de IngenieriaCAPITULO IVLENGUAJES DE PROGRAMACION

Martn Ruggeri

GENERALIDADESEl estndar IEC 1131-3, es quien define 5 lenguajes de programacin que pueden ser usados para definir procedimientos de control y automatizacin. A saber: Nemnico Lista de instrucciones: Lenguaje de bajo nivel basado en operaciones Booleanas y cuya apariencia es muy similar al cdigo del lenguaje ensamblador. Diagrama de escalera: Es un lenguaje de programacin grfica que conserva la estructura de los diagramas elctricos de control. Grficos secuenciales (GRAFCET): Consiste en dividir el ciclo del proceso en un cierto nmero de pasos bien definidos y en transiciones que los separan. Diagrama de Bloques de Funciones (FBL): Es un lenguaje que permite al usuario construir procedimientos complejos mediante la unin de bloques funcionales prediseados. Texto estructurado: Lenguaje estructurado de alto nivel, parecido al PASCAL, pero ms intuitivo para el ingeniero de control. Generalmente utilizado para implementar procedimientos complejos que no pueden ser expresados mediante lenguajes grficos.Generalmente el desarrollo de una aplicacin destinada al autmata puede realizarse mediante dos herramientas de programacin, siendo los lenguajes ms utilizados el Ladder, Lista de Instrucciones y GRAFCET:

Un terminal de programacin diseado por el propio fabricante del PLC. Una PC; mediante un software provisto por el fabricante del PLC.LENGUAJE DE CONTACTOS (Ladder o LD)Un programa escrito en lenguaje de contactos se compone de una serie de circuitos ejecutados secuencialmente por el autmata. La representacin de un circuito se asemeja a la de un esquema elctrico de rels. Elementos grficos de tests simbolizan los contactos (botn pulsador, contactos fin de recorrido, etc...), as como elementos grficos de acciones simbolizan las bobinas.

Captulo 4 - Figura 1: Equivalencia entre Lgica a Rel y Diagrama de EscaleraEn la figura anterior se ilustra el esquema de cableado simplificado de un circuito de lgica de rels y su equivalente en esquema de contactos. Obsrvese que en el esquema de contactos, todas las entradas asociadas con un dispositivo de conmutacin en el esquema de lgica de rels se muestran en forma de contactos, la bobina M1 queda representada por un smbolo de bobina. Las referencias que aparecen encima de cada smbolo de contacto/bobina indican la ubicacin de las conexiones de entrada/ salida externas en el autmata.Un circuito de contactos se compone de una serie de instrucciones grficas especficas, relacionadas entre s, y situadas entre las dos barras verticales que representan el potencial.El juego de instrucciones grficas representa: Las entradas/salidas fsicas del PLC (Botones pulsadores, Sensores, Rels, Indicadores de funcionamiento, Fines de carrera, etc.) Las funciones del autmata (Temporizadores, Contadores, etc.) Las operaciones matemticas y lgicas (Suma, Divisin, y, o exclusiva, etc.) Las operaciones de comparacin y otras operaciones numricas Las variables internas del autmata (Bits, Palabras, etc.)Estas instrucciones grficas se asocian entre s mediante conexiones horizontales y verticales que conducen a una o varias salidas y/o acciones.Un circuito no deber soportar ms de un grupo de instrucciones asociadas.Por lo tanto, el programa de la derecha se compone de dos circuitos distintos.

Captulo 4 - Figura 2: Ejemplo de paso instruccinPRINCIPIOS DE PROGRAMACION

Captulo 4 - Figura 3: rea de programacinCada circuito de contactos se compone de 7 filas y de 11 columnas y se divide en dos reas: Un rea de comprobacin que contiene las condiciones que debern reunirse para la ejecucin de una accin. Un rea de accin que contiene la salida u operacin resultante de las comprobaciones que se le asocian.El circuito est representado por una cuadrcula de programacin de 7 filas por 11 columnas y que se inicia en la celda superior izquierda. Las instrucciones, comparaciones y funciones asociadas a las comprobaciones se introducen en el rea de prueba. Luego, estas instrucciones estn justificadas a la izquierda, garantizando as la continuidad del rea de accin en la cual se introducen las instrucciones referentes a bobinas, operaciones numricas y gestin del programa. Estas instrucciones estn justificadas a la derecha. El circuito se resuelve o ejecuta (ejecucin de las comprobaciones y asignacin de las salidas) de arriba abajo y de izquierda a derecha.Adems, aparece un encabezado de circuito justo encima de ste. Este encabezado permite especificar la intencin lgica del circuito. Contiene el nmero de circuito, todas las etiquetas (%Li) o las declaraciones de subprogramas (SRi), el ttulo del circuito as como observaciones referentes al circuito.CONTACTOS, BOBINAS E INSTRUCCIONES REFERENTES AL DESARROLLO DEL PROGRAMALas instrucciones de contactos, bobinas y desarrollo del programa (salto y llamada) ocupan una sola celda de la cuadrcula de programacin. Los bloques de funcin, comparacin y operacin ocupan varias celdas.

Captulo 4 - Figura 4: Contacto - BobinaBLOQUES DE FUNCIONLos bloques de funcin estn situados en el rea de comprobacin de la cuadrcula de programacin. El bloque deber aparecer en la primera fila, no pueden aparecer instrucciones en lenguaje de contactos ni filas de continuidad encima o debajo de este bloque.Las instrucciones de comprobacin de lenguaje de contactos llegan a la entrada del bloque de funcin y las instrucciones de comprobacin y/o de accin parten de la salida del bloque.

Captulo 4 - Figura 5: Bloque de FuncinLos bloques de funcin se organizan verticalmente y ocupan 2 columnas en 4 filas de la cuadrcula de programacin.BLOQUES DE COMPARACIONLos bloques de comparacin estn situados en el rea de comprobacin de la cuadrcula de programacin. El bloque puede aparecer en cualquier fila o columna de esta rea siempre y cuando la totalidad de la instruccin se encuentre en dicha rea.Los bloques de comparacin se organizan horizontalmente y ocupan 2 columnas en 1 fila de la cuadrcula de programacin.

Captulo 4 - Figura 6: Bloque de ComparacinBLOQUES DE OPERACINLos bloques de operacin se encuentran en el rea de accin de la cuadrcula de programacin. El bloque puede aparecer en cualquier fila de dicha rea. La instruccin est justificada a la derecha. Por lo tanto, aparecer a la derecha y finalizar en la ltima columna.Los bloques de operacin se organizan horizontalmente y ocupan 4 columnas en 1 fila de la cuadrcula de programacin.

Captulo 4 - Figura 7: Bloques de OperacinLISTA DE INSTRUCCIONES (AWL, BOOLEANO, NEMONICOS)Un programa en lenguaje Lista consta de una serie de instrucciones (hasta 1000 instrucciones) de diversos tipos. Corresponde al nivel ms fundamental de lenguaje de programacin definido por el estndar de la IEC 1131-3. Tal es as que los dems lenguajes de programacin de PLC, pueden ser convertidos a lista de instrucciones.Cada fila de programa tiene un nmero generado de forma automtica, un cdigo de instruccin y un operando tipo bit o palabra.

Captulo 4 - Figura 8: Ejemplo de InstruccinEl programa en lenguaje Lista es una serie de expresiones lgicas escritas en forma de secuencias de instrucciones booleanas. Cada instruccin booleana, salvo, LOAD, STORE y NOT, actan en dos operandos (uno explcito y otro implcito).El operando implcito es el acumulador booleano y consta o bien del contenido de la primera instruccin de una secuencia de instrucciones (ej: LD %I0,0), o bien para las siguientes instrucciones, del resultado de la instruccin anterior (ej: AND %I1,2).

Captulo 4 - Figura 9: Ejemplo de lista de instruccinLa operacin AND %I1.2, ejecutar una Y lgica entre el contenido del acumulador (%I0,1) y la entrada %I1.2, y remplazar el contenido del acumulador con este resultado.

Captulo 4 - Figura 10: Tipos de InstruccionesLas instrucciones LOAD y STORE cargan respectivamente el acumulador con el valor del operando o bien almacenan el acumulador en el operando. La instruccin NOT no dispone de operando explcito, inversa simplemente el estado del acumulador.Con el lenguaje lista de instrucciones tambin se pueden representar instrucciones ms complejas como la que se muestra en la siguiente figura.

Captulo 4 - Figura 11: Funcin compleja programada en lista de instruccionesEn esta instruccin se suma el valor decimal 3 con el contenido del acumulador del temporizador T4:0, y se almacena en la direccin de memoria N7.0.GRAFICOS FUNCIONALES DE SECUENCIA, (SCF, GRAFCET)Un sistema es secuencial cuando para una combinacin de estado de los elementos de entrada al sistema, pueden existir ms de una combinacin de estado de los elementos de salida; o bien cuando adems de considerar el estado actual de los elementos de entrada y de salida, tambin se considera su estado anterior o la evolucin que hayan tenido.Esto es lo que sucede en la mayora de los procesos industriales que generalmente funcionan secuencialmente pero con un solo estado activo a la vez. Sin embargo, existen mquinas ms complejas que son diseadas para realizar varias operaciones al mismo tiempo. Este ltimo tipo de mquina o proceso amerita que el controlador sea capaz de realizar procesos concurrentes. Es decir, el procesador debe ser capaz de realizar las actividades correspondientes a dos o ms etapas que estn activas al mismo tiempo. Estos requerimientos se logran con tcnicas tales como los Grficos de FuncionesSecuenciales (SFC: Sequencial Function Charts), conocido tambin como el estndar IEC 848, o sencillamente como GRAFCET (Grficos Funcionales de Control de Etapas y Transiciones).El GRAFCET es un mtodo mediante el cual se describe en forma grfica las especificaciones de cualquier automatismo. Dentro de sus ventajas se encuentra que permite la programacin directa desde el mismo grfico sin tener que traducirlo a lenguaje de contactos o LADDER. Tambin permite hacer seguimiento etapa por etapa dentro del automatismo, de forma que la localizacin de algn problema se hace sistemtica y por lo tanto conduce al ahorro de tiempo.El GRAFCET representa los sistemas secuenciales mediante la sucesin alternada de etapas y transiciones. Los elementos bsicos de una carta GRAFCET tpica se muestran a continuacin.

Captulo 4 - Figura 12: Elementos principales de un GRAFCETETAPASEn la carta GRAFCET todos los estados estables del sistema tienen asociado un elemento de memoria llamado etapa. Las etapas se representan con un cuadro, o bien con un cuadro doble en el caso de etapas iniciales. Adems, las etapas estn numeradas en forma ordenada de acuerdo al desarrollo del automatismo.

ETAPAS INICIALES

Se activan al iniciar el GRAFCET. Una vez iniciado, tienen el mismo tratamiento que otras etapas. En todo sistema debe haber como mnimo una etapa inicial. Pueden existir varias etapas iniciales en procesos concurrentes.

ETAPAS NORMALES

Representan los estados estables del sistema. Deben estar numeradas aunque no necesariamente en forma correlativa. No puede haber dos etapas con el mismo nmero. Durante la evolucin del GRAFCET pueden estar activas o inactivas. Pueden o no contener acciones asociadas.

TRANSICIONES

Captulo 4 - Figura 13: Evolucin del GRAFCETToda transicin tiene una condicin o condiciones lgicas que son las que van marcando la evolucin del sistema. Una transicin marca el paso de una etapa a la otra, ya que es una barrera que separa dos etapas y que se supera si estando activa la etapa o etapas anteriores o de entrada a la transicin, se cumplen las condiciones lgicas en ella impuesta.Validar la transicin implica un cambio en las etapas activas del GRAFCET. Al pasar una transicin, el sistema deja de estar en una etapa e inmediatamente va a la siguiente.En el GRAFCET: Las transiciones se representan por un pequeo segmento horizontal que corta la lnea de enlace entre dos o mas etapas. Son etapas de entrada a una transicin, aquellas que conducen a ellas. Son etapas de salida de una transicin aquellas que se activan una vez que se ha superado la transicin.La condicin o condiciones que deben superarse para poder pasar una transicin, reciben el nombre de receptividades. Una transicin puede poseer: Una receptividad simple nica. Una funcin booleana. Una receptividad correspondiente a un temporizador contador. Una receptividad asociada a otra etapa GRAFCET.ESTADOSe refiere a una de las formas o maneras en la que puede encontrarse el sistema: Parado / operando, encendido / apagado, etc.ACCIONES ASOCIADASEstn asociadas a las etapas del GRAFCET y son las normalmente modifican el estado de algunos elementos de salida del sistema.Existen acciones asociadas que son condicionadas. En este caso en el rectngulo donde se representa la accin, hay un campo de entrada para las condiciones.

Captulo 4 - Figura 14: a) Acciones asociadas b) Acciones condicionalesEl estndar IEC 848 propone las siguientes representaciones para las acciones asociadas condicionadas:

Captulo 4 - Figura 15: Modificacin de las accionesLINEAS DE ENLACESon lneas verticales u horizontales que unen con una direccin significativa, las distintas etapas con las transiciones, y las transiciones con las etapas.PRINCIPIOS DE PROGRAMACIONEl diagrama debe dibujarse en sucesin alternada de etapas y transiciones. En ese sentido no puede haber ni dos etapas ni dos transiciones seguidas.Es un grfico de secuencia nica siempre que en l haya una slo una rama.

Captulo 4 - Figura 16: GRAFCET de Secuencia nicaEs un grfico de bifurcacin u OR, cuando a la salida de una etapa hay una seleccin de secuencias. En este punto, el flujo seguir por una sola de ellas. Aunque no es necesario que las diferentes secuencias posean igual nmeros de etapas y transiciones, lo nico que si es conveniente es que sean excluyentes entre s, garantizando de esta forma que el flujo evolucione por una otra rama.

Captulo 4 - Figura 17: GRAFCET de BifurcacinEs un grfico de concurrencia o AND, cuando a la salida de una transicin, el flujo debe evolucionar de forma simultnea por dos o ms ramas.

Captulo 4 - Figura 18: GRAFCET de tipo paraleloNo es necesario que las secuencias en paralelo contengan igual nmero de etapas y transiciones, ya que al final de la secuencia habr una punto de convergencia de espera donde el sistema aguarda a que todas las secuencias lleguen a esa etapa de espera para continuar su evolucin.Una modalidad de los puntos de bifurcacin lo constituyen los saltos de etapas. Esta modalidad da la posibilidad de que se ejecute o no una secuencia completa de que la evolucin del flujo siga a partir de la etapa indicada en el salto.

Captulo 4 - Figura 19: Saltos en GRAFCET

Captulo 4 - Figura 20: Representacin de procesos concurrentesEn GRAFCET es posible escribir dos o mas secuencias independientes que son funciones concurrentemente evolucionando cada una por separado y a su ritmo, segn se validan sus transiciones. Aunque estas secuencias no se tocan en el grfico de flujo, se pueden interrelacionar a travs de sus variables de estado.ESTRUCTURAS DE SALTO Y SUBPROGRAMASLa progresin natural de un programa PLC, es terminar una instruccin, despus proseguir con la siguiente instruccin secuencial en el programa. Es decir, despus de realizar la tarea asociada con la instruccin de salida de un paso, el PLC naturalmente procede con la primera instruccin condicional del siguiente paso en la memoria del programa de usuario.Sin embargo, existen algunas aplicaciones PLC en las cuales es til alterar esta progresin natural para poder bifurcar o saltar a un paso de programa diferente del que sigue en secuencia.Estas aplicaciones permiten reducir la duracin del ciclo de Scan al reducir el tiempo de ejecucin de programa ya que omite los pasos que no sean necesario ejecutar en el caso de la instruccin salto bien reducen el nmero de lneas de programa en el caso de los subprogramas.INTRUCCION SALTOLa instruccin de salto es una instruccin de salida. Causa que el procesador salte o ignore, todos los pasos intermedios y emprenda la ejecucin ms adelante en el programa en una instruccin Etiqueta (LBL de label) que lleva el mismo nmero identificador que la instruccin de Salto.Cuando la instruccin salto (JMP), es verdadero, el programa de usuario registra su nmero de instruccin. Luego busca un paso que tenga una instruccin LBL con el nmero de etiqueta que concuerde y el programa contina all.LBL es simplemente un destino. No confiere una condicin lgica a su paso. Debe aparecer como la primera instruccin en su paso, cerca del extremo izquierdo. El nmero de Etiqueta debe ser nico y no debe existir otra instruccin LBL en ningn lugar del programa conteniendo el mismo nmero.

Captulo 4 - Figura 21: Utilizacin de la instruccin de saltoSin embargo se permite Saltar a esta instruccin de Etiqueta desde ms de un origen. Es decir, pueden existir dos o ms instrucciones JMP que lleven a la misma etiqueta.

SUBPROGRAMAUn subprograma es un programa independiente, generalmente ms pequeo que el programa principal, que est almacenado en una ubicacin de memoria independiente dentro de la memoria del programa de usuario. La subrutina no se ejecuta necesariamente en cada barrido. A diferencia del programa principal, sus pasos no los encuentra el CPU en una posicin particular en la secuencia de ejecucin.El CPU encontrar la subrutina solamente si una instruccin en el programa principal explcitamente salta a la subrutina.

Captulo 4 - Figura 22: Utilizacin de la estructura de subrutinaLas subrutinas con frecuencia contienen una secuencia lgica que es til en dos o ms ubicaciones en el programa principal. Al colocar la secuencia lgica en un mini programa independiente y saltando a ella, evitamos la necesidad de repetir la secuencia dos o ms ocasiones en distintas ubicaciones en el programa principal. Necesitamos escribirla slo una vez, y luego saltar a ella cuando la funcin se requiera.1

102Automatizacin de Mquina Conformadora de Cpsulas para Vino con PLC Martn O. Ruggeri