Lenguaje de programación de PLCs y Robots



LENGUAJES DE PROGRAMACIÓN DE PLC’S Y ROBOTS

La programación empleada en robótica puede tener carácter explícito , donde el operador es el responsable de las acciones de control y las instrucciones, o estar basada en la modelación del mundo exterior, cuando se describe la tarea y el sistema toma las decisiones. La programación explícita es la utilizada en el ámbito industrial y consta de dos técnicas:
A) Programación gestual. B) Programación textual.
La programación gestual consiste en guiar el brazo del robot directamente por la trayectoria que debe seguir, los puntos se graban en la memoria y luego se repiten. Exige el empleo del manipulador en la fase de enseñanza.
En la programación textual, las acciones que ha de realizar el brazo se especifican mediante las instrucciones de un lenguaje. En esta labor no participa la máquina. Las trayectorias del manipulador se calculan matemáticamente con gran precisión y se evita el posicionamiento a ojo, muy corriente en la programación gestual.
Los lenguajes de programación textual se encuadran en varios niveles, según se realice la descripción del trabajo del robot. Se relacionan en orden creciente de complejidad:
1. Lenguajes elementales, que controlan directamente el movimiento de las articulaciones del manipulador. 2. Lenguajes dirigidos a posicionar el elemento terminal del manipulador. 3. Lenguajes orientados hacia el objeto sobre el que opera el sistema. 4. Lenguajes enfocados a la tarea que realiza el robot.

PROGRAMACIÓN GESTUAL O DIRECTA
En este tipo de programación, el propio brazo interviene en el trazado del camino y en las acciones a desarrollar en la tarea de la aplicación. Esta característica determina la programación “on-line”.
En el aprendizaje directo, el punto final del brazo se traslada con ayuda de un dispositivo colocado en su muñeca, o utilizando un brazo maestro o maniquí, sobre el que se realizan los desplazamientos, que serán memorizados y repetidos por el manipulador. Se utiliza sobre todo en labores de pintura, donde el operador dirige el brazo por los tramos a recorrer, y dónde debe expulsar una cierta cantidad de pintura. Tiene pocas posibilidades de edición, ya que para generar una trayectoria tiene que almacenar una gran cantidad de puntos, cuya reducción origina discontinuidades. Suele estar constituido por botones, teclas, pulsadores, luces indicadoras, ejes giratorios o “joystick”.
Dependiendo del algoritmo de control que se utilice, el robot pasa por los puntos finales de la trayectoria enseñada. Hay que tener en cuenta que los dispositivos de enseñanza modernos no sólo permiten controlar los movimientos de las articulaciones del manipulador, sino que pueden generar funciones auxiliares como:
o Selección de velocidades. o Generación de retardos. o Señalización del estado de los sensores. o Borrado y modificación de los puntos de trabajo. o Funciones especiales.
Al igual que con la programación directa, en la que se emplea un elemento de enseñanza, el usuario no necesita conocer ningún lenguaje de programación. Simplemente, debe habituarse al empleo de los elementos que constituyen el dispositivo de enseñanza. De esta forma, se pueden editar programas que sean muy simples.
La estructura del “software” es del tipo intérprete; sin embargo, el sistema operativo que controla el procesador puede poseer rutinas específicas, que suponen la posibilidad de realizar operaciones muy eficaces.
Los lenguajes de programación gestual, además de necesitar al propio robot en la confección del programa, carecen de adaptabilidad en tiempo real con el entorno y no pueden tratar interacciones de emergencia.

