Programa Oficial de Postgrado en Ciencias, Tecnología y Computación

Slides:



Advertisements
Presentaciones similares
Org. y Arquitectura del Computador
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
Objetivos Desarrollar software funcional multi-modelo sobre distintas plataformas para el estudio de sistemas complejos de cómputo de alto rendimiento.
Introducción a la Programación
CÓMO REALIZAR UN PROYECTO
Ingeniería del Software
Tema: Componentes físicos de una computadora
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 7: Proceso de Ingeniería.
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
3.2.2 Arquitectura de referencia para sistemas de tiempo
Propietario En informática se denomina así a un tipo de software o a una plataforma hardware, o a ambos, que es propio de un fabricante concreto.
DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACIÓN UNIVERSIDAD NACIONAL DEL SUR Año 1º 2º 3º 4º 5º Programación Matemática Software Sistemas de Hardware.
Universidad de Guadalajara Sistema de Educación Media Superior.
Programación 1 (01) Prof. Domingo Hernández Departamento de Computación Grupo de Ingeniería de Datos y Conocimiento (GIDyC) Escuela de Ingeniería.
Laura Patricia Pinto Prieto Ingeniera de sistemas.
Introducción a los SSOO Sebastián Sánchez Prieto.
Universidad de Cantabria
LEDA Un Lenguaje para la Especificación y Validación de Arquitecturas de Software Carlos Canal Velasco Depto. de Lenguajes y Ciencias de la Computación.
ROBÓTICA Definición La robótica es una ciencia o rama de la tecnología, que estudia el diseño y construcción de máquinas capaces de desempeñar tareas realizadas.
ANÁLISIS DE LA NECESIDAD DE DISEÑAR UN CONTROL CLIMÁTICO PARA UN INVERNACULO EN LA FICES - UNSL JAVIER CARLETTO, VICTOR RODRIGO
1 Proyecto de Solución de Problemas con Programación Verano 2008.
Lenguajes de programación para sistemas críticos (SC)
Los sistemas Operativos….
Las etapas de un proyecto
Título del trabajo Autores Asesor Facultad de Ciencias de la Salud Programa de Medicina.
Extendiendo Minix a Arquitecturas SMP Jesús M. Álvarez Llorente Juan Carlos Díaz Martín José Manuel Rodríguez García Departamento de Informática Universidad.
Unidad VI Documentación
Desarrollo de aplicaciones para ambientes distribuidos
Estefanía Fernández Oviedo Laura Isabel Gómez Parra
Alma Rosa Colín González. Las aplicaciones distribuidas se han convertido en un aspecto fundamental en los negocios y la industria a nivel mundial. INTRODUCCIÓN.
Maria Isabel Estrada Barón Angie Alejandra Pacheco Tapias Grado: 11°B
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
FACULTAD DE INGENIERIA INDUSTRIAL Y SISTEMAS
LIC. JAIRO GÓMEZ MONCADA
Andrés Harker Gutiérrez Director: Cesar Julio Bustacara Medina MSc. Asesor: Oscar Xavier Chavarro MSc. Arquitectura de un módulo I/O para objetos 3D Pontificia.
Departamento de Ingeniería en Computación
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
Spdece 2008 Contenidos Educativos Digitales Interactivos y Dinámicos en la Red para la Enseñanza de Estadística y Probabilidad en la Educación Secundaria.
Programación Java y Desarrollo de Aplicaciones
Control de Tiempo Real estricto en un robot móvil basado en MaRTE OS
SIMULACIÓN 2015 Universidad Nacional Abierta y a Distancia – UNAD Escuela de ciencias básicas, Tecnología e Ingeniería Curso SIMULACIÓN.
Proyecto SRPAN Descripción de requisitos Orientada al equipo de desarrollo Responsable: Keber Flores B. Proyecto SRPAN – Equipo 4 – Desarrollo de Software.
Guía para la Búsqueda de Información
Arquitectura RISC y CISC 1er semestre 2009 Autores: Carolina Torres,Matías Monsalve Profesor de Cátedra: Mg. Jorge Urbina F. Profesor de Laboratorio: Lic.
Escuela de Ciencias Agrícolas, Pecuarias y del Medio Ambiente Nombre del Curso: Fuentes de Energía Alternativas Director: Catalina Albarracín Administradora.
DESARROLLO DE APPS MÓVILES - Introducción COMPUTER DATA SYSTEMS.
BIBLIOGRAFÍA ANOTADA Maestría en Ingeniería - Ingeniería de Sistemas y Computación Edwin Andrés Bernal López
UNIVERSIDAD DE SANTIAGO DE CHILE ESCUELA DE ARQUITECTURA
Por: Ernesto Y. Soto Rivas G
ARQUITECTURA DE LOS SISTEMAS DE INFORMACIÓN
La Formación del Investigador y el Espacio Europeo de Enseñanza Superior Propuestas Normativas Pedro Chacón Fuertes Director General de Universidades Valencia,
EL REALISMO CIENTIFICO Y LA EDUCACION
Patrones de diseño Grupo 1 Haeberli, Julián Lara, Guisell
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Actividad 20. Métodos de prueba en entornos especializados M.C. Juan Carlos Olivares Rojas Syllabus June, 2009.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Actividades en el Proceso de desarrollo de Software
Sistemas de Información Administrativa Ttramestre MAY - AGO 2008 Catedrático: MC. Pedro Martínez Lucio MC. Pedro Martínez.
FACULTAD DE CIENCIAS COMPUTACIONALES Y TELECOMUNICACIONES ASIGNATURA:
Diseño, implementación y verificación de un sistema de hardware reconfigurable para aplicaciones de control. de un sistema de hardware reconfigurable para.
Tendencia De Los Sistemas Operativos
ENTORNO TECNOLOGICO TEMARIO UNIVERSIDAD DEL VALLLE FACULTAD DE ADMINISTRACION Federico Donneys González Docente Febrero 2009 Introducción Era Tecnológica.
Preparación de Proyectos Módulo 1. Identificación del Proyecto Referenciación.
PRESENTACIÓN DEL CURSO
EI, Profesor Ramón Castro Liceaga IV. AREAS DE EVALUACIÓN DE LA AUDITORIA EN INFORMÁTICA. UNIVERSIDAD LATINA (UNILA)
ECACEN MARKETING INTERNACIONAL Mery Catherine Behrentz Pfalz Directora Universidad Nacional Abierta y a Distancia UNAD Escuela de Ciencias Administrativas.
Maestría en Ingeniería Área Sistemas y Computación.
INSTITUTO TECNOLÓGICO DE LIBRES INGENIERÍA EN SISTEMAS COMPUTACIONALES FUNDAMENTOS E DESARROLLO DE SISTEMAS “PRUEBAS E IMPLEMENTACIONES” INTEGRANTES: SOTERO.
Escuela de Ciencias Básicas Tecnologías e Ingenierías. Curso de Electrónica Industrial Avanzada
Transcripción de la presentación:

Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA Programa Oficial de Postgrado en Ciencias, Tecnología y Computación Máster en Computación Facultad de Ciencias - Universidad de Cantabria Modelos de Referencia en el diseño de controladores industriales utilizando MaRTE OS y Ada Control de Posicionamiento Guiado por Láser en Soldaduras de Virolas Sergio Martín Calvo sergio.martin.calvo@gmail.com Director: Mario Aldea Rivas. Grupo de Computadores y Tiempo Real Santander, julio de 2008

