Vous êtes sur la page 1sur 9

Trabajo sobre Lenguajes de Programacin de Autmatas Programables. ndice 1. Lenguajes de programacin. 1.1. Lenguajes Booleanas y lista de instrucciones. 1.2.

Diagrama de contactos. 1.3. Plano de funciones. 1.4. Lenguajes de Alto Nivel. 1.5. Grafcet. 1.5.1. Resumen histrico. 1.5.2. Diseo basado en Grafcet. 1.5.3. Gemma. 2. Resumen. 1. Lenguajes de programacin. Se ha descrito el programa como el conjunto de instrucciones, ordenes y smbolos reconocibles por el autmata a travs de su unidad de programacin, que le permiten ejecutar la secuencia de control deseada. Al conjunto total de estas instrucciones, ordenes y smbolos que estn disponibles se le llama lenguaje de programacin del autmata. Seria deseable que la misma simbologa utilizada para representar el sistema de control pudiera emplearse para programar el autmata: el ahorro de tiempo y documentacin y la seguridad en el programa obtenido seran considerables. Sin embargo, esta solucin no es siempre posible: El lenguaje depende del autmata empleado y de su 1

fabricante, que decide el tipo de unidad de programacin ( literal, grfica ) y el interprete ( firmware ) que utiliza su mquina, mientras que el modelo de representacin depende del usuario, que lo elige segn sus necesidades o conocimientos. Pese a ello, los lenguajes de programacin de autmatas intentan ser lo ms parecidos posibles a los modelos de presentacin usuales. Los lenguajes pueden ser: Algebraicos. Lenguajes booleanos. Lenguajes de instrucciones. Lenguajes de alto nivel. Grficos. Diagrama de contactos. Diagrama de funciones bloques. Grafcet. Si la representacin elegida para el sistema de control es comprensible por la unidad de programacin, no ser necesario realizar ninguna codificacin, al aceptar sta los smbolos utilizados. En caso contrario, habr que traducirla a un programa, segn uno de los anteriores lenguajes. El programa obtenido est formado por un conjunto de instrucciones, sentencias, bloques funcionales y grafismo que indican las operaciones a realizar sucesivamente por el PLC. La instruccin representa la tarea ms elemental de un programa: leer una entrada, realizar una operacin AND, activar una salida, etc. La sentencia representa el mnimo conjunto de instrucciones que definen una tarea completa: encontrar el valor de una funcin lgica combinacin de varias variables, consultar un conjunto de condiciones y, si son ciertas, activar un temporizador, etc. El bloque funcional es el conjunto de instrucciones o sentencias que realizan una tarea o funcin compleja: contadores, registros de desplazamientos, transferencias de informacin, etc. Todos estos elementos estn relacionados entre s mediante los smbolos o grafismos ( algebraicos o grficos ) definidos en el lenguaje empleado. La figura 10.11 muestra la estructura de una instruccin tpica en diferentes lenguajes de programacin. En general, las instrucciones pueden ser de distintos tipos: lgicas, aritmticas, de transferencias, etc., que adoptan diferentes formas de representacin segn el lenguaje empleado. En algunos autmatas, el programa necesita para su correcta ejecucin de una tabla de parmetros, introducida tambin desde la unidad de programacin, que define el entorno de funcionamiento de la mquina:

uso o no de entradas de reset o stop, capacidad de la memoria de usuario empleada, conexin o no en red local, variables internas a mantener contra prdidas de tensin, etc. La tabla de parmetros es especifica para cada programa y es grabada con el mismo cuando se transfiere al autmata. 1.1. Lenguajes Booleanos y Lista de Instrucciones. El lenguaje booleano esta constituido por un conjunto de instrucciones que son transcripcin literal de las funciones del lgebra de Boole, a saber: OR funcin suma lgica. AND funcin producto lgico. LOD leer variable inicial. OUT enviar resultado a salida. OR LOD coloca bloque en paralelo AND LOD coloca bloque en serie. En una operacin normal el autmata utiliza algunas otras instrucciones del lenguaje booleano que le permiten manejar elemento de comn automatizacin y que son las siguientes instrucciones secuenciales: TIM definir un temporizador. CNT definir un contador. SET activar una variable binaria ( unidad de memoria ) RST desactivar una variable binaria. Tambin existe otros tipos de instrucciones como las siguientes: DD sumar. BB restar. MUL multiplicar. DIV Dividir. CMP comparar variables digitales. FR rotaciones de bits ( variables de binarias ). 3

