MetodologĂa de Desarrollo de aplicaciones basadas en componentes para automatizaciĂłn industrial
Conozca sobre esta metodologĂa originaria de la Universidad de Cantabria. Estrategias de Automatizacion Industrial Tutor: Ing. Judith Devia.
Equipo Editorial
Editorial Carlos Oronoz
Arte Juan Ascanio Producción Carlos Oronoz Juan Ascanio Documentación Carlos Oronoz Juan Ascanio Maquetación Carlos Oronoz Juan Ascanio © Modbus . Marca Registrada. Año I, N° 3. Curso Especial de Grado. I - Corte: Automatización y Control de Sistemas Industriales. Estrategias de Automatizacion Industrial. Todos los derechos reservados. 2014.
La Universidad de Cantabria (UC) es una universidad pública radicada en la comunidad autónoma de Cantabria (España). Tiene quince centros distribuidos en tres campus, uno localizado en Santander, otro situado en Torrelavega y un tercero en Comillas. Para el curso 2012-2013 cuenta con 14.205 alumnos y 1.267 profesores. Varios profesores colegiados en la institución formaron el “Grupo de Computadores y Tiempo Real”, equipo de investigación responsable de la metodología que presentamos en esta edición.
Secciones Editorial ......................................... 4 Introducción a: …………………............ 5 Ingeniería de Software en Automatización Industrial. Definiendo: ………………………............ 6 Desarrollo Basado en Componentes. Sistemas de Tiempo Real. Conociendo a Profundidad .............. 7 Metodología para desarrollo de aplicaciones basadas en componentes para Automatización Industrial.
Conclusiones de la Semana ………… 10 Documentación ………………………..... 11 3
Editorial El Curso Especial de Áreas de Grado ha proporcionado un ambiente idóneo para el desarrollo de la creatividad y el conocimiento, por esto que cada una de nuestras ediciones brinde un contenido educativo de calidad. Nosotros, el equipo MODBUS agradece nuevamente a nuestros lectores y compañeros por su apoyo, nuestro esfuerzo será recompensado con su justa evaluación. Para nuestra tercera edición, el equipo editorial decidió hacerle una dedicación especial al desarrollo de aplicaciones para Automatización Industrial. Con el auge de la automatización industrial comenzaron a desarrollarse paquetes de software orientados al control de la industria y por lo tanto nuevos paradigmas de programación, como pueden ser la coordinación, la programación orientada a componentes, o la movilidad, que persiguen una mejora en los procesos de construcción de aplicaciones software.
SEMANARIO DEL CURSO ESPECIAL DE GRADO
Introducción a: Ingeniería de Software en la Automatización Industrial. La ingeniería software trata de aplicar la tecnología de componentes a fin de reducir los costos y plazos de desarrollo y abordar la creciente complejidad de las aplicaciones informáticas. Mientras que en muchos dominios de aplicación, como en multimedia, ofimática, o interfaces gráficas, etc., la tecnología de componentes está plenamente consolidada, en otros, como es el caso de los sistemas de tiempo real su aplicación presenta problemas que no están aún resueltos y en consecuencia su uso no es habitual. Sin embargo, la tecnología de componentes en sistemas de tiempo real está siendo requerida por la industria de automatización, de potencia y equipamientos eléctricos, aviación, automoción, etc. A continuación indagaremos más sobre cómo un grupo de profesores de la Universidad de Cantabria en España está desarrollando una metodología que fusione ambas tecnologías, y su aplicación al desarrollo de una gama de componentes destinados al dominio de la automatización industrial.
5
Definiendo: Desarrollo Basado en Componentes. La ingeniería de software basada en componentes (CBSE) (también conocida como desarrollo basado en componentes (CBD)) es una rama de la ingeniería de software que enfatiza la separación de asuntos, por lo que se refiere a la funcionalidad de amplio rango disponible a través de un sistema de software dado. Es un acercamiento basado en la reutilización para definir, implementar, y componer componentes débilmente acoplados en sistemas. Esta práctica persigue un amplio grado de beneficios tanto en el corto como el largo plazo, para el software en sí mismo y para las organizaciones que patrocinan tal software.
Sistemas de Tiempo Real. Es un sistema informático que interactúa con su entorno físico, respondiendo a los estímulos de él, en un plazo de tiempo determinado. No basta con que las acciones del sistema sean correctas, sino que, además, tienen que ejecutarse dentro de un intervalo de tiempo determinado. El tiempo en que se ejecutan las acciones del sistema es significativo. Cabe destacar que suelen estar integrados en un sistema de ingeniería más general, en el que realizan funciones de control y/o monitorización (Sistema empotrados).
6
Metodología de Desarrollo de aplicaciones basadas en componentes para Automatización Industrial.
Fue presentada en las XXIV Jornadas de Automática el 11 de septiembre de 2003, en la Universidad de León, España; Jornadas auspiciadas por el Comité Español de Automática. Está desarrollada por Patricia López Martínez, Pedro Espeso, Julio Luis Medina y José M. Drake, un grupo de profesores de la Universidad de Cantabria, en España.
El diseño de componentes de tiempo real es más complejo que el diseño de componentes que tienen sólo requerimientos funcionales. En primer lugar, los requisitos de temporización implican especificar las
las capacidades de colaboración y sincronización entre componentes a un nivel más bajo del que proporcionan las interfaces. En segundo lugar, las plataformas habituales de los sistemas de tiempo real son heterogéneas y proporcionan tan sólo recursos limitados. Y en tercer lugar, para que un componente pueda ofrecer prestaciones de tiempo real, debe estar soportado por sistemas operativos, sistemas de comunicación, bases de datos, etc. Que ofrezcan servicios específicos de gestión de tiempo, de sincronización y de planificación predecibles. Sin embargo, está actualmente admitido, que la principal dificultad para la implantación de la tecnología de componentes de tiempo real surge de la falta de estrategias y experiencia de cómo implementar la tecnología de componentes en los entornos de tiempo real. 7
La metodología se enfoca en el La interfaz se formula mediante un modelado, diseño y análisis de modelo UML. componentes de tiempo real. Se apoya en las características de componibilidad y robustez que son la base de la tecnología de componentes, y la característica de predictibilidad de los sistemas de tiempo real. Para ello, se deben tomar en cuenta la especificaciones de los componentes, el cual es un descriptor tanto el contrato de uso, el cual que describe los servicios que ofrece el componente, como el contrato de instalación que especifica el entorno y los servicios que se requieren para que pueda operar un componente de tiempo real. Estos deben incorporar un modelo específico que describa las características temporales de las respuestas que ofrece y las de los recursos que para ello se necesitan. Además es importante tomar en cuenta la “interfaz”, la cual es el recurso de interoperabilidad funcional entre los componentes, y permiten modelar, describir y gestionar el dominio de la aplicación.
Se requiere disponer de una metodología que incorpore a la especificación del componente como parte de los contratos de uso y de instalación, la descripción del comportamiento temporal de los servicios que ofrece con independencia de la implementación concreta del componente que se esté utilizando. Es la concepción de cada situación de tiempo real que se presente en la aplicación como un conjunto de transacciones cuyas ejecuciones concurren en la plataforma. A fin de formular el modelo de tiempo real de un componente y de construir el modelo de tiempo real de una aplicación a partir de los modelos de tiempo real de los componentes con que se construye, se ha definido el perfil CBSE-Mast que se formula como un metamodelo UML.
Habitualmente los sistemas de tiempo real se implementan como sistemas cerrados en los que todos los elementos hardware y software están dedicados a él, Actualmente comienzan a tener relevancia los sistemas de tiempo real implementados totalmente o parcialmente sobre entornos abiertos, esto es, el sistema de tiempo real comparte la plataforma con otras aplicaciones no modeladas desde el punto de vista de tiempo real y que pueden interferir sobre su comportamiento temporal. El planteamiento sobre el que se trabaja actualmente, consiste en incorporar a los componentes que deban operar en un entorno abierto un planificador local que durante la fase de instanciación negocia con el sistema operativo un contrato de servicio.
Si el contrato es aceptado, el planificador local un contrato de servicio. Si el contrato es aceptado, el planificador local garantizará que losr requerimientos temporales ofertados en el contrato de uso del componente serán satisfechos. Para la aplicación de esta metodología, sobre la que actualmente se está trabajando, hay que desarrollar aún los siguientes aspectos: • Adaptar el sistema operativo para que tenga capacidad de negociar y dar soporte a los contratos de servicio. Por ello se ha desarrollado un núcleo de sistema operativo de tiempo real que satisface el estándar POSIX.13 (Interfaz portable de sistema operativo) que define el perfil de sistemas de tiempo real mínimos. • Definir técnicas de análisis de planificabilidad de tiempo real basadas en los contratos de servicio. • Formular una metodología de diseño de componentes de tiempo real fundamentada en los contratos de servicio.
Conclusiones de la Semana. La tecnología de componentes proporciona unos beneficios pertenecientes a la ingeniería de software, para disminuir tiempos de desarrollo y crear aplicaciones seguras dentro del aumento constante de la complejidad. Por otra parte existen conflictos esta metodología entre la especificación y su implementación con la característica de predictibilidad que requieren las aplicaciones de tiempo real, en las que el comportamiento temporal de la respuesta, que es parte fundamental de su especificación, depende claramente de su estructura interna y de la plataforma sobre la que opera. Por otra de debido a su fase de desarrollo y su complejidad, es difícil hoy en día su adaptación, sin embargo el desarrollo de esta metodología permite tener la capacidad de satisfacer tareas en un tiempo de respuesta mínimo otra característica radica en su constante desarrollo puesto que con los avances tecnológicos se construyen nuevas mecanismos que operan en tiempo real y que por consiguiente necesitan tener sistemas controlados por un computador que tenga la capacidad de interactuar con el mundo físico. Dela misma manera el proceso de trabajo que se ha visualizado y que sigue en desarrollo propone fusionar una metodología de modelado del comportamiento temporal de los servicios al contrato de uso del componente. Estos modelos tienen las necesarias características de asegurar un método de diseño que permita los componentes de un programa una vez diseñados y construidos, pueden reusarse para crear otros sistemas y permitir construir un modelo fiable de una aplicación a partir de los modelos de los componentes que utiliza y de la plataforma sobre 10 la que se ejecutan.
Documentación López P., Espeso P., Medina J. y Drake J. (2003) Metodología de Desarrollo de Aplicaciones basadas en Componentes para Automatización Industrial. [Documento en línea] Disponible en:http://www.ceautomatica.es/old/actividades/jornadas/X XIV/documentos/tire/146.pdf Villarroel, J. Sistemas de Tiempo Real. [Documento en línea] Disponible en: http://webdiis.unizar.es/~joseluis/STR.pdf Ingeniería de Software Basada en Componentes. [Artículo en línea] Disponible en: http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_softwar e_basada_en_componentes
Aplicaciones de Sistemas de Tiempo Real. [Presentación en línea] Disponible en: http://webcache.googleusercontent.com/search?q=cache:vo cykw7QzK8J:delta.cs.cinvestav.mx/~pmejia/capi2tr.ppt+&cd =7&hl=es-419&ct=clnk&gl=ve
11
DaceDroid Monagas
12
agradece por todo el apoyo recibido a los equipos: SCADA, PLC, ERP, PROFIBUS, CAD, CAM, DCS, SCM y CRM. Y a nuestra tutora de seminario, Judith Devia, por guiarnos al conocimiento.
13
14