Resumen 1ª Parte Introducción Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA Resumen 1ª Parte Introducción MaRTE OS Ada Objetivos Módulos Software del Modelo de Referencia Análisis Módulos Software necesarios Descripción de los Módulos Descripción de las Relaciones

Resumen 2ª Parte Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Descripción del Sistema de Soldadura Estructura Global del Controlador Control de posición Identificación de Perfiles BTM Conclusiones

MaRTE OS Permite ejecutar aplicaciones en máquinas desnudas. Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA MaRTE OS Permite ejecutar aplicaciones en máquinas desnudas. Controla el acceso a los recursos hardware y software. Sigue el subconjunto mínimo de tiempo real POSIX Threads Mutex, Variables condiciones y semaforos Señales Relojes y contadores Suspension de Threads Funcionalidad extra: Manejo de interrupciones Hardware MaRTE OS es un sistema operativo empotrado de tiempo real distribuido bajo licencia GNU/GPL. Ha sido desarrollado principalmente por Mario Aldea Rivas, como uno de los resultados de su tesis doctoral, dentro del Grupo de Computadores y Tiempo Real, bajo la dirección de Michael González Harbour. Sus principales características son: Funcionalidad del perfil mínimo del subconjunto POSIX.13 incluida en MaRTE OS: Threads: también llamados Hilos o Hebras. Un Traed es una secuencia de instrucciones ejecutada en paralelo con otras secuencias. Los Threads son una forma de dividir un programa en varias tareas que se ejecutan de forma concurrente. Mútelex, Variables Condicionales, Semáforos: estructuras utilizadas para la sincronización de varios Threads. Señales: servicio del núcleo que permite indicar la existencia de un evento. Relojes y contadores: ofrecen funcionalidad para controlar el tiempo de ejecución de cada Thread. Suspensión de Threads, retrasos absolutos y relativos. ”Ficheros”de dispositivo y entrada/salida Permiten tratar los dispositivos desde un punto de vista abstracto como si fueran un fichero al que realizar llamadas del tipo open, read, write, ... Funcionalidad extra: Manejadores de interrupciones hardware, planificación definida por la aplicación. En la figura podemos ver la arquitectura en forma de capas de MaRTE OS para una aplicación escrita en Ada y en C. La principal diferencia entre ambas radica en la capa utilizada para comunicar la aplicación con el resto del sistema. En el caso de las aplicaciones Ada, esta interacción se realiza en su mayor parte de forma indirecta a través de la librería de tiempo de ejecución del compilador GNAT, llamada GNARL, y en parte a través de la interfaz POSIX-Ada. Es decir, para crear un hilo de ejecución no usamos una función como en C, sino que creamos una tarea Ada, mediante la palabra task, y sería la librería GNARL la que se encargue de transformar adecuadamente esa instrucción según el sistema operativo donde se ejecute (o incluso puede ser una máquina desnuda). Sin embargo, si queremos sincronizar una tarea con un thread C, no podemos usar las utilidades de Ada (como los objetos protegidos) sino que necesitamos recurrir a servicios del sistema operativo, los Mutexes en este caso, mediante la interfaz POSIX-Ada. La librería de tiempo de ejecución es en su mayor parte independiente de la plataforma sobre la que se ejecuta. Sólo una peque˜na parte, denominada GNULL (GNU Low-level Library), debe ser modificada para adaptarse a las diferentes plataformas de ejecución. Esta adaptación es necesaria para cada versión del compilador GNAT por lo que MaRTE OS es definitivamente dependiente del compilador GNAT. No podemos compilarlo con un compilador Ada cualquiera. En el caso de las aplicaciones C, la interacción se realiza a través de la interfaz POSIX. 1, una capa muy delgada consistente únicamente en un conjunto de ficheros de cabecera que definen directamente las funciones exportadas por el núcleo de MaRTE OS y la librería estándar C.

