Lenguaje De Progamacion
gerarc6 de Noviembre de 2012
3.421 Palabras (14 Páginas)367 Visitas
1.- Lenguajes de programación.
Se ha descrito el programa como el conjunto de instrucciones, ordenes y símbolos reconocibles por el autómata a través de su unidad de programación, que le permiten ejecutar la secuencia de control deseada. Al conjunto total de estas instrucciones, órdenes y símbolos que están disponibles se le llama lenguaje de programación del autómata.
Sería deseable que la misma simbología utilizada para representar el sistema de control pudiera emplearse para programar el autómata: el ahorro de tiempo y documentación y la seguridad en el programa obtenido serían considerables.
Sin embargo, esta solución no es siempre posible: El lenguaje depende del autómata empleado y de su fabricante, que decide el tipo de unidad de programación
( literal, gráfica ) y el interprete ( firmware ) que utiliza su máquina, mientras que el modelo de representación depende del usuario, que lo elige según sus necesidades o conocimientos.
Pese a ello, los lenguajes de programación de autómatas intentan ser lo más parecidos posibles a los modelos de presentación usuales. Los lenguajes pueden ser:
- Algebraicos.
- Lenguajes booleanos.
- Lenguajes de instrucciones.
- Lenguajes de alto nivel.
- Gráficos.
- Diagrama de contactos.
- Diagrama de funciones - bloques.
- Grafcet.
Si la representación elegida para el sistema de control es comprensible por la unidad de programación, no será necesario realizar ninguna codificación, al aceptar ésta los símbolos utilizados. En caso contrario, habrá que traducirla a un programa, según 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 instrucción representa la tarea más elemental de un programa: leer una entrada, realizar una operación AND, activar una salida, etc.
La sentencia representa el mínimo conjunto de instrucciones que definen una tarea completa: encontrar el valor de una función lógica combinación 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 función compleja: contadores, registros de desplazamientos, transferencias de información, etc.
Todos estos elementos están relacionados entre sí mediante los símbolos o grafismos ( algebraicos o gráficos ) definidos en el lenguaje empleado.
La 10.11 muestra la estructura de una instrucción típica en diferentes lenguajes de programación.
En general, las instrucciones pueden ser de distintos tipos: lógicas, aritméticas, de transferencias, etc., que adoptan diferentes formas de representación según el lenguaje empleado.
En algunos autómatas, el programa necesita para su correcta ejecución de una tabla de parámetros, introducida también desde la unidad de programación, que define el entorno de funcionamiento de la máquina:
- uso o no de entradas de reset o stop,
- capacidad de la memoria de usuario empleada,
- conexión o no en red local,
- variables internas a mantener contra pérdidas de tensión, etc.
La tabla de parámetros es especifica para cada programa y es grabada con el mismo cuando se transfiere al autómata.
1.1.- Lenguajes Booleanos y Lista de Instrucciones.
El lenguaje booleano esta constituido por un conjunto de instrucciones que son transcripción literal de las funciones del álgebra de Boole, a saber:
- OR función suma lógica.
- AND función producto lógico.
- LOD leer variable inicial.
- OUT enviar resultado a salida.
- OR LOD coloca bloque en paralelo
- AND LOD coloca bloque en serie.
En una operación normal el autómata utiliza algunas otras instrucciones del lenguaje booleano que le permiten manejar elemento de común automatización 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.
También 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 códigos numéricos, etc.
- END fin de programa.
- JMP salto de bloque de programa.
- MCS habilitación de bloque de programa.
- JMPSUB salto a subrutina, etc.
Al lenguaje restante que no puede llamarse ya booleano después de ampliarlo con estas extensiones se le denomina de lista de instrucciones ( " Instruction List " ).
Algunos fabricantes amplían las capacidades de programación de sus autómatas de gama baja con estas instrucciones avanzadas que serian de más lógica aplicación en autómatas de superiores prestaciones. El tiempo de ejecución resultante ( tiempo de
" scan " ) sobre CPU básicas desaconseja su empleo en la mayoría de las ocasiones.
1.2.- Diagrama de contactos.
El lenguaje de contactos expresa las relaciones entre señales binarias como una sucesión de contactos en serie y en paralelo según las equivalencias que se muestran en la tabla 10.6.
Adoptado por muchos fabricantes de autómatas ( norteamericanos y japoneses, principalmente ) como lenguaje base de programación, el diagrama de contactos (
" Ladder Diagram " ) puede ser introducido directamente en la unidad de programación mediante un editor de símbolos gráficos. Normalmente este editor incluye restricciones en cuanto al numero de contactos o bobinas a representar en cada línea, la ubicación de los mismos, la forma de las conexiones, etc.
Siendo los contactos de relés componentes de dos estados, asignados a los valores lógicos:
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 función lógica puede ser transcrita directa e inmediatamente a diagrama de contactos y viceversa, transcripciones de utilidad cuando se trata de visualizar gráficamente un programa escrito en lenguaje booleano.
Sin embargo el diagrama de contactos de origen norteamericano no nació como una posible herramienta de visualización de programa ya escritos en lista de instrucciones, sino como transcripción directa de los esquemas eléctricos de relés ( circuitos de mando) de uso común en la automatización previa a la aparición de los sistemas programables.
Por esta razón, los diagramas de contactos incluyen desde sus orígenes bloques funcionales que ya aparecían 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 módulo de contaje y condiciones de paro y reset en el caso de contadores, el lenguaje de contactos permite programar directamente cualquier esquema eléctrico de reles.
Sin embargo, y al igual que ocurría en los lenguajes Booleanos, también en este se desarrollan bloques funcionales complejos que permiten la manipulación de datos y las operaciones con variables digitales de varios bits.
La presencia de estos bloques de ejecución dependiente de una más condiciones binarias, multiplica la potencia de programación sin dejar de mantener las ventajas de la representación gráfica del programa. Así, pueden programarse situaciones de automatización compleja que involucren variables digitales, registros, transferencias, comparaciones, señales analógicas, etc.
Por supuesto, y al igual que ocurre con las extensiones al lenguaje booleano, no todos los autómatas, aun del mismo fabricante, pueden manejar todas las posibilidades de programación con contactos: solo las gamas más altas acceden a la totalidad de extensiones del lenguaje.
1.3.- Plano de funciones.
El diagrama lógico o plano de funciones es la representación de las tareas de automatización utilizando los símbolos contenidos en las normas DIN 40700 y DIN 40719, cuya forma general se presenta en la.
Algunos de estos símbolos normalizados, correspondientes a las funciones más frecuentes, se dan en la.
La programación por diagramas lógicos, que deriva de la representación por logigrama habitual entre los técnicos en electrónica digital, incluye como bloques normalizados algunas funciones secuenciales típicas en automatización como temporizadores y contadores, e incluso algunos bloques combinacionales y de tratamiento numéricos, como multiplexores, demultiplexores, sumadores, multiplicadores, etc., pero no alcanza la multitud de funciones que han ido añadiéndose a las listas de instrucciones y diagramas de contactos, como extensiones a estos lenguajes.
Por esta razón, y en sentido estricto, la programación por diagramas lógicos 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 lógico por parte del usuario habitual
...