HIFT rotaciones de palabras ( variables digitales ). MOV transferencias de datos. CD / BIN conversiones de cdigos numricos, etc. END fin de programa. JMP salto de bloque de programa. MCS habilitacin de bloque de programa. JMPSUB salto a subrutina, etc. Al lenguaje restante que no puede llamarse ya booleano despus de ampliarlo con estas extensiones se le denomina de lista de instrucciones ( Instruction List ). Algunos fabricantes amplan las capacidades de programacin de sus autmatas de gama baja con estas instrucciones avanzadas que serian de ms lgica aplicacin en autmatas de superiores prestaciones. El tiempo de ejecucin resultante ( tiempo de scan ) sobre CPU bsicas desaconseja su empleo en la mayora de las ocasiones. 1.2. Diagrama de contactos. El lenguaje de contactos expresa las relaciones entre seales binarias como una sucesin de contactos en serie y en paralelo segn las equivalencias que se muestran en la tabla 10.6. Adoptado por muchos fabricantes de autmatas ( norteamericanos y japoneses, principalmente ) como lenguaje base de programacin, el diagrama de contactos ( Ladder Diagram ) puede ser introducido directamente en la unidad de programacin mediante un editor de smbolos grficos. Normalmente este editor incluye restricciones en cuanto al numero de contactos o bobinas a representar en cada lnea, la ubicacin de los mismos, la forma de las conexiones, etc. Siendo los contactos de rels componentes de dos estados, asignados a los valores lgicos: 0: contacto abierto. 1: Contactos cerrado. las equivalencias de la tabla 10.6 permiten definir sobre ellos un lgebra de Boole, denominada usualmente lgebra de contactos. Esto significa que cualquier funcin lgica puede ser transcrita directa e inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando se trata de visualizar grficamente un programa escrito en lenguaje booleano. Sin embargo el diagrama de contactos de origen norteamericano no naci como una posible herramienta de visualizacin de programa ya escritos en lista de instrucciones, sino como transcripcin directa de los esquemas elctricos de rels ( circuitos de mando) de uso comn en la automatizacin previa a la aparicin de los sistemas programables. 4

Por esta razn, los diagramas de contactos incluyen desde sus orgenes bloques funcionales que ya aparecan como elementos propios en aquellos esquemas, los temporizadores y los contadores. Utilizando estos bloques sobre los cuales pueden definirse la base de lo tiempos y el tiempo final en el caso de temporizadores y el mdulo de contaje y condiciones de paro y reset en el caso de contadores, el lenguaje de contactos permite programar directamente cualquier esquema elctrico de reles. Sin embargo, y al igual que ocurra en los lenguajes Booleanos, tambin en este se desarrollan bloques funcionales complejos que permiten la manipulacin de datos y las operaciones con variables digitales de varios bits. La presencia de estos bloques de ejecucin dependiente de una ms condiciones binarias, multiplica la potencia de programacin sin dejar de mantener las ventajas de la representacin grfica del programa. As, pueden programarse situaciones de automatizacin compleja que involucren variables digitales, registros, transferencias, comparaciones, seales analgicas, etc. Por supuesto, y al igual que ocurre con las extensiones al lenguaje booleano, no todos los autmatas, aun del mismo fabricante, pueden manejar todas las posibilidades de programacin con contactos: solo las gamas ms altas acceden a la totalidad de extensiones del lenguaje. 1.3. Plano de funciones. El diagrama lgico o plano de funciones es la representacin de las tareas de automatizacin utilizando los smbolos contenidos en las normas DIN 40700 y DIN 40719, cuya forma general se presenta en la figura 10.14. Algunos de estos smbolos normalizados, correspondientes a las funciones ms frecuentes, se dan en la figura 10.15: La programacin por diagramas lgicos, que deriva de la representacin por logigrama habitual entre los tcnicos en electrnica digital, incluye como bloques normalizados algunas funciones secuenciales tpicas en automatizacin como temporizadores y contadores, e incluso algunos bloques combinacionales y de tratamiento numricos, como multiplexores, demultiplexores, sumadores, multiplicadores, etc., pero no alcanza la multitud de funciones que han ido aadindose a las listas de instrucciones y diagramas de contactos, como extensiones a estos lenguajes. Por esta razn, y en sentido estricto, la programacin por diagramas lgicos queda reservada a aplicaciones en las que solo intervengan variables booleanas todo nada, y algunos bloques secuenciales elementales: temporizadores, contadores, registros de desplazamiento, etc. Esta circunstancia, unida al desconocimiento del diagrama lgico por parte del usuario habitual del autmata, explica la baja difusin de estos lenguajes de programacin. La figura 10.16 muestra un ejemplo de programacin con plano de funciones, comparado con el mismo programa en diagrama de contactos segn los lenguajes grficos STEP 5 de Siemens. Dada la existencia, antes comentada, de bloques normalizados para todas las posibles operaciones del autmata, los fabricantes han optado por permitir el uso en sus consolas grficas el uso de los bloques de extensin definidos en el diagrama de contactos, aun trabajando bajo el entorno de diagrama lgico: el lenguaje resultante resulta un grupo que recoge toda la potencia de programacin del autmata y en el que el usuario puede elegir la forma de representacin que prefiera para las representaciones bsicas ( AND, OR, NOT, etc. ). Algunas unidades de programacin basadas en ordenador ( especifico de cada fabricante o PC de uso general) 5