Ada Legibilidad Tipado fuerte Construcción de grandes programas Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA Ada Legibilidad Tipado fuerte  Construcción de grandes programas  Manejo de excepciones  Abstracción de datos  Procesamiento paralelo  Unidades genéricas  EL Lenguaje de programacion Ada es el mas utilizado en sistemas de Tiempo Real debido a que: Desde el se puede formular el modelo de concurrencia las politicas de planificacion y mecanismos de sincronizacion Legibilidad  Los programas profesionales se leen muchas más veces de las que se escriben, por tanto, conviene evitar una notación que permita escribir el programa fácilmente, pero que sea difícil leerlo excepto, quizás, por el autor original y no mucho tiempo después de escribirlo. Tipado fuerte  Esto asegura que todo objeto tenga un conjunto de valores que esté claramente definido e impide la confusión entre conceptos lógicamente distintos. Como consecuencia, el compilador detecta más errores que en otros lenguajes. Construcción de grandes programas  Se necesitan mecanismos de encapsulado para compilar separadamente y para gestionar bibliotecas de cara a crear programas transportables y mantenibles de cualquier tamaño. Manejo de excepciones  Los programas reales raramente son totalmente correctos. Es necesario proporcionar medios para que el programa se pueda construir en capas y por partes, de tal forma que se puedan limitar las consecuencias de los errores que se presenten en cualquiera de las partes. Abstracción de datos  Se puede obtener mayor transportabilidad y mejor mantenimiento si se pueden separar los detalles de la representación de los datos y las especificaciones de las operaciones lógicas sobre los mismos. Procesamiento paralelo  Para muchas aplicaciones es importante que el programa se pueda implementar como una serie de actividades paralelas. Dotando al lenguaje de estos mecanismos, se evita tener que añadirlos por medio de llamadas al sistema operativo, con lo que se consigue mayor transportabilidad y fiabilidad. Unidades genéricas  En muchos casos, la lógica de parte de un programa es independiente de los tipos de los valores que estén siendo manipulados. Para ello, se necesita un mecanismo que permita la creación de piezas de programa similares a partir de un único original. Esto es especialmente útil para la creación de bibliotecas.

