20 septiembre 2009

Conceptos básicos y últimas tecnologías de las tarjetas de control de movimiento para diseñar máquinas

(Artículo actualizado 20/09/2009)

En varios artículos venimos hablando de las tarjetas de control del movimiento y sus aplicaciones en el diseño de máquina. En Tarjetas de control del movimiento de máquinas para el diseño de máquinas ya hicimos una primera introducción a esta tecnología. Nuevamente vamos a continuar hablando de esta tecnología y tras una breve revisión profundizaremos sobre todo en las últimas tecnologías disponibles. Los diseñadores de máquinas OEM pueden beneficiarse de las tarjetas de control del movimiento en su diseño. En este artículo vamos a comparar qué requerimientos de las máquinas debemos tomar en consideración para diseñar aplicaciones de control del movimiento.

Las tarjetas de control del movimiento se han introducido en las aplicaciones de control del movimiento en aplicaciones tales como la fabricación ligera, las máquinas de laboratorio e instrumentación. El principal motivo son sus factores exclusivos que sirven para trabajar en una plataforma de control.

Funcionalidades básicas

Originalmente las tarjetas de control del movimiento fueron tarjetas insertadas en el PC que permitían el uso de plataformas de PC standard, principalmente MS-DOS. Esto era, y todavía es, una solución muy atractiva ya que el rendimiento computacional del PC se incrementaba exponencialmente a la vez que los costes caían profundamente. Las tarjetas iniciales se basaban en ISA-bus. En ese tiempo aparecieron las soluciones EISA – y PCI –bus, e incluso algunas soluciones de bus industriales como VME. Con mejoras en las tecnología de semiconductores, las placas bases del PC llegaron a ser más pequeñas y el standard PC/104 se creó alrededor del ISA-bus, para soportar sistemas de control basados en PC en espacios físicos más pequeños. Una tarjeta standard usualmente soporta de 1 a 4 ejes, pero hay algunas que soportan hasta 32 ejes.