permiten al usuario definir sus propios bloques lgicos a partir de los preexistentes incorporando nuevas funciones ( macrobloques ) que pueden ser incorporadas al lenguaje. 1.4. Lenguajes de Alto Nivel. Con CPUs cada vez ms rpidas, ms potentes y de mayor capacidad de tratamiento, los autmatas de gamas altas invaden aplicaciones hasta hace bien poco reservadas a los miniordenadores industriales. Para estas aplicaciones, los lenguajes tradicionales en lista de instrucciones ( IL ) o diagrama de contacto ( LD ) resultan ya insuficientes, aun mejorados con las expansiones comentadas en apartados anteriores. Por esta razn, los fabricantes han desarrollado lenguajes de programacin prximos a la informtica tradicional, con sentencias literales que equivalen a secuencias completas de programacin: son lenguajes de alto nivel. En ellos las instrucciones son lneas de texto que utilizan palabras o smbolos reservados ( SET, AND, FOR, etc. ) Las operaciones se definen por los smbolos matemticos habituales ( +, *, <, etc.), y se dispone de funciones trigonomtricas, logartmicas y de manipulacin de variables complejas ( Cos, pi, real, img, ....). Sin embargo, lo que distingue realmente estos lenguajes avanzados de las listas de instrucciones ampliadas son las tres caractersticas siguientes: Son lenguajes estructurados, donde es posible la programacin por bloques o procedimientos , con definicin de variables locales o globales, Incluyen estructuras de clculo repetitivo y condicional ( figura 10.18 ) tales como: FOR ... TO REPEAT ... UNTIL X WHILE X... IF ... THEN ...ELSE disponen de instrucciones de manipulacin de cadenas de caracteres, muy tiles en aplicaciones de gestin, estadstica, etc. Dada su facilidad de manejo y su difusin a todos los niveles, el BASIC, convenientemente adaptado a las aplicaciones del autmata, se configura como el lenguaje de alto nivel ms extendido. Sin embargo, tambin se pueden encontrar intrpretes o compiladores de C, PASCAL, FORTRAN, etc., lo que permite resolver tareas de clculo cientfico en alta resolucin, clasificaciones de datos, estadsticas, etc., con total facilidad, y con acceso adems a mdulos y subrutinas especficos ya escritos en estos lenguajes y de uso general en aplicaciones informticas. Dado lo especifico de su aplicacin un programas escrito en alto nivel necesita para su edicin de una unidad de programacin avanzada o de un software de desarrollo de programas que corra sobre PC. Adicionalmente, es frecuente que el empleo de estos lenguajes estructurados obligue adems a utilizar no solo una unidad de programacin tipo PC, sino incluso una CPU especial en el autmata ( coprocesadora ), capaz de interpretar y ejecutar las nuevas instrucciones.