Objetivos Identificar Modelo de Referencia Desarrollo de la aplicación Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA Objetivos Identificar Modelo de Referencia Conjunto mínimo de módulos Patrones de interacción básica Desarrollo de la aplicación Controlador de Posicionamiento Guiado por Láser en Soldadura de Virolas. Los controladores industriales requieren implementar un conjunto de módulos software que son comunes a todos ellos: gestión de terminales de mando, drivers de dispositivos físicos, evaluación de trayectorias, control de servos, registro de eventos, tratamientos de acciones de emergencia, etc. Asimismo, hay que conseguir características que son comunes a todos ellos, como garantizar requisitos de tiempo real, ser implementados con recursos de memoria limitados o no disponer de sistemas de almacenamiento masivo. El trabajo que se propone es identificar y seleccionar un conjunto básico de estos módulos, así como caracterizar su funcionalidad, los parámetros de configuración que los hacen reutilizables y los patrones de interacción básicos entre ellos, el sistema que controlan y el operador. Así como proponer un modelo de referencia optimizado para ser implementado en el lenguaje de programación Ada y sobre el sistema operativo de tiempo real Marte OS. El objetivo de este trabajo es proponer las bases para el diseño modular de controladores industriales, que reduzca el esfuerzo y el tiempo para su desarrollo, y la propuesta de un proceso que garantice niveles contrastados de calidad interna y externa del software que se genere. Los resultados del trabajo se validarán aplicándolos al desarrollo del controlador de posicionamiento por perfil láser en la soldadura de virolas y comparándolos con otro controlador industrial, el BTM.

