INSTITUTO POLITÉCNICO NACIONAL -...
Transcript of INSTITUTO POLITÉCNICO NACIONAL -...
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA
MECÁNICA Y ELÉCRICA
UNIDAD ZACATENCO
SIMULACIÓN DEL DESPLAZAMIENTO DE LA
CARGA PARA UNA GRÚA VIAJERA
TESIS
QUE PARA OBTENER EL TÍTULO DE
INGENIERO EN CONTROL Y AUTOMATIZACIÓN
EDUARDO GARCÍA CEDILLO
ASESORES:
M. EN C. IVONE CECILIA TORRES RODRÍGUEZ
ING. RICARDO HURTADO RANGEL
MÉXICO D.F., NOVIEMBRE 2009
INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE INGENIERiA MECANICA Y ELECTRICA
UNIDAD PROFESIONAL "ADOLFO LOPEZ MATEOS"
REPORTE TECNICO
QUE PARA OBTENER EL TITULO DE INGENIERO EN CONTROL Y AUTOMATlZACION POR LA OPCION DE TIT ULACION PROYECTO DE INVES1'IGACION SIP20091276 DEBERA(N)DESARROLLAR
C.-EDUARDO GARCiA CEDILLO
"SIMUlACI6N DEL DESPLAZAMIENTO DE lA CARGA PARA UNA GRUA VIAJERA" "
DESARROLLAR UNA INTERFAZ GRAFICA. QUE PERMITA SUMUlAR EL DESPLAZAMIENTO DE LA CARGA , DE UNA GRUA VIAJERA, CON 'EL FIN DE MOSTRAR AL OPERADOR EL COMPOR'1,'AMIENTO DE LA GiUJA Y SU DESPLAZAMIENTO CON RESPECfO A lA CARGA, unuZANDO VISUAL BASIC COMO LENGUAJE DE PROGRAMACION PARA LA SIMUlACION.
~ INTRODUCCION ~ DESCRIPCI6N DE LA GRUA VIAJERA ~ MODELO MATEMATICO DE lA GRUA VIAJERA ~ DISENO DE lA INTERFAZ GRAFICA.DE LA GRUA VIAJERA ~ PROGRAMACION DE lA INTERFAZ GRAFICA. ~ COSTOS » CONCLUSIONES
MExIco D.P., 28 DE MAYO 2010.
ING. JOSE ME~,.q9.~<?UEZ JEFE DEL DEPARTAMENTO ACADEMICO
DE INGENIERiA EN CONTROL Y AUfOMATIZACION
INSTITUTO POLITÉCNICO NACIONAL ICA
2
ÍNDICE
Objetivo
Objetivos Particulares
Justificación
INTRODUCCIÓN
Antecedentes
Grúas
Interfaz Gráfica de Usuario
Definición etimológica y conceptual
Definición de Interfaz Gráfica
Problemática
Capítulo 1
DESCRIPCIÓN DE LA GRÚA VIAJERA
1.1 Características de las grúas tipo puente.
1.1.1 Velocidades de traslación.
1.1.2 Motores de accionamiento.
1.2 Manipulación de grúas tipo puente.
1.3 Especificaciones de los Elementos de la Grúa.
1.4 Especificaciones del Motor de Inducción.
1.5 Especificaciones de la Caja de Engranes.
Capítulo 2
MODELO MATÉMÁTICO DE LA GRÚA VIAJERA
2.1 Modelo de la Grúa Viajera
2.2 Descripción del Método de LaGrange
2.3 Modelo dinámico de la Grúa Viajera
2.4 Comportamiento típico de una Grúa Viajera
Capítulo 3
DISEÑO DE LA INTERFAZ GRÁFICA DE LA GRÚA VIAJERA
3.1 ¿Qué se entiende por ambiente Gráfico?
3.2 ¿Qué es Visual Basic?
3.2.1 Antecedentes Históricos
3.2.2 Características generales de Visual Basic
3.2.3 Programación secuencial frente a programación bajo Windows
3.3 Conceptos básicos de Visual Basic
3.3.1 Entorno de Trabajo
3.3.2 Proyecto en Visual Basic
3.3.3 Formularios
3.3.4 Controles
3.3.5 Algoritmo
3.3.6 Diagramas de flujo
3.4 Desarrollo de la Interfaz Gráfica de Usuario en Visual Basic
3.4.1 Ventana de Interfaz Gráfica
-Sección de parámetros de operación
- Sección de representación gráfica de la grúa
- Representación del proceso
10
10
11
12
12
13
17
17
18
19
22
22
23
24
25
25
26
28
29
29
31
37
39
40
41
41
44
45
47
47
47
48
48
51
52
54
54
55
59
62
INSTITUTO POLITÉCNICO NACIONAL ICA
3
3.4.2 Diagrama de flujo de operación de la Grúa Viajera
3.4.3 Diagramas de flujo de programación de la Interfaz Gráfica
- Cajas de texto
- Botones de comando
- Imagen
- Cajas de selección
- Controles de tiempo
Capítulo 4
PROGRAMACIÓN DE LA INTERFAZ GRÁFICA
Capítulo 5
COSTOS
5.1 Costos de Ingeniería y Material
CONCLUSIONES
GLOSARIO
BIBLIOGRAFÍA
ANEXO
63
64
64
65
68
69
71
77
90
91
92
93
95
96
INSTITUTO POLITÉCNICO NACIONAL ICA
4
Listado de Figuras
Figura 1.1 Estructura de una grúa tipo puente (grúa viajera).
Figura 1.2 Carro de la grúa sobre vigas transversales.
Figura 1.3 Componentes.
Figura 1.4 Grúa tipo puente al aire libre.
Figura 1.5 Grúa tipo puente en el interior de una nave.
Figura 2.1 Diagrama del Sistema Grúa Viajera.
Figura 2.2 Posición de referencia de la grúa viajera en m.
Figura 2.3 Aceleración de referencia de la grúa viajera en m/s.
Figura 2.4 Fuerza aplicada a la grúa viajera en N.
Figura 3.1 Ventana principal Visual Basic.
Figura 3.2 Ventana principal Interfaz.
Figura 3.3 Controles te Operación de la Interfaz.
Figura 3.4 Marco de Posición.
Figura 3.5 Marco de Operación.
Figura 3.6 Marco de Elevación.
Figura 3.7 Marco de Carga y Velocidad.
Figura 3.8 Marco de Tipo de Movimiento.
Figura 3.9 Marco de indicadores de inicio y fin de carrera.
Figura 3.10 Representación Gráfica de la vista superior de la Grúa.
Figura 3.11 Marco de Área de desplazamiento de la grúa.
INSTITUTO POLITÉCNICO NACIONAL ICA
5
Figura 3.12 Marco de Elevación del Malacate.
Figura 3.13 Controles tipo CWGraph.
Figura 3.14 Representación de la grúa en isométrico.
Figura 3.15 Diagrama de flujo de funcionamiento de la interfaz.
Figura 3.16 Diagrama de flujo de función que solo permite números.
Figura 3.17 Diagrama de flujo de algoritmo que no permite valores vacios.
Figura 3.18 Diagrama de flujo que indica advertencia de valores.
Figura 3.19 Diagrama de flujo de función de selección del contenido en caja de texto.
Figura 3.20 Diagrama de flujo del Botón de Comando Iniciar.
Figura 3.21 Diagrama de flujo del Botón de Comando Parar.
Figura 3.22 Diagrama de flujo del Botón de Comando Elevar.
Figura 3.23 Diagrama de flujo del Botón de Comando Descender.
Figura 3.24 Diagrama de flujo del botón de paro.
Figura 3.25 Diagrama de flujo de la caja de selección Colocar Carga.
Figura 3.25 Representación de la Carga.
Figura 3.27 Diagrama de flujo de la caja de selección Quitar Carga.
Figura 3.28 Diagrama de flujo de control de tiempo 1 (tmrDesp)
Figura 3.29 Diagrama de flujo de control de tiempo 2 (tmrDescenso)
Figura 3.30 Diagrama de flujo de control de tiempo 3 (tmrElevar)
INSTITUTO POLITÉCNICO NACIONAL ICA
6
Listado de Tablas
Tabla 3.1 Controles estándar
Tabla 3.2 Símbolos utilizados en Diagramas de Flujo.
Tabla 3.3 Combinación de Condiciones programadas en tmrDesp
Tabla 4.1 Declaración de variables
Tabla 4.2 Declaración de Funciones más utilizadas
Tabla 4.3 Evento KeyPress llamando a la función numeros
Tabla 4.4 Sentencias If condicionando valores en evento Change
Tabla 4.5 Código para seleccionar texto
Tabla 4.6 Programación evento Load de Form
Tabla 4.7 Código de programación para control de tiempo 2 (tmrDescenso)
Tabla 4.8 Código de programación para control de tiempo 3 (tmrElevar)
Tabla 4.9 Código de programación para control de tiempo 1 (fragmento)
Tabla 4.10 Código de programación para el botón de comando Iniciar
Tabla 4.11 Código de programación para el botón de comando Parar
Tabla 4.12 Código de programación para el botón de comando Elevar
Tabla 4.13 Código de programación para el botón de comando Descender
Tabla 4.14 Código de programación para el botón de paro
Tabla 5.1 Costos de Programación y Diseño
INSTITUTO POLITÉCNICO NACIONAL ICA
7
Listado de Simbología
Símbolo Descripción
r1 Resistencia del rotor
r´1 Resistencia del rotor
Xm Resistencia mutua
Xls Reactancia de enlace del motor
J Inercia del rotor
Tem Par electromagnético
Tcaja Par torsional máximo de la caja de engranes
it Relación de transmisión
Ta Par torsional debido a la aceleración
Tc Par debido a las fuerzas de oposición constantes
ωmr Velocidad mecánica del rotor
ωcaja Velocidad angular de la caja de engranes
ẋ Velocidad máxima de la carga
r Radio del elemento de transmisión
L Lagrangiano
Ec Energía cinética
Ep Energía potencial
I Principio de Hamilton
INSTITUTO POLITÉCNICO NACIONAL ICA
8
,i iq q
Coordenadas generalizadas
T Tensión del cable
x Posición del carro (grúa)
l Longitud del cable
θ Ángulo del cable con respecto al eje vertical
Velocidad angular
1u
Fuerza aplicada al carro
2u
Par aplicado al malacate
gM
Masa del carro
m Masa de la carga
r Radio de la rueda
v1 Velocidad del carro
px Posición en el eje X
py Posición en el eje Y
vx Velocidad en eje X
vy Velocidad en eje Y
vxtotal Velocidad total en eje X
vp Velocidad del péndulo
Ecp Energía cinética del péndulo
Epg Energía potencial de la grúa
Ecg Energía cinética de la grúa
INSTITUTO POLITÉCNICO NACIONAL ICA
9
Epp Energía potencial del péndulo
g Gravedad
ẍ Aceleración del carro
θ¨ Aceleración del cable que sostiene a la carga
INSTITUTO POLITÉCNICO NACIONAL ICA
10
OBJETIVO
Desarrollar una interfaz gráfica que permita simular el desplazamiento de la carga
de una grúa viajera, con el fin de mostrar al operador el comportamiento de la grúa y su
desplazamiento con respecto a la carga, utilizando Visual Basic como lenguaje de
programación para la simulación.
OBJETIVOS PARTICULARES
Desarrollar una plataforma de simulación para la operación de una grúa viajera.
Desarrollar una Interfaz Gráfica de Usuario (GUI) que permita un mejor manejo
de una grúa viajera.
INSTITUTO POLITÉCNICO NACIONAL ICA
11
JUSTIFICACIÓN
Actualmente en la mayoría de los sistemas electrónicos y mecánicos es común el
uso de una computadora dentro del proceso de control. Esto es así, porque el software,
más que el hardware, permite hacer cualquier ajuste a los parámetros del sistema con el
fin de obtener una respuesta deseada. Además, las computadoras también pueden efectuar
funciones de supervisión, como la programación de numerosas aplicaciones requeridas,
también el uso de estas computadoras nos permiten analizar las acciones o tareas que se
pretenden realizar por medio de una simulación y así analizar el comportamiento del
sistema o proceso.
Los procesos tecnológicos avanzados proporcionan nuevas oportunidades en la
industria. Cada día se pueden encontrar procesos de producción más rápidos y eficaces.
En particular, para permanecer competitivo en el mercado actual son requeridos procesos
de flujo en línea eficientes.
Tradicionalmente, las grúas viajeras han sido usadas por personal capacitado para
mover manualmente materiales desde una locación a otra. El movimiento realizado
manualmente de cargas pesadas por largas distancias consume mucho tiempo y es muy
ineficiente. Por lo tanto, las tasas de producción pueden ser afectadas por este
desplazamiento lento e inexacto de las materias primas o los artículos fabricados, por
estas razones la creación de una interfaz gráfica de usuario nos permite una mejora en la
manipulación de la grúa viajera.
Por otra parte, existe una gran variedad de aplicaciones industriales donde es
necesario trasladar cargas en áreas en las cuales se dispone espacios muy pequeños. En
estas, un control de posición preciso de la carga llega a ser crucial. En algunas otras
aplicaciones el inicio o paro repentino de una grúa viajera causa que la carga se balancee
de una manera descontrolada, y como consecuencia de estas oscilaciones se puede dañar
la carga transportada, los objetos que estén cerca del área de trabajo e incluso elementos
de la propia grúa.
De mayor importancia, las cargas que se balancean constituyen un riesgo para la
seguridad del personal de la planta. Aún para operadores de grúa capacitados no siempre
es posible limitar adecuadamente el balanceo de la carga. Por ello, se hace necesario dotar
de elementos a las grúas que permitan un mejor control y monitoreo de la carga para
evitar esas posibles fallas.
INSTITUTO POLITÉCNICO NACIONAL ICA
12
INTRODUCCIÓN
En el presente trabajo se desarrolla y diseña una interfaz gráfica que nos permita
la simulación del desplazamiento de una grúa para poder comprender mejor el
comportamiento de ésta.
Éste trabajo se deriva de el proyecto de investigación con título “Monitoreo y
Control de la posición de una grúa viajera”, en el cual se identificaron las condiciones
necesarias para el desplazamiento de una grúa viajera para realizar una interfaz gráfica.
En éste trabajo se describen los componentes principales que dan forma a la
interfaz diseñada, así como el código fuente de algunos de estos componentes, con el fin
de introducir al lector en el funcionamiento de dicha interfaz.
La metodología empleada para el diseño de esta interfaz fue de condicionales
para describir la acción del desplazamiento de la grúa, y para el desarrollo de la interfaz
se utilizó Microsoft Visual Basic 6.0 como lenguaje de programación, éste trabajo se
limita al diseño de la interfaz para la simulación, así como la programación de la misma.
INSTITUTO POLITÉCNICO NACIONAL ICA
13
ANTECEDENTES
Grúas
Las primeras grúas fueron inventadas por los antiguos Griegos, accionadas por
hombres o animales de carga, como burros. Estas grúas eran utilizadas para la
construcción de edificios altos.
Grúas más grandes fueron desarrolladas más adelante, empleando el uso de
poleas, permitiendo la elevación de pesos más pesados. En la alta edad media, las grúas
en los puertos, fueron introducidas para cargar y para descargar la mercancía los barcos y
sirvieron como ayuda en su construcción algunas fueron construidas en torres de piedra
para dar fuerza y la estabilidad adicional. Las primeras grúas se construyeron de madera,
pero con la llegada de la revolución industrial, el hierro fundido y el acero asumieron el
control.
Por muchos siglos la energía fue suministrada por el esfuerzo físico de hombres y
animales, aunque en molinos de agua y de viento se manejaba por energía natural
concentrada. La primera energía mecánica fue proporcionada por motores de vapor, la
primera grúa de vapor fue introducida en el siglo XVIII, al XIX. Las grúas modernas
utilizan generalmente, los motores de combustión interna o los sistemas de motor
eléctrico e hidráulicos para proporcionar una capacidad de elevación mucho mayor que
previamente era imposible, aunque las grúas manuales todavía se utilizan donde es poco
rentable disponer de energía.
Las grúas existen en una enorme variedad de formas, cada una adaptada a un uso
específico. Los tamaños se extienden desde las más pequeñas grúas de horca, usadas en el
interior de los talleres, a las grúas de torre, usadas para construir edificios altos, hasta las
grúas flotantes, usadas para construir aparejos de aceite y para rescatar barcos encallados.
INSTITUTO POLITÉCNICO NACIONAL ICA
14
Interfaz gráfica de usuario
El origen de su nacimiento está en la búsqueda de un método de interacción
amigable con los ordenadores que dejaron atrás la interfaz de línea de comandos (Marrero
Expósito, C. 2006). La repercusión que ha tenido su descubrimiento sobre la computación
informática se ha traducido en muchos beneficios para aquellos individuos y empresas
que han actuado con astucia aprovechando y explotando los hallazgos propios y ajenos.
Poseer la interfaz, es de algún modo, tener una herramienta poderosa de control
sobre las personas que la utilizan. Es poder para definir los modelos de interacción,
definir los signos que intervendrán y por lo tanto tendrán que ser aprendidos por el
“usuario”. Es al fin y al cabo, una herramienta política con la que se puede limitar o
dirigir las posibilidades de acción del usuario sobre el sistema informático.
La interfaz gráfica como artefacto tecnológico, tiene una historia que contar: nace
en el año 1973 en el centro de investigación Xerox Alto, donde se partió con el objetivo
básico de encontrar un modelo óptimo de interacción persona-ordenador, pasa por un
proceso de eclosión y de madurez donde se definen sus elementos básicos, para acabar
convirtiéndose en un producto de consumo estético dentro de los sistemas interactivos,
donde la interfaz más allá de un medio de interacción óptimo, se transforma en un objeto
inteligente abierto a los procesos de personalización por parte del usuario.
El primer periodo está marcado por la investigación y la búsqueda de un
paradigma de interacción definitivo y óptimo, que sustituye la práctica, pero compleja,
interfaz de línea de comandos.
Ya desde los años cuarenta, se había trazado de forma teórica, modelos de
ordenadores personales que debían servir para almacenar, editar y compartir información
de forma sencilla. Estos primeros años están marcados por los pioneros en la
investigación, los cuales trataron de dar forma a la interfaz gráfica, y por extensión a un
sistema operativo óptimo que permitiese una interacción amigable entre las personas y los
ordenadores.
En el año 1973, de mano del centro de investigación Xerox Parc, nacería el
primer ordenador que incluiría la primera interfaz gráfica de la historia, la intención por
parte de Xerox fue la de desarrollar un sistema informático lo suficientemente pequeño y
transportable con capacidad para ser ubicado en una oficina. Debería tener capacidad para
poder manejar un sistema operativo con interfaz gráfica y poder compartir información de
INSTITUTO POLITÉCNICO NACIONAL ICA
15
forma sencilla. Poseía una interfaz gráfica rudimentaria en blanco y negro, con la que se
podía interaccionar mediante un ratón. Los botones serían representados a través de
formas textuales, de un modo muy simple. La interfaz gráfica no presentaba elementos
icónicos, ni pestañas, ni barras de desplazamiento en la navegación de la información.
En el año 1981, el ordenador Xerox Star 8010 se podría considerar como el
primer ordenador que introduce una interfaz gráfica de usuario incluyendo y aplicando la
metáfora del escritorio. De aquí partiría la idea de convertir al ordenador en una máquina
apta para ser usada como medio de edición y publicación de contenidos, interés
primordial de la empresa Xerox, especializada en sistemas de impresión. Fue el primero
en incluir un sistema de ventanas totalmente contemporáneo como vienen incorporadas
en las interfaces actuales, siendo posible sobreponer unas ventanas a otras y manejar
múltiples elementos en el escritorio de trabajo.
El segundo periodo de la evolución histórica de las interfaces gráficas está unida
a la revolución de los ordenadores personales surgida en el año 1981. Para la interfaz
gráfica, este período significa su implementación definitiva en los hogares y oficinas de
trabajo.
Por un lado Apple acabaría definiendo el modelo incluido en su MAC OS, y por
otro lado, el modelo de Windows quedaría definitivamente desarrollado al final de este
periodo por la empresa Microsoft, ambos inspirados y herederos del modelo de
interacción WIMP desarrollado en el Xerox Parc.
Los principales protagonistas de este periodo serán IBM, Microsoft, Apple y el
proyecto de software libre GNU/LINUX. Cada una de estas empresas tuvo un papel en la
evolución de la interfaz y cada una hizo sus aportaciones personales definiendo los
paradigmas de interacción actuales disponibles en cualquier dispositivo interactivo.
La ampliación de cuotas de mercado de mano de IBM, hizo posible la necesaria
colaboración entre ésta, y la empresa Microsoft, la cual adaptaría su sistema operativo
MS-DOS a una interfaz gráfica de usuario para operar sobre ordenadores IBM en el año
1985. Este sistema operativo era Windows 1.0. Su interfaz gráfica trae incluida un
administrador de archivos, una calculadora, un calendario, un reloj, un block de notas, y
un emulador de terminal (antiguo Interfaz de línea de comandos).
Las interfaces de estas primeras versiones de Windows, presentan un aspecto
rudimentario, muy alejado del aspecto gráfico actual. Se hace uso muy limitado de
INSTITUTO POLITÉCNICO NACIONAL ICA
16
iconografía, estando caracterizada por la ausencia de representación de iconos en los
archivos, haciendo imposible asociar archivos y aplicaciones.
El sistema operativo windows 95 fue lanzado por Microsoft en octubre del año
1995. Este sistema operativo significo el inicio del imperio Microsoft en el mercado del
software informático. Microsoft consiguió integrar en Windows 95, el sistema operativo
MS-DOS con una interfaz gráfica de forma coherente. Windows 95 tiene una clara
orientación a redes, por lo que vendrá integrado con el software Internet Explorer, que
sustituirá al gestor de archivos dispuesto anteriormente. Un cambio importante que
introdujo este sistema operativo fue convertir la interfaz inicial orientada a aplicaciones,
en una interfaz orientada a objetos.
Otra novedad que introdujo la interfaz gráfica de Windows 95 es el menú de
inicio, al que han sido asociados, en forma de árbol, el grueso de las aplicaciones,
archivos y funciones del sistema. El botón de inicio será uno de los grandes hallazgos de
Microsoft que mantiene actualmente en todas las interfaces introducidas con sus sistemas
operativos.
Seguido de La interfaz gráfica del sistema operativo BeOS tiene un aspecto
gráfico acabado y bien desarrollado. BeOS introduce de forma elegante todos aquellos
hallazgos realizados hasta el momento.
GNOME es el nombre de la interfaz gráfica desarrollado originalmente por Javier
de Icazas y Federico Mena, ambos mexicanos, y fundadores de la fundación Genome, la
cual se creó al igual que el proyecto KDE, con el objetivo de dotar de un entorno gráfico
de escritorio y una plataforma de desarrollo de aplicaciones totalmente libres en sistemas
operativos GNU/LINUX.
El sistema operativo MAC OS X fue lanzado con los ordenadores Apple
Macintosh en el año 2001, y su arquitectura está basada en tecnología Unix al contrario
de sus versiones anteriores. El primer elemento diferenciador que introduce la interfaz de
Macintosh es una barra de tareas especial, también llamada Dock, ya introducido por la
interfaz de NEXTSTEP. Este elemento aparece posicionado en la parte inferior central
del escritorio, y mantiene accesos directo a las aplicaciones más usadas en el sistema a
través de iconos.
El sistema operativo Windows XP fue lanzado por Microsoft en el año 2001 y
pertenece a la familia de sistemas operativos NT desarrollados con la intención de
INSTITUTO POLITÉCNICO NACIONAL ICA
17
disponer de una alternativa de sistema operativo capaz de competir en calidad con los
sistemas Unix, muy superiores a los primeros Windows en su arquitectura.
Windows Xp se preocupó por adaptar la interfaz al perfil del usuario. Ahora
incluye además procesos automatizados, para actuar con “inteligencia” en algunas áreas
de la interfaz gráfica como ocurre en la barra de tareas, aglutinando bajo un mismo icono
varias ventanas abiertas de la misma aplicación, ahorrando espacio, pero volviendo del
mismo modo más complejo la interacción con la información.
Definición etimológica y conceptual.
El concepto de interfaz es un concepto amplio que ha sido definido, según el
ámbito de conocimientos, desde varios puntos de vista: desde la biología (interfase), ha
sido definida como la “capa” de un organismo que separa su interior del exterior, desde la
electrónica y las telecomunicaciones, se ha definido como “puerto a través del que se
envían o reciben señales desde un sistema o subsistemas hacia otros”. En química interfaz
es la superficie entre dos fases distintas en una mezcla heterogénea”.
Si se verifica la etimología de la palabra interfaz encontramos una palabra
compuesta, por dos vocablos:
Inter proviene del latín inter, y significa, “entre” o “en medio”, y Faz proviene del
latín facĭes, y significa “superficie, vista o lado de una cosa”. Por lo tanto una traducción
literal del concepto de interfaz atendiendo a su etimología, podría ser “superficie, vista, o
lado mediador”.
En el contexto de la interacción persona-ordenador, hablamos de interfaz de
usuario, para referirnos de forma genérica al espacio que media la relación de un sujeto y
un ordenador o sistema interactivo. La interfaz de usuario, es esa “ventana” de un sistema
informático, que posibilita a una persona interactuar con él.
Cuando se habla de interfaz gráfica de usuario, el concepto es aún más específico
en cuanto que interfaz de usuario, al contrario que el concepto de “interfaz” tiene una
localización determinada y definida. Si el interfaz etimológicamente supone la cara o
superficie mediadora, el interfaz gráfico de usuario, supone un tipo específico de interfaz
que usa metáforas visuales y signos gráficos como paradigma interactivo entre la persona
y el ordenador.
INSTITUTO POLITÉCNICO NACIONAL ICA
18
El concepto de interfaz gráfico, nos da pistas sobre el modelo de interacción y la
tipología de signos que contiene esta superficie mediadora.
Definición de interfaz gráfica.
Una interfaz gráfica es cualquier medio por el cual uno puede interactuar con una
computadora a través de algún tipo de software gráfico. Comúnmente, esto se consigue a
través del control mediante el teclado y el mouse de cursores, menús, ventanas, íconos y
cajas de diálogo, pero puede tomar cualquier forma imaginable. Gran parte del trabajo
que se realiza en relación con el procesamiento digital de señales (DSP), el diseño de
instrumentos interactivos, los sistemas para la interpretación en tiempo real y la síntesis
gráfica (graphic synthesis) se ocupa del diseño de interfaces gráficas innovadoras.
Problemática.
Nielsen (1997) expone que lo habitual es que un usuario no lea con detalle ni
siquiera una mínima parte de los textos de una página web. En su lugar, y por economía
de tiempo, el usuario se limita a ojear la página. Es decir, el usuario realiza un rápido
barrido visual de cada página buscando elementos que llamen su atención, lo mismo pasa
con una interfaz gráfica si ésta no es diseñada con los elementos necesarios que llamen la
atención del usuario
Si nos acercamos al problema desde el lado del sujeto, entonces sí podríamos
entender de alguna manera la afirmación de que una interfaz gráfica pueda ser un método
de interacción con un sistema.
Cuando hablamos de la interfaz, hablamos del proceso mediante el cual, un
sujeto, se acerca a un sistema tecnológico con el que interacciona a través de los signos
inscritos en dicha superficie. El proceso interactivo, requiere de una serie de “requisitos”
cognitivos básicos por parte del sujeto, como percibir, decodificar, memorizar, decidir y
navegar a través de la interfaz gráfica. Desde esta perspectiva, la interfaz sólo cobraría
sentido, en cuanto el sujeto es capaz de “comprender” el significado y el proceso de
interacción, y sus facultades cognitivas son capaces de interpretar adecuadamente los
signos que se producen sobre la interfaz y usarlas adecuadamente.
De acuerdo con J. Spolsky (2000) cuando se tiene una interfaz gráfica, ésta deber
ser lo más fácil de usar ya que los usuarios no tienen el manual y si lo tuvieran no lo
leerían, por tanto la interfaz gráfica debe ser llamativa y fácil de utilizar.
INSTITUTO POLITÉCNICO NACIONAL ICA
19
CAPÍTULO 1
DESCRIPCIÓN DE LA GRÚA VIAJERA
Objetivo: Especificar los elementos que componen una grúa viajera, y las características
que esta tiene.
INSTITUTO POLITÉCNICO NACIONAL ICA
20
1. DESCRIPCIÓN DE LA GRÚA
Las grúas viajeras son máquinas empleadas para la elevación y el transporte,
aunque no es común su uso en todos los ámbitos. Por lo general, son aparatos destinados
al transporte de materiales y cargas en desplazamientos verticales y horizontales en el
interior y exterior. Se les utiliza en procesos que implican almacenamiento o bien en todo
lo relativo a la fabricación.
En lo que respecta a la constitución de estas máquinas, están compuestas de dos
vigas transversales a las vigas principales y de uno o dos pares de vigas laterales
(testeros), longitudinales en dirección a la nave y que sirven de sujeción a las que se
encuentran transversales y en donde van las ruedas como se puede ver en la siguiente
figura.
Figura 1.1 Estructura de una grúa tipo puente (grúa viajera).
También forma parte de la estructura general de la grúa viajera un carro
automotor, que está lo suficientemente capacitado como para transitar encarrilado a lo
largo de las vigas transversales de la estructura de la grúa.
El carro tiene que soportar sobre sí un polipasto. Así se denomina a un
mecanismo que se emplea para levantar cargas o moverlas, pero con un agregado extra.
El polipasto puede tener una gran ventaja mecánica, ya que levanta o mueve cualquier
peso, pero invirtiendo un mínimo de esfuerzo (Figura 1.2).
INSTITUTO POLITÉCNICO NACIONAL ICA
21
Figura 1.2 Carro de la grúa sobre vigas transversales.
El cableado de izamiento del polipasto se descuelga entre las dos partes de la
estructura. Por esta razón, al combinarse el movimiento de la estructura con los
movimientos del carro lo que se origina es la posibilidad de proceder sobre cualquier
punto de una superficie que haya sido delimitada por la extensión de los rieles.
Estos rieles de desplazamiento (vigas transversales) se encuentran casi en el
mismo plano horizontal en el que está el carro de la grúa viajera y, además, tienen un rol
más que vital porque es su propia altura la que va a determinar la altura máxima con la
que se podrá operar.
Los componentes de una grúa tipo puente (Figura 1.3), desde el punto de vista de
seguridad se consideran tres partes diferenciadas:
El puente: se desplaza sobre las vigas principales a lo largo de la nave, y este
tiene sobre si el carro con el polipasto.
El carro: se desplaza sobre las vigas transversales o puente, y recorre el ancho de
la nave.
El gancho: va sujeto del carro mediante el cable principal, realizando los
movimientos de elevación y descenso de las cargas.
INSTITUTO POLITÉCNICO NACIONAL ICA
22
Figura 1.3 Componentes
La grúa tipo puente realiza tres movimientos y estos son:
Traslación del puente: este se realiza a lo largo de las vigas principales, es decir
a lo largo de la nave.
Traslación del carro: este se realiza desplazando el carro a lo ancho de la nave
sobre las vigas transversales, es decir a lo largo del puente.
Elevación y Descenso: este movimiento se realiza por efecto del motor que
sujeta el gancho con la ayuda de un cable principal y tiene como efecto subir o
bajar la carga a trasladar.
1.1 Características de las grúas tipo puente.
En la clasificación de las grúas tipo puente existen una serie de datos básicos
dependiendo del tipo de grúa.
1.1.1 Velocidades de traslación.
Es necesario que exista una relación entre la velocidad de traslación final y los
valores de aceleración y desaceleración correspondientes, para garantizar un servicio
eficaz de la grúa tipo puente, el tiempo de traslación a velocidad plena debe ser entre 85%
de la marcha total.
INSTITUTO POLITÉCNICO NACIONAL ICA
23
1.1.2 Motores de accionamiento.
El tipo de motor a utilizar en el transporte, será según el tipo de empleo para el
que se vaya a utilizar la grúa tipo puente, estos motores básicamente son:
Motores de corriente continua. Con su correspondiente equipo de regulación de
velocidad. Por lo general este tipo de motores son caros, muy delicados y necesitan
mucho mantenimiento, por estas razones su existencia en ésta aplicación está muy
limitada.
Motores de corriente alterna. El motor asíncrono de rotor bobinado, es el más
utilizado en la aplicación de las grúas tipo puente, ya que la regulación de la velocidad se
da por resistencias, que de manera en que estas se van eliminado o desconectando, la
velocidad del motor aumenta.
Sin embargo, hay dos tipos de estructuras según la grúa viajera a la que se hace
referencia. Por ejemplo, aquellas que se encuentran al aire libre tienen una estructura que
está fundamentalmente destinada para dicha sustentación como se muestra en la siguiente
figura.
Figura 1.4 Grúa tipo puente al aire libre.
En cambio, en el caso de las máquinas interiores, ésta puede ser anexada o ya
estar incorporada desde un comienzo, como se muestra en la Figura 1.5.
INSTITUTO POLITÉCNICO NACIONAL ICA
24
Figura 1.5 Grúa tipo puente en el interior de una nave.
La operación de la grúa viajera se puede hacer de distintas maneras.
Desplazable a lo largo del puente.
Permite guiar la carga manualmente y permite mantener una distancia de
seguridad entre el conductor y la carga.
Mando suspendido del carro.
El conductor está próximo a la carga y puede guiarla manualmente, por lo general
este tipo de operación se utiliza en trabajos de mantenimiento y montaje.
Mando suspendido de un punto fijo del puente.
El mando se encuentra en un extremo del puente.
Mando por radio.
Se utiliza cuando el conductor no puede acompañar a la grúa, por ejemplo
centrales de energía nuclear.
1.2 Manipulación de grúas tipo puente.
Para llevar a cabo una manipulación segura de las grúas tipo puente y evitar
riesgos que se derivan de una incorrecta manipulación e imprudencias cometidas por los
operarios, se consideran las siguientes indicaciones:
INSTITUTO POLITÉCNICO NACIONAL ICA
25
Antes de elevar la carga, realizar una pequeña elevación para comprobar su
estabilidad y en caso de carga inclinada descender y realizar un eslingado que asegure
una carga estable.
Elevar la carga siempre con el carro y el puente alineados con la misma, tanto
horizontal como verticalmente para evitar balanceos. La carga se debe encontrar
suspendida horizontalmente para un desplazamiento seguro.
El operario debe acompañar siempre a la carga para mayor control de las
distancias y observar en todo momento la trayectoria de la misma, para evitar golpes
contra obstáculos fijos.
No colocarse nunca debajo de la carga suspendida, ni transportarla por encima de
trabajadores; la carga siempre debe llevarse por delante.
La colocación de los elementos de elevación como cadenas y eslingas se deben
colocar asegurando un perfecto amarre de la carga, tarea que lleva a cabo el operario.
1.3 Especificaciones de los Elementos de la Grúa.
Las especificaciones de la grúa que se propone para el desarrollo de este trabajo
tomadas del proyecto de investigación Monitoreo y control de posición de una grúa
viajera (Torres Rodríguez, I.C. 2006, pp. 10-15) son:
Masa máxima de la carga: 1500 Kg.
Desplazamiento máximo: 200 m.
Masa de la grúa: 500 Kg.
Longitud máximo del cable (malacate): 3 m.
Radio de las ruedas: 10 cm.
1.4 Especificaciones del Motor de Inducción.
Con base a las especificaciones de la grúa viajera, se utilizó como elemento
motriz un motor de inducción tipo jaula de ardilla de 5 HP, trifásico, 60 Hz, 4 polos, 220
V, cuyos parámetros son:
0.1062sr
INSTITUTO POLITÉCNICO NACIONAL ICA
26
´ 0.0764rr
5.834mX
0.2145lsX
´ 0.2145lrX
22.8J kgm
La velocidad nominal de la máquina es de 188 RPM a un deslizamiento de 0.0248
y la corriente nominal es de 11 A.
1.5 Especificaciones de la Caja de Engranes.
Generalmente, en las aplicaciones de motores eléctricos se usan cajas de
engranes. Estas, son comúnmente usadas para aumentar el par de torsión del motor y
disminuir su velocidad. En las cajas reductoras la potencia del motor se ve reducida al ser
multiplicada por un cierto factor de eficiencia.
Cuando se utilizan las cajas reductoras la relación del par torsional es
caja
em
t
TT
i
,
(1.1)
es decir
caja em tT T i (1.2)
donde ti es la relación de transmisión y cajaT el par torsional máximo proporcionado por
la caja de engranes
El par torsional máximo se obtiene de
caja a cT T T , (1.3)
INSTITUTO POLITÉCNICO NACIONAL ICA
27
siendo aT el par torsional debido a la aceleración y cT el par debido a las fuerzas de
oposición constantes como la fricción.
Por otra parte, la velocidad mecánica del rotor se obtiene mediante
mr t cajai (1.4)
O bien
mrcaja
ti
(1.5)
donde caja es la velocidad angular máxima determinada por
caja
x
r
(1.6)
siendo x la velocidad máxima de la carga y r el radio del elemento de transmisión.
En este trabajo se utiliza un motor de inducción cuyo par es de 20.373 Nm y su
velocidad de 188.495 /rad s . Se seleccionó una caja de engranes de 3:1, obteniéndose
de ella un par de 407.46 Nm y una velocidad de 62.83 /rad s , cuyos valores se ajustan
a los requerimientos de la grúa viajera debido a la carga máxima a transportar y a la
distancia de desplazamiento.
INSTITUTO POLITÉCNICO NACIONAL ICA
28
CAPÍTULO 2
MODELO MATEMÁTICO DE LA GRÚA
VIAJERA
Objetivo: Describir el comportamiento de la grúa viajera por medio de un modelo
matemático.
INSTITUTO POLITÉCNICO NACIONAL ICA
29
2. MODELO MATEMÁTICO DE LA GRÚA VIAJERA
En este capítulo se presenta el modelo matemático del sistema de la grúa viajera
de dos grados de libertad y se propone una trayectoria que permita el movimiento de la
grúa viajera con una oscilación limitada en la carga, los cuales son necesarios para
simular el esquemas de control propuesto tomados del proyecto de investigación
“Monitoreo y control de posición de una grúa viajera” con no. de registro SIP
20091276 (Torres Rodríguez, I.C. 2006, pp. 10-15).
El control de la grúa viajera se divide en dos áreas principales, la planeación del
movimiento (o trayectoria) y el control del movimiento, las cuales conjuntas logran que
la grúa viajera siga un camino predeterminado.
2.1 Modelo de la Grúa Viajera.
Una grúa viajera de dos grados de libertad es un equipo industrial cuyo fin es
manipular una carga desde y hacia cualquier punto en un plano formado por los ejes
vertical y horizontal. En otras palabras, una grúa viajera tiene las capacidades de levantar
y desplazar transversalmente una carga.
En esta al igual que sucede con los seres humanos, para ejecutar cualquier tarea
se debe analizar cuáles serán los movimientos necesarios y cuál será la fuerza que se le
aplicará. El modelo dinámico precisamente analiza esta situación y expresa las fuerzas o
pares requeridos por los actuadores para lograr el movimiento deseado en términos de
posición, velocidad y aceleración a lo largo de la trayectoria. Esto permite evaluar
vibraciones, sobre voltajes, etc. que llevan a movimientos erráticos o descontrolados.
El modelo plantea una serie de ecuaciones, cuya resolución nos permite obtener
la información necesaria que será enviada hasta la etapa de control de la grúa viajera. Este
control envía la señal de voltaje o corriente a la fuente de potencia de la grúa, encargada
de convertirla en la potencia adecuada que necesita el motor para realizar la función
asignada. Conocer esta información permite que las etapas de control, de potencia, y el
motor de inducción tengan un mejor funcionamiento y se desgasten menos.
2.2 Descripción del Método de LaGrange.
Para conocer el modelo matemático del sistema de la grúa viajera se utilizó el
método de Lagrange. Este método se basa en los conceptos de coordenadas generalizadas
y el lagrangiano (Katsuhiko Ogata, 1992) (Craig, J. 1989).
INSTITUTO POLITÉCNICO NACIONAL ICA
30
Las coordenadas generalizadas de un sistema, son un conjunto de coordenadas
independientes que se necesita para describir completamente el movimiento del sistema.
El número de coordenadas generalizadas necesario para describir el sistema es igual al
número de grados de libertad.
A su vez, el lagrangiano L es la diferencia entre la energía cinética cE y la
energía potencial pE de un cuerpo en movimiento en un punto dado de su trayectoria
L Ec Ep . La acción o principio de Hamilton es la integral temporal del
lagrangiano sobre una trayectoria. A cada trayectoria imaginable corresponde un valor
numérico de acción.
2
1
,t
i it
I L q q dt (2.1)
donde:
I Acción o principio de Hamilton
,i iq q Coordenadas generalizadas
L Lagrangiano
Las ecuaciones diferenciales que describen las posibles trayectorias de un sistema
requieren que la acción esté en un valor mínimo o máximo, con el objeto que la
diferencial funcional de la acción se anule (Katsuhiko Ogata, 1992):
0S (2.2)
Esta condición da lugar a las ecuaciones de Euler-Lagrange, la cual
aplicada al método lagrangiano proporciona las ecuaciones de movimiento para el
sistema:
0 1,2,....,i i
d L Li n
dt q q
(2.3)
INSTITUTO POLITÉCNICO NACIONAL ICA
31
La ecuación de Euler-Lagrange minimiza la acción reproduciendo justamente la
ecuación de movimiento de Newton (Cardona, Clos, 2000).
2.3 Modelo Dinámico de la Grúa Viajera.
Para realizar el estudio presentado en este trabajo se muestra el modelo de
dinámica de la grúa considerando las siguientes premisas, con la cuales se reduce la
complejidad del modelo:
1. El momento de inercia de la carga es ignorado.
2. La carga puede ser considerada como una masa puntual.
3. El cable es considerado rígido y con masa despreciable.
4. El movimiento de la carga se supone restringido al plano vertical.
Estas premisas, determinan el tipo de comportamiento dinámico que se utilizan
en este trabajo, aún para el caso en que el momento de inercia de la carga no puede ser
ignorado porque su magnitud es tal que las fuerzas debidas a la aceleración angular de la
carga son muy grandes. Sin embargo, el modelo sigue siendo válido si se proponen
trayectorias de seguimiento suficientemente suaves (R.L. Norton, 1990).
Por otra parte, la carga se puede considerar como de masa puntual siempre y
cuando la carga tenga una distribución homogénea y simétrica de la masa y que el punto
de levante sea el adecuado, es decir que este alineado con el eje vertical del centro de
gravedad de la carga y ligeramente por encima de éste.
Asimismo, el considerar al cable como de masa despreciable es válido ya que
generalmente la masa del cable es muy pequeña con relación a la masa de la carga y la
masa del carro de la grúa. La consideración de que el cable es rígido es realista para
algunos materiales (muchos de ellos de uso actual en las grúas) cuya deformación elástica
es pequeña. Por último, el movimiento se encuentra restringido al plano vertical ya que
ese es el propósito de análisis de este trabajo.
El movimiento en una tercera dimensión se considera como parte de otro análisis.
Perturbaciones externas (viento, etc.) que puedan provocar un movimiento fuera del plano
vertical, no son consideradas. Dadas las razones anteriores podemos concluir que es
factible analizar la dinámica de una grúa real bajo las suposiciones anteriores.
La grúa viajera tiene dos actuadores. Un actuador controla la posición del carro
(trolley) en la dirección horizontal, mientras que el otro es responsable del
INSTITUTO POLITÉCNICO NACIONAL ICA
32
desplazamiento del cable (desplazamiento vertical de la carga). Los dos grados de libertad
anteriores, (la posición del carro y la longitud del cable) son totalmente actuados. Sin
embargo, la grúa tiene un tercer grado de libertad no actuado, el cual es el ángulo
formado por el cable con respecto al eje vertical. Este último tiene que ser considerado
con el propósito de determinar la posición de la carga y de lograr un control exacto de la
posición de la misma, evitando la aparición de balanceos indeseables. Por esta razón, el
sistema puede ser considerado como subactuado, es decir, cuenta con un actuador menos
que los grados de libertad.
Un diagrama esquemático de una grúa viajera de dos grados de libertad se
muestra en la Figura 2.1
Figura 2.1 Diagrama del Sistema Grúa Viajera
Las variables que se utilizan durante el desarrollo del modelo de la grúa viajera
son:
T : Tensión del cable.
x : Posición del carro (grúa).
x : Velocidad del carro.
l : Longitud del cable (malacate).
: Ángulo del cable con respecto al eje vertical.
: Velocidad angular.
Carro
Malacate
m
mgZ
X
U1
U2
x
M
l
INSTITUTO POLITÉCNICO NACIONAL ICA
33
1u : Fuerza aplicada al carro.
2u : Par aplicado al malacate.
Por otra parte los parámetros del sistema son:
gM : Masa de la plataforma (del carro).
m : Masa de la carga.
r : Radio de la rueda.
Como el sistema tiene dos grados de libertad. Las coordenadas generalizadas son
yx .
La energía cinética de la plataforma (carro) es
2
1
1
2g gEc M v
(2.4)
donde 1v x , obteniéndose como
21
2g gEc M x
. (2.5)
A su vez, para encontrar la energía cinética del péndulo, se hace uso de la
longitud del cable l y el ángulo del cable para encontrar la posición del péndulo, esto
es
cos
x
y
p l sen
p l
(
(2.6)
Para encontrar las velocidades, se deriva la ecuación (2.6), obteniendo
INSTITUTO POLITÉCNICO NACIONAL ICA
34
cos
cos
x
y
dv lsen l
dt
dv l l sen
dt
.
(2.7)
La velocidad total en el eje x, es
cosxtotalv x l , (2.8)
Por lo tanto, el vector de velocidad del péndulo es
cosp
x lv
l sen
,
(2.9)
Desarrollando la ecuación (2.9) se tiene
2 2 2 22 cospv x l x l . (2.10)
La energía cinética del péndulo es
2 2 212 cos
2pEc m x l x l
. (2.11)
Y la energía cinética del sistema está dada por:
2 2 2 21 12 cos
2 2g p gEc Ec Ec M x m x l x l (2.12)
La energía potencial del sistema es g pEp Ep Ep , la energía potencial de la
grúa es cero y la energía potencial del péndulo es
,
INSTITUTO POLITÉCNICO NACIONAL ICA
35
cospEp mg l l (2.13)
donde g es la gravedad.
Por lo tanto, considerando a cE y a la pE , encontramos el lagrangiano (2.14)
para determinar las ecuaciones de movimiento de la grúa viajera.
2 2 2 21 12 cos cos
2 2gL Ec Ep M x m x l x l m g l l
(2.14)
Aplicando las ecuaciones de LaGrange a la ecuación, obtenemos:
0
0
d L L
dt x x
d L L
dt
(2.15)
De esta manera tenemos que la L
x
de la ecuación (3.15) es:
2 21 1cos
2 2
cos
g
g
L dx dx dxM m ml
x dx dx dx
M x mx ml
(2.16)
Ahora se obtiene la derivada de la ecuación anterior
2
cos
cos
g
g
dd L dxM m ml
dt x dt dt
M m x ml sen
(2.17)
INSTITUTO POLITÉCNICO NACIONAL ICA
36
Aplicando nuevamente las ecuaciones de lagrange a la ecuación (2.14),
obtenemos
22
2
12 cos
2
cos
L d dm l x l
d d
ml x ml
(2.18)
Obteniendo la derivada de la ecuación anterior
2
2
cos
cos
d xd L dml ml
dt dt dt
ml x x sen ml
(2.19)
Asimismo, se obtiene la L
de la ecuación (3.15):
cos cosd dLmlx mgl
d d
mlx sen mglsen
(2.20)
Por lo tanto, las ecuaciones de movimiento de la grúa viajera son:
2
1
2
cos
0 cos
gu M m x ml sen
ml x x sen ml ml x sen m g l sen
(2.21)
Despejando a x y a de la ecuación (2.21), que corresponde a la aceleración de
la grúa y a la aceleración del cable que sostiene a la carga, respectivamente:
INSTITUTO POLITÉCNICO NACIONAL ICA
37
2
1 cos
cos
g
u ml senx
M m
x x sen x sen gsen
l
(2.22)
Asimismo, considerando a la aceleración de la grúa y la masa total de la grúa, se
obtiene la fuerza total ( Lu ) total de la grúa, por lo tanto se tiene que:
L gu x M m (2.23)
Las ecuaciones (2.22) y (2.23) se utilizan para realizar la simulación de la grúa
junto con el control vectorial indirecto.
2.4 Comportamiento típico de una Grúa Viajera.
A continuación se muestra la simulación efectuada en Matlab simulink de la grúa
viajera, en donde se muestran las trayectorias típicas de posición, velocidad y fuerza
necesarias para que el movimiento de la grúa viajera sea suave
Como se muestra en esta figura 2.2, la trayectoria de posición va
incrementándose de una forma suave, esto es, no hay cambios abruptos en la trayectoria
de posición, esto con el fin de evitar oscilaciones bruscas en la carga.
Figura 2.2 Posición de referencia de la grúa viajera en m.
INSTITUTO POLITÉCNICO NACIONAL ICA
38
La figura 2.3 muestra el comportamiento de la velocidad requerida por la grúa,
como se observa, la velocidad se va incrementando en el intervalo de 0 s a 10 s, cuando
se llega a la velocidad máxima en 10 s, la velocidad de la grúa va disminuyendo para que
esta se pare.
Figura 2.3 Aceleración de referencia de la grúa viajera en m/s2.
En la figura 2.4 se muestra la fuerza aplicada al carro para que la grúa viajera
llegue a la posición preestablecida. Cabe señalar que las trayectorias de las Figuras son
para un desplazamiento de 10 m en un tiempo de 14.3 s. Asimismo, la fuerza de la Figura
es cuando se considera una carga de 10 kg.
Figura 2.4 Fuerza aplicada a la grúa viajera en N.
INSTITUTO POLITÉCNICO NACIONAL ICA
39
CAPÍTULO 3
DISEÑO DE LA INTERFAZ GRÁFICA DE
LA GRÚA VIAJERA
Objetivo: Diseñar una Interfaz Gráfica de Usuario que permita simular el
comportamiento de una grúa viajera, y que sea de fácil operación por el usuario.
INSTITUTO POLITÉCNICO NACIONAL ICA
40
3. DISEÑO DE LA INTERFAZ GRÁFICA DE LA GRÚA
VIAJERA
3.1 ¿Qué se entiende por ambiente Gráfico?
Un ambiente gráfico presenta al usuario elementos de fácil reconocimiento, que
sirven para efectuar todo tipo de operaciones, lo que hace mucho más sencillo el uso de la
computadora personal. Otra característica de un ambiente gráfico es que se basa en el
empleo de un sistema de menús a través de los cuales se identifican y seleccionan
programas, comandos y opciones (Fourier García, M. 1998).
Resulta evidente que es mucho más fácil trabajar al seleccionar y activar iconos o
elementos de un menú, que cuando se tienen que escribir comandos completos que exigen
aplicar rígidas reglas de sintaxis. Es por esto que los ambientes gráficos, así como los
programas de aplicación que corren bajo ellos y siguiendo el mismo formato, son
actualmente la forma de comunicación entre el usuario y la máquina, es decir que son la
interfaz preferida.
En cuanto a los programas de aplicación, es importante subrayar que cuando
siguen el formato de la interfaz gráfica en la que corren, además de tener una
presentación similar en cuanto a composición de pantallas y elementos como iconos,
barras y menús, también permiten el intercambio de secciones de archivos. De esta forma,
si un procesador de palabras y una hoja de cálculo corren en un mismo ambiente gráfico,
parte de una hoja de calcula puede llevarse a un documento de proceso de palabras para
incluirla en un informe; lo mismo se puede hacer con gráficos creados en la hoja de
cálculo.
Una diferencia importante entre trabajar directamente desde el Sistema Operativo
de una computadora personal o hacerlo desde un ambiente gráfico es que en el segundo
caso existen muchas formas diferentes de realizar las diversas operaciones.
Una desventaja de los ambientes gráficos es que exigen mayores capacidades de
memoria, microprocesadores más veloces, monitores de alta resolución y de preferencia a
color, y en general requieren mayores recursos de la computadora. Además, como el
manejo es intuitivo, ocurre muchas veces que el usuario logra hacer ciertas cosas casi por
casualidad, sin saber en realidad como obtuvo determinados efectos, que más tarde tal vez
no logre repetir. Se podría decir que si uno no pone cuidado puede volverse un usuario
“superficial”, experto en obtener las cosas por ensayo y error, sin bases técnicas e
INSTITUTO POLITÉCNICO NACIONAL ICA
41
incapaces de actualizarse para adaptarse a los cambios que en este dinámico campo
ocurren continuamente tanto en equipo como en software.
3.2 ¿Qué es Visual Basic?
La palabra "Visual" hace referencia al método que se utiliza para crear la interfaz
gráfica de usuario (GUI). En lugar de escribir numerosas líneas de código para describir
la apariencia y la ubicación de los elementos de la interfaz, simplemente puede arrastrar y
colocar objetos prefabricados en su lugar dentro de la pantalla. Si se ha utilizado alguna
vez un programa de dibujo como Paint, ya tiene la mayor parte de las habilidades
necesarias para crear una interfaz de usuario efectiva (Tiznado, M.A. 2004).
La palabra "Basic" hace referencia al lenguaje BASIC (Beginners All-Purpose
Symbolic Instruction Code), un lenguaje utilizado por más programadores que ningún
otro lenguaje en la historia de la informática o computación. Visual Basic ha
evolucionado a partir del lenguaje BASIC original y ahora contiene centenares de
instrucciones, funciones y palabras clave, muchas de las cuales están directamente
relacionadas con la interfaz gráfica de Windows. Los principiantes pueden crear
aplicaciones útiles con sólo aprender unas pocas palabras clave, pero, al mismo tiempo, la
eficacia del lenguaje permite a los profesionales acometer cualquier objetivo que pueda
alcanzarse mediante cualquier otro lenguaje de programación de Windows.
Basic es un lenguaje muy difundido, porque es fácil de aprender y de utilizar,
además de ser extraordinariamente potente gracias a haber evolucionado enormemente
incorporando múltiples tipos de datos, la posibilidad de crear funciones y procedimientos,
estructuras de control típicas de Pascal o C, orientación a objetos, etc. Gracias a esto,
Visual Basic permite crear estas aplicaciones gráficas de una forma rápida y sencilla.
3.2.1 Antecedentes históricos.
El lenguaje de programación BASIC (Beginner's All purpose Symbolic
Instruction Code) nació en el año 1964 como una herramienta destinado a principiantes,
buscando una forma sencilla de realizar programas, empleando un lenguaje casi igual al
usado en la vida ordinaria, y con instrucciones muy sencillas y escasas. Teniendo en
cuenta el año de su nacimiento, este lenguaje cubría casi todas las necesidades para la
ejecución de programas. Téngase en cuenta que las máquinas existentes en aquella época
estaban estrenando los transistores como elementos de conmutación, los ciclos de trabajo
INSTITUTO POLITÉCNICO NACIONAL ICA
42
llegaban a la impensable cifra de 10.000 por segundo y la memoria no pasaba de unos
pocos Kbytes en toroides de ferrita.
La evolución del BASIC por los años 70 fue escasa, dado el auge que tomaron en
aquella época lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978 se
definió una norma para unificar los Basic existentes creándose la normativa Basic
Standard.
Con la aparición de los primeros ordenadores personales, dedicados
comercialmente al usuario particular, allá por la primera mitad de los ochenta, el BASIC
resurgió como lenguaje de programación pensado para principiantes, y muchos de estos
pequeños ordenadores domésticos lo usaban como único sistema operativo (Sinclair,
Spectrum, Amstrad).
Con la popularización del PC, salieron varias versiones del BASIC que
funcionaban en este tipo de ordenadores (Versiones BASICA, GW-BASIC), pero todas
estas versiones del BASIC no hicieron otra cosa que terminar de rematar este lenguaje.
Los programadores profesionales no llegaron a utilizarlo, habida cuenta de las
desventajas de este lenguaje respecto a otras herramientas (PASCAL, C, CLIPPER). El
BASIC con estas versiones para PC llegó incluso a perder crédito entre los profesionales
de la informática.
Las razones para ello eran obvias:
No era un lenguaje estructurado.
No existían herramientas de compilación fiables.
No disponía de herramientas de intercambio de información.
No tenía librerías.
No se podía acceder al interior de la máquina.
Un largo etcétera de desventajas respecto a otros lenguajes de programación.
Tal fue ese abandono por parte de los usuarios, que la aparición del Quick Basic
de Microsoft, una versión ya potente del Basic, que corregía casi todos los defectos de las
versiones pasó prácticamente inadvertida, a no ser porque las últimas versiones del
sistema operativo MS-DOS incluían una versión de Quick Basic algo recortada (Q-Basic)
INSTITUTO POLITÉCNICO NACIONAL ICA
43
como un producto más dentro de la amplia gama de ficheros ejecutables que acompañan
al sistema operativo, y aprovecha de él el editor de textos.
Esta versión del popular Basic ya es un lenguaje estructurado, lo que permite
crear programas modularmente, mediante subrutinas y módulos, capaz de crear
programas ya competitivos con otros lenguajes de alto nivel. Sin embargo llegaba tarde,
pues los entornos MS-DOS estaban ya superados por el entorno gráfico Windows.
Sin embargo algo había en el Basic que tentaba a superarse: su gran sencillez de
manejo. Si a esto se le añade el entorno gráfico Windows, el aprovechamiento al máximo
de las posibilidades de Windows en cuanto a intercambio de información, de sus librerías,
de sus drivers y controladores, manejo de bases de datos, etc. el producto resultante puede
ser algo que satisfaga todas las necesidades de programación en el entorno Windows. La
suma de todas estas cosas es Visual Basic. Esta herramienta conserva del Basic de los
años 80 únicamente su nombre y su sencillez, y tras su lanzamiento al mercado, la
aceptación a nivel profesional hizo borrar por fin el "mal nombre" asociado a la palabra
Basic.
Actualmente se está comercializando la versión 6.0 de este producto. Desde su
salida al mercado, cada versión supera y mejora la anterior. Dados los buenos resultados a
nivel profesional de este producto, y el apoyo prestado por el fabricante para la formación
de programadores, Visual Basic se ha convertido en la primera herramienta de desarrollo
de aplicaciones en entorno Windows.
Han existido varias versiones de Visual Basic:
Cuando salió Visual Basic 1.0, Bill Gates los describió como "algo
maravilloso..." y "que cambiaría la forma en que la gente utilizaba Windows".
Visual Basic 2.0 era más rápido y más sencillo de utilizar.
Visual Basic 3.0 incorporó formas sencillas y potentes para acceder a las bases de
datos más potentes.
Visual Basic 4.0 trajo la programación a 32 bits en el entorno Windows 95.
Aunque hubo una versión de Visual Basic 4.0 de 16 bits para Windows 3.x. Pero
hasta ese momento, Visual Basic no compilaba los archivos .EXE a código
máquina, como C y C++. Los programas compilados a código de máquina (como
C++) son mucho más rápidos que los compilados en Visual Basic. Esas versiones
INSTITUTO POLITÉCNICO NACIONAL ICA
44
de Visual Basic(de la 1 a la 4) compilaban a código-p. Lo que significaba la
necesitad de realizar una llamada al motor en tiempo de ejecución, retrasando el
tiempo de ejecución del programa.
Es obligado decir sin embargo, que Visual Basic sigue siendo Basic. No se
pueden comparar sus prestaciones con otros lenguajes cuando deseamos llegar al fondo
de la máquina y controlar uno a uno sus registros. No es ese el fin perseguido con VB y si
es necesario llegar a esas precisiones será necesario utilizar otro lenguaje que permita
bajar el nivel de programación, como Visual C++, o realizar librerías (DLL) que lo
hagan. En la mayor parte de las aplicaciones, las herramientas aportadas por VB son más
que suficiente para lograr un programa fácil de realizar y de altas prestaciones. Cuando el
lenguaje no cubre una determinada área, siempre tendremos acceso a las API de
Windows.
3.2.2 Características generales de Visual Basic.
Visual Basic es una herramienta de diseño de aplicaciones para Windows, en la
que estas se desarrollan en una gran parte a partir del diseño de una interfaz gráfica. En
una aplicación Visual Basic, el programa está formado por una parte de código puro, y
otras partes asociadas a los objetos que forman la interfaz gráfica.
Es por tanto un término medio entre la programación tradicional, formada por una
sucesión lineal de código estructurado, y la programación orientada a objetos (OCX).
Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a
uno de esos dos tipos de programación, debemos inventar una palabra que la defina:
Programación Visual.
La creación de un programa bajo Visual Basic lleva los siguientes pasos:
Creación de una interfaz de usuario. Esta interfaz será la principal vía de
comunicación hombre máquina, tanto para salida de datos como para entrada.
Será necesario partir de una ventana (formulario) a la que le iremos añadiendo los
controles necesarios.
Definición de las propiedades de los controles (objetos) que hayamos colocado en
ese formulario. Estas propiedades determinarán la forma estática de los controles,
es decir, como son los controles y para qué sirven.
INSTITUTO POLITÉCNICO NACIONAL ICA
45
Generación del código asociado a los eventos que ocurran a estos objetos. A la
respuesta a estos eventos (click, doble click, una tecla pulsada, etc.) se le llama
Procedimiento, y se genera de acuerdo a las necesidades del programa.
Generación del código del programa. Un programa puede hacerse solamente con
la programación de los distintos procedimientos que acompañan a cada objeto.
Sin embargo, VB ofrece la posibilidad de establecer un código de programa
separado de estos eventos. Este código puede introducirse en unos bloques
llamados Módulos, en otros bloques llamados Funciones, y otros llamados
Procedimientos. Estos Procedimientos no responden a un evento establecido a un
objeto, sino que responden a un evento producido durante la ejecución del
programa.
Visual Basic introduce un concepto nuevo de programación, y es necesario
cambiar hasta el argot del programador.
3.2.3 Programación secuencial frente a programación bajo Windows.
No es necesario tener un profundo conocimiento de todos los detalles técnicos
para conocer el entorno de Windows.
Una versión reducida del funcionamiento de Windows incluye tres conceptos
clave: ventanas, eventos y mensajes.
Una ventana es simplemente una región rectangular con sus propios límites.
Probablemente ya sabe que hay varios tipos de ventanas: una ventana Explorador en
Windows, una ventana de documento dentro de su programa de proceso de textos o un
cuadro de diálogo que emerge para recordarle una cita. Aunque éstos son los ejemplos
más comunes, realmente hay otros muchos tipos de ventanas. Un botón de comando es
una ventana. Los iconos, cuadros de texto, botones de opción y barras de menús son todos
ventanas.
El sistema operativo Microsoft Windows administra todas estas ventanas
asignando a cada una un único número identificador (controlador de ventana o hWnd). El
sistema controla continuamente cada una de estas ventanas para ver si existen signos de
actividad o eventos. Los eventos pueden producirse mediante acciones del usuario, como
hacer clic con el mouse (ratón) o presionar una tecla, mediante programación o incluso
como resultado de acciones de otras ventanas.
INSTITUTO POLITÉCNICO NACIONAL ICA
46
Cada vez que se produce un evento se envía un mensaje al sistema operativo. El
sistema procesa el mensaje y lo transmite a las demás ventanas. Entonces, cada ventana
puede realizar la acción apropiada, basándose en sus propias instrucciones para tratar ese
mensaje en particular.
Como se puede imaginar, tratar todas las combinaciones posibles de ventanas,
eventos y mensajes podría ser interminable. Afortunadamente, Visual Basic evita tener
que tratar con todos los controladores de mensajes de bajo nivel. Muchos de los mensajes
los controla automáticamente Visual Basic, mientras que otros se tratan como
procedimientos de evento para su comodidad. Esto permite crear rápidamente eficaces
aplicaciones sin tener que tratar detalles innecesarios.
En las aplicaciones tradicionales o "por procedimientos", la aplicación es la que
controla qué partes de código y en qué secuencia se ejecutan. La ejecución comienza con
la primera línea de código y continúa con una ruta predefinida a través de la aplicación,
llamando a los procedimientos según se necesiten.
En una aplicación controlada por eventos, el código no sigue una ruta
predeterminada; ejecuta distintas secciones de código como respuesta a los eventos. Los
eventos pueden desencadenarse por acciones del usuario, por mensajes del sistema o de
otras aplicaciones, o incluso por la propia aplicación. La secuencia de estos eventos
determina la secuencia en la que se ejecuta el código, por lo que la ruta a través del
código de la aplicación es diferente cada vez que se ejecuta el programa.
Puesto que no puede predecir la secuencia de los eventos, el código debe
establecer ciertos supuestos acerca del "estado del mundo" cuando se ejecute. Cuando
haga suposiciones (por ejemplo, que un campo de entrada debe contener un valor antes de
ejecutar un procedimiento para procesar ese valor), debe estructurar la aplicación de
forma que asegure que esa suposición siempre será válida (por ejemplo, deshabilitando el
botón de comando que inicia el procedimiento hasta que el campo de entrada contenga un
valor).
El código también puede desencadenar eventos durante la ejecución. Por ejemplo,
cambiar mediante programación el texto de un cuadro de texto hace que se produzca el
evento Change del mismo. Esto causaría la ejecución del código, si lo hay, contenido en
el evento Change. Si supone que este evento sólo se desencadenará mediante la
interacción del usuario, podría ver resultados inesperados. Por esta razón es importante
INSTITUTO POLITÉCNICO NACIONAL ICA
47
comprender el modelo controlado por eventos y tenerlo en cuenta en el diseño de
aplicaciones.
3.3 Conceptos básicos de Visual Basic
Visual Basic es un lenguaje de programación orientado a objetos que permite
generar aplicaciones con un entorno gráfico denominado GUI, (Graphical User Interface
o Interfaz Gráfica de Usuario).
3.3.1 Entorno de Trabajo
Visual Basic es un lenguaje de programación con características y métodos
orientados a objetos que permiten crear aplicaciones para Windows.
Para comenzar a trabajar en Visual Basic es necesario identificar cada uno de los
componentes principales de la ventana principal, cada uno de estos componente cumplen
con una función determinada. (Figura 3.1)
Figura 3.1 Ventana principal Visual Basic
3.3.2 Proyecto en Visual Basic
Un proyecto es el conjunto de objetos que conforman una aplicación. Los
proyectos en Visual Basic generan un archivo con extensión .vbp que contiene vínculos a
los componentes (formularios, módulos, clases, etc.).
INSTITUTO POLITÉCNICO NACIONAL ICA
48
3.3.3 Formularios
El formulario es un componente esencial en Visual Basic, ya que contiene objetos
como botones y cuadros de texto, que son los elementos principales que el usuario utiliza
para interactuar con la interfaz gráfica y la computadora.
Personalizar la apariencia de un formulario requiere modificar sus propiedades,
esto con el fin de hacer más atractiva la interfaz, así como facilitar el manejo de la misma
al usuario.
3.3.4 Controles
Los controles sonobjetos con interfaz gráfica. La forma de colocar controles en
un formulario es seleccionadolos desde el cuadro de herramientas y arrastrando sobre el
formulario. Luego se puede cambiar el valor de sus propiedades. A continuación se
muestran los controles estándar de Visual Basic.
Control Gráfico
Etiqueta (Label)
Muestra la información, los títulos o los subtítulos que
deseemos. En las etiquetas o labels la propiedad más
importante es Caption, que contiene el texto que
aparece sobre este control. Esta propiedad puede ser
modificada desde programa, pero no interactivamente
clicando sobre ella. Puede controlarse su tamaño,
posición, color de fondo y una especie de borde 3-D.
Habitualmente las labels no suelen recibir eventos ni
contener código.
Cajas de Texto (Text Box)
Las cajas de Texto con controles típicos de Windows y
a través de ellas se ingresan la mayor parte de los datos
a las aplicaciones. Las cajas de texto permiten editar
texto o números directamente. La propiedad más
importante de las cajas de texto es Text, que representa
INSTITUTO POLITÉCNICO NACIONAL ICA
49
el texto contenido en el control.
Botón de Comando (Command Button)
Este control permite encapsular procedimientos para
que sean utilizados por el usuario con solo hacer click
sobre él. La propiedades más importantes del botón de
comando son su Caption, que es lo que aparece escrito
en él, y la propiedad Enabled, que determina si en un
momento dado puede ser pulsado o no.
Marco (Frame)
Los marcos sirven como contenedores de otros
controles, con un título en su parte superior. Son de
utilidad para separar partes importantes en un
formulario. La propiedad más sobresaliente de este
control es la propiedad Caption que es el título que
aparecerá en la parte superior del control.
Botón de Opción (Option Button)
Estos botones permiten decidir entre una serie de
opciones. Al estar dentro de un marco, solamente uno
podrá estar activo.
Caja de Selección (CheckBox)
A diferencia de los botones de opción, las cajas de
selección si permiten tener dos o más selecciones
activas.
Caja combinada (CombBox)
Un ComboBox tiene muchas cosas en común con un
Cudro de lista. Por ejemplo los métodos AddItem,
RemoveItem o Clear y las propiedades List, ListIndex
o ListCount. La diferencia principal es que en un
ComboBox tiene una propiedad llamada Style, que
INSTITUTO POLITÉCNICO NACIONAL ICA
50
puede adoptar tres valores (1,2 ó 3) que corresponden
con tres distintas formas de presentar una lista:
Cuadro de lista (ListBox)
Este control permite ingresar texto en líneas
considerados elementos, desde el modo de diseño, y en
modo de ejecución pueden seleccionarse los elementos
de este control para realizar distintas tareas, según las
necesidades del programa que se esté creando. Cada
línea del cuadro de lista es un elemento, y a cada
elemento de esta lista se le identifica con un número de
índice, es como tener un arreglo.
Figuras (Shape)
La utilidad de este control es de decoración, y también
puede utilizarse como representación de algún objeto;
no posee eventos ni puede recibir el foco y posee
solamente los métodos Move, Refresh y ZOrder.
Su propiedad más importante es Shape, que determina
el tipo de forma que tendrá: ya sea cuadrado, circulo,
rectángulo, ovalo, cuadrado con las puntas
redondeadas o rectángulo con las puntas redondeadas.
Cajas de Imagen (Image)
Este control permite visualizar imágenes en su interior:
mapas de bits (*.bmp o *.dib), formato JPG, formato
de intercambio gráfico (*.gif), Wmf, emf, e iconos y
cursores.
Líneas (Line)
La utilidad de este control es de decoración, y también
puede utilizarse como representación del enlace de
algún objeto con otro, o para indicar separaciones.
INSTITUTO POLITÉCNICO NACIONAL ICA
51
Este tipo de control no posee eventos ni puede recibir
el foco y posee solamente los métodos X1, X2, Y1,
Y2, que indican la posición dentro del formulario.
Control de tiempo (Timer)
Este control no tiene una interfaz gráfica, es decir, que
en tiempo de ejecución este no es visible en la pantalla,
pero si tiene efectos en ella. La función del control de
tiempo es repetir tareas cada cierto intervalo de tiempo.
3.3.5 Algoritmo
Un algoritmo es un conjunto de pasos o instrucciones que establece las
operaciones que se realizan para resolver un problema o realizar una tarea, por ejemplo,
una receta de cocina es un algoritmo para preparar determinado alimento.
Las características de los algoritmos son:
Finito: debe terminar después de una cantidad finita de instrucciones.
Definido: debe dar el mismo resultado siempre que se ejecute con los mismos
parámetros.
Preciso: Debe poder desarrollarse de principio a fin de forma exacta.
Lenguaje de programación
Un lenguaje de programación es un conjunto de palabras y reglas que se utilizan
para dar órdenes o instrucciones a la computadora.
Visual Basic es un lenguaje de programación diseñado para facilitar el desarrollo
de aplicaciones en un entorno gráfico.
Programa Fuente
Cuando se escribe un algoritmo en un lenguaje de programación, como Visual
Basic, éste recibe el nombre de programa fuente.
Cada paso del algoritmo se expresa mediante instrucciones en el programa, por
ejemplo:
INSTITUTO POLITÉCNICO NACIONAL ICA
52
Private Sub Form_Load ( )
Dim A As Integer
Dim B As Integer
Dim Suma As Integer
A = InputBox ( “ Ingrese el número A ” )
B = InputBox ( “ Ingrese el número B ” )
Suma = A + B
MsgBox A & “ + ” & B & “ = “ & Suma
End Sub
Compilador
Un compilador es una aplicación que transforma el programa fuente en programa
objeto; es decir, lo traduce a lenguaje de máquina para que la computadora lo interprete y
ejecute las instrucciones contenidas en él.
Pseudocódigo
El pseudocódigo es una herramienta que se emplea en la programación
estructurada y que permite probar el funcionamiento lógico de los programas. Las
instrucciones se escriben en palabras similares al lenguaje natural lo cual facilita su
lectura y escritura, pero lo imposibilita para ejecutarlo directamente. Por esta razón es
necesario traducir cada instrucción en el lenguaje de programación en que se vaya a
realizar la aplicación, en este caso Visual Basic.
3.3.6 Diagramas de flujo
Un diagrama de flujo es la representación gráfica de un algoritmo mediante
signos convencionales que muestran el proceso que sigue la información en un programa
determinado. Estos diagramas normalmente se utilizan durante la fase de desarrollo de
una aplicación.
Los símbolos empleados con mayor frecuencia en el diseño de diagramas de flujo
son:
Símbolo Descripción
Terminal, representa el comienzo y el final de un
programa.
INSTITUTO POLITÉCNICO NACIONAL ICA
53
Entrada/Salida, representa cualquier entrada o salida
de datos.
Proceso, representa una operación o cambio de valor
en la información.
Decisión, muestra una operación lógica o de
comparación de datos.
Decisión múltiple, representa una comparación lógica
o de comparación de datos.
Conector, sirve para enlazar las partes del diagrama
de flujo en la misma página.
Línea de flujo, indica el sentido de ejecución del
algoritmo.
Línea conectora, realiza la unión entre dos símbolos.
Conector, enlaza las partes del diagrama de flujo en
páginas diferentes.
Llamada de procedimiento, llama una rutina
independiente al programa principal.
Pantalla, se utiliza en algunas ocasiones para
reemplazar el símbolo Entrada/Salida.
Impresora, se utiliza en algunas ocasiones para
reemplazar el símbolo de Entrada/Salida.
Teclado, se utiliza en algunas ocasiones para
reemplazar el símbolo de Entrada/Salida.
Comentario, se utiliza para agregar alguna
explicación.
Tabla 3.2 Símbolos utilizados en Diagramas de Flujo.
INSTITUTO POLITÉCNICO NACIONAL ICA
54
3.4 Desarrollo de la Interfaz Gráfica de Usuario en Visual Basic
En esta parte se ha tomado en cuenta tres aspectos para el desarrollo de la interfaz, los
cuales son:
Ventana de Interfaz Gráfica
Diagrama de flujo de operación de la Grúa Viajera
Diagramas de flujo programación de la Interfaz Gráfica
3.4.1 Ventana de Interfaz Gráfica
La interfaz es el elemento que permite al usuario interactuar con los contenidos,
no sólo se necesita de una interfaz atractiva, sino funcional. Para la realización de una
interfaz se deben tomar en cuenta ciertos principios de diseño.
-La interfaz debe basarse en términos orientados al usuario.
-En sistema deberá mostrar un nivel apropiado de consistencia.
-El sistema no debe tomar por sorpresa al usuario.
-El sistema debe proveer alguna ayuda cada vez que el usuario cometa un error, y dar la
posibilidad a éste de corregir el error antes de ejecutarlo.
-Las guías de usuario deben fungir como suplementos de ayuda para la operación de la
interfaz.
Teniendo en cuenta estos principios de diseño se utilizaron controles básicos para
la interfaz, para un mejor manejo por parte del usuario, y que estos sean de una fácil
identificación. En la siguiente figura se muestra la ventana principal de la interfaz de
simulación de la grúa, conformada por varios de los componentes de control descritos
anteriormente, como son: cajas de texto, etiquetas, marcos, líneas, etc.
INSTITUTO POLITÉCNICO NACIONAL ICA
55
Figura 3.2 Ventana principal Interfaz.
En la ventana principal se pueden identificar fácilmente dos secciones, una que es
donde se encuentran los parámetros con los que opera la grúa, es decir, los parámetros a
los que el usuario quiere llevar a la grúa viajera y una sección donde se ve una
representación gráfica de la vista superior de la grúa viajera, así como su área de trabajo.
- Sección de Parámetros de operación.
En la siguiente se observa la sección de la ventana principal donde se encuentran
los controles con los que el usuario tendrá interacción con la interfaz.
Figura 3.3 Controles te Operación de la Interfaz.
En esta sección de la ventana principal se puede observar un apartado de Posición
el cual se puede ver en la siguiente figura, éste marco contiene dos cajas de texto en los
INSTITUTO POLITÉCNICO NACIONAL ICA
56
cuales el usuario deberá introducir los valores de la coordenada a donde desea llevar el
polipasto de la grúa dentro de su área de trabajo. En estas cajas de texto donde se
introducen los valores deseados se tienen condiciones de seguridad, es decir, que si se
introducen valores inválidos como son caracteres especiales, letras o un valor mayor al
del desplazamiento que puede realizar la grúa, este nos devuelve una leyenda de
advertencia que evita que el usuario cometa un error, esto obedece a uno de los principios
del diseño de interfaz gráfica, ya que si se comete un error, la interfaz nos da la opción de
corregir ese error antes de ejecutar la operación.
Figura 3.4 Marco de Posición.
Una condición importante de una Interfaz Gráfica implica que exista una
retroalimentación por parte de la interfaz hacia el usuario para su mejor interacción y
manejo de la misma, por esta razón en este apartado de Posición en la interfaz también se
agregaron dos etiquetas cuyos valores van cambiando de acuerdo con la posición del
polipasto, estas etiquetas muestran los valores de la posición ejes X y Y, con esto el
usuario puede ver los cambios de posición, y compararlos con los que introdujo y a su
vez compararlos con la representación gráfica de la posición de la grúa.
Para que se lleve a cabo la acción del cambio de posición del polipasto de la grúa
a los requeridos por el usuario, es necesario ordenar a la interfaz que realice la acción,
esto se hace mediante los botones de operación como se muestra en la siguiente figura,
para el movimiento sobre los ejes X y Y se utilizaron dos botones de comando, uno para
ejecutar la acción de movimiento, y otro para interrumpir la acción de movimiento, y
como indicador de operación se agregó dos controles tipo imagen, uno de color verde y
otro de color rojo, el que es de color verde tiene la propiedad que cuando se inicia el
programa éste control se encuentra no visible y cuando se activa la simulación se
encuentra visible y cubre el control de la imagen en color rojo, creando un efecto de
luminosidad del botón rojo a color verde cuando se activa la simulación, por otra parte si
la simulación se detiene, la propiedad de estar visible del control de tipo imagen d ecolor
verde regresa a su estado no visible para indicar que la acción se interrumpió y ahora la
grúa se encuentra detenida.
INSTITUTO POLITÉCNICO NACIONAL ICA
57
Figura 3.5 Marco de Operación.
El control de elevación del malacate esta independiente al de posición del
polipasto, esto por cuestiones de seguridad, ya que si se quiere desplazar dentro del área
de trabajo al polipasto con carga y se le da una coordenada para tres ejes, la carga puede
sufrir daños, si el área de trabajo tiene objetos que puedan obstruir su paso, por esta razón
si el usuario quiere elevar o descender el malacate, ya sea solo o con carga, el usuario da
la orden desde el apartado que se encuentra en el marco de elevación como se puede
observar en la siguiente figura, en este marco se encuentra una caja de texto en donde se
introduce el valor que el usuario desea descender el malacate, ya sea para descargar o
colocar carga, por ejemplo, si el usuario introduce el valor 2 entonces el malacate
desciende hasta tener en el largo del cable que lo sostiene la distancia de 2 metros. De
igual manera que en el marco de posición, en este marco de elevación se encuentra una
etiqueta la que realimenta al usuario con el valor de la distancia que tiene el largo del
cable del malacate.
Figura 3.6 Marco de Elevación.
Para generar la acción de elevación o descenso hay dos botones de comando, uno
para la elevación y otro para el descenso del malacate, cada uno de estos tiene un
indicador que muestra si esta activo el descenso o la elevación, estos indicadores están
diseñados con imágenes que tienen forma de flecha que indican con un color ya sea rojo o
verde si esta desactivada o activada la acción respectivamente. En este marco también se
encuentra un botón de paro, esté control nos permite detener la acción que se esté
INSTITUTO POLITÉCNICO NACIONAL ICA
58
ejecutando con respecto a la elevación, por ejemplo, si el malacate se está elevando o está
descendiendo, esté botón detiene la elevación o el descenso.
Figura 3.7 Marco de Carga y Velocidad.
Como parte de la simulación se agregaron dos cajas de selección, las cuales hacen
la función de descargar y cargar el malacate con un objeto como se observa en la figura
3.6, al cual se le asigna una carga, el valor de carga que se le asigna se introduce desde
una caja de texto que se encuentra en el marco de Carga y Velocidad como se muestra en
la figura 3.7.
En el marco de Carga y Velocidad, como ya se había mencionado, se asigna el
valor de la carga para la simulación, devolviendo en una etiqueta el valor de la velocidad
que tiene la grúa al desplazarse con esa cantidad de carga.
Figura 3.8 Marco de Tipo de Movimiento.
En la sección de parámetros de operación también tenemos un marco de tipo de
movimiento mostrado en la figura 3.8, en este se tiene dos botones de opción, con los
cuales se elije que movimiento se desea, ya sea que se desplace primero por el eje X y
después por el eje Y para llegar a la posición deseada, o que se desplace al mismo tiempo
sobre los dos ejes.
INSTITUTO POLITÉCNICO NACIONAL ICA
59
Figura 3.9 Marco de indicadores de inicio y fin de carrera.
Para poder identificar mejor si el polipasto ha llegado al final de carrera o se
encuentra en el inicio de carrera, ya sea sobre las vigas transversales donde se desplaza el
carro, el largo de la nave o el largo del cable que sostiene el gancho, se colocaron
identificadores luminosos que están compuestos por controles tipo CWbutton que son
complementos para visual basic creados por National Instruments, éste marco de
indicadores se puede observar en la figura 3.9, en total se cuenta con seis sensores, tres
son de inicio de carrera y tres que se encuentran al final de carrera.
- Sección de Representación Grafica de la Grúa
En la siguiente figura se observa la sección de la ventana principal donde se
encuentra una representación gráfica de la vista superior de la grúa viajera, así como su
área de trabajo.
Figura 3.10 Representación Gráfica de la vista superior de la Grúa.
INSTITUTO POLITÉCNICO NACIONAL ICA
60
Para la simulación de la grúa se colocó un marco que delimita el área de trabajo
en donde se desplaza el polipasto, en este marco se aplican los parámetros que se
introducen en la sección de parámetros de operación y al momento de iniciar la
simulación en esta representación gráfica de la grúa se puede observar el movimiento que
es indicado por el usuario en la sección de parámetros.
Figura 3.11 Marco de Área de desplazamiento de la grúa.
En la figura 3.11 se muestra el marco que contiene la representación de las vigas
que delimitan el desplazamiento de la grúa, así como las vigas transversales con los
dispositivos que realizan el desplazamiento de estas vigas, el polipasto que se encuentra
sobre las vigas transversales y se puede observar el carrete del cable que sostiene al
gancho, también se pueden observar cuatro recuadros más pequeños, éstos son los
sensores de inicio y fin de carrera, tanto los del largo de la nave, así como los del ancho
de la nave.
INSTITUTO POLITÉCNICO NACIONAL ICA
61
Figura 3.12 Marco de Elevación del Malacate.
En el Marco de Elevación como se muestra en la figura 3.6, se encuentran los
controles que manipulan el largo del cable para elevar o descender el malacate, cuando se
activa la acción correspondiente a la elevación o el descenso se puede observar en el
marco de Elevación del Malacate mostrado en la figura 3.12, en este se puede observar
como asciendo o desciende el malacate de la grúa, además se puede observar cuando se
coloca una carga en el malacate, en éste marco también se encuentran dos recuadros
pequeñitos en el cuadro que representa el polipasto, estos recuadros pequeños indican
sensores de inicio y final de carrera del mecanismo que proporciona el largo del cable que
sostiene al gancho.
- Gráfica de comportamiento
En la pantalla principal como se muestra en la figura 3.2 se puede observar en la
parte superior tres pestañas, en la pestaña de gráfica se encuentran dos controles de tipo
CWGraph creados por National Instruments representa la velocidad y la aceleración de la
grúa con respecto a la carga que está trasladando.
INSTITUTO POLITÉCNICO NACIONAL ICA
62
Figura 3.13 Controles tipo CWGraph.
- Representación del Proceso
Para un mejor diseño de la Interfaz Gráfica de Usuario se creó una representación
de la grúa en isométrico, en éste se puede ver el desplazamiento de la grúa.
Figura 3.14 Representación de la grúa en isométrico.
INSTITUTO POLITÉCNICO NACIONAL ICA
63
En la figura 3.14 se puede observar una representación gráfica de la grúa más
detallada que la de la ventana principal mostrada en la figura 3.10, en esta se pueden
observar las vigas el gancho y el cable, que al modificar los parámetros en la pantalla
principal se realiza el desplazamiento en esta sección.
Para la creación de los gráficos correspondientes a esta sección de la Interfaz
Gráfica de Usuario se utilizaron programas como Macromedia Flash para realizar los
dibujos a utilizar, así como Microsoft Power Point para el formato de las imágenes.
3.4.2 Diagrama de flujo de operación de la Grúa Viajera
Para diseñar la simulación de algún proceso, se debe tener conocimiento de las
acciones que se realizan dentro del proceso para poder realizar el algoritmo de
funcionamiento del proceso y posteriormente hacer la programación que se utilizará al
programar la interfaz.
Para realizar el algoritmo de funcionamiento se deben tomar en cuenta las
condiciones que se utilizan dentro del proceso, por ejemplo, que solo se pueda realizar
cierta acción dentro del proceso si es que se cumple una condición específica. Las
condiciones más utilizadas son las sentencias if… then… else… , la realización de este
algoritmo no fue la excepción, ya que se utilizaron sentencias if y sentencias if anidadas.
En la programación, cuando se cuenta con un algoritmo de operación se realizan
representaciones de este, existen diversas formas de representar los algoritmos, y para el
desarrollo del proyecto se utilizaron los siguientes:
Gráfica: Éste tipo de representación se realiza mediante gráficos, y para la representación
de esta forma se utilizó diagramas de flujo.
Simbólica: Para esta representación, las etapas son descritas con lenguaje próximo al
natural, con el grado de detalle adecuado a la etapa de desarrollo del programa.
Detallada: En esta representación se trata de describir el algoritmo en un determinado
lenguaje de programación (C, Matlab, Visual Basic, etc.)
En cualquiera de estas representaciones lo más importante es tener muy claro el
algoritmo a realizar.
En la siguiente figura podemos observar un diagrama de flujo que describe en
forma general el funcionamiento de la interfaz para la simulación de la grúa.
INSTITUTO POLITÉCNICO NACIONAL ICA
64
Inicio
Posición Deseada
X , Y
Ejes
Directo
Se mueve sobre
los ejes X y Y
proporcionalmente
Se mueve sobre el
eje X
X deseada
Y deseada
X deseada
Se mueve sobre el
eje Y
Y deseada
Fin
SI
SI
SI
NO
NO
NO
NO
SI
NO
NO
Se mueve sobre el
eje Y
SI
Y deseada NO
Fin
SI
Se mueve sobre el
eje X
X deseada
SI
Fin
SI
NO
Figura 3.15 Diagrama de flujo de funcionamiento de la interfaz.
INSTITUTO POLITÉCNICO NACIONAL ICA
65
3.4.3 Diagramas de flujo de programación de la Interfaz Gráfica
Como ya se ha mencionado para la programación se tiene que conocer el
algoritmo de funcionamiento, de acuerdo con éste diagrama se realizó el algoritmo de
programación, representado por diagramas de flujo.
- Cajas de texto
En la ventana principal de la interfaz gráfica, se puede observar el marco de
posición en la figura 3.4, el marco de elevación en la figura 3.6 y el marco de carga y
velocidad en la figura 3.7, en ellos encontramos cajas de texto, que son los que se
encargaran de establecer la posición a la que se requiera llevar el polipasto, asignar el
valor del peso de la carga y el valor del largo del cable que sostiene al malacate.
Lo que se programó en las cajas de textos son sentencias de seguridad, ya que
solo se usaran valores numéricos para el manejo de la interfaz, en la siguiente se puede
observar el diagrama de flujo que describe el algoritmo a programar.
Inicio
0,1,2,3,4,5,6,7,8,9,.
Función
numeros
Fin
Figura 3.16 Diagrama de flujo de función que solo permite números.
La función numeros condiciona que si el valor introducido no es un número, no
modifica el texto de la caja de texto, de la misma forma que solo aceptan números las
cajas de texto, estas no deben aceptar valores vacios, es decir, no acepta no tener carácter
en la caja de texto, en la siguiente figura se observa el diagrama de flujo que describe el
algoritmo.
INSTITUTO POLITÉCNICO NACIONAL ICA
66
Inicio
tmrDesp = “ ”
tmrDesp = 0
Fin
SI
NO
Figura 3.17 Diagrama de flujo de algoritmo que no permite valores vacios.
Cuando el texto de la caja de texto se encuentra sin valor se activa el diagrama de
la figura anterior, y le asigna el caracter “0” al texto. Como ya se mencionó en estas cajas
de texto se asignan valores de operación para la grúa, esta tiene sus límites de operación,
por ejemplo que la carga máxima es de 1500 kg, o que el desplazamiento máximo sobre
el eje X es de 200 m, etc. si los valores que se introducen son más grandes que los
permitidos por la operación de la grúa entonces se manda una advertencia al usuario para
que cambie estos valores, en la siguiente figura se observa el diagrama de flujo que
describe el algoritmo.
Inicio
tmrDesp= “ ”
tmrDesp= 0
Fin
"El valor introducido de
desplazamiento en X es
mayor al que puede realizar
la grúa"
SI
NO
Figura 3.18 Diagrama de flujo que indica advertencia de valores
INSTITUTO POLITÉCNICO NACIONAL ICA
67
Para facilitar y hacer más cómodo el uso de la interfaz gráfica en las cajas de
texto se programo una función que cuando se haga clic sobre la caja de texto, el
contenido de esta se seleccione para introducir un nuevo valor y al mismo tiempo
limpiar el valor anterior, en la siguiente figura se observa el diagrama de flujo que
describe el algoritmo de dicha función.
Inicio
tmrDesp.SelStart = 0
tmrDesp.SelLength =
Len(tmrDesp.Text)
Fin
Figura 3.19 Diagrama de flujo de función de selección del contenido en caja de texto.
- Botones de Comando
Los botones de comando son los que controles que activan o desactivan las
acciones a realizar en la interfaz, estos botones de comando los podemos ver en el marco
de operación y el marco de elevación, aunque parezca que son los que contienen la parte
más importante de la programación de la interfaz no la tienen, solo tienen programados el
cambio de propiedad de los controles de tiempo, los siguientes diagramas de flujo
muestran el algoritmo de programación de cada botón de comando.
Inicio
tmrDesp= 1
Fin
Figura 3.20 Diagrama de flujo del Botón de Comando Iniciar
En el botón de comando Iniciar se programó que active el tmrDesp en la figura
3.20, mientras que en el botón de comando Parar se programó que se desactive el
tmrDesp como se muestra en la siguiente figura.
INSTITUTO POLITÉCNICO NACIONAL ICA
68
Inicio
tmrDesp= 0
Fin
Figura 3.21 Diagrama de flujo del Botón de Comando Parar
En el botón de comando Elevar se elaboró un algoritmo para activar el tmrElevar
como se muestra en la figura 3.22, en el botón de comando Descender se elaboró un
algoritmo para activar el tmrDescenso como se muestra en la figura 3.23.
Inicio
tmrElevar= 1
Fin
Figura 3.22 Diagrama de flujo del Botón de Comando Elevar
Inicio
tmrDescenso= 1
Fin
Figura 3.23 Diagrama de flujo del Botón de Comando Descender
- Imagen
En la Imagen del botón de paro, que se encuentra en el marco de elevación
mostrado en la figura 3.6 se programó que se desactiven tmrElevar y tmrDescenso al
hacer un clic sobre la imagen, y a su vez que los indicadores que están activos se
desactiven como se muestra en el siguiente diagrama de flujo.
INSTITUTO POLITÉCNICO NACIONAL ICA
69
Inicio
tmrElevar= 0
tmrDescenso= 0
SFStandard3= 0
SFStandard1= 0
Fin
Figura 3.24 Diagrama de flujo del botón de paro.
- Cajas de selección
Los controles tipo caja de selección se encuentran en el marco de elevación
mostrados en la figura 3.6, en la caja de selección Colocar Carga nos muestra en la
sección de representación gráfica de la grúa como se aprecia en la figura 3.11 una
representación de una carga en forma de caja, esta carga está conformada por tres
elementos, una figura (shape) y dos líneas (line), las cuales permaneces invisibles hasta
que se da un clic a la caja de selección, y esta a su vez activa una segunda caja de
selección llamada Quitar Carga, en la siguiente figura se observa el diagrama de flujo que
describe el algoritmo de dicha función.
Inicio
chkColocar= 1
chkQuitar= 1
txtC= 1
Shape10 = 1
Line8 = 1
Line9 = 1
Fin
chkColocar= 0
chkQuitar= 0
SI
NO
SI
NO
Figura 3.25 Diagrama de flujo de la caja de selección Colocar Carga.
INSTITUTO POLITÉCNICO NACIONAL ICA
70
Cuando la caja de selección Colocar Carga se activa y la representación de la
carga en forma de caja es visible como nos muestra la siguiente figura, esta puede
modificar su propiedad de posición al activar la acción de elevación; cuando se da un clic
a la caja de selección Quitar Carga, la representación de la caja se vuelve no visible, y si
es que su posición cambio entonces la manda a su posición inicial, en la figura 3.27 se
observa el diagrama de flujo que describe el algoritmo de dicha función.
Figura 3.26 Representación de la Carga.
Inicio
Fin
chkColocar= 0
Shape10.top = 0
Line8 = 0
Line9 = 0
txtC = des
Shape10 = 0
Line8 = 0
Line9 = 0
Figura 3.27 Diagrama de flujo de la caja de selección Quitar Carga.
INSTITUTO POLITÉCNICO NACIONAL ICA
71
El conjunto de las dos cajas de selección permiten que la caja de texto donde se
asigna el valor a la carga se habilite o deshabilite, según sea el caso.
- Controles de tiempo
Al ser una simulación implica la variación en los valores de las variables con
respecto al tiempo, y los controles de tiempo, aunque no son visibles a la hora de ejecutar
el programa, son los controles más importantes porque contienen la parte esencial del
programa, estos controles de tiempo permanecen deshabilitados al momento de ejecutar
la interfaz, y son activados por los botones de comando, en los controles de tiempo es
donde se comparan los parámetros introducidos por el usuario y los que tiene la
simulación, una vez que los parámetros son iguales entonces el control de tiempo se
detiene.
Para el desarrollo de este proyecto se utilizaron tres controles de tiempo (timers)
cada uno controlando diferentes acciones y activados en diferentes partes del programa.
El primer control de tiempo (tmrDesp) contiene la programación de la posición
de la grúa dentro del área de trabajo, en la figura 3.28 se muestra el diagrama de flujo de
la programación contenida en el control de tiempo, este diagrama de control describe la
lógica que se debe seguir a la hora de hacer la programación en lenguaje de visual basic.
Dentro de este control de tiempo se consideran los valores de los botones de opción, los
cuales determinan el tipo de movimiento que realizará la grúa, en esta programación se
consideran todas las posibles condiciones para que se tome una decisión y se realice una
determinada acción, en la siguiente tabla se observan las combinaciones que se deben
programar para el buen funcionamiento de la grúa.
Posición x1 > x x1 = x x1 < x
y1 > y x + 1 ,
y + 1 y + 1
x - 1 ,
y + 1
y1 = y x + 1 --- x - 1
y1 < y x + 1 ,
y - 1 y - 1
x - 1 ,
y - 1
Tabla 3.3 Combinación de Condiciones programadas en tmrDesp
INSTITUTO POLITÉCNICO NACIONAL ICA
72
El segundo control de tiempo (tmrDescenso) es el que se encarga de manipular
el descenso del malacate, en la figura 3.29 se muestra el diagrama de flujo que describe
el algoritmo de dicha función, en este se condiciona que si el malacate desciende al
máximo del largo del cable que lo sostiene, entonces se puede colocar la carga que se
desea transportar, el tercer control de tiempo (tmrElevar) se encarga de la elevación del
malacate, en la figura 3.30 se muestra el diagrama de flujo que describe el algoritmo de
dicha función, ya sea con carga o sin carga. Cuando el malacate alcanza el valor que el
usuario introdujo, se detienen los controles de tiempo tmrDescenso o tmrElevar según
sea el caso.
INSTITUTO POLITÉCNICO NACIONAL ICA
73
Inicio
x, x1, y, y1
Colocar carga = 0
Quitar carga = 0
EjesNO
x1 > x
Polipasto se mueve
sobre el eje X en
dirección positiva
SI
SI
NO
y1 > y
NO
Polipasto se mueve
sobre el eje Y en
dirección positiva
SI
Posición
polipasto en X
Posición
polipasto en Y
x1 = x
SI
y1 = yNO
Fin
SI
Polipasto se mueve
sobre el eje X en
dirección negativa
Posición
polipasto en X
x1 = xNO
SI
Polipasto se mueve
sobre el eje Y en
dirección negativa
Posición
polipasto en Y
y1 = yNO
SI
x1 < x
SI
y1 < y
SI
NO
NO
NO
A
Figura 3.28 Diagrama de flujo de control de tiempo 1 (tmrDesp)
INSTITUTO POLITÉCNICO NACIONAL ICA
74
1
x1 > x
El polipasto se
desplaza sobre el eje
X en dirección positiva
x1 = x
Fin
SI
SI
NO
NO
Directo
x1 > x
y1 > y
El polipasto se desplaza
sobre los ejes X y Y en
dirección positiva
proporcionalmente
x1 = x
y1 = y
y1 > y
El polipasto se
desplaza sobre el eje
Y en dirección positiva
y1 = y
Fin
SI
SI
SI
NO
NO
NO
SI
SI
x1 > x
SI
El polipasto se
desplaza sobre el eje
X en dirección positiva
x1 = x
Fin
SI
SI
NO
NO
NO
NO
y1 < y
El polipasto se desplaza
sobre el eje X en dirección
positiva y sobre el eje Y en
dirección negativa
SI
x1 = x
y1 = y
El polipasto se desplaza
sobre el eje Y en dirección
negativa
y1 = y
Fin
SI
SI
SI
NO
NO
NO
x1 > x
SI
El polipasto se
desplaza sobre el eje
X en dirección positiva
x1 = x
Fin
SI
SI
NO
NOy1 < y
1
NO
A
B
Figura 3.28 Diagrama de flujo de control de tiempo 1 (tmrDesp)
INSTITUTO POLITÉCNICO NACIONAL ICA
75
x1 < x
y1 > y
SI
El polipasto se desplaza
sobre el eje X en dirección
negativa y sobre el eje Y
en dirección positiva
SI
x1 = x
y1 = y
y1 > y
El polipasto se
desplaza sobre el eje
Y en dirección positiva
y1 = y
Fin
SI
SI
SI
NO
NO
NO
x1 < x
SI
El polipasto se desplaza
sobre el eje X en
dirección negativa
x1 = x
Fin
SI
SI
NO
NO
NO
y1 < y
El polipasto se desplaza
sobre el eje X en dirección
negativa y sobre el eje Y
en dirección negativa
SI
x1 = x
y1 = y
El polipasto se desplaza
sobre el eje Y en dirección
negativa
y1 = y
Fin
SI
SI
SI NO
NO
NO x1 < x
SI
El polipasto se desplaza
sobre el eje X en
dirección negativa
x1 = x
Fin
SI
SI
NO
NO
y1 < y
2 NO
2
x1 < x
El polipasto se desplaza
sobre el eje X en
dirección negativa
x1 = x
Fin
SI
SI
NO
NO
y1 > y
El polipasto se
desplaza sobre el eje
Y en dirección positiva
y1 = y
Fin
SI
SI
NO
3
3
y1 < y
El polipasto se desplaza
sobre el eje Y en dirección
negativa
y1 = y
Fin
SI
SI
NO
NO
NO
B
Figura 3.28 Diagrama de flujo de control de tiempo 1 (tmrDesp)
INSTITUTO POLITÉCNICO NACIONAL ICA
76
Inicio
z1 > z
SI
El malacate
desciende
z1 = z NO
z = 3
SI
Se puede colocar
carga
SI
Fin
NO
Figura 3.29 Diagrama de flujo de control de tiempo 2 (tmrDescenso)
Inicio
z1 < z
SI
El malacate se
eleva
z1 = z NO
SI
Fin
Figura 3.30 Diagrama de flujo de control de tiempo 3 (tmrElevar)
INSTITUTO POLITÉCNICO NACIONAL ICA
77
CAPÍTULO 4
PROGRAMACIÓN DE LA INTERFAZ
GRÁFICA
Objetivo: Generar el código fuente que permita la interacción de todos los elementos
que conforman la Interfaz Gráfica de Usuario creada, utilizando sentencias lógicas de
acuerdo con los algoritmos correspondientes.
INSTITUTO POLITÉCNICO NACIONAL ICA
78
4. PROGRAMACIÓN DE LA INTERFAZ GRÁFICA
Teniendo el diseño de la Interfaz, es decir, la ventana con la que el usuario
interactuará, el algoritmo general de funcionamiento de la interfaz y el algoritmo de
programación de los elementos que componen la interfaz, se procede a realizar la
programación de cada elemento.
Para la realización de este proyecto las sentencias más utilizadas son:
If… then…
If… then… else…
Para programar los componentes de la interfaz nos guiamos por el diagrama de
flujo de funcionamiento de la interfaz y lo vamos relacionando con los diagramas de
programación de cada componente.
Lo primero que se hace al programar en cualquier lenguaje de programación es
declarar las variables que se van a utilizar, así como las funciones que más se utilizan.
Código
Option Explicit
Dim x As Integer
Dim x1 As Integer
Dim y As Integer
Dim y1 As Integer
Dim z As Integer
Dim z1 As Integer
Tabla 4.1 Declaración de variables
En la Tabla 4.1 se muestran las variables que se utilizarán, donde:
x: Es el valor que introduce el usuario para mover el polipasto a la posición deseada a
lo largo del área de operación de la grúa.
x1: Es el valor de la posición en la que se encuentra el polipasto a lo largo del área de
operación de la grúa.
y: Es el valor que introduce el usuario para mover el polipasto a la posición deseada a
lo largo del área de operación de la grúa.
INSTITUTO POLITÉCNICO NACIONAL ICA
79
y1: Es el valor de la posición en la que se encuentra el polipasto a lo largo del área de
operación de la grúa.
z: Es el valor que introduce el usuario para descender o elevar el gancho a la posición
deseada.
z1: Es el valor del largo del cable en la que se encuentra el gancho.
Código
Public Function numeros(Tecla As Integer) As Integer
Dim strValido As String
strValido = "0 1 2 3 4 5 6 7 8 9 ."
If Tecla > 26 Then
If InStr(strValido, Chr(Tecla)) = 0 Then
Tecla = 0
End If
End If
numeros = Tecla
End Function
Tabla 4.2 Declaración de Funciones más utilizadas
En la Tabla 4.2 se puede observar la función que condiciona que solo se
introduzcan valores numéricos en las cajas de texto, ésta función utiliza variables locales
para esa función, se llama variable local a una variable definida dentro de un
procedimiento o función, las variables locales no son accesibles más que en el
procedimiento o función en que están definidas. La función se declara como entero, y a su
vez se declara la variable tecla como entero y se declara una variable de tipo cadena para
especificar que caracteres son los que se pueden introducir en la caja de texto, en este
caso solo se pueden introducir los caracteres numéricos (0, 1, 2, 3 ,4 , 5, 6, 7, 8 y 9) y
adicionado a estos se agrego el carácter punto ( . ) con el fin de utilizar valores más
precisos, esta función es común para todas las cajas de texto, en la Tabla 3.4 se muestra el
código para llamar a esta función en todas las cajas de texto, para que ésta función se
ejecute correctamente debe colocarse en el evento KeyPress de cada caja de texto.
Código
Private Sub txtX_KeyPress(KeyAscii As Integer)
KeyAscii = numeros(KeyAscii)
INSTITUTO POLITÉCNICO NACIONAL ICA
80
End Sub
Private Sub txtY_KeyPress(KeyAscii As Integer)
KeyAscii = numeros(KeyAscii)
End Sub
Private Sub txtZ_KeyPress(KeyAscii As Integer)
KeyAscii = numeros(KeyAscii)
End Sub
Private Sub txtC_KeyPress(KeyAscii As Integer)
KeyAscii = numeros(KeyAscii)
End Sub
Tabla 4.3 Evento KeyPress llamando a la función numeros
El evento KeyPress sucede cuando el usuario pulsa y suelta determinada tecla. En
el procedimiento asociado con este evento el único argumento KeyAscii es necesario para
conocer cuál es el código ASCII de la tecla pulsada.
Como los valores que se introducen en las cajas de texto pueden ser cualquier
número, es necesario condicionar que no se introduzca un valor mayor al que puede
utilizar la grúa para realizar la operación, de igual forma se debe evitar que la caja de
texto se quede sin un caracter en su texto, para esto en el evento Change se programaron
condiciones If para realizar estas funciones, en la Tabla 4.4 se observa el código para
realizar dichas funciones, para cada caja de texto se programó una condición distinta para
evitar metes parámetros mayores a los que la grúa utiliza.
Caja de
Texto
Código Programado
txtX
Private Sub txtX _Change( )
If txtX.Text = "" Then
txtX.Text = 0
End If
If txtX.Text > 200 Then
MsgBox " El valor introducido de desplazamiento en X es mayor al que
puede realizar la grúa, introduzca un nuevo valor "
txtX.Text = 0
End If
End Sub
txtY
Private Sub txtY _Change( )
If txtY.Text = "" Then
txtY.Text = 0
End If
If txtY.Text > 120 Then
MsgBox " El valor introducido de desplazamiento en Y es mayor al que
INSTITUTO POLITÉCNICO NACIONAL ICA
81
puede realizar la grúa, introduzca un nuevo valor "
txtY.Text = 0
End If
End Sub
txtZ
Private Sub txtZ _Change( )
If txtZ.Text = "" Then
txtZ.Text = 0
End If
If txtZ.Text > 3 Then
MsgBox " El valor introducido del largo del cable es mayor al de la grúa,
introduzca un nuevo valor "
txtZ.Text = 0
End If
End Sub
txtC
Private Sub txtC _Change( )
If txtC.Text = "" Then
txtC.Text = 0
End If
If txtC.Text > 1500 Then
MsgBox " El valor de carga introducido es mayor al máximo de la carga
operación de la grúa, introduzca un nuevo valor "
txtC.Text = 0
End If
End Sub
Tabla 4.4 Sentencias If condicionando valores en evento Change
En el código del txtX se condiciona que se introduzcan un valor menor o igual a
200, ya que el valor máximo de desplazamiento del polipasto sobre el eje X es 200, en
caso de que el valor introducido en la caja de texto sea mayor que 200 se despliega un
mensaje de texto al usuario indicando que " El valor introducido de desplazamiento en X
es mayor al que puede realizar la grúa, introduzca un nuevo valor " y automáticamente
cambia el valor a “0” para que sea introducido nuevamente, de igual manera se programa
para el resto de las cajas de texto, como se puede observar en la Tabla 4.4, cada caja de
texto con una condición diferente y un mensaje similar.
Para un manejo más cómodo para el usuario y una mejor interacción se hizo la
programación en las cajas de texto para que cuando se de clic a una caja de texto se
seleccione automáticamente todos los caracteres de esta, y así sobrescribir el nuevo valor
en el valor anterior, de acuerdo con el algoritmo de programación figura 3.18.
Código
Private Sub txtX _GotFocus( )
txtX.SelStart = 0
txtX.SelLength = Len(txtX.Text)
End Sub
INSTITUTO POLITÉCNICO NACIONAL ICA
82
Private Sub txtY _GotFocus( )
txtY.SelStart = 0
txtY.SelLength = Len(txtY.Text)
End Sub
Private Sub txtZ _GotFocus( )
txtZ.SelStart = 0
txtZ.SelLength = Len(txtZ.Text)
End Sub
Private Sub txtC _GotFocus( )
txtC.SelStart = 0
txtC.SelLength = Len(txtC.Text)
End Sub
Tabla 4.5 Código para seleccionar texto
Como se puede observar en la Tabla 4.5 la función para realizar la selección se
programa en el evento GotFocus. Cada vez que un objeto pierde el foco se produce su
evento LostFocus y posteriormente, el evento GotFocus del objeto que ha recibido el
foco.
Cuando el programa se ejecuta el primer evento que ocurre es el Load del Form
que contiene la ventana principal, en este evento se asignaron condiciones iniciales de
operación, como se muestra en la Tabla 4.6
Código
Private Sub Form_Load( )
Option1.Value = True
frmBien.Timer1.Enabled = False
End Sub
Tabla 4.6 Programación evento Load de Form
En el evento Load se programaron condiciones iniciales para la operación,
donde:
Option1.Value = True :
Option1 es el botón de selección llamado ejes que se
encuentra en el marco de tipo de movimiento, la condición
programada es que al iniciar el programa el botón de
selección ejes este seleccionado.
frmBien.Timer1.Enabled : En ésta línea se programo la desactivación de control de
tiempo 1 que es el que se encarga de gobernar cuanto
INSTITUTO POLITÉCNICO NACIONAL ICA
83
tiempo aparecerá la pantalla de inicio
De a cuerdo con el algoritmo de programación del control de tiempo 2
(tmrDescenso Fig. 3.29) se programa la acción para descender el malacate y así poder
colocar la carga a la grúa, o si es que ya se tiene carga este descenso se utiliza para
colocar la carga en la posición de la altura deseada, en la tabla 4.7 se puede observar el
código del control de éste tiempo.
Código
Private Sub tmrDescenso_Timer()
z1 = txtZ.Text * 740 'se multiplica el valor introducido para ser comparado
z = Shape7.Top - 720 'se lleva a cero el largo del cable
If z1 > z Then 'si el valor introducido por el usuario es mayor al actual se cumple la
condición
'***el gancho se desplaza en dirección positiva sobre el eje Z***
'desplazamiento en el área de la representación gráfica *** vista superior ***
Shape7.Top = Shape7.Top + 10 'el gancho desciende sobre el eje Z
Image5.Top = Image5.Top + 10 'el gancho desciende sobre el eje Z
Line6.Y2 = Line6.Y2 + 10 'las líneas que representan el cable que sostiene al gancho
Line7.Y2 = Line7.Y2 + 10 'aumentan su longitud en la misma dirección que el gancho
desciende
SFStandard3.AnimationMode = 1 'indicador de descenso activado
lblZ.Caption = ((Shape7.Top - 720) / 740) 'imprime el valor de la longitud actual del
cable de la grúa en eje Z
'desplazamiento en el área de la representación gráfica *** vista isométrico ***
imgGancho.Top = imgGancho.Top + 8 'gancho desciende
imgCable.Height = imgCable.Height + 8 'la imagen que representa al cable que sostiene
al gancho disminuye su altura
Else
If z1 = z Then 'si el valor introducido por el usuario es igual al actual se cumple la
condición
tmrDescenso.Enabled = False 'se desactiva el timer que se encarga del descenso del
gancho
SFStandard3.AnimationMode = 0 'indicardor de descenso desactivado
End If
End If
If Shape10.Visible = True Then 'si la grúa tiene carga entonces entra en ésta condición
Shape10.Top = Shape10.Top + 10 'la forma que representa a la carga desciende al mismo
tiempo que el gancho
Line8.y1 = Line8.y1 + 10 'líneas que representan las eslingas
Line8.Y2 = Line8.Y2 + 10
Line9.y1 = Line9.y1 + 10 'líneas que representan las eslingas
Line9.Y2 = Line9.Y2 + 10
End If
If Shape7.Top = 2940 Then 'cuando se alcanza el valor máximo de la longitud del cable se
puede cargar la grúa
chkColocar.Enabled = True ' se habilita la caja de selección para cargar la grúa
End If
End Sub
Tabla 4.7 Código de programación para control de tiempo 2 (tmrDescenso)
INSTITUTO POLITÉCNICO NACIONAL ICA
84
En la tabla anterior podemos observar el código del control de tiempo 2 en donde:
z1 = txtZ.text*740 : Es una asignación de valor a la variable z1, para el
valor de esta variable se toma el valor introducido en
la caja de texto que se encuentra en el marco de
elevación, y se multiplica por una constante de valor
740, este valor es el que se compara con el valor de z
que es la posición que se tiene en la simulación.
La multiplicación del valor introducido en la caja de
texto se debe a que se debe realizar una conversión
del valor introducido con el que se utiliza en la
simulación, ya que se utiliza la unidad de pantalla
Twip.
z = Shape7.Top – 720 : Es una asignación de valor a la variable z, en esta
variable se le asigna el valor de cero, para que se
pueda realizar una mejor comparación entre z1 y z,
para así realizar mejor la acción de simulación.
La propiedad Top del control shape7 indica la
posición sobre el eje Y dentro del marco de que lo
contiene, por tanto el valor que se modifica para
realizar el descenso es la propiedad Top.
Shape7.Top = Shape7.Top + 10: Es la asignación de valor que se incrementa para
alcanzar a la posición requerida por el usuario, como
ya se mencionó, la propiedad que se cambia para
visualizar la posición del malacate es Top. Este valor
se incrementa con uno cada que se cumple un ciclo en
la sentencia cíclica que contiene a esta función.
Line6.Y2 = Line6.Y2 + 10 :
Line7.Y2 = Line7.Y2 + 10
Para poder visualizar mejor la simulación del
descenso del malacate, se agregaron dos líneas
simulando el cable que sostiene al malacate con
respecto al polipasto. Estas dos líneas de código
permiten representar como aumenta el largo del cable
INSTITUTO POLITÉCNICO NACIONAL ICA
85
que sostiene al malacate.
La propiedad Y2 indica el punto final de una línea
sobre el eje Y. El valor de esta propiedad se
incrementa con uno cada vez que se cumple con ciclo
en la sentencia que contiene a estas funciones.
LblZ.Caption = (z / 740) : Esta línea del programa modifica la propiedad
Caption de la etiqueta 5 para mostrar la posición que
tiene el malacate en la interfaz gráfica, el valor que
toma para mostrar es el de z, es decir, la posición que
tiene el shape7 respecto a su marco de referencia,
pero este se divide entre 740 para convertirlo de la
unidad de pantalla Twip a metros, que es la unidad
utilizada por el usuario.
SFStandard3.AnimationMode : Esta línea de código activa la imagen en forma de
flecha color verde, que indica que esta en ejecución la
acción del descenso.
La propiedad AnimationMode sirve para cambiar el
tipo de animación que tiene la imagen, para ésta
acción cambia de color la flecha.
If Shape7.Top = 2160 Then
chkColocar.Enabled = True
End if
Con estas líneas se condiciona que cuando se alcance
el valor máximo del largo del cable que sostiene al
malacate se habilite la caja de selección 1 que permite
colocar una carga a la grúa.
Para la programación del control de tiempo 3 de acuerdo con el diagrama de flujo
de la Figura 3.30 se utilizó el siguiente código:
Código
Private Sub tmrElevar_Timer()
z1 = txtZ.Text * 740 'se multiplica el valor introducido para ser comparado
z = Shape7.Top - 720 'se lleva a cero el largo del cable
chkColocar.Enabled = False
If z1 < z Then 'si el valor introducido por el usuario es menor al actual se cumple la
condición
'desplazamiento en el área de la representación gráfica *** vista superior ***
Shape7.Top = Shape7.Top - 10 'el gancho se eleva sobre el eje Z
Image5.Top = Image5.Top - 10
INSTITUTO POLITÉCNICO NACIONAL ICA
86
Line6.Y2 = Line6.Y2 - 10 'líneas que representan el cable reducen su longitud
Line7.Y2 = Line7.Y2 - 10
lblZ.Caption = ((Shape7.Top - 720) / 740) 'imprime el valor de la longitud actual del
cable de la grúa en eje Z
SFStandard1.AnimationMode = 1 'indicador de elevación activado
Shape10.Top = Shape10.Top - 10 'la forma que representa a la carga se eleva al mismo
tiempo que el gancho
Line8.y1 = Line8.y1 - 10 'líneas que representan las eslingas
Line8.Y2 = Line8.Y2 - 10
Line9.y1 = Line9.y1 - 10 'líneas que representan las eslingas
Line9.Y2 = Line9.Y2 - 10
chkQuitar.Enabled = False
'desplazamiento en el área de la representación gráfica *** vista isométrico ***
imgGancho.Top = imgGancho.Top - 8 'gancho se eleva
imgCable.Height = imgCable.Height - 8 'la imagen que representa al cable que sostiene
al gancho disminuye su altura
Else
If z1 = z Then
tmrElevar.Enabled = False
SFStandard1.AnimationMode = 0
chkQuitar.Enabled = True
End If
End If
End Sub
Tabla 4.8 Código de programación para control de tiempo 3 (tmrElevar)
En la figura anterior se muestra el código de programación que realiza la acción
de elevación del malacate, en este código se utilizan los componentes que en el código de
descenso.
El control de tiempo 1 (tmrDesp) contiene la programación de posicionamiento
“ x, y ” del polipasto de la grúa, de acuerdo con el diagrama de flujo de la figura 3.28 y la
tabla de condiciones Tabla 3.4 se realizó la programación y se utilizó el siguiente código:
Código
Private Sub tmrDesp_Timer()
x1 = txtX.Text * 40 ' el valor introducido es multiplicado para poder ser comparado
X = shpPolipasto.Left - 120 'se llevar el valor de la posición inicial a cero
y1 = txtY.Text * 40 ' el valor introducido es multiplicado para poder ser comparado
Y = shpPolipasto.Top - 480 'se llevar el valor de la posición inicial a cero
chkQuitar.Enabled = False 'se encuentran deshabilitados las cajas de selección
chkColocar.Enabled = False
If Option1.Value = True Then ' Si el tipo de movimiento es por ejes
If x1 > X Then 'si el valor introducido es mayor que la posición actual se cumple esta
condición
'***Polipasto se desplaza en dirección positiva sobre eje X***
'desplazamiento en el área de la representación gráfica *** vista superior ***
shpPolipasto.Left = shpPolipasto.Left + 10 'desplazamiento del polipasto dirección
positiva sobre eje X
INSTITUTO POLITÉCNICO NACIONAL ICA
87
shpVigatrasn2.Left = shpVigatrasn2.Left + 10 'desplazamiento de las vigas que
constituyen el puente
shpVigatrasn1.Left = shpVigatrasn1.Left + 10 'dirección positiva sobre eje X
rodcable.Left = rodcable.Left + 10 'desplazamiento del rollo de cable
lblX.Caption = ((shpPolipasto.Left - 120) / 40) 'imprime el valor de la posición actual
de la grúa en eje X
'desplazamiento en el área de la representación gráfica *** vista isométrico ***
imgGancho.Top = imgGancho.Top + 4 'desplazamiento del gancho
imgGancho.Left = imgGancho.Left + 8 'desplazamiento del gancho
imgCable.Top = imgCable.Top + 4 'desplazamiento del cable
imgCable.Left = imgCable.Left + 8 'desplazamiento del cable
imgVigastrans.Top = imgVigastrans.Top + 4 'desplazamiento del puente
imgVigastrans.Left = imgVigastrans.Left + 8 'desplazamiento del puente
imgDesp2.Top = imgDesp2.Top + 4 'desplazamiento del puente
imgDesp2.Left = imgDesp2.Left + 8 'desplazamiento del puente
imgPolipasto.Top = imgPolipasto.Top + 4 'desplazamiento del polipasto
imgPolipasto.Left = imgPolipasto.Left + 8 'desplazamiento del polipasto
imgDesp1.Top = imgDesp1.Top + 4 'desplazamiento del puente
imgDesp1.Left = imgDesp1.Left + 8 'desplazamiento del puente
indact.Visible = True 'indicador de simulación activada es visible
Else
If x1 < X Then 'si el valor introducido es menor que la posición actual se cumple esta
condición
'***Polipasto se desplaza en dirección negativa sobre eje X***
'desplazamiento en el área de la representación gráfica *** vista superior ***
shpPolipasto.Left = shpPolipasto.Left - 10 'desplazamiento del polipasto dirección
negativa sobre eje X
shpVigatrasn2.Left = shpVigatrasn2.Left - 10 'desplazamiento de las vigas que
constituyen el puente
shpVigatrasn1.Left = shpVigatrasn1.Left - 10 'dirección negativa sobre eje X
rodcable.Left = rodcable.Left - 10 'desplazamiento del cable
lblX.Caption = ((shpPolipasto.Left - 120) / 40) 'imprime el valor de la posición actual
de la grúa en eje X
'desplazamiento en el área de la representación gráfica *** vista isométrico ***
imgGancho.Top = imgGancho.Top - 4 'desplazamiento del gancho
imgGancho.Left = imgGancho.Left - 8 'desplazamiento del gancho
imgCable.Top = imgCable.Top - 4 'desplazamiento del cable
imgCable.Left = imgCable.Left - 8 'desplazamiento del cable
imgVigastrans.Top = imgVigastrans.Top - 4 'desplazamiento del puente
imgVigastrans.Left = imgVigastrans.Left - 8 'desplazamiento del puente
imgDesp2.Top = imgDesp2.Top - 4 'desplazamiento del puente
imgDesp2.Left = imgDesp2.Left - 8 'desplazamiento del puente
imgPolipasto.Top = imgPolipasto.Top - 4 'desplazamiento del polipasto
imgPolipasto.Left = imgPolipasto.Left - 8 'desplazamiento del polipasto
imgDesp1.Top = imgDesp1.Top - 4 'desplazamiento del puente
imgDesp1.Left = imgDesp1.Left - 8 'desplazamiento del puente
indact.Visible = True 'indicador de simulación activada es visible
…
Tabla 4.9 Código de programación para control de tiempo 1 (fragmento)
INSTITUTO POLITÉCNICO NACIONAL ICA
88
Para activar estos controles de tiempo es necesario utilizar los botones de
comando, que tienen solo acción de encendido, esto quiere decir que solo cambia la
propiedad enabled del timer por true o false según sea el caso.
El control de tiempo 1 (tmrDesp) es activado por el botón de comando Iniciar
que se encuentra en el marco de operación. Este cuenta con la siguiente programación:
Código
Private Sub cmdIniciar _Click()
tmrDesp.Enabled = True
End Sub
Tabla 4.10 Código de programación para el botón de comando Iniciar
Como se observa en la tabla anterior, el botón de comando solo activa el timer
correspondiente.
El botón de comando Parar desactiva o cambia la propiedad enabled del timer 1.
Código
Private Sub cmdParar _Click( )
tmrDesp.Enabled = False
indact.Visible = False
End Sub
Tabla 4.11 Código de programación para el botón de comando Parar
El botón de comando Elevar activa el control de tiempo 2.
Código
Private Sub cmdElevar_Click()
tmrElevar.Enabled = True 'se activa el timer que controla la elevación del gancho
If txtZ.Text = lblZ.Caption Then
MsgBox "El valor introducido es igual a la posición actual del gancho, por favor
introduzca un nuevo valor"
End If
End Sub
Tabla 4.12 Código de programación para el botón de comando Elevar
El botón de comando Descender activa el control de tiempo 3.
Código
Private Sub cmdDescender_Click()
tmrDescenso.Enabled = True 'se activa el timer que controla el descenso
If txtZ.Text = lblZ.Caption Then
MsgBox "El valor introducido es igual a la posición actual del gancho, por favor
introduzca un nuevo valor"
INSTITUTO POLITÉCNICO NACIONAL ICA
89
End If
End Sub
Tabla 4.13 Código de programación para el botón de comando Descender
La imagen del botón de paro tiene programada la función de cambiar la propiedad
enabled de los controles de tiempo timer1 y tmrDescenso.
Código
Private Sub Picture1_Click( )
TmrDescenso.Enabled = False
TmrElevar.Enabled = False
SFStandard3.AnimationMode = 0
SFStandard1.AnimationMode = 0
End Sub
Tabla 4.14 Código de programación el botón de paro
Con el código fuente ya mencionado es como se tiene la Interfaz gráfica ya
programada, solo hace falta tener un manual de operación de ésta para tener una buena
operación de la intrerfaz, el manual se puede revisar en el anexo1.
INSTITUTO POLITÉCNICO NACIONAL ICA
90
CAPÍTULO 5
COSTOS
INSTITUTO POLITÉCNICO NACIONAL ICA
91
5. COSTOS
La ingeniería en la actualidad no se limita a la solución de problemas en sus
correspondientes campos del conocimiento, sino que toma en consideración todas las
variables que puedan afectar la aplicación de soluciones y el desarrollo del proyecto. Una
de estas variables es la economía y los costos, lo que puede cambiar la toma de decisiones
o la forma en la que se deben plantear las soluciones, por esto se considera necesario que
los ingenieros estén concientes de la importancia de estos.
5.1 Costos de Ingeniería y Material
El objetivo del estimado de los costos del proyecto es el de evaluar la factibilidad
de ejecución del mismo en su etapa conceptual. Para el desarrollo de este proyecto se
utilizó un mínimo de materiales que se vuelven indispensables a la hora de la puesta en
marcha.
La interfaz gráfica como tal es una manera de reducir los costos de una empresa,
ya que con ella se puede tener un mejor control sobre las actividades realizadas, mismas
que a la larga hacen que la calidad del producto sea mayor y con esto se logre una mejor
posición en el mercado.
Los costos de programación y de diseño que se mencionan en la tabla 5.1, se
obtuvieron de experiencias de personas que se encuentran laborando como
desarrolladores de software.
COSTOS DE PROGRAMACIÓN Y DISEÑO
Concepto Precio Unitario Unidades Total
Horas de diseño
de software 400 15 6000
Horas de
programación
de software
375 10 3750
Mejoras de
software 350 8 2800
Uso de librerías 900 1 9540
TOTAL 22090
Tabla 5.1 Costos de Programación y Diseño
INSTITUTO POLITÉCNICO NACIONAL ICA
92
CONCLUSIONES
El empleo de las grúas tipo puente dentro de la industria facilitan muchísimo el
transporte y manejo de materiales de grandes dimensiones, llámense: Volumen, Peso y
Cantidad. Gracias a las grúas se agilizan y optimizan los procesos de producción,
almacenaje, transporte dentro de la empresa, entre otros, ya que se puede tener acceso a
los materiales necesarios para dichos procesos si se tiene una grúa que los lleve según sea
necesario, por ésta razón es necesario conocer el comportamiento de la grúa.
Una simulación es una buena manera de conocer el comportamiento próximo de
un proceso, ya sea por métodos matemáticos o métodos gráficos que nos ayuden a
describir dicho comportamiento. En el desarrollo de éste trabajo se eligió utilizar como
herramienta Microsoft Visual Basic 6.0 para desarrollar la simulación de una grúa tipo
puente, y gracias a éste programa (MVB 6.0) se realizó la simulación combinando los
métodos gráfico y matemático con un lenguaje de programación.
La utilización de ésta simulación permite ver la representación gráfica de los
principales componentes de una grúa tipo puente, y como estos interactúan, además de
ser de fácil uso para el operario.
La realización de ésta simulación permitió alcanzar objetivos como el desarrollo
de la Interfaz Gráfica de Usuario, y como resultado, ésta se puede utilizar en algún
proyecto futuro como mando de control a distancia, así como monitoreo del
desplazamiento de la carga y control de posición de la grúa.
INSTITUTO POLITÉCNICO NACIONAL ICA
93
GLOSARIO
Acometer: atacar de forma violenta, embestir con ímpetu, emprender, intentar.
Aglutinando: reunir dos o más ventanas de la misma aplicación en un mismo icono.
Argot: lenguaje específico utilizado por un grupo de personas que comparten unas
características comunes por su categoría social, profesión, procedencia, o aficiones.
Block de notas: es el editor de texto más simple que podamos encontrar en sistemas
Windows.
Conmutación: se considera como la acción de establecer una vía, un camino, de extremo
a extremo entre dos puntos, un emisor y un receptor a través de nodos o equipos de
transmisión. La conmutación permite la entrega de la señal desde el origen hasta el
destino requerido.
Decodificar: es el proceso por el cual se convierten símbolos en información entendible
por el receptor.
Eclosión: hablando de la programación es la aparición o manifestación súbita de un
programa antes de alcanzar un buen posicionamiento en el mundo de la programación.
Eslingado: sujeción de cargas
Eslingas: una eslinga es un tramo relativamente corto de un material flexible y resistente
(típicamente cable de acero), con sus extremos en forma de “ojales” debidamente
preparados para sujetar una carga y vincularla con el equipo de izaje que ha de levantarla,
de modo de constituir una versátil herramienta para el levantamiento de cargas.
hWnd: es un número único de cada ventana en ejecución dentro del ambiente de
Windows para identificar las aplicaciones, mensajes, funciones, etc. para cada ventana.
Iconografía: la iconografía es la disciplina que estudia los iconos, en la informática
consiste en sintetizar en un espacio muy pequeño la mayor información posible, para
resumir las funciones de la aplicación informática desarrollada por el programador.
INSTITUTO POLITÉCNICO NACIONAL ICA
94
Joystick: también llamado palanca de mando, es un dispositivo de control de dos o tres
ejes que se usa desde una computadora o videoconsola hasta un transbordador espacial o
los aviones de caza, pasando por grúas.
Kbytes: un kilobyte es una unidad de almacenamiento de información cuyo símbolo es el
kb y equivale a 210
bytes
MS-DOS: el MS-DOS es un sistema operativo para computadores y se le llama Sistema
Operativo de Disco (MicroSoft Disk Operating System) porque gran parte de su
funcionamiento implica la gestión de discos y archivos de discos.
Paradigma: es un conjunto de reglas que "rigen" una determinada disciplina. Están
"reglas" se asumen normalmente como "verdades incuestionables", porque son "tan
evidentes" que se tornan transparentes para los que están inmersos en ellas.
Polipasto: máquina que se utiliza para levantar o mover una carga con una gran ventaja
mecánica, porque se necesita aplicar una fuerza mucho menor al peso que hay que mover.
Punto de levante: el punto de levante es la parte de la carga de donde es sujetada por la
grúa.
Requerimientos cognitivos: procesos exclusivamente intelectuales que preceden al
aprendizaje, las capacidades cognitivas solo se aprecian en la acción, es decir primero se
procesa información y después se analiza, se argumenta, se comprende y se produce
nuevos enfoques.
Sistema operativo: es un software de sistema, es decir, un conjunto de programas de
computación destinados a realizar muchas tareas entre las que destaca la administración
de los dispositivos periféricos.
Software: es el equipamiento lógico e intangible como los programas y datos que
almacena la computadora.
Testeros: tapas o tablas que dan la forma a la viga.
Tipología: se encarga, en diversos campos de estudio, de realizar una clasificación de
diferentes elementos:
INSTITUTO POLITÉCNICO NACIONAL ICA
95
BIBLIOGRAFÍA
Marrero Expósito, C. (2006). “Interfaz Gráfica de Usuario: Aproximación semiótica y
cognitiva”. Proyecto de Investigación nivel doctorado, Universidad de la Laguna,
España.
Spolsky, J. (2000). “User Interface Desing for Programmers”.
Torres Rodriguez, I.C. (2006). “Control de un eje para una grúa viajera”. Tesis de
Maestría, Instituto Politécnico Nacional.
Katsuhiko Ogata, (1987). “Dinámica de Sistemas”. Prentice-Hall, Hispanoamericana
S.A., México.
Katsuhiko Ogata, (1987) “Ingeniería de Control Moderna”. Prentice-Hall,
Hispanoamericana S.A. México.
Craig J, (1989). “Introduction to robotics”. Addison-Wesley. New York.
Tiznado, M.A. (2004), “Visual Basic 6.0”, Mc Graw Hill.
Nielsen, J. (1997). “How Users Read on the Web”.
Nielsen, J. (1997). “Be Succinct ! (Wrinting for the Web)”.
Cardona, S. y D. Clos (2000). “Teoría de Máquinas”, Ediciones UPC, Barcelona –
España.
R.L.Norton, (1990). “Diseño de máquinas”. Prentice-Hall Pearson, México.
Escobar Duque, A (2003). “Programando en serio con Visual Basic 6.0”, DAED
Software
De Jesús García, M y García Delgadillo, C.A. (2007). “Diseño de una Interfaz para un
manipulador tipo scara que pueda usarse para ensamblado electrónico”, Tesis Instituto
Politécnico Nacional, México.
Mora, W. y Espinoza, J.L. (2005). “Programación Visual Basic (VBA) para Excel y
Análisis Numérico”, Instituto Tecnológico de Costa Rica.
Fourier García, M. (1998). “Aplicaciones bajo ambiente gráfico”, Trillas, SEP, México.
INSTITUTO POLITÉCNICO NACIONAL ICA
96
ANEXO
INSTITUTO POLITÉCNICO NACIONAL ICA
97
Manual de Operación GruaSim
1.0
Contenido
- ¿Qué es GruaSim 1.0?
- Ventana de inicio
- Ventana Principal
- Simulación 1. Posición
2. Tipo de movimiento
3. Iniciar o Detener la Simulación
4. Carga y Velocidad
5. Elevación y Descenso
6. Área de operación de la Grúa
7. Gancho
8. Sensores de inicio y final de carrera
- Proceso
INSTITUTO POLITÉCNICO NACIONAL ICA
98
¿Qué es GruaSim 1.0?
GruaSim 1.0 es un programa de interfaz gráfica sencilla y fácil de utilizar creado para
simular el desplazamiento de una grúa tipo puente, con el fin de que el operario se
familiarice con el uso de la misma y así facilitar su operación.
-Ventana de Inicio
La ventana de inicio del programa GruaSim 1.0 muestra la versión del programa y la
fecha de creación de ésta versión.
-Ventana Principal
En ésta ventana se tienen tres pestañas las cuales tienen funciones diferentes para
poder observar el comportamiento de una grúa tipo puente.
En ésta ventana se encuentran diversos controles que facilitarán la operación del
programa al usuario los cuales se describirán a continuación
-Simulación
INSTITUTO POLITÉCNICO NACIONAL ICA
99
En esta ventana se tienen varias secciones, en donde se introducen los valores que el
operario requiere para la simulación, a continuación se describen las secciones que
componen ésta ventana.
1. Posición
En ésta sección se introducen los valores deseados para el desplazamiento de la grúa,
tanto el desplazamiento a lo largo como desplazamiento a lo ancho del área total de
operación de la grúa.
Los valores a introducir no deben ser mayores a los de operación de la grúa, para el
desplazamiento a lo largo no debe ser mayor a 200m y para el desplazamiento a lo
ancho no debe ser mayor a 100m, en caso de que los valores que se introduzcan sean
mayores aparecerá una advertencia que pedirá introducir un nuevo valor.
INSTITUTO POLITÉCNICO NACIONAL ICA
100
También en ésta sección podemos ver la posición actual de la grúa y como ésta va
cambiando hasta alcanzar los valores que ce introdujeron.
2. Tipo de Movimiento
En ésta sección se tienen dos opciones de movimientos, los cuales son por ejes o
directo.
Cuando ya se tienen los valores introducidos para la posición, se debe decidir que tipo
de movimiento utilizar.
- Si el tipo de movimiento elegido es por ejes.
INSTITUTO POLITÉCNICO NACIONAL ICA
101
El desplazamiento de la grúa se realiza primero a lo largo del área de operación y
después a lo ancho.
- Si el tipo de movimiento elegido es directo.
Desplazamiento a lo largo del área de
trabajo
INSTITUTO POLITÉCNICO NACIONAL ICA
102
El desplazamiento de la grúa es proporcional a lo largo y a lo ancho del área de
desplazamiento hasta que uno de los dos, ya sea largo o ancho alcanza la posición
deseada, entonces se desplazará sobre el que no alcanzó la posición deseada, ya sea a lo
ancho o a lo largo hasta alcanza la posición final deseada.
3. Iniciar o Detener Simulación
Desplazamiento proporcional a lo
largo y a lo ancho sobre el área de
la grúa
En éste punto el desplazamiento a
lo ancho del área de trabajo
alcanza la posición deseada
Desplazamiento a lo largo
después que el desplazamiento
a lo ancho alcanzó su posición
deseada
Posición final deseada
INSTITUTO POLITÉCNICO NACIONAL ICA
103
Una vez que se tienen introducidos los valores de la posición deseada y el tipo de
movimiento que se desea, se inicia la simulación con los botones que se encuentran en
ésta sección de la ventana.
El botón de iniciar es el que ordena comenzar la simulación y cuando la simulación esta
activa se enciende un indicador en color verde. El botón de Parar es el que ordena
detener la simulación en cualquier punto del desplazamiento de la grúa.
4. Carga y Velocidad
En ésta sección se introduce el valor de la carga que se quiere trasladar y devuelve la
velocidad del desplazamiento de la grúa. Para introducir el valor de la carga es necesario
que se habilite la caja de selección llamada colocar carga que se encuentra en la sección
de elevación y descenso, de lo contrario el campo para introducir el valor de la carga se
encuentra deshabilitado.
5. Elevación y Descenso
Dentro de la pantalla principal se puede observar ésta sección que contiene los botones
que realizan la operación de elevación y descenso.
INSTITUTO POLITÉCNICO NACIONAL ICA
104
En ésta sección se introduce el valor del largo del cable que sostiene al gancho y
dependiendo de lo que se requiera, ya sea elevación o descenso, se debe accionar el
botón correspondiente, si la elevación se encuentra activa, su indicador se ilumina de
color verde, por otro lado, si el descenso esta activo, su indicador se ilumina de color
verde. Si se desea detener la elevación o el descenso del gancho, entonces se encuentra
el botón de paro, el cual se enclava al ser presionado y si éste no es desenclavado con
un segundo clic los botones de elevación y descenso permanecerán desactivados.
6. Área de operación de la Grúa
En ésta sección se puede observar la acción de desplazamiento de la grúa, tanto el
desplazamiento a lo largo como a lo ancho del área de operación, en ésta parte también
se pueden observar los sensores de inicio y final de carrera. En la siguiente figura se
puede observar la representación del área de operación de la grúa, en ella se puede ver
el desplazamiento cuando se activa la simulación.
Como se puede ver en la figura anterior en la parte superior de la representación de la
estructura principal de la grúa se pueden hay dos cuadritos muy pequeños que son los
que representan los sensores de inicio y final de carrera del largo del área de trabajo,
también se encuentran en las vigas transversales dos cuadros pequeños en los extremos
de estas, los cuales representan los sensores de inicio y final de carrera del ancho del
desplazamiento de la grúa.
7. Gancho
En ésta parte de la ventana principal se puede observar una representación del plano
vertical, en el que se encuentra el gancho sostenido por el cable que junto con el
polipasto se encarga de realizar la acción de elevación y descenso. Cuando se activa la
INSTITUTO POLITÉCNICO NACIONAL ICA
105
acción de elevación y descenso desde los botones correspondientes a cada una de estas
acciones, se puede observar dicha acción en ésta área.
En la figura anterior se pueden observar los sensores de inicio y final de carrera que
limitan el largo de la extensión del cable.
8. Sensores de Inicio y Final de carrera
En ésta sección se pueden observar los indicadores que muestran cuando un sensor de
inicio o final de carrera correspondientes a cada eje están activos.
- Proceso
En ésta ventana se puede observar el desplazamiento de la grúa cuando esta activa
cualquier acción de la simulación, ya sea cuando se desplaza o cuando se realiza la
elevación o el descenso del gancho.
INSTITUTO POLITÉCNICO NACIONAL ICA
106
En ésta pantalla no se realiza acción alguna para la simulación ya que es solo una
representación para que el operario pueda observar el desplazamiento y la posición de
la grúa dentro del área de operación.