En cualquier caso, los lenguajes de alto nivel son posibilidades adicionales al alcance del programador, que puede si as lo desea, utilizar solo las formas bsicas de contactos / bloques o lista de instrucciones para escribir sus aplicaciones: en otras palabras, los lenguajes avanzados nuca constituyen el lenguaje bsico de un autmata o familia de autmatas, papel que queda reservado a la lista de instrucciones o al diagrama de contactos. La figura 10.19 muestra un ejemplo de programacin con este lenguaje. Como se observa, una ventaja adicional del programa en alto nivel es que a l se puede transcribir, casi literalmente el diagrama de flujos que constituye la primera aproximacin a la representacin del sistema de control. Esta ventaja, que evita pasar a algn otro modelo o transcribir este inicial a otro lenguaje, supone sin duda un importante ahorro de tiempo en la puesta en marcha de la aplicacin. 1.5. Grafcet. 1.5.1. Resumen Histrico. El grafcet naci como resultado de los trabajos de la AFCET, iniciados en la dcada de los sesenta. Su significado es el de GRfico Funcional de Control de Etapas y Transiciones ). En principio se pretenda satisfacer la necesidad de disponer de un mtodo de descripcin de procesos, con total independencia de la tecnologa, mediante un grfico funcional que pudiera ser interpretado por no especialistas en automatizacin. El grfico funcional permite la forma de descripcin del proceso para tcnicos de distintos campos, desde el ingeniero de organizacin o de produccin, que define las necesidades del automatismo, pasando por el de diseo, que debe implementar el sistema de control y los accionamientos, hasta el tcnico de mantenimiento, que debe cuidar de su funcionamiento o introducir modificaciones en la fase de explotacin. A partir de 1977 y gracias a la colaboracin entre AFCET y ADEPA se crearon una serie de tiles metodolgicos entre los que destaca el GEMMA para apoyar el GRAFCET como mtodo no solo descriptivo, sino como herramienta de diseo. En 1982 el trabajo fue recogido por un grupo de trabajo de AFNOR, organismo encargado de la normalizacin en Francia, compuesto por miembros de UTE, CNOMO, UNM y de otros organismos relacionados con la industria de la automatizacin y la enseanza culminado con la publicacin de la Norma NF C031904. En la actualidad, diversos autmatas programables incorporan algunas instrucciones de programacin que permiten introducir directamente el grafo de GRAFCET. En otros casos se dispone de software capaz de compilar un grafo GRAFCET al lenguaje de la mquina, permitiendo en ambos una gran flexibilidad y rapidez de diseo con ventajas sustanciales en las fases de verificacin, explotacin o eventual modificacin del automatismo. A pesar de ello no debe confundirse el GRAFCET con un lenguaje de programacin. El grfico funcional complementado con los mtodos del lgebra de Boole, permite ir ms all de la simple descripcin e interpretacin grfica de un proceso y se ha convertido en una potente herramienta de diseo de sistemas lgicos, con unas reglas bastantes simples. 1.5.2. Diseo basado en GRAFCET. Los principios que inspiraron la creacin del GRAFCET y en los que se basa su aplicacin son los siguientes: a) debe caracterizarse el funcionamiento del automatismo con total independencia de los componentes con los que vaya a ser construido. 7

b) el conjunto de un sistema automtico se divide en dos partes: parte de control ( PC ) y parte operativa ( PO ). La parte de control comprende todo aquello que contribuye a la automatizacin del proceso. c) El elemento fundamental de un proceso es la operacin ( denominada etapa en el lenguaje de GRAFCET ), entendiendo como tal una accin realizada por el automatismo. d) Debe dividirse el proceso en macroetapas y estas en etapas ms elementales, hasta conseguir que las acciones a realizar en cada una de ellas dependan solo de relaciones combinacionales entre entrada y salidas. Cada una de estas etapas elementales tendr asociada una variable de estado. e) Establecer un grfico de evolucin que indique la secuencia de operaciones secuencia de etapas y las condiciones lgicas para pasar de una a otra ( denominadas condiciones de transicin en el lenguaje de GRAFCET ). Como resultado de esta fase se obtienen las ecuaciones lgicas de las variables de estado y, por tanto, queda resuelta la parte secuencial del automatismo. f) Establecer para cada operacin elemental ( etapa ) las relaciones lgicas entre entradas y salidas, utilizando eventualmente otras variables internas combinacionales. g) Finalmente, implementar el sistema utilizando tantos biestables como variables de estado y cableando o programando las relaciones lgicas obtenidas en las fases e y f. A continuacin le expongo algunos equivalentes en GRAFCET de algunos bucles 1.5.3. Gemma He insistido varias veces en que el desarrollo y explotacin de sistemas automticos de produccin requiere el empleo de tiles metdicos, con un vocabulario preciso y una aproximacin sistemtica y guiada donde se reflejen punto por punto los procedimientos a emplear a modo de un check list . En lo que se refiere al GRAFCET es un til adecuado para ello, pero es preciso partir de unas especificaciones precisas y prever posibles condiciones anmalas. En otras palabras, las especificaciones son la materia prima a partir de la cual construimos un proyecto. Unas especificaciones incorrectas o incompletas nos llevaran a un resultado final incorrecto. Es necesario, pues, un til previo que nos permita generar unas especificaciones correcta, asegurando que no dejan situaciones imprevistas y no dejan situaciones imprevistas y no contienen incoherencias. Uno de los intentos de creacin de dicho til ha sido llevado a cabo por un equipo de investigacin impulsado en Francia por ADEPA y ha dado como resultado la creacin del GEMMA. El GEMMA es un mtodo para el estudio de las posibles situaciones de marcha y parada en que puede encontrarse la parte operativa ( PO ) de un proceso y las formas de evolucionar de unas a otras. Para ello se apoya en un til grfico que representa una serie de estados tipificados de la POR y muestra las posibles formas de evolucin de unos a otros. 2. Resumen. Programar un autmata consiste en introducirle una secuencia de rdenes ( instrucciones ) obtenidas desde un modelo de control, segn una codificacin determinada ( lenguaje ) que por su forma puede ser: literal o de textos, grfica, o de smbolos. 8