Análisis de los Módulos Software Módelos de Referencia en el Diseño de Controladores Industriales utilizando MaRTE OS y ADA Análisis de los Módulos Software Configuracion Reportero Control de Servos Gestor de Mandos Planificador Maquina Mandos • Configuración: En este módulo se describen todos los parámetros del sistema que son configurables. Aunque muchos de estos parámetros corresponden a otros módulos del sistema, tales como los propios de los mandos o el robot, se ha preferido agruparlos todos en un mismo módulo para simplificar la labor de configurar el sistema. Casi todos los módulos del sistema leen los parámetros configurables del módulo configuracion. • Mandos: Este módulo engloba todos los elementos de la unidad de mandos del robot, en concreto la botonera, las luces de la botonera, la seta de emergencia, posibles displays. El módulo proporciona operaciones para leer el estado de los mandos, así como para poder encender o apagar las diferentes luces del cuadro de mandos, poner valor a los displays… • Gestor de Mandos: Este módulo gestiona las órdenes que el usuario introduce a través de la unidad de mandos. En concreto determina el modo de funcionamiento del controlador, gestiona los cambios de modo de funcionamiento, y almacena órdenes que el planificador debe ejecutar. También gestiona las luces del cuadro de mandos, encendiéndolas y apagándolas, así como posibles displays en función del estado y de las alarmas existentes • Máquina: Este módulo englobara los elementos de la máquina de sistema en cuestión Los elementos se agrupan en dos tipos: sensores, cuyos valores se pueden leer, y actuadores, sobre los que se puede actuar. Los sensores serían los que permitirían extraer información que obtuviese la máquina, como podrían ser topes de recorrido. Los actuadores son los que permitirían especificar las consignas de los servos, la salida de habilitación de los mismos entre otras funcionalidades que podría tener la maquina en cada caso. • Control de Servos: este modulo se encarga de controlar los motores del robot • Reportero: Este módulo se encarga de leer periódicamente el estado del sistema, y presentarlo. • Alarmas: Este módulo se encarga de almacenar el estado de las alarmas del sistema. Otros módulos pueden modificar este estado, o leerlo. • Planificador: Este módulo se encarga de planificar las acciones a realizar por el controlador. Como entradas, recibirá las órdenes que provienen del gestor de mandos y del Control de Servos y de los módulos específicos de cada sistema. Como salida proporciona periódicamente las acciones a tomar por el controlador. Las principales relaciones entre los módulos serán: • Los módulos deberán tener acceso para leer los datos de configuración que se encuentren en el paquete “Configuracion”. • Entre el “Gestor de Mandos” y los “Mandos”, en la que el primero leerá y escribirá el estado del segundo EL Gestor de mandos podra activar o desactivar las alarmas relacionadas • Entre el “Control de Servos” y la “Maquina” en la que el primero leerá los sensores y actuara sobre los actuadores que componen el segundo. EL control de servos podra activar o desactivar las alarmas relacionadas • El “Reportero” deberá tener acceso a toda la información que le puedan ofrecer el resto de los paquetes para poder representarla • El “Planificador” al que podríamos llamar la cabeza pensante del sistema deberá tener acceso a toda la información que le puedan ofrecer el resto de los paquetes para tomar las decisiones adecuadas en función de lo que se quiera llevar a cabo. Actuadores Sensores Luces Botones Displays Alarmas

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Virolas cilíndricas

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Imagen de una soldadura

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Arquitectura Hardware

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Estructura del Controlador

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Mandos

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Máquina

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Reportero

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Seampilot

Control de Posicionamiento Guiado por Láser en Soldadura de Virolas Reconocimiento de Patrones

BTM Estructura del Controlador

Conclusiones Estructuras similares Aplicaciones diferentes Estructura independiente de la Distribución Aplicación Láser Aplicación BTM

Muchas Gracias AGRADECIMIENTOS Me gustaría agradecer a mi director de Tesis de Máster Mario Aldea Rivas, por dejarme libertad para realizar este trabajo aunque siempre bajo su supervisión y apoyo, a Michael González Harbour con el que he realizado gran parte del proyecto para ENSA y del que he aprendido muchísimo a lo largo de este proyecto y de manera especial a todo el equipo de trabajo de ENSA, a los que no nombro uno a uno porque seguro que me olvidaría de alguien, donde he pasado mucho tiempo desarrollando, probando y poniendo a punto el prototipo y me han tratado como a uno más de su equipo de trabajo.