PROYECTO FIN DE CARRERA

Título:Diseño y generación automática de código para sistema de control distribuido sobre red CAN

Autor: Jorge de la Flor Martin

Fecha: Agosto 2004

Ø     Introducción

Ø     Descripción del sistema

Ø       Arquitectura global

INTRODUCCIÓN

El diseño, simulación e implementación de sistemas de control han adquirido una gran relevancia en el entorno actual. La sencillez, fiabilidad, seguridad y eficiencia son parámetros muy importantes a la hora de llevar a cabo este tipo de tareas. En consecuencia, la aparición de herramientas informáticas que permitan realizarlas supone un gran ahorro de trabajo y tiempo.

En un sistema de control distribuido aparecen una serie de nodos que actúan como interfaz entre el proceso a regular y dicho sistema. Estos nodos son gestionados por uno o más controladores inteligentes, que generalmente son autómatas o PCs industriales, aptos para trabajar en las condiciones que impone una planta de producción. Dado el desarrollo que han experimentado los microprocesadores y las comunicaciones industriales, en la actualidad es una práctica habitual la implantación de sistemas distribuidos. Este tipo de sistemas está compuesto por un conjunto de módulos de control que se comunican sobre un bus y que actúan como interfaz al proceso que se está controlando a través de sus interfaces actuador-sensor. Cada controlador posee un programa de control local, leyendo las entradas locales con los sensores, comunicándose con otros módulos a través de la red y calculando las salidas y escribiéndolas en los actuadores locales. Distribuir esas tareas de gestión entre varios nodos incrementa sustancialmente la potencia del sistema, siendo posible la resolución de nuevos problemas que exijan una mayor capacidad de cómputo. Tal y como se ha comentado anteriormente, todos los elementos del sistema están conectados por algún tipo de bus de campo. Obviamente, sus características influirán notoriamente en el rendimiento global del sistema.

En este contexto surgen los sistemas empotrados, que son sistemas que funcionan de forma independiente y aislada, teniendo incluso alimentación propia. El diseño de tales sistemas se enfoca a un pequeño tamaño y consumo, lo cual obliga a construir un software modular y que requiera tan pocos recursos como sea posible.

En muchos procesos industriales, el tiempo de respuesta ante una determinada acción o alarma resulta crítico, debe poderse reconducir el sistema a un funcionamiento normal dentro de un espacio de tiempo máximo. En este sentido aparecen los sistemas de tiempo real, cuya principal característica es asegurar un tiempo máximo de respuesta ante un evento. De este modo se garantiza un comportamiento determinista, pudiendo reaccionar el sistema correctamente de forma independiente a las condiciones en las que se encuentre.

Surge la necesidad de crear herramientas para el diseño, simulación e implementación de sistemas de control distribuido en tiempo real. Para llevar a la práctica un sistema de este tipo deben seguirse una serie de pasos: especificar los objetivos, modelar matemáticamente  el proceso, validarlo, diseñar el control, simular el sistema modelado junto con el controlador y finalmente implementar el algoritmo de control.

Este proyecto se enmarca dentro de una plataforma llamada RTF (Real Time Framework), que está siendo desarrollada por el Departamento de Ingeniería de Sistemas y Automática de la E.T.S.I.I e IT de Bilbao. Proporciona un entorno para una sencilla generación de software de control distribuido. Comprende todas las fases de diseño indicadas anteriormente, desde la especificación hasta la generación de código. El análisis de la lógica de planificación de recursos computacionales en entornos distribuidos será el mismo que el de dicha plataforma.

RTF constituye una herramienta sin competencia en el mercado actual, ya que no existen productos con las mismas funcionalidades, debido a que si bien existen productos que cubren alguna de las fases de diseño, no dan soporte a todas ellas de una forma integrada.

Este proyecto constituye una revisión de la plataforma RTF citada anteriormente. Se centrará en la creación de un software que permita especificar e implementar un sistema empotrado de control distribuido en tiempo real, aplicándolo a un bus CAN (Controller Area Network) y a un sistema operativo multitarea de tiempo real denominado VxWorks®  que aseguren una ejecución determinista de las tareas de alta prioridad, incluyendo soporte para una tarjeta de adquisición de datos. Como muestra de funcionamiento de la herramienta, se aplicara a dos casos de estudio particulares, el algoritmo de control de un robot móvil autónomo y  el modelo de proceso de una línea de tratamiento en caliente.

 

DESCRIPCIÓN DEL SISTEMA

 

