Logo Studenta

DocsTec-6831

¡Este material tiene más páginas!

Vista previa del material en texto

1 
Portada 
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS 
SUPERIORES DE MONTERREY 
 
CAMPUS MONTERREY 
 
 
PROGRAMA DE GRADUADOS EN MECATRÓNICA Y 
TECNOLOGÍAS DE INFORMACIÓN 
 
 
 
 
 
 
 
 
 
 
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. 
 
 
TESIS 
 
PRESENTADA COMO REQUISITO PARCIAL PARA OBTENER EL GRADO 
ACADEMICO DE: 
 
 
MAESTRO EN CIENCIAS 
ESPECIALIDAD EN AUTOMATIZACIÓN 
 
 
POR: 
 
ABRAHAM ORTIZ MORÁN 
 
 
MONTERREY, N.L. DICIEMBRE 2008 
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 
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 
 
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. 
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. 
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 Librerías estáticas............................................................................................................................... 28 
2.2.2.2 Librerías dinámicas ............................................................................................................................ 28 
2.2.2.3 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 Plataforma Java .................................................................................................................................. 31 
2.5.2.2 Plataforma .NET ................................................................................................................................32 
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 Características .................................................................................................................................... 34 
2.7.2 Lenguajes de programación gráficos ...........................................................................................34 
2.7.2.1 Ejemplos y características .................................................................................................................. 35 
2.7.3 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 Dentro del alcance.............................................................................................................................. 44 
3.4.4.2 Fuera del alcance................................................................................................................................ 44 
3.4.5 Generación del núcleo de la librería............................................................................................45 
3.4.6 Edición de funciones.....................................................................................................................52 
3.4.6.1 Introducción ....................................................................................................................................... 52 
3.4.6.2 Desarrollo ........................................................................................................................................... 52 
3.4.7 Creación de la documentación.....................................................................................................60 
3.4.7.1 Estructura del documento................................................................................................................... 61 
3.4.7.2 Compilación de la documentación ..................................................................................................... 64 
3.4.8 Compilación de la librería ...........................................................................................................65 
3.4.8.1 Propiedades del instalador.................................................................................................................. 68 
3.4.9 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 
8 
4.9.1.2 Hardware utilizado ............................................................................................................................. 85 
4.9.2 Fase 2: Análisis ............................................................................................................................86 
4.9.2.1 Comunicaciones .................................................................................................................................86 
4.9.2.2 Código necesario ................................................................................................................................ 87 
4.9.3 Fase 3: Diseño..............................................................................................................................88 
4.9.4 Fase 4: Desarrollo .......................................................................................................................88 
4.9.4.1 Sistema ZigBee .................................................................................................................................. 89 
4.9.4.2 Librería LabVIEW ............................................................................................................................. 89 
4.9.5 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 Objetivo de la simulación................................................................................................................. 102 
5.7.4.2 Alcance de la simulación ................................................................................................................. 102 
5.7.4.3 Planeación ........................................................................................................................................ 102 
5.7.5 Construcción del modelo............................................................................................................103 
5.7.5.1 Selección de los materiales .............................................................................................................. 103 
5.7.5.2 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 CONCLUSIONES Y TRABAJO FUTURO......................................................................106 
6.1 CONCLUSIONES.....................................................................................................................................106 
6.2 TRABAJO FUTURO .................................................................................................................................108 
BIBLIOGRAFÍA ..............................................................................................................................................109 
ANEXO A. INTERFAZ DE PRUEBA Y MONITOREO ....................................................................113 
A.1 OBJETIVO..............................................................................................................................................113 
A.2 DESARROLLO ........................................................................................................................................113 
ANEXO B. CONTROL A DISTANCIA UTILIZANDO EL ROBOT MÓVIL 
FISCHERTECHNIK ROBO EXPLORER .......................................................................118 
B.1 OBJETIVO..............................................................................................................................................118 
B.2 DESARROLLO ........................................................................................................................................118 
B.3 FUNCIONAMIENTO DEL ROBO EXPLORER ...........................................................................................120 
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óndel 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 
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 
 
11 
 
Índice de tablas 
Tabla1-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

 
 
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 
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. 
 
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 
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. 
 
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. 
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. 
 
 
 
Figura 1-1 Ciclo de Vida del Proyecto. 
Fase
1:
Planeación

Fase
2:
Análisis

Fase
3:
Diseño

Fase
4:
Desarrollo
Fase
5:
Pruebas

Fase
6:

Implementación

Fase
7:

Mantenimiento

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 
utilización de la librería 
dinámica umfish40.dll 
El creador de la librería es el ingeniero de origen 
alemán Ulrich Müller, por medio del correo electrónico 
se realizan las preguntas pertinentes. 
Capacitación de los equipos 
fischertechnik. 
La empresa Tecnodidácticos S. de R.L. de C.V. bajo su 
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 
Instruments para compilar 
librerías. 
Atención personal por teleconferencias para logar 
compilar la librería en un archivo instalador. 
 