Una tarjeta de control del movimiento tiene las siguientes funcionalidades básicas:

  • Placa base de PC.
  • Tarjeta de control del movimiento.
  • Tarjeta I/O opcional.
  • Tarjeta interconectada.
  • Chasis (obligatorio para placas bases PCI.

Últimas tecnologías de control del movimiento

En los últimos años las tarjetas de control del movimiento se han beneficiado de avances en el diseño y fabricación de chips. Una ingente cantidad de sofisticadas características se van añadiendo sin coste adicional o con un pequeño coste. Por ejemplo, 16-bit ADCs, I/O de propósito general, DACs de 16-bit, etc. Los nuevos procesadores disponibles están revolucionando el mundo del control del movimiento al tener ahora bastante rendimiento como para hacer cálculos complejos que en el pasado tenían que ser encargados a los procesadores del PC.

Una de las características más recientes de las tarjetas de control del movimiento es la memoria de programa no volátil para descargar programas a la tarjeta que puedan ejecutarse por comandos desde el procesador host de la tarjeta o algún otro disparador del sistema; I/O, timer, etc. Esta característica permite al diseñador del sistema descargar de tareas del procesador host a la tarjeta de movimiento y, de esta forma, incrementar el rendimiento total del sistema. Esto permite también simplificar el desarrollo del código en la tarjeta ya que puede depurarse independientemente del código del sistema global. En muchos casos, usar programas descargados significa aprender el lenguaje del propietario de la tarjeta del sistema. La mayoría de los suministradores de tarjetas tienen su propio lenguaje de comando y herramientas pero hay unos pocos que soporten lenguajes de programación standard como C/C++ o standards industriales como IEC 61131-3 para programar tarjetas usando herramientas de terceras partes independientes.

Otra característica reciente es el uso de Ethernet como interface de comunicaciones del host a la tarjeta y por lo tanto se evita la necesidad de un PC-bus y tarjeta base de PC.

La transmisión de datos se realiza con capacidades de 100 Mbps (pronto será 1 Gbps) combinado con la capacidad de descargar programas a la tarjeta que ha permitido la aparición de un nuevo factor de forma denominado stand-alone. Con las tarjetas stand-alone conectadas al host sobre Ethernet, o alguna otra red serie de alta velocidad, puede distribuirse el procesado del movimiento más cerca de los amplificadores y motores simplificando así el cableado. Esto es posible si la máquina se beneficia de una arquitectura distribuida y/o modularizada.

Características standard

Las características que se consideran standard en tarjetas de control del movimiento considerada para una aplicación de modem.

  • Ejes de 1 a 4 ejes de señales de comando: Analógias ±10V, pulso y dirección, PWM (motores DC o por pasos).
  • Selección del perfil del movimiento: Trapezoidal y/o ajuste de velocidad.
  • Algoritmos de control. PID (control de velocidad y de posición).
  • Retroalimentación de codificador incremental.
  • Contorneado: Al menos interpolación lineal en 2D.
  • I/O dedicado: Conmutadores limitadores, paradas de emergencia y permiso.
  • I/O de propósito general: I/O digital 4-8, puede tener entradas y salidas separadas. Entradas analógicas.
  • Comunicaciones de host bus-PC. PCI, ISA, PC/104, etc.

Características avanzadas

Una vez que conocemos las características standard puede ser deseable incorporar otras características avanzadas. La lista de las más importantes es la siguiente:

  • Programabilidad: Código descargable ejecutado por el procesador de la tarjeta.
  • Selección del perfil del movimiento: Curva S.
  • Algoritmos de control: Proalimentación de aceleración/velocidad y filtros Biquad.
  • Comunicación realzada: Adicionalmente a las comunicaciones serie en vez de adicionalmente al bus del PC: Ethernet, CANbus, S232/485, etc.
  • Tecnologías avanzadas de retroalimentación: Codificador absoluto SSI, EnDAT, Sin/Cos y Resolver.
  • Puerto de expansión de características: Bus de 16 o 32 bit que permiten insertar tarjetas hermanas con nuevas características o capacidades.
  • Factor de forma stand-alone: Capacidad para operar remotamente desde el procesador/computador del host del sistema.

Programabilidad de la tarjeta

La creación de su propio lenguaje de comandos tiene mucho sentido para los fabricantes de tarjetas de control del movimiento. Evita la necesidad de un compilador y minimiza el riesgo de limitar la flexibilidad de la serie de comandos a funciones relacionadas con el movimiento. Se evita la creación de programas de control que afecten adversamente la experiencia del usuario y el resultado final. Esto permite optimizar la sintaxis del lenguaje para acoplar la funcionalidad de la tarjeta. Con un lenguaje de comando del propietario de la tarjeta, el fabricante controla todo lo que el usuario puede hacer y así se minimiza el riesgo cuando el usuario está escribiendo programas. El riesgo de crear código que pueda dañar el procesador de la tarjeta es por tanto mínimo. Los únicos errores que pueden cometerse son que el sistema no funcione como se espera.

Estos programas obviamente conllevan la necesidad de desarrollar herramientas adaptadas al cliente, pero incluso esto es un beneficio. Para el usuario estos programas de sintaxis limitada son muy fáciles de aprender y las herramientas de programación están integradas con las herramientas de ajuste y configuración del movimiento. Los límites de estos programas son que la sintaxis restringe lo que puedes hacer y estos programas sólo sirven para las tarjetas de un vendedor.

La capacidad para ejecutar programas directamente en la tarjeta de control del movimiento es una extensión natural en el desarrollo de tecnología embebida durante la última década. Avances como la tecnología de memoria no volátil y MCUs/DSPs, el coste de crear plataformas programables ha caído significativamente. Hasta ahora los propietarios de las tarjetas imponían sus propios lenguajes crípticos pero algunos suministradores han comenzado a ofrecer tarjetas que soportan lenguajes de programación standard como C/C++ o el IEC 61131-3 para programar componentes de control industrial.

Hoy en día, C/C++ es el lenguaje standard de programación más comúnmente usado. Con las mejoras en el compilador y las tecnologías linker, el código C está casi tan optimizado como un código de lenguaje ensamblador puro lo hace lo muy rápido y eficiente. La necesidad de bajar los costes de la memoria del programa ha generado que el código haya sido "estrujado" en un espacio limitado de menos de un factor.

La actual tendencia de los usuarios es que se empiezan a preferir los lenguajes de programación en código abierto. Hoy por hoy, C/C++ es el standard de programación más comúnmente usado. Con las mejoras en las tecnologías del compilador y linker, el código C está casi tan optimizado como el código de lenguaje ensamblador puro lo cual lo hace muy rápido y eficiente. Consecuentemente, algunos fabricantes han comenzado como decimos a soportar lenguajes de programación standard.

Para permitir que el usuario escriba en código C que funcione con el procesador de la tarjeta, hay un sistema de operación (OS funcionando en el procesador, justamente como en un PC. En la mayoría de los casos esto es un sistema de operación en tiempo real (RTOS) que gestiona las diferentes funcionalidades del procesador y posiblemente de la tarjeta. Como es el caso en cualquier aplicación funcionando en OS, el código del usuario utiliza la función OS para llamar al acceso a diferentes características que el sistema ofrece al usuario. La característica principal es el sistema del control del movimiento, pero otras características como la comunicación y procesado de datos pueden también ser accesibles.

La gran ventaja de C/C++ respecto al PC es que desarrollar programas para tarjetas de control del movimiento es mucho más simple que para un PC. Con C/C++ el cliente puede usar características avanzadas como llamadas de función, librerías del cliente, etc, que normalmente no están disponibles con los lenguajes específicos del vendedor. Sin embargo, esta flexibilidad puede abrir la posibilidad de que el código del usuario acceda o corrompa otras cosas en el OS y procesador. Para evitar esto, los fabricantes de tarjetas establecen el RTOS y sistema de desarrollo de forma que ayude a asegurar la funcionalidad apropiadamente. Esto se consigue restringiendo las librerías de funciones que están disponibles al usuario, y limitando el acceso a ciertas partes del RTOS y procesador.

Debido a que el código se compila por el procesador que el RTOS hace funcionar, el código se ejecuta a máxima velocidad del procesador y no está sujeto a las limitaciones de velocidad de los lenguajes interpretados. Esta ejecución de código más rápido es a menudo muy importante para el rendimiento de sistemas de control del movimiento multi-ejes.

Standard IEC 61131-3

El standard IEC 61131-3 se desarrolló para mejorar la reutilización de programas de control industrial, creando una interface de programación estándar que permite a grupos de personas diferentes desarrollar distintas partes de un programa. Todas las partes se adhieren a una estructura común para trabajar conjuntamente. Incluido en el standard está la definición de Sequential Function Charts (SFC), que se usa para estructurar el programa, y cuatro lenguajes interoperables: Instruction List (IL), Ladder Diagram (LD), Function Block Diagram (F&D) y Structured Text (ST). Además, los elementos comunes como variables y tipos de datos garantizan la interoperabilidad entre módulos del código.

Bibliografía: Erlendur Kristhansson. Motion control cards for machine design. PMD.

Palabras clave: PC-based control system, industrial motion controllers, distributed architecture, modularized architecture.

Publicar un comentario