Desarrollo de una metodología para la generación de librerías de comunicación utilizando entornos de programación gráficos con aplicación en el sector educativo e industrial
Texto completo
(2) INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES DE MONTERREY DIVISIÓN DE MECATRÓNICA Y TECNOLOGÍAS DE INFORMACIÓN PROGRAMA DE GRADUADOS EN MECATRÓNICA Y TECNOLOGÍAS DE INFORMACIÓN. Los miembros del comité de tesis recomendamos que la presente tesis del Ing. Abraham Ortiz Morán sea aceptada como requisito parcial para obtener el grado académico de: Maestro en Ciencias con especialidad en Automatización.. Comité de tesis:. ______________________________ M.C. Armando Céspedes Mota Asesor. ______________________________ Dr. Francisco Palomera Palacios Sinodal. ______________________________ M.C. Luis Carlos Félix Herrán Sinodal. ______________________________ Dr. Joaquín Acevedo Mascarúa Director de Investigación y Posgrado de la Escuela de Ingeniería. Diciembre 2008 2.
(3) Desarrollo de una metodología para la generación de librerías de comunicación utilizando entornos de programación gráficos con aplicación en el sector educativo e industrial.. Por:. Ing. Abraham Ortiz Morán. TESIS. Presentada al Programa de Graduados en Mecatrónica y Tecnologías de Información Este trabajo es requisito parcial para obtener el grado de Maestro en Ciencias con especialidad en Automatización.. INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY. Diciembre 2008. 3.
(4) Dedicatoria A mis padres, por ayudarme para hacer realidad cada uno de mis sueños. A mi abuelita, porque su cariño me acompañará por siempre.. 4.
(5) Agradecimientos A mi asesor el M.C. Armando Céspedes por apoyarme durante todo el proceso de la tesis. A mis sinodales el Dr. Francisco Palomera y el M.C. Luis Carlos Félix por sus valiosas aportaciones. A la empresa Tecnodidácticos S. de R.L. de C.V. bajo su filial hitech INGENIUM por su apoyo con los productos fischertechnik. Les deseo mucho éxito. A todos mis compañeros de la maestría por los buenos momentos que vivimos estudiando y haciendo tareas. A todos los que directa o indirectamente son partícipes de este logro.. 5.
(6) Índice general ÍNDICE GENERAL.............................................................................................................................................6 ÍNDICE DE FIGURAS ........................................................................................................................................9 ÍNDICE DE TABLAS ........................................................................................................................................11 CAPÍTULO 1. INTRODUCCIÓN .................................................................................................................12. 1.1 MOTIVO DE LA INVESTIGACIÓN ..............................................................................................................12 1.2 SITUACIÓN PROBLEMÁTICA ....................................................................................................................13 1.3 PROBLEMA ..............................................................................................................................................14 1.4 OBJETIVOS DE LA INVESTIGACIÓN ..........................................................................................................14 1.5 MARCO TEÓRICO.....................................................................................................................................14 1.6 MODELO PARTICULAR ............................................................................................................................15 1.6.1 Hipótesis .......................................................................................................................................15 1.6.2 Método de investigación...............................................................................................................16 1.6.2.1. Fases ................................................................................................................................................... 16. 1.7 RECURSOS ...............................................................................................................................................18 1.7.1 Humanos.......................................................................................................................................18 1.7.2 Hardware......................................................................................................................................18 1.7.3 Software........................................................................................................................................20 1.8 PLAN DE TRABAJO ...................................................................................................................................21 1.9 DESCRIPCIÓN DE LA TESIS .......................................................................................................................23 1.10 CONTRIBUCIONES ...................................................................................................................................24 CAPÍTULO 2. TENDENCIAS EN EL DESARROLLO DE HERRAMIENTAS DE LENGUAJES DE PROGRAMACIÓN CON FINES DIDÁCTICOS E INDUSTRIALES ...........................26. 2.1 HERRAMIENTAS DE PROGRAMACIÓN ......................................................................................................26 2.2 LIBRERÍAS DE PROGRAMACIÓN ...............................................................................................................27 2.2.1 Orígenes .......................................................................................................................................27 2.2.2 Clasificación de las librerías........................................................................................................28 2.2.2.1 2.2.2.2 2.2.2.3. Librerías estáticas............................................................................................................................... 28 Librerías dinámicas ............................................................................................................................ 28 Librería de Vínculos Dinámicos DLL................................................................................................ 29. 2.3 PORTABILIDAD........................................................................................................................................29 2.4 INTEROPERABILIDAD ..............................................................................................................................30 2.5 PLATAFORMAS ........................................................................................................................................31 2.5.1 Plataformas de hardware .............................................................................................................31 2.5.2 Plataformas de software...............................................................................................................31 2.5.2.1 2.5.2.2. Plataforma Java .................................................................................................................................. 31 Plataforma .NET ................................................................................................................................ 32. 6.
(7) 2.6 APLICACIONES DE CÓDIGO ABIERTO .......................................................................................................32 2.6.1 Premisas del código abierto .........................................................................................................32 2.6.2 Características y ventajas ............................................................................................................33 2.7 EVOLUCIÓN DE LOS ENTORNOS DE PROGRAMACIÓN ...............................................................................34 2.7.1 Programación basada en el flujo de datos...................................................................................34 2.7.1.1. 2.7.2. 2.7.2.1. 2.7.3. Características .................................................................................................................................... 34. Lenguajes de programación gráficos ...........................................................................................34 Ejemplos y características .................................................................................................................. 35. LabVIEW ......................................................................................................................................36. 2.7.3.1. Características .................................................................................................................................... 36. CAPÍTULO 3. DESARROLLO DE LIBRERÍAS DE PROGRAMACIÓN UTILIZANDO ENTORNOS DE PROGRAMACIÓN GRÁFICOS……………….. .................................38. 3.1 ELECCIÓN DE UN LENGUAJE GRÁFICO DE PROGRAMACIÓN .....................................................................39 3.2 DEFINICIÓN Y ORGANIZACIÓN DE LAS ENTRADAS Y SALIDAS DE UNA LIBRERÍA .....................................39 3.2.1 Núcleo de la librería.....................................................................................................................40 3.2.2 Tipos de datos...............................................................................................................................40 3.3 GUÍA PARA LA PROGRAMACIÓN GRÁFICA ...............................................................................................41 3.3.1 Acomodo gráfico de las entradas .................................................................................................41 3.4 CASO PRÁCTICO CON PRODUCTOS FISCHERTECHNIK ...............................................................................42 3.4.1 Fischertechnik ..............................................................................................................................42 3.4.2 Descripción...................................................................................................................................43 3.4.3 Objetivos.......................................................................................................................................44 3.4.4 Alcances........................................................................................................................................44 3.4.4.1 3.4.4.2. 3.4.5 3.4.6. Generación del núcleo de la librería............................................................................................45 Edición de funciones.....................................................................................................................52. 3.4.6.1 3.4.6.2. 3.4.7. Estructura del documento................................................................................................................... 61 Compilación de la documentación ..................................................................................................... 64. Compilación de la librería ...........................................................................................................65. 3.4.8.1. 3.4.9. Introducción ....................................................................................................................................... 52 Desarrollo ........................................................................................................................................... 52. Creación de la documentación .....................................................................................................60. 3.4.7.1 3.4.7.2. 3.4.8. Dentro del alcance.............................................................................................................................. 44 Fuera del alcance................................................................................................................................ 44. Propiedades del instalador.................................................................................................................. 68. Guía de instalación de la librería ................................................................................................72. CAPÍTULO 4. UTILIZACIÓN DE SISTEMAS INALÁMBRICOS COMO UNA ALTERNATIVA DE BAJO COSTO PARA EL MONITOREO Y EL CONTROL DE PROCESOS........77. 4.1 DESCRIPCIÓN ..........................................................................................................................................77 4.2 CARACTERÍSTICAS GENERALES PARA LAS REDES DE SENSORES INALÁMBRICOS ZIGBEE .......................79 4.3 APLICACIONES DE ZIGBEE ......................................................................................................................79 4.4 DISPOSITIVOS..........................................................................................................................................80 4.4.1 Coordinador ZigBee (ZC) ............................................................................................................80 4.4.2 Ruteador ZigBee (ZR)...................................................................................................................80 4.4.3 Dispositivo final (ZED) ................................................................................................................80 4.5 FUNCIONALIDAD .....................................................................................................................................81 4.5.1 Dispositivo de funcionalidad completa (FFD).............................................................................81 4.5.2 Dispositivo de funcionalidad reducida (RFD) .............................................................................81 4.6 TOPOLOGÍAS DE RED ...............................................................................................................................81 4.7 MÉTODO DE GESTIÓN DE DATOS Y DISPOSITIVOS EN UNA RED ZIGBEE...................................................82 4.7.1 Utilizando balizas.........................................................................................................................82 4.7.2 Sin utilizar balizas ........................................................................................................................83 4.8 ZIGBEE Y SU COMPATIBILIDAD CON LABVIEW .....................................................................................83 4.9 DESARROLLO ..........................................................................................................................................84 4.9.1 Fase 1: Planeación.......................................................................................................................84 4.9.1.1. Objetivo y alcances ............................................................................................................................ 84. 7.
(8) 4.9.1.2. 4.9.2. 4.9.2.1 4.9.2.2. 4.9.3 4.9.4. Comunicaciones ................................................................................................................................. 86 Código necesario ................................................................................................................................ 87. Fase 3: Diseño..............................................................................................................................88 Fase 4: Desarrollo .......................................................................................................................88. 4.9.4.1 4.9.4.2. 4.9.5. Hardware utilizado ............................................................................................................................. 85. Fase 2: Análisis ............................................................................................................................86. Sistema ZigBee .................................................................................................................................. 89 Librería LabVIEW ............................................................................................................................. 89. Fase 5: Puesta en marcha ............................................................................................................90. CAPÍTULO 5. SIMULACIÓN INDUSTRIAL .............................................................................................92. 5.1 QUIENES NECESITAN SIMULACIONES INDUSTRIALES ..............................................................................92 5.2 BENEFICIOS DE LA SIMULACIÓN INDUSTRIAL ..........................................................................................95 5.3 EMPRESAS CONSTRUCTORAS DE SIMULADORES ......................................................................................95 5.4 TIPOS DE SIMULADORES INDUSTRIALES ..................................................................................................96 5.4.1 Simuladores físicos a escala.........................................................................................................96 5.4.2 Simuladores virtuales ...................................................................................................................97 5.4.3 Simuladores mixtos.......................................................................................................................98 5.5 SIMULACIÓN INDUSTRIAL INTEGRAL ......................................................................................................98 5.6 TECNOLOGÍAS INVOLUCRADAS ...............................................................................................................99 5.7 METODOLOGÍA PARA LA ELABORACIÓN DE UN PROYECTO DE SIMULACIÓN INDUSTRIAL .....................100 5.7.1 Selección del tipo de simulador a realizar .................................................................................100 5.7.2 Selección de la herramienta .......................................................................................................101 5.7.3 Selección del proceso real a simular..........................................................................................101 5.7.4 Definición del proyecto ..............................................................................................................102 5.7.4.1 5.7.4.2 5.7.4.3. 5.7.5. Objetivo de la simulación................................................................................................................. 102 Alcance de la simulación ................................................................................................................. 102 Planeación ........................................................................................................................................ 102. Construcción del modelo ............................................................................................................103. 5.7.5.1 5.7.5.2. Selección de los materiales .............................................................................................................. 103 Programación ................................................................................................................................... 104. 5.7.6 Validación del modelo ................................................................................................................104 5.7.7 Análisis de resultados y propuestas de mejora ..........................................................................104 5.8 MODELOS INDUSTRIALES COMO UNA ALTERNATIVA PARA EL ENTRENAMIENTO DE PERSONAL ............105 CAPÍTULO 6 6.1 6.2. CONCLUSIONES Y TRABAJO FUTURO......................................................................106. CONCLUSIONES .....................................................................................................................................106 TRABAJO FUTURO .................................................................................................................................108. BIBLIOGRAFÍA ..............................................................................................................................................109 ANEXO A.. INTERFAZ DE PRUEBA Y MONITOREO ....................................................................113. A.1 OBJETIVO ..............................................................................................................................................113 A.2 DESARROLLO ........................................................................................................................................113 ANEXO B. B.1 B.2 B.3. CONTROL A DISTANCIA UTILIZANDO EL ROBOT MÓVIL FISCHERTECHNIK ROBO EXPLORER .......................................................................118. OBJETIVO ..............................................................................................................................................118 DESARROLLO ........................................................................................................................................118 FUNCIONAMIENTO DEL ROBO EXPLORER ...........................................................................................120. 8.
(9) Índice de figuras Figura 1-1 Ciclo de Vida del Proyecto. ............................................................................................................. 17 Figura 1-2 Diagrama de Gant para la librería de comunicaciones fischertechnik. ........................................... 23 Figura 1-3 Diagrama de Gant para la librería de comunicación inalámbrica ZigBee....................................... 23 Figura 1-4 Diagrama de Gant para la elaboración del reporte escrito............................................................... 23 Figura 3-1 Representación gráfica de algunos tipos de datos utilizados por LabVIEW................................... 40 Figura 3-2 Criterio de acomodo para las entradas y salidas en un lenguaje visual. .......................................... 41 Figura 3-3 Estructura de programación propuesta para los VIs. ....................................................................... 42 Figura 3-4 Importación de la librería dinámica umFish40.dll para generar los VIs correspondientes a las funciones........................................................................................................................................ 45 Figura 3-5 Crear o actualizar VI a partir de un archivo DLL............................................................................ 46 Figura 3-6 Selección del archivo que contiene la librería dinámica y el archivo con el encabezado de las funciones........................................................................................................................................ 46 Figura 3-7 Selección de los directorios a incluir en la librería y definiciones para el procesador. ................... 47 Figura 3-8 Alertas sobre la creación de los VIs de la librería. .......................................................................... 48 Figura 3-9 Selección de las funciones que serán convertidas en VIs................................................................ 48 Figura 3-10 Configuración de las propiedades de la librería creada en LabVIEW........................................... 49 Figura 3-11 Selección del manejo de los errores............................................................................................... 50 Figura 3-12 Configuración del nombre y las propiedades de los VIs y controles generados. .......................... 50 Figura 3-13 Resumen del proceso de creación de la librería............................................................................. 51 Figura 3-14 Proceso de generación. .................................................................................................................. 51 Figura 3-15 Funciones de la librerίa umfish40.dll ............................................................................................ 52 Figura 3-16 Función rb Open Interface usb. ..................................................................................................... 53 Figura 3-17 Panel frontal de la función Open Interface USB. .......................................................................... 53 Figura 3-18 Edición del VI y sus propiedades. ................................................................................................. 54 Figura 3-19 Editor de íconos. ............................................................................................................................ 54 Figura 3-20 Ícono correctamente editado.......................................................................................................... 55 Figura 3-21 Ícono en diferentes versiones de color........................................................................................... 55 Figura 3-22 Comparación del panel frontal antes y después de ser editado. .................................................... 56 Figura 3-23 Opciones del VI. ............................................................................................................................ 56 Figura 3-24 Texto y formato de la descripción para el VI. ............................................................................... 57 Figura 3-25 Ayuda contextual terminada. ......................................................................................................... 57 Figura 3-26 Diagrama de bloques ante una situación sin errores a la entrada. ................................................. 58 Figura 3-27 Diagrama de bloques ante una situación de error a la entrada 1. .................................................. 59 Figura 3-28 Diagrama de bloques ante una situación de error a la entrada 2. .................................................. 59 Figura 3-29 Imagen final de los diagramas terminados. ................................................................................... 60 Figura 3-30 Formato de ejemplo tomado de la librería S7PLC. ....................................................................... 61 Figura 3-31 Estructura del archivo de ayuda en formato HTML. ..................................................................... 62 Figura 3-32 La imagen del archivo CHM proviene de la ayuda contextual. .................................................... 62 Figura 3-33 Marco superior modificado............................................................................................................ 63. 9.
(10) Figura 3-34 Edición del arhivo Marco3. ........................................................................................................... 63 Figura 3-35 Ventana de trabajo Easy CHM v3.78 ............................................................................................ 64 Figura 3-36 Estructura de compilación lista para ser compilada. ..................................................................... 65 Figura 3-37 Visor de archivos compilados de Windows................................................................................... 65 Figura 3-38 Estructura general del proyecto. .................................................................................................... 66 Figura 3-39 Selección de las propiedades de los VIs contenidos en la librería. ............................................... 67 Figura 3-40 Propiedades definidas para los VIs incluidos en el instalador....................................................... 68 Figura 3-41 Información del producto. ............................................................................................................. 69 Figura 3-42 Selección de los archivos fuente y especificación de los directorios de destino. .......................... 70 Figura 3-43 Selección de instalaciones adicionales. ......................................................................................... 70 Figura 3-44 Definición de la información de bienvenida al instalador. ............................................................ 71 Figura 3-45 Compatibilidad de versiones para LabVIEW y sistema operativo. ............................................... 71 Figura 3-46 Pantalla de bienvenida al instalador de la Librería de Comunicaciones Fischertechnik para LabVIEW....................................................................................................................................... 72 Figura 3-47 Selección de los directorios de instalación. ................................................................................... 73 Figura 3-48 Contrato de licencia para el software de National Instruments. .................................................... 73 Figura 3-49 Inicio de la instalación de los componentes. ................................................................................. 74 Figura 3-50 Avance del proceso de instalación................................................................................................. 75 Figura 3-51 Instalación finalizada. .................................................................................................................... 75 Figura 3-52 Desde el panel Agregar o quitar programas de windows se puede ver la información general de la librería y el procedimiento de desinstalación. ............................................................................... 76 Figura 4-1 Topologías de red soportadas por la tecnología ZigBee.................................................................. 82 Figura 4-2 Protocolos de comunicación disponibles en LabVIEW. ................................................................. 83 Figura 4-3 Funciones disponibles para el protocolo Bluetooth......................................................................... 84 Figura 4-4 Componentes del kit de demostración PICDEM Z. ........................................................................ 86 Figura 4-5 Comunicaciones entre los dispositivos de una red ZigBee. ............................................................ 87 Figura 4-6 Funciones disponibles en LabVIEW para comunicación serial. ..................................................... 88 Figura 4-7 Programación de los microcontroladores ZigBee............................................................................ 89 Figura 4-8 Iconos de las funciones ZigBee. ...................................................................................................... 90 Figura 4-9 Programación de la función ZigBee Open....................................................................................... 90 Figura 4-10 Aplicación desarrollada para realizar las pruebas de la librería ZigBee. ...................................... 91 Figura 5-1 Ejemplo de simuladores industriales físicos de la marca Staudinger. ............................................. 97 Figura 5-2 Simulador virtual de un almacén automático. ................................................................................. 97 Figura 5-3 Comparación entre un simulador físico (izquierda) y un simulador virtual (derecha).................... 98 Figura 5-4 Librería de comunicación para PLC Siemens S7-300. .................................................................. 100. 10.
(11) Índice de tablas Tabla 1-1 Recursos humanos empleados para la realización del proyecto. ......................................................18 Tabla 1-2 Recursos de hardware utilizados para el proyecto. ...........................................................................18 Tabla 1-3 Recursos de software utilizados para el proyecto. ............................................................................20 Tabla 1-4 Planeación de las actividades del proyecto. ......................................................................................21 Tabla 2-1 Ejemplos de lenguajes de programación visual. ...............................................................................35 Tabla 5-1 Aplicaciones de la simulación industrial detalladas por sectores. ....................................................93 Tabla 5-2 Comparativa para seleccionar el software más indicado para un simulador industrial. .................101. 11.
(12) Capítulo 1 Introducción. 1.1 Motivo de la investigación Los retos para la automatización de procesos industriales y cotidianos, son una tarea que requiere conjugar una serie de factores técnicos y humanos cada día más especializados. Ante el escenario mencionado, la industria de la automatización ha visto emerger una amplia diversidad de productos para el control automático de procesos, que en conjunto, permiten a los ingenieros desarrollar soluciones más eficientes, ecológicas y económicamente factibles. La inversión de tiempo y dinero destinados al desarrollo de mecanismos de interconexión, ya sean de hardware o software es una tarea indispensable para empresas donde a diario conviven tecnologías actuales con tecnologías de cinco, diez o veinte años de antigüedad. La fórmula del éxito para desarrollar soluciones eficientes se basa en el trabajo y la comunicación de los productos utilizados en la integración de un proyecto. Para garantizar la buena comunicación de los equipos se crean continuamente protocolos de comunicación estándar, los cuales pueden ser utilizados para reprogramar equipos, recopilar información o crear redes de información con capacidades correctivas y preventivas. Una manera estructurada y funcional para desarrollar herramientas de software para la comunicación, programación o supervisión de procesos, es empleando el concepto de “librerías”. Las librerías son un conjunto de propiedades y métodos que además de ofrecer beneficios de protección y autoría, pueden ser fácilmente distribuidas al interior de los distintos departamentos de una empresa. Los lenguajes de programación también evolucionan dejando a un lado los lenguajes basados en texto para dar espacio a interfaces de programación gráficas; éstas abren nuevas oportunidades para lograr un lenguaje de programación que pueda ser utilizado por igual en 12.
(13) niños, jóvenes y adultos. Dichos lenguajes se basan en el flujo de información, por lo que resultan más intuitivos y fáciles de interpretar. Las herramientas y conceptos expuestos ofrecen una manera de estructurar y dar vida a nuevos proyectos, potencializando las áreas de planeación, diseño y evaluación de nuevas soluciones que demanda la industria, la vida cotidiana y el medio ambiente.. 1.2 Situación problemática Hasta la década de los 90’s se creía que la programación y utilización de computadoras era algo reservado para los científicos e ingenieros; sin embargo, la tecnología se ha involucrado rápidamente en el quehacer del hombre, a tal grado que actualmente se utiliza para reproducir música, ver videos y mantener comunicación a través de mensajes vía teléfonos celulares, por mencionar algunos ejemplos (Godoy Rodríguez, 2008). La nueva dinámica demanda aplicaciones cada día más personalizadas, no sólo en su apariencia, sino en el funcionamiento y en las prioridades de ejecución de los procesos. El grado de adaptación ha llegado a un nivel que sólo el propio usuario puede interpretar sus deseos. Actualmente la personalización se alcanza con la utilización de parámetros, no obstante llegará el momento en que el usuario demande opciones para programar las funciones de cualquier aparato que adquiera. Predecir que en la siguiente década surjan equipos con interfaces de programación que permitan al usuario personalizar sus equipos conforme a sus necesidades, no es una idea ambiciosa, pues es una tecnología que cada día evoluciona con mucha fuerza y con fines de establecerse en cualquier mercado que amerite la programación. La propuesta sin lugar a dudas resulta controversial entre los mismos usuarios, pues se cree que la programación es una actividad abstracta y compleja. Es seguro que cuando el tiempo llegue no será de ninguna forma complicada, por el contrario será tan gráfica e intuitiva que los usuarios no se darán cuenta que se han convertido en programadores de última generación (Travis & Kring, 2007). Para llegar a ese futuro tan prometedor es necesario superar varios retos, el primero de ellos se encuentra parcialmente completo, puesto que la Internet es el medio de comunicación por excelencia y por consiguiente sus estándares y protocolos sin importar el fabricante. Dicho lo anterior el segundo y más importante reto se confiere al concepto mismo de programación. La necesidad de un concepto de programación que se mantenga íntegro para las personas, desde una etapa infantil hasta una etapa adulta resulta indispensable para un mundo en que las disciplinas se especializan, pero al mismo tiempo se entrelazan de manera horizontal desde los departamentos directivos hasta los de producción.. 13.
(14) La enseñanza de una estructura de programación tiene impactos positivos en otras áreas del ser humano, puesto que genera una cultura de planeación y prevención al tener un pensamiento estructurado. Una buena planeación de los proyectos, en el mediano y largo plazo asegura un crecimiento estructurado y viable (López García, 2007). Lograr un entorno de vida y producción intercomunicado, basado en la planeación, puede iniciar con la implementación de un concepto de programación sencillo y poderoso.. 1.3 Problema Existe carencia de herramientas de programación gráficas que permitan a toda clase de personas adentrarse en el mundo de la programación de controladores, ya sean didácticos o industriales. Dicha limitante es uno de los principales retos de países en vías de desarrollo. Una alternativa al problema propuesto es la generación de herramientas de programación gráficas diseñadas para niños, jóvenes y adultos que les permitan comprender, modificar y programar de manera efectiva, utilizando un concepto de programación estandarizado. Para la implementación del concepto se requiere de un proyecto a mediano y largo plazo, que incorpore el uso de nuevas tecnologías y una cultura basada en la planeación.. 1.4 Objetivos de la investigación •. Desarrollar una herramienta de programación gráfica que permita a principiantes o expertos de los entornos de programación gráficos comprender, modificar y programar de una manera efectiva utilizando un concepto de programación estandarizado.. •. Promover el uso de las buenas prácticas de programación de sistemas con alto grado de portabilidad, que les permita compartir sus desarrollos sin comprometer sus derechos intelectuales.. •. Generar una cultura de planeación utilizando recursos tecnológicos para garantizar la viabilidad de un proyecto en el mediano y largo plazo.. •. Promover el uso de nuevas tecnologías a favor de la simplicidad y el ahorro en la implementación de los sistemas educativos e industriales.. 1.5 Marco teórico La computación ha basado su desarrollo en la creación de código que permite escribir un nuevo código, éste aspecto cíclico de las ciencias computacionales representa un 14.
(15) crecimiento exponencial (Moore, 1965), puesto que cuanto más herramientas de desarrollo hay disponibles, mayor es la cantidad de código producido. Para dar un crecimiento ordenado al desarrollo, se ha recurrido a la utilización de librerías, en las cuales se agrupan funciones que son la materia prima para desarrolladores de aplicación de mayor nivel. Gracias a las librerías, las aplicaciones cotidianas gozan de portabilidad e interoperabilidad. La portabilidad permite intercambiar archivos de un procesador de palabras en cualquier computadora y el documento siempre tendrá las mismas características sin importar la marca del fabricante del equipo, el tipo de monitor o el idioma de la aplicación. La interoperabilidad se refiere a la capacidad con la cual diferentes aplicaciones se comunican entre sí utilizando determinados tipos de archivos o protocolos, previamente estandarizados y agrupados en una librería. Uno de los tipos de librería más utilizado en la actualidad es denominado DLL que significa Librería de Vínculos Dinámicos. La producción de software está basada en texto, es decir, todos los códigos escritos en lenguaje ensamblador, C++, .NET, JAVA o BASIC tienen en común un diseño secuencial basado en instrucciones de texto. Con seguridad, los lenguajes mencionados aún tienen asegurado un espacio preponderante en la industria de la creación de software; sin embargo, las tendencias de la programación apuntan a una manera más intuitiva y natural de programar: la programación gráfica. Los beneficios conceptuales y técnicos de la programación gráfica rompen el paradigma que la programación es difícil. Con elementos gráficos basados en el flujo de datos, las etapas de diseño y creación de software ahora se encuentran más ligadas y en algunos casos resultarán transparentes. Éstos y otros argumentos descritos en el presente trabajo invitan a reflexionar sobre la carga conceptual que la programación gráfica ya está aportando a la sociedad (Travis & Kring, 2007).. 1.6 Modelo particular 1.6.1. Hipótesis. Partiendo del problema descrito en la sección 1.3 se propone la utilización de un “concepto de programación unificado” en todas las etapas de enseñanza de un individuo. Dado que no todos los individuos tienen el perfil o el interés por la programación, se descarta desde un inicio que el concepto planteado se pueda implementar utilizando un lenguaje abstracto basado en texto. Con la implementación de un concepto de programación gráfico, la penetración en los usuarios será mayor; por consiguiente, el mismo usuario demandará aplicaciones y dispositivos con interfaces gráficas ya sea para su utilización o programación.. 15.
(16) La mejor etapa para iniciar con el concepto expuesto se encuentra durante la infancia, cuando los niños tienen el deseo de conocer todo y no tienen ninguna clase de prejuicios sobre la programación. Con la introducción de robots didácticos, controlados por medio de programación gráfica en escuelas de educación elemental se puede dotar a los niños de conceptos básicos de programación que les servirán durante toda su vida sin importar el área de estudio que elija. 1.6.2. Método de investigación. El método para el desarrollo del ciclo de vida es uno de los primeros métodos enfocados al desarrollo de proyectos, desde su planeación hasta el mantenimiento. Es un modelo de tipo lineal el cual plasma una secuencia de etapas que deben ser cumplidas antes de entrar a etapas posteriores (Pressman, 2004). La elección del método de investigación para el presente trabajo se basó en dos premisas fundamentales, la primera consiste en proponer un concepto de programación unificado, tal como se describe en la sección 1.3; lo cual implica analizar las tendencias de la programación durante los próximos 15 años. La segunda premisa reside en proponer un caso práctico, en el cual se demuestre que un mismo concepto de programación puede resolver los retos informáticos de un niño, un joven o un adulto. 1.6.2.1 Fases La metodología comprende siete fases predominantes, pero cada etapa puede integrar un método de desarrollo específico según convenga: •. Fase 1: Planeación. En base a la información inicial, se define el problema a resolver, los posibles orígenes del mismo y se determina un plan de acción para resolverlo.. •. Fase 2: Análisis. Cada acción planteada para resolver el problema debe ser cuidadosamente estudiada; el análisis debe mostrar si el proyecto es viable en tiempo y forma con los recursos materiales y humanos a los que se tiene acceso.. •. Fase 3: Diseño. Los resultados del análisis se utilizan para diseñar el plan de acción, en donde se especifica la estructura y secuencia de las acciones.. •. Fase 4: Desarrollo. Cuando se tiene un diseño sólido se puede iniciar la etapa de desarrollo del producto o solución al problema planteado en la fase 1. Se crean las aplicaciones computacionales, los medios de comunicación o la selección del equipo requerido.. •. Fase 5: Puesta en marcha. El sistema es probado consecutivamente tratando de identificar posibles fallas. Cuando el sistema se encuentra libre de fallas se procede a implementarlo. 16.
(17) •. Fase 6: Implementación. El sistema es instalado en su posición permanente, se deben realizar las adecuaciones físicas necesarias para asegurar que el sistema funcione un largo periodo de tiempo con la mínima intervención de mantenimiento o reparación.. •. Fase 7: Mantenimiento. Para mantener el funcionamiento de un sistema es necesario brindarle mantenimiento, es decir, supervisar y reparar todo aquello que puede comprometer la integridad del sistema en momentos críticos.. Como se observa claramente, la metodología propuesta plantea una estructura secuencial sencilla pero al mismo tiempo adaptable a la necesidades de cada fase. Visto desde el punto de vista del manejo del proyecto, la estructura expone desde un inicio el calendario de actividades, puesto que cada etapa puede ser marcada con sus fechas de inicio y fin, así como los encargados de las mismas. La metodología al igual que los conceptos propuestos en el presente trabajo, aportan un marco unificado para su reutilización y mejoramiento, tal como lo plantea el manejo del ciclo de vida del proyecto.. Fase 1: Planeación. Fase 7: Mantenimiento. Fase 2: Análisis. Fase 6: Implementación. Fase 3: Diseño. Fase 5: Pruebas. Fase 4: Desarrollo. Figura 1-1 Ciclo de Vida del Proyecto.. 17.
(18) 1.7 Recursos Para garantizar el logro de los objetivos propuestos se enlistan los recursos necesarios para el correcto desarrollo de todo el proyecto. 1.7.1. Humanos Tabla 1-1 Recursos humanos empleados para la realización del proyecto.. Nombre Descripción Soporte técnico para la El creador de la librería es el ingeniero de origen utilización de la librería alemán Ulrich Müller, por medio del correo electrónico dinámica umfish40.dll se realizan las preguntas pertinentes. Capacitación de los equipos La empresa Tecnodidácticos S. de R.L. de C.V. bajo su fischertechnik. filial hitech INGENIUM nos dotó de toda la capacitación para utilizar sus productos, además de patrocinar los productos de su marca utilizados para el proyecto. Asesoría de parte de National Atención personal por teleconferencias para logar Instruments para compilar compilar la librería en un archivo instalador. librerías.. 1.7.2. Hardware Tabla 1-2 Recursos de hardware utilizados para el proyecto.. Nombre Fischertechnik ROBO Interface. Descripción Micro-controlador de 16-bits USB e Interfaz serial. Memoria temporal (memoria flash) de 128 Kbytes para descargar 2 diferentes programas a la Interfase. 4 salidas para motor de 9v/250 mA (máx. 1 Amper) con control de velocidad variable. 8 entradas digitales. 2 entradas análogas para resistencias desde 0 a 5 kΩ. 2 entradas análogas para voltajes de 0v a 10v. 2 entradas digitales para sensores de distancia. Conexión para el módulo de expansión ROBO I/O Extensión. 18.
(19) Entrada para interfase de vínculo de datos de Radio Frecuencia ROBO RF. Transmisor infrarrojo. Programable con el software ROBO Pro Graphics o con compilador-C. Medidas: 23.0 x 15.0 x 6.5 cm Peso:. 0.500 Kgs. Fischertechnik ROBO RF Data Interfase de Radio Frecuencia para la ROBO Interface. Link Se conecta a la PC por medio de Interfase USB (Transmisor). La conexión de la Interfase RF es una tarjeta adicional que se conecta a la ROBO Interface. No necesita fuente de poder adicional. Rango aproximado de 10 metros. Frecuencia 2.4 GHz. Se pueden configurar 8 frecuencias para la operación simultánea de 8 dispositivos. Medidas: 23.0 x 15.0 x 6.5 cm Peso: 0.250 Kg Fischertechnik ROBO Explorer. Robot didáctico móvil que contiene los siguientes elementos: 2 Motores de potencia. 1 Fototransistor. 1 Resistencia NTC. 1 Sensor de distancia ultrasónico. 1 Sensor de colores. 1 Sensor seguidor de línea. 1 Chicharra. 3 Lámparas indicadoras. Edades: +10 años. Medidas: 46.5 x 32.0 x 8.0 cm Peso: 1.3 Kg.. Equipo de computadoras). cómputo. (2 Procesador Intel Pentium Dual-Core T2390 Windows Vista Home Basic Memoria DDR2 de 1024MB Unidad de disco de 160GB a 5400rpm. 19.
(20) 1.7.3. Software Tabla 1-3 Recursos de software utilizados para el proyecto.. Nombre Fischertechnik ROBO Software.. Descripción Pro Aplicación de programación gráfica para Windows 98/ME/NT/2000, XP para activar la ROBO Interface y la ROBO I/O Extensión. Fácil de usar para los principiantes, gracias a las utilerías gráficas de flujo de programación, que consiste de varios módulos de software (arrastrar-pegar). Los datos pueden intercambiarse entre los módulos de software y subrutinas usando no sólo variables, sino también conexiones gráficas. El funcionamiento de los programas es sencillo de entender. Contiene subrutinas prefabricadas que se almacenan en un directorio, y pueden usarse sin necesidad de entender el funcionamiento interno de las mismas. El lenguaje de programación gráfico ROBO Pro Software, proporciona todos los elementos básicos de un lenguaje de programación moderno, tales como arreglos, funciones, iteraciones, objetos y eventos asíncronos, haciéndolo una herramienta útil inclusive para los programadores profesionales. Los programas se traducen directamente al lenguaje máquina para una ejecución eficiente.. Controlador Fischertechnik Interface.. para. la Fragmento de software capaz de proveer una capa de ROBO abstracción entre el sistema y la Fischertechnik ROBO Interface.. Controlador para el Fragmento de software capaz de proveer una capa de Fischertechnik ROBO RF Data abstracción entre el sistema y el Fischertechnik ROBO Link. RF Data Link. LabVIEW 8.5. Herramienta de programación gráfica desarrollada por National Instruments. Se utiliza para pruebas, control y diseño. El lenguaje es denominado “G” debido a que es gráfico.. Umfish40.dll. Librería de Vínculos Dinámicos desarrollada por (Müller, 2006) para interactuar con los productos fischertechnik.. Visual CHM. Compilador de archivos *.html para ser convertidos en archivos de ayuda de windows *.chm. 20.
(21) Sitio: http://www.zipghost.com/easychm.html Microsoft FrontPage. Editor de páginas Web de Microsoft.. 1.8 Plan de trabajo La planeación del proyecto se realizó a un horizonte de 1 año, las actividades y tiempos específicos se definen en la siguiente calendarización. Tabla 1-4 Planeación de las actividades del proyecto.. Tarea. Duración. Inicio. Fin. Definición del tema del proyecto.. 10 días. 7/1/2008. 10/1/2008. Definición de los objetivos y entregas del proyecto.. 5 días. 10/1/2008. 17/1/2008. Planeación. 3 días. 28/1/2008. 30/1/2008. Recursos. 3 días. 28/1/2008. 30/1/2008. Entrega de propuesta para desarrollar las funciones de comunicación.. 5 días. 2/2/2008. 7/2/2008. Definición de formatos y estilos.. 5 días. 4/2/2008. 8/2/2008. 10 días. 9/2/2008. 21/2/2008. 30 días. 22/2/2008. 3/4/2008. Compilación de la ayuda en formato CHM.. 5 días. 4/4/2008. 10/4/2008. Desarrollo de las funciones en VIs.. 45 días. 25/2/2008. 25/4/2008. Desarrollo de ejemplos.. 45 días. 25/2/2008. 25/4/2008. Protección del diagrama de bloques de los VIs.. 5 días. 28/4/2008. 2/5/2008. Generación de los archivos de distribución.. 3 días. 5/5/2008. 7/5/2008. Definición de las entradas y salidas de las funciones. Desarrollo de la documentación y ayuda de las funciones.. 21.
(22) Investigación sobre las propiedades de compilación de librerías.. 10 días. 28/4/2008. 9/5/2008. Compilación de la librería.. 3 días. 12/5/2008. 14/5/2008. Sensores inalámbricos.. 60 días. 26/5/2008. 15/8/2008. Investigación documental.. 15 días. 26/5/2008. 13/6/2008. Pruebas generales para validar el sistema.. 10 días. 16/6/2008. 27/6/2008. 10 días. 30/6/2008. 11/7/2008. 7 días. 14/7/2008. 22/7/2008. Pruebas transmisión.. 7 días. 28/7/2008. 5/8/2008. Cálculo de Interferencia.. 7 días. 7/8/2008. 15/8/2008. Planeación del reporte escrito.. 3 días. 18/8/2008. 20/8/2008. Estructuración de tesis.. 5 días. 21/8/2008. 27/8/2008. Búsqueda de fuentes bibliográficas.. 60 días. 11/8/2008. 31/10/2008. Capítulo 1. 10 días. 25/8/2008. 5/9/2008. Capítulo 2. 10 días. 8/9/2008. 19/9/2008. Capítulo 3. 10 días. 22/9/2008. 3/10/2008. Capítulo 4. 10 días. 6/10/2008. 17/10/2008. Capítulo 5. 10 días. 20/10/2008. 31/10/2008. Conclusiones. 5 días. 3/11/2008. 7/11/2008. Códigos para la lectura de datos desde LabVIEW. Validación de la estructura de comunicación.. 22.
(23) Figura 1-2 Diagrama de Gant para la librería de comunicaciones fischertechnik.. Figura 1-3 Diagrama de Gant para la librería de comunicación inalámbrica ZigBee.. Figura 1-4 Diagrama de Gant para la elaboración del reporte escrito.. 1.9 Descripción de la tesis En el Capítulo 2 se provee el conocimiento necesario en el cual se sustenta la tesis. Se realiza un recorrido por la historia y eventos que han producido los avances en las herramientas de programación actuales. La industria del software toma día con día un papel fundamental en la vida cotidiana; la necesidad por desarrollar aplicaciones portables y 23.
(24) capaces de comunicarse entre sí es una demanda constante para cualquier desarrollador. En el capítulo también se aborda el concepto de aplicaciones de código abierto, para enfatizar que se pueden compartir desarrollos innovadores, conservando la autoría intelectual de los algoritmos. Por último, se expone la rápida evolución de los entornos de programación, que han dado un enorme salto desde la programación basada en texto hacia los novedosos entornos de programación gráficos. El Capítulo 3 esta enfocado al desarrollo de librerías de programación utilizando entornos de programación gráficos. Con fines demostrativos se realiza la selección de un lenguaje de programación gráfico comercial, tomando en cuenta la facilidad de manipulación, el soporte técnico de cada uno de ellos y de manera primordial su utilización en aplicaciones científicas e industriales. Para complementar la selección del programa, se muestra una guía con reglas prácticas para realizar una programación gráfica estructurada y eficiente, capaz de transmitir información de una manera óptima. Por último se expone un caso práctico, en el cual se diseñó y programó la librería de comunicaciones para los robots móviles de la marca alemana fischertechnik. La librería sienta un lazo sólido entre uno de los entornos de programación gráfica más poderosos y el sistema de construcción modular con más renombre en el área de la simulación industrial. El contenido del Capítulo 4 trata sobre una herramienta para el monitoreo y el control de procesos que poco a poco está reemplazando la utilización del cableado estructural. Se trata de los sensores y actuadores inalámbricos, para los cuales se crea una librería de comunicaciones basada en los fundamentos descritos en el capítulo 3. La implementación confirma que los formatos y consideraciones descritas aplican a una amplia gama de dispositivos, propósitos y marcas. Para finalizar el capítulo se exponen razones de peso para que alumnos y desarrolladores adopten las guías de programación descritas para dar trascendencia a sus desarrollos y permitir que otros los utilicen para acelerar el proceso de creación de nuevas aplicaciones. En el Capítulo 5 se describe el concepto de la simulación industrial. Los beneficios de probar un proyecto antes de construirlo se traducen en ahorro y productividad, esa es la principal razón por la cual empresas y diseñadores recurren a sistemas de simulación industrial ya sea virtuales o construidos a escala. En el contenido del capítulo se muestran las etapas necesarias para llevar a buen fin un proyecto de simulación industrial que brinde a los usuarios información útil para validar o ajustar el proyecto. En el Capítulo 6 se presentan los resultados obtenidos y se ofrece una serie de sugerencias para realizar implementaciones y desarrollos futuros.. 1.10 Contribuciones •. Se presentan las razones por las cuales, la introducción de un concepto de programación unificado debe ser incluido desde una etapa temprana en la educación 24.
(25) y permanecer constante en su esencia durante las diferentes etapas educativas y profesionales. •. Se describe la manera específica para conceptualizar una librería tanto de comunicación como de programación, para intercomunicar dispositivos con el entorno de programación gráfico LabVIEW. La propuesta también incluye sugerencias de formato y reglas para dotar al programador gráfico de medios que le permitan maximizar la trascendencia de su desarrollo.. •. La librería de comunicaciones fischertechnik es una herramienta de programación gráfica para los aficionados que gustan de utilizar al máximo y con la mejor tecnología los sistemas de construcción modular. Además, los alcances y versatilidad permitirán que niños a partir de 10 años puedan utilizar robots fischertechnik partiendo de una programación gráfica desarrollada en LabVIEW.. •. Ejemplos prácticos para la construcción de librerías.. •. Integración de una librería para el desarrollo de un proyecto de simulación industrial.. •. La utilización de la librería aplicada en la simulación industrial tiene un especial sentido en instituciones técnicas y universitarias de países en vías de desarrollo; puesto que pone al alcance de los estudiantes y de las instituciones, herramientas de alto valor didáctico a precios muy inferiores a los de una implementación real.. 25.
(26) Capítulo 2 Tendencias en el desarrollo de herramientas de lenguajes de programación con fines didácticos e industriales. En el presente capítulo se presenta la forma en que las herramientas de programación se han desarrollado; dicho desarrollo ha requerido del nacimiento y evolución de conceptos demandados por la ciencia, la actividad industrial y de manera indiscutible por la actividad comercial. La necesidad de establecer estándares, garantizar la portabilidad de las aplicaciones, la interoperabilidad de los sistemas así como materializar soluciones para los nuevos retos se deben atender. Nuevos entornos de programación permitirán que niños, jóvenes y adultos puedan utilizar una misma estrategia de programación para solucionar retos acordes a su entorno.. 2.1 Herramientas de programación Las herramientas de programación permiten realizar aplicaciones, programas, subprogramas o sistemas operativos que computadoras o procesadores utilizan para realizar sus funciones. Las herramientas de programación más conocidas son los compiladores, las herramientas de desarrollo para videojuegos, las plataformas Java o .NET y los entornos de desarrollo integrados. Un cuarto de siglo atrás las herramientas de programación eran máquinas perforadoras, dichas máquinas eran usadas por el programador para realizar una serie de perforaciones en una tarjeta de cartón que posteriormente indicarían a la computadora los cálculos que debía realizar. Está por demás mencionar la titánica labor de depuración y corrección de errores. Los “debuggers” son aplicaciones enfocadas a depurar el código, el avance en la materia es tal que un “debugger” tiene capacidades predictivas y hasta correctivas en tiempo de ejecución (Daley, 2006). 26.
(27) Evolución es la palabra que define la historia de la programación, tanto en la parte de software como de hardware.. 2.2 Librerías de programación Para las ciencias computacionales la agrupación de subprogramas para desarrollar aplicaciones de mayor nivel o complejidad es denominada librería, biblioteca ó por el término anglosajón “toolkit”. Las librerías deben contener además, archivos de ayuda, datos, compatibilidad y portabilidad que pasarán a estar contenidos en los programas que utilicen la librería. La información heredada permite que los programas realizados puedan ser ejecutados en otras plataformas de programación sin la necesidad de realizar ajustes mayores. Una de las características primordiales de las librerías es que por si mismas no son ejecutables, una librería no debe ser confundida con un programa compilado, aún cuando la mayoría de los programas están basados en librerías para realizar sus operaciones de cálculo o comunicación. La comunicación entre librerías y programas ejecutables se realiza por medio de enlaces o links en un proceso conocido como enlace (Schalkoff, 2007). Las librerías son la materia prima del creciente desarrollo de la industria del software. Por tal motivo deben ser homologadas para garantizar a los desarrolladores y usuarios que las aplicaciones funcionarán de la misma manera en todos los equipos. 2.2.1. Orígenes. El desarrollo del concepto de una librería de programación nació como una necesidad para atacar los retos de programación que cada día son más complejos. COBOL en el año de 1959 fue el primer entorno de programación que integró un sistema de bibliotecas y aún cuando su estructura estaba limitada, marcó el inicio de una nueva etapa, en la cual los problemas podían ser atacados por un camino distinto al de dividirlos en “pequeños problemas” (Sammet, 1969). La posibilidad de desarrollar subprogramas llegó junto con FORTRAN, así como la posibilidad de compilar archivos por separado, en lugar de hacer una sola compilación por aplicación. El concepto actual de librería estaba casi completo, sólo hacía falta integrar un enlazador que permitiera un flujo de información constante entre las aplicaciones y los diferentes tipos de subprogramas. En el año de 1967 Kristen Nygaard y Ole-Johan Dahl del Norwegian Computer Center de Oslo, dieron el impulso final para consolidar la programación orientada a objetos propuesta por Simula 67, el desarrollo definió los conceptos de clase, objeto y herencia, lo que a nivel conceptual define la manera en que las empresas, los catedráticos y los estudiantes realizan sus aplicaciones computacionales en la actualidad (Daley, 2006). Con el paso de los años se han creado diferentes tipos de librerías, dependiendo del tipo de enlace que realizan y su 27.
(28) desempeño, en la sección 2.2.2 se presenta una descripción de los dos tipos de librería predominantes. 2.2.2. Clasificación de las librerías. 2.2.2.1 Librerías estáticas Las librerías estáticas se componen de rutinas, dichas rutinas son copiadas a la aplicación deseada por medio del compilador o enlazados, creando archivos con código objeto y un fichero ejecutable independiente. El resultado de la compilación es un archivo estático de la aplicación construida, en donde el código y las bibliotecas son asignados a direcciones estáticas finales; las direcciones reales, referencias para saltos y las llamadas a rutinas se almacenan en direcciones relativas o simbólicas. Las llamadas realizadas a las librerías generan direcciones no resueltas, así que el enlazador resuelve todas las direcciones y las convierte en direcciones fijas o re-localizables. Las direcciones son luego utilizadas para cargar el código y las librerías en la memoria principal durante el tiempo de ejecución. Por la complejidad del proceso el enlazado de direcciones puede necesitar de más tiempo que el mismo proceso de compilación. El enlazador sólo puede trabajar con tipos compatibles de librerías, las librerías a su vez cuentan con ficheros objeto. Los ficheros utilizados se recopilan en una biblioteca que puede distribuirse y utilizarse con facilidad. Las aplicaciones o bibliotecas de subrutinas acceden a las bibliotecas de objetos por medio de su identificador o nombre. 2.2.2.2 Librerías dinámicas Las librerías dinámicas tienen todas las características de las librerías estáticas, pero tienen la ventaja que las subrutinas del programa principal son cargadas en tiempo de ejecución, en lugar de realizar los enlaces durante la compilación. La etapa de enlazado representa una mínima cantidad de tiempo, en lugar de copiar toda un lista de direcciones de las librerías sólo se registran las librerías necesarias para el programa y el índice de nombres de las rutinas contenidas en la librería. La labor de enlazado no sólo se limita al proceso de compilación, las librerías dinámicas hacen uso extensivo del enlazador al momento de cargar la aplicación o durante la ejecución. Dependiendo del sistema operativo utilizado, el enlace dinámico de la aplicación se puede realizar antes de que el proceso sea iniciado; se denomina como enlace en tiempo de carga. Sistemas operativos más poderosos tienen la capacidad de enlazar bibliotecas aún cuando la aplicación ya está en funcionamiento, el enlace a las librerías se realiza sólo cuando el programa hace una referencia específica a ella, dicho proceso es conocido como carga en tiempo de ejecución. La arquitectura de los enlaces dinámicos es tan poderosa que las únicas limitaciones que pueden tener son las de permisos de usuarios o licencias.. 28.
(29) 2.2.2.3 Librería de vínculos dinámicos DLL Las librerías de vínculos dinámicos (Dynamic Linking Library) fueron desarrolladas por Microsoft para ser el componente de los programas para el sistema operativo Windows. Los archivos DLL de Windows pueden ser utilizados por varios programas al mismo tiempo, por ejemplo el cuadro de diálogo Abrir del procesador de palabras de la computadora manda llamar la misma DLL que el diálogo Abrir de la hoja de cálculo; una misma librería utilizada por varias aplicaciones. La estructura modular de programación permite que los creadores de software no tengan que incluir librerías repetitivas, ahorrando espacio en el disco de distribución y en la máquina donde residirá la aplicación. En las librerías dinámicas los archivos DLL son cargados en la memoria RAM sólo cuando se manda a llamar la librería, de ésta manera se logra una mejor utilización de los recursos del equipo. La creación y utilización de un archivo DLL conlleva a respetar criterios de envío y recepción de información para no comprometer su funcionamiento, puesto que la generación de un error de librería puede generar un error en efecto dominó, comprometiendo la estabilidad de todo el sistema operativo. Las librerías de vínculos dinámicos suelen tener las siguientes extensiones de archivo: *.dll, *.ocx, *.exe, *.drv, *.vxd, etc. En el Capítulo 3 se expone la utilización de una librería de vínculos dinámicos para desarrollar una nueva librería en el entorno de programación gráfico LabVIEW.. 2.3 Portabilidad Para determinar la portabilidad de una aplicación es necesario evaluar el grado de independencia que puede tener para trabajar en plataformas diferentes a la que fue creada. La industria del software necesita implantar una cultura de portabilidad en los desarrollos, y más aún incluir el concepto en el ciclo de vida de la aplicación. El reto sólo podrá alcanzarse estableciendo métodos eficientes para medir la portabilidad y mostrando al sector del software que éste tipo de prácticas a largo plazo representará un beneficio para el desarrollo de sus mercados. Según (Mooney, 2000), la reutilización de código también se encuentra ligado con la portabilidad, si las aplicaciones comienzan a ser más portables es porque el código en general se estandariza y la estandarización abre el camino perfecto para la reutilización. El ahorro en tiempo y dinero impactaría directamente en la productividad de empresas y países. Al igual que un rascacielos, una aplicación con buenos cimientos es una aplicación que puede llegar muy lejos, los cimientos de una aplicación se encuentran en la etapa de diseño, sin duda alguna la etapa crucial dentro del ciclo de vida del código diseñado. Seguir el concepto de programación orientada a objetos brinda buenos resultados; siempre y cuando el proceso de diseño considere a todas las partes involucradas en el diseño de la. 29.
(30) aplicación, las necesidades de los clientes y sobre todo, prevea los requerimientos futuros tanto de software como de hardware. Existen circunstancias en que los programas no pueden ofrecer una portabilidad total, en ese caso existen alternativas para lograr su funcionamiento en plataformas para las que no fueron creados. Una de las alternativas más sencillas es utilizar programas de interpretación (Giencke, 1996). La utilización de un programa de interpretación siempre debe realizarse con cuidado a sabiendas que alguna o algunas librerías necesarias para la aplicación principal puede no estar contenidas o no ser compatibles con el programa de interpretación.. 2.4 Interoperabilidad A diferencia de la portabilidad la interoperabilidad no contempla ni el origen del código ni la capacidad del código para ser ejecutado en diferentes procesadores o sistemas operativos. La interoperabilidad de una aplicación se define como la capacidad de diferentes aplicaciones para intercambiar información mediante formatos, tipos de archivos o protocolos. A nivel internacional existen organizaciones encargadas de garantizar la interoperabilidad no sólo de aplicaciones computacionales. Por ejemplo, la Oficina Internacional de Pesos y Medidas (Bureau International des Poids et Mesures) se encarga de coordinar y estandarizar la metrología del Sistema Internacional de Unidades a nivel internacional. Europa cuenta con el ECIS (European Committee for Interoperable Systems) el comité es una organización internacional sin fines de lucro fundada en 1989 para promover la interoperabilidad y las condiciones de mercado en la informática y las telecomunicaciones. Conforme a la ISO/IEC 2382-01 interoperabilidad se define como: “la capacidad de comunicarse, ejecutar programas, o trasferir datos a través de varias unidades funcionales de tal manera que el usuario tenga poco o nulo conocimiento de las características individuales de dichas unidades” (ISO & IEC, 2003). Las empresas u organizaciones tienden a hacer caso omiso a respetar la interoperabilidad, sobretodo por creer que es una manera de conservar su autoría. Casos de compañías que se niegan a compartir información para lograr interoperabilidad son presionadas con sanciones económicas para lograr un panorama competitivo y de libre mercado. Gobiernos de países primermundistas han tomado un papel protagonista en la creación de leyes y mecanismos neutrales que obligan a garantizar la interoperabilidad. Uno de los ejemplos más claros de la interoperabilidad es la Internet, con millones de computadoras de diferentes marcas, con diferentes tipos de conexión a la red, con diferentes sistemas operativos, con diferentes aplicaciones, diariamente comparten información de todo tipo.. 30.
Figure
Documento similar
Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y
Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,
Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied
Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas
Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa
The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,
Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria.. Células de origen humano o sus derivados que
Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y