1.7.2 Hardware 
Tabla 1-2 Recursos de hardware utilizados para el proyecto. 
Nombre Descripción 
Fischertechnik ROBO Interface 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. 
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 
Link 
 
Interfase de Radio Frecuencia para la ROBO Interface. 
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 cómputo (2 
computadoras) 
Procesador Intel Pentium Dual-Core T2390 
Windows Vista Home Basic 
Memoria DDR2 de 1024MB 
Unidad de disco de 160GB a 5400rpm 
 
 
 
20 
1.7.3 Software 
Tabla 1-3 Recursos de software utilizados para el proyecto. 
Nombre Descripción 
Fischertechnik ROBO Pro 
Software. 
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 para la 
Fischertechnik ROBO 
Interface. 
Fragmento de software capaz de proveer una capa de 
abstracción entre el sistema y la Fischertechnik ROBO 
Interface. 
 
Controlador para el 
Fischertechnik ROBO RF Data 
Link. 
Fragmento de software capaz de proveer una capa de 
abstracción entre el sistema y el Fischertechnik ROBO 
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. 
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 
Definición de las entradas y salidas de las 
funciones. 10 días 9/2/2008 21/2/2008 
Desarrollo de la documentación y ayuda de 
las funciones. 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 
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 
Códigos para la lectura de datos desde 
LabVIEW. 10 días 30/6/2008 11/7/2008 
Validación de la estructura de 
comunicación. 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 
 
 
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 
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 descritaspara 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 
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. 
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). 
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 
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 tiempoque 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. 
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 
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. 
31 
2.5 Plataformas 
Las plataformas computacionales pueden considerarse como una mezcla de hardware y 
software en el que se programará o ejecutará una aplicación. La plataforma más conocida y 
utilizada actualmente es Microsoft Windows en una arquitectura x86, su competidor más 
cercano es Mac OS X y GNU/Linux. En las secciones 2.5.1 y 2.5.2 se plantea una 
descripción más detallada sobre las plataformas de hardware y software utilizadas en la 
actualidad. 
2.5.1 Plataformas de hardware 
Los procesadores instalados en cada CPU tienen una arquitectura específica.Los 
procesadores x86 son los más comunes y utilizados desde1978 cuando Intel lanzó al 
mercado su chip de 16 bits denominado 8086. En la actualidad los procesadores son en su 
mayoría de 32 bits y hay versiones poderosas x86-64 capaces de ejecutar código de 64 bits 
(Stokes, 2007). 
 
El objetivo del procesador es realizar la mayor cantidad de operaciones por unidad de 
tiempo; dicha evolución se ha visto frenada al llegar a tener procesadores con una 
frecuencia de reloj de hasta 3.8GHz. La tendencia cambió entonces por dotar a cada 
procesador con diferentes núcleos de procesamiento simultáneo, de ésta forma dos o más 
procesadores realizan todos los cálculos requeridos. La era del procesamiento en paralelo 
ha llegado, y junto con ella la necesidad de crear aplicaciones que puedan distribuir sus 
tareas entre los núcleos presentes en el procesador (Lin, 2008). 
2.5.2 Plataformas de software 
Un software normalmente necesita una combinación de sistema operativo y entorno de 
programación para ser creado. Dos de las plataformas para creación de aplicaciones más 
importantes son Java y .NET, las características más importantes de las dos plataformas se 
relatan a continuación (Tymann, 2008). 
2.5.2.1 Plataforma Java 
Sun Micro Systems es la empresa que desarrolló la plataforma Java, su principal distintivo 
radica en que los ejecutables de Java no los ejecuta directamente el sistema operativo del 
CPU, en su lugar existe una máquina virtual que se encarga de ejecutar los programas. Si 
existe una máquina virtual de Java para Linux o Windows entonces se pueden correr 
aplicaciones de Java sobre esa plataforma. 
 
Las aplicaciones Java tienen un alto grado de portabilidad, como se describe en (Tymann, 
2008), sin embargo se encuentran limitadas a las funcionalidades que el intérprete y el 
sistema soporten. La portabilidad de Java le ha permitido posicionarse como un estándar 
32 
para la programación de electrodomésticos, los “applets” constituyen el complemento 
perfecto para dotar a cada programa de una interfaz gráfica funcional. 
2.5.2.2 Plataforma .NET 
La nueva propuesta de plataforma de programación ofrecida por Microsoft es 
denominada .NET, el nombre resulta bastante propio al enfocarse a soluciones Web de 
rápida integración y con protocolos que permiten la comunicación entre empresas. La 
plataforma también trata de retomar mercado que Java ha venido ganando desde años atrás 
(Smith-Ferrier, 2007). 
 
