Trabajo Sobre Lenguajes de Programación de Automatas Programables (1)

13
Trabajo sobre Lenguajes de Programación de Autómatas Programables. Índice

description

trabajos PLC

Transcript of Trabajo Sobre Lenguajes de Programación de Automatas Programables (1)

Trabajo

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

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

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) 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 ( +, *,