PROGRAMACIÓN TEXTUAL EXPLÍCITA
El programa queda constituido por un texto de instrucciones o sentencias, cuya confección no requiere de la intervención del robot, por lo que se efectúan “off-line”. Con este tipo de programación, el operador no define las acciones del brazo manipulador, sino que se calculan, mediante el empleo de las instrucciones textuales adecuadas.
En una aplicación tal como el ensamblaje de piezas, en la que se requiere una gran precisión, los posicionamientos seleccionados mediante la programación gestual no son suficientes, debiendo ser sustituidos por cálculos más perfectos y por una comunicación con el entorno que rodea al sistema.
En la programación textual, la posibilidad de edición es total. El robot debe intervenir solo en la puesta a punto final.
Según las características del lenguaje, pueden confeccionarse programas de trabajo complejos, con inclusión de saltos condicionales, empleo de base de datos, posibilidad de creación de módulos operativos intercambiables, capacidad de adaptación a las condiciones del mundo exterior, etc.
Dentro de la programación textual, existen dos grandes grupos:
1. Programación textual explícita. 2. Programación textual especificativa.
En la programación textual explícita, el programa consta de una serie de órdenes o instrucciones concretas, que van definiendo con rigor las operaciones necesarias para llevar a cabo la aplicación. Se puede decir que la programación explícita engloba a los lenguajes que definen los movimientos punto por punto, similares a los de la programación gestual, pero bajo la forma de un lenguaje formal. Con este tipo de programación, la labor del tratamiento de las situaciones anormales, colisiones, etc. queda a cargo del programador.
Dentro de la programación explícita, hay dos niveles:
• Nivel de movimiento elemental
Comprende los lenguajes dirigidos a controlar los movimientos del brazo manipulador. Existen dos tipos:
a) Articular, cuando el lenguaje se dirige al control de los movimientos de las diversas articulaciones del brazo. 
b) Cartesiano, cuando el lenguaje define los movimientos relacionados con el sistema de manufactura, es decir, los del punto final de trabajo (TCP).
Los lenguajes del tipo cartesiano utilizan transformaciones homogéneas. Este hecho confiere “popularidad” al programa, independizando a la programación del modelo particular del robot, puesto que un programa confeccionado para uno, en coordenadas cartesianas, puede utilizarse en otro, con diferentes coordenadas, mediante el sistema de transformación correspondiente.
Son lenguajes que se parecen al BASIC, sin poseer una unidad formal y careciendo de estructuras a nivel de datos y de control.
Por el contrario, los lenguajes de tipo articular indican los incrementos angulares de las articulaciones. Aunque esta acción es bastante simple para motores de paso a paso y corriente continua, al no tener una referencia general de la posición de las articulaciones con relación al entorno, es difícil relacionar al sistema con piezas móviles, obstáculos, cámaras de TV, etc.
Los lenguajes correspondientes al nivel de movimientos elementales aventajan, principalmente, a los de punto a punto, en la posibilidad de realizar bifurcaciones simples y saltos a subrutinas, así como de tratar informaciones sensoriales.
• Nivel estructurado
Intenta introducir relaciones entre el objeto y el sistema de robot, para lo que los lenguajes se desarrollan sobre una estructura formal.
Se puede decir que los lenguajes correspondientes a este tipo de programación adoptan la filosofía del PASCAL. Describen objetos y transformaciones con objetos, disponiendo, muchos de ellos, de una estructura de datos arborescente.
El uso de lenguajes con programación explícita estructurada aumenta la comprensión del programa, reduce el tiempo de edición y simplifica las acciones encaminadas a la consecución de tareas determinadas.
En los lenguajes estructurados, es típico el empleo de las transformaciones de coordenadas, que exigen un cierto nivel de conocimientos. Por este motivo dichos lenguajes no son populares hoy en día.

PROGRAMACIÓN TEXTUAL ESPECÍFICA
Se trata de una programación del tipo no procesal, en la que el usuario describe las especificaciones de los productos mediante una modelización, al igual que las tareas que hay que realizar sobre ellos.
El sistema informático para la programación textual específica tiene que disponer del modelo del universo, o mundo donde se encuentra el robot. Este modelo será, normalmente, una base de datos más o menos compleja, según la clase de aplicación, pero que requiere, siempre, computadores potentes para el procesado de una abundante información. El trabajo de la programación consistirá, simplemente, en la descripción de las tareas a realizar, lo que supone poder llevar a cabo trabajos complicados.
En la actualidad, los modelos del universo son del tipo geométrico, no físico. Este hecho implica la no consideración de la fuerza de la gravedad, que ha de ser tenida en cuenta por el programador constantemente, para considerar sus efectos en la manipulación de los objetos.
Dentro de la programación textual específica, hay dos clases, según la orientación del modelo se refiera a los objetos o a los objetivos.
Si el modelo se orienta al nivel de los objetos, el lenguaje trabaja con ellos y establece las relaciones entre ellos. La programación se realiza “off-line” y la conexión CAM es posible.
Dada la inevitable imprecisión de los cálculos del computador y de las medidas de las piezas, se precisa de una ejecución previa, para ajustar el programa al entorno del robot.
Los lenguajes con un modelo del universo orientado a los objetos son de alto nivel, permitiendo expresar las sentencias en un lenguaje similar al usado comúnmente.
Por otra parte, cuando el modelo se orienta hacia los objetivos, se define el producto final.
La creación de lenguajes de muy alto nivel transferirá una gran parte del trabajo de programación, desde el usuario hasta el sistema informático; éste resolverá la mayoría de los problemas, combinando la Automática y la Inteligencia Artificial.
El constante incremento de “inteligencia” en los sistemas de la robótica hace prever que el 70% del coste total será de tipo informático.
A continuación una tabla con los distintos tipos de lenguajes de programación de robots.