A continuación se presenta una solución para el diseño y generación automática de código para un sistema distribuido de control  sobre una red CAN, basándonos en el sistema RTF.

El sistema distribuido de control, de una manera general, constara de una serie de nodos CAN conectados mediante un bus, a un nodo inteligente y de propósito general con arquitectura PC-104, capaz de controlar la red y los nodos mediante una tarjeta CAN y controlar una tarjeta de adquisición de datos.

En el nodo inteligente se ejecutara el sistema operativo en tiempo real VxWorks®, mediante una imagen que incluye el código generado y el propio sistema operativo, obtenida con el entorno integrado de desarrollo Tornado™ II.

Gráficamente, podemos imaginar el sistema de control (a nivel hardware) como un sistema de control distribuido que cuente con los elementos de la figura siguiente, en su caso más complejo.

Para ello se debe realizar la construcción desde cero de un sistema denominado CAN RTF (Controller Area Network  Real Time Framework) con capacidad para especificar métodos de distribución basados en el nodo inteligente PC-104 y el resto de los nodos CAN. El sistema también debe tener control de concurrencia, implementado control sobre tareas y comunicación entre procesos para VxWorks®, manteniendo las funcionalidades proporcionadas por Simulink®, StateFlow® y Real Time Workshop® sobre el entorno matemático Matlab®.

Además de las capacidades de especificación, se debe dotar al sistema de capacidad de generar el código total del sistema para VxWorks®, incluyendo el código que descarga desde el nodo PC-104) a los nodos distribuidos el código a ejecutar en estos, el código de configuración y puesta en marcha de la red y cada uno de sus nodos, el código de control a ejecutar en el nodo inteligente y el código necesario para controlar un tarjeta de adquisición de datos.

La herramienta CAN RTF debe estar  dotada de una interfaz de usuario que permita lanzar la generación del modelo en ficheros XML, así como permitir la lectura de modelos en el mismo formato. El interfaz debe también configurar el proceso de generación de código, mediante los parámetros adecuados, y lanzar el proceso de generación automática

Para completar el desarrollo, el entorno de generación automática de código debe ser aplicable, al diseño del modelo de dos casos de uso concretos. El primero de ellos es el algoritmo de control de un robot móvil autónomo, compuesto por un nodo PC-104 controlando una serie de nodos rtfCANopen, a lo largo de una red CAN, y el segundo  el modelo de proceso de una línea de tratamiento en caliente, con un nodo o PC controlando una tarjeta de adquisición de datos.

 

ARQUITECTURA GLOBAL

 

La necesidad del proyecto es generar código automáticamente, a partir de una serie de diagramas correspondientes a diagramas Simulink®, con sus correspondientes bloques funcionales estándar. El entorno Matlab® es capaz de generar código a partir de dichos diagramas de bloques y diagramas de estado de StateFlow®, pero tiene una serie de carencias que este proyecto viene a cubrir.

En la herramienta del proyecto, mediante una serie de bloques nuevos, generados a través de S-functions y ficheros y ficheros MEX con sus librerías de enlace dinámico asociadas, se permitirá al diseñador un control sobre la generación de tareas y la comunicación entre las mismas, mediante los mecanismos tradicionales, como semáforos y memoria compartida entre otros, dándole control sobre el código generado. Para ello además se interferirá en el proceso de generación de código para que estas especificaciones se vean reflejadas en el código obtenido. Este código será compatible y complementario con el del resto de las partes que no incluyan bloques de comunicación entre procesos.

Se incluirán también, otra serie de bloques, que sirvan para controlar las comunicaciones distribuidas y el envió y recepción de mensajes CAN a través de una red de ese tipo. De igual modo se hará el soporte de tarjetas de adquisición de datos.

El proceso de diseño se hará desde la interfaz tradicional de Simulink® y Real Time Workshop®, pero para el proceso de generación se hará uso de una interfaz gráfica de usuario independiente, que se hará cargo del modelo y realizará la interferencia en el proceso de generación de código, ajustando el uso de los recursos de manera optima y teniendo en cuenta las especificaciones tanto a nivel de especificación, distribución y concurrencia introducidas por los bloques adicionales.

La arquitectura del sistema de generación automática de código es la siguiente:

 

Una vez generado el código, se obtendrán los fuentes y makefiles que se utilizarán a continuación para obtener los ficheros ejecutables, mediante el entorno de desarrollo integrado para VxWorks® Tornado™ II.

 


  Volver al inicio