Cada instruccin del programa consta dos partes: el cdigo de operacin, que define qu se debe hacer y cdigo o cdigos de los operandos (generalmente identificados por su disposicin ), que indican las constantes o variables con las que se debe operar. Los lenguajes literales estn formados por secuencias de textos agrupados en instrucciones u ordenes elementales del programa. Segn la complejidad del lenguaje estn disponibles instrucciones desde sencillas funciones booleanas ( AND, OR, etc. ) hasta estructuras complejas de programacin en alto nivel ( FOR NEXT, WHILE, ETC. ), pasando por instrucciones de acceso a bloques secuenciales ( TIM, CNT, etc. ) y de manipulacin de texto y valores numricos ( ADD,MOV, MUL, etc.). Los lenguajes grficos, con origen en los esquemas elctricos de rels y en los diagramas de la electrnica digital, utilizan smbolos de contactos / bobinas para representar las instrucciones bsicas y smbolos de bloques lgicos para las extensiones al lenguaje, que extienden su potencia hasta la de los lenguajes literales de alto nivel. De esta forma permiten estructuras de programacin tan complejas como aquellos, sin perder por ello la facilidad de comprensin y visin de conjunto que ofrece siempre la representacin grfica. As la automatizacin de procesos comunes ( mando de mquinas, cadenas de produccin, etc.) puede hacerse con diagramas de contactos o con listas de instrucciones, los dos lenguajes bsicos para la mayora de autmatas. De hecho, es tan frecuente el uso de uno u otro, que muchos fabricantes ya prevn en su software de programacin sobre PC la posibilidad de transcodificacin entre ellos, con operaciones sencillas de compilacin / decompilacin. De esta forma, el usuario puede trabajar con el lenguaje que prefiera y compilarlo, si fuera necesario, al que entiende su autmata. Para mandos complejos que necesiten realizar clculos, manipular largas cadenas de caracteres o utilizar subrutinas o bloques de programacin manufacturado ( mando de ejes, regulacin PID, etc. ) puede ser necesario utilizar lenguajes literales de alto nivel, que permiten tambin, no se olvide, programar sentencias booleanas sencillas o manejar temporizadores y contadores como listas de instrucciones. Utilizados originalmente de forma independiente unos de otros, la tendencia actual de los fabricantes pasa por la integracin de las diferentes formas en un nico lenguaje mixto, que combine la claridad de los lenguajes grficos para las funciones combinacionales y secuenciales, con la potencia y compacidad de los literales para el clculo matemtico y los tratamientos de textos. Para ello se siguen los siguientes pasos: Potenciar los lenguajes grficos permitiendo el uso de estructuras de programacin avanzada ( GRAFCET y aumentando las instrucciones de expansin disponibles. Permitir la utilizacin de lenguajes literales dentro de un programa grfico, bien incluyndolos como lneas de instruccin dentro del programa, bien editandolos como subrutinas de libre acceso desde l. Desarrollar herramientas de edicin que permitan al usuario de definir sus propias sentencias, que podr almacenar como bloques de expansin dentro de la librera disponible. En genera, y como conclusin se espera una evolucin de los lenguajes grficos hacindolos ms potentes, ms abiertos y ms sencillos de manejar por el usuario, que, cada vez en mayor medida, podr desarrollar sus aplicaciones sobre terminales de uso general tipo PC. 1 5

Vous aimerez peut-être aussi