.NET incluye una serie de bibliotecas, servicios y protocolos que los usuarios pueden 
utilizar de manera libre para el desarrollo de sus aplicaciones. Otro de los objetivos del 
producto es fomentar el desarrollo de código de particulares para ser incluido en la 
plataforma. 
2.6 Aplicaciones de código abierto 
El concepto de código abierto tiene sus bases en los conceptos de cooperar y compartir. Es 
necesario aclarar que código abierto en ningún momento va de la mano con código gratuito, 
si bien es cierto que diferentes creadores de software gustan de compartir sus aplicaciones 
de manera gratuita hay compañías que necesitan cobrar por sus productos para fomentar la 
investigación y desarrollo de nuevas aplicaciones de alta calidad. 
 
Las ideas revolucionarias del código abierto demandaron de inmediato la mediación de 
organizaciones internacionales sin fines de lucro, que organizaran y dirigieran la iniciativa 
de miles de programadores alrededor del mundo(Sulayman K. Sowe, 2008). 
2.6.1 Premisas del código abierto 
Para establecer un marco de desarrollo unificado se determinó que una aplicación de código 
abierto debe cumplir con las siguientes características (OpenSource.org, 2006): 
1. Libre redistribución: el software debe poder ser regalado o vendido libremente. 
2. Código fuente: el código fuente debe estar incluido u obtenerse libremente. 
3. Trabajos derivados: la redistribución de modificaciones debe estar permitida. 
4. Integridad del código fuente del autor: las licencias pueden requerir que las 
modificaciones sean redistribuidas sólo como parches. 
5. Sin discriminación de personas o grupos: nadie puede quedar fuera. 
33 
6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser 
excluidos. 
7. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que 
reciba el programa. 
8. La licencia no debe ser específica de un producto: el programa no puede licenciarse 
solo como parte de una distribución mayor. 
9. La licencia no debe restringir otro software: la licencia no puede obligar a que algún 
otro software que sea distribuido con el software abierto deba también ser de código 
abierto. 
10. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de 
la licencia por medio de un acceso por clic de ratón o de otra forma específica del 
medio de soporte del software. 
2.6.2 Características y ventajas 
Aún cuando cumplir con las 10 premisas del código abierto no es siempre sencillo; vale la 
pena señalar las características y ventajas que se pueden obtener de ésta filosofía, para 
apoyar el concepto que se tratará en el Capítulo 3 sobre la creación de librerías de 
programación. 
 
Una buena librería de programación podría compartir alguno o todos los siguientes 
atributos de una aplicación de código abierto: 
 
• Flexibilidad: Las funciones ofrecidas en la librería pueden ser fácilmente utilizadas 
por los desarrolladores para construir funciones más elaboradas. El nuevo desarrollo 
puede ser fácilmente compartido a otros usuarios a través de la red. 
• Calidad: Cuando la librería es compartida entre un amplio grupo de usuarios los 
errores tienden a surgir de inmediato, así como las soluciones; generando un 
constante proceso de depuración del código. Si los desarrolladores deciden 
compartir el código original con la comunidad, la solución y mejoras con seguridad 
será una iniciativa de los mismos usuarios. 
• Tiempo de desarrollo: El tiempo en que una aplicación o producto pasa de la idea 
misma al producto terminado se denomina tiempo de salida al mercado. Para las 
organizaciones la reducción de ese tiempo resulta importante, puesto que las 
utilidades se obtendrán hasta la culminación del proyecto. La librería de 
programación permite de manera eficiente la distribución de actividades 
cumpliendo con un riguroso plan de integración. 
• Aplicaciones a la medida: Una librería siempre debe contar con las propiedades y 
los métodos generales para lograr que los programadores puedan construir todas y 
cada una de las aplicaciones específicas que necesiten. 
34 
2.7 Evolución de los entornos de programación 
2.7.1 Programación basada en el flujo de datos 
Como su nombre lo indica la programación basada en el flujo de datos define la 
implementación de un programa como la edición de un gráfico en el cual las operaciones se 
van realizando conforme los datos van fluyendo. En comparación con la configuración 
basada en texto, representa una manera más fácil de desarrollar aplicaciones pequeñas pero 
funcionales. 
2.7.1.1 Características 
Para realizar una aplicación basada en el flujo de datos es necesario considerar a la 
información como el elemento de mayor importancia y diseñar la estructura alrededor de 
dicha premisa. Los lenguajes de flujo de datos fueron originalmente diseñados para facilitar 
la programación en paralelo (Lin, 2008). 
 
Las operaciones o funciones están contenidas en bloques, cajas o íconos, mismo que tienen 
entradas y salidas definidas por el programador. Para que la función comience a ser 
ejecutada es determinante que todas sus entradas se encuentren definidas, o en términos del 
lenguaje visual “conectadas” a una fuente de datos. Mientras la aplicación espera que las 
entradas de cierta función estén listas, se puede estar ejecutando otras funciones en paralelo. 
Por tal motivo la programación visual aborda el reto de la ejecución en paralelo de manera 
nativa (Lewis, 1992). 
 
Según (Lewis, 1992) la forma de procesamiento computacional

Continuar navegando

Materiales relacionados