Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Presentado Por:
Wbeimar Canacue
Grupo:
203037_52
Tutor:
Gerardo de Jesús Becerra
INTRODUCCIÓN........................................................................................................................3
OBJETIVOS................................................................................................................................4
MARCO TEORICO.....................................................................................................................5
DIAGRAMA DE FLUJO........................................................................................................16
CONCLUSIONES.....................................................................................................................20
REFERENCIAS BIBLIOGRAFICAS........................................................................................21
INTRODUCCIÓN
Este documento podrá evidenciar el manejo de labview por medio de la solución del
problema dado en la guía del curso, siendo esta fase en donde evidenciamos la optimización
y exportación de datos en una solución del problema.
Desde la perspectiva de software para ingeniería se puede decir que esta actividad paso 4- es de gran
importancia ya que ayudara a fortalecer el conocimiento en la herramienta labview la cual es muy
eficiente para el desarrollo de problemas que involucren diseño de instrumentos virtuales.
De igual forma cabe destacar, que esta actividad consistirá en desarrollar información de fuentes
relevantes que en el paso anterior se aportaron, para dar solución a lo planteado, lo que llevara a tener
una margen o mejor idea para desarrollar el problema de lo tratado, que al mismo tiempo fortalecerá y
aclarara las dudas con respecto a cómo se trabajara el instrumento virtual, donde con estas fuentes se
buscara mejorar o hacer más dinámico el instrumento virtual.
Durante el desarrollo de esta tarea, se nos pide realizar un control para un motor a pasos, para esto
debemos como grupo brindar aportes y participar constantemente para lograr al final generar una
solución colaborativa, tomando en cuenta la participación y opinión de cada uno de los integrantes del
grupo.
El mayor reto durante esta actividad será satisfacer completamente el solicitado en la guía, ya que, en
algunos puntos, tiene explicaciones bastante superficiales.
OBJETIVOS
Manejar la secuencia de estructuras para los diferentes casos en labview dando solución al
problema plateado en forma grupal. Y evidenciarlo por medio de pantallazos del problema
resuelto.
MARCO TEORICO
- Algoritmo.
- Algoritmo Unidad3_Paso4
- // defininimos la variables a usar en este caso la mayoria son de tipo entero a
ecepccion de algunas
- // que sus resultados son decimales Entonces se define como real
- Definir tipener,giro,resolucion,angaleatorio,nazar,pausa,reset,pasos,pasosne1,expd
Como Entero
- Definir pasosne,velocidad,velocidad1,velocidad2 Como Real
- // para poder reiniciar la ejecucion debemos usar la fucion de repetir mientras que se
cumpla una condicion
- // en este caso se repite siempre y cuando el susuario decee
- Repetir
- // pedimos las variables de entrada segun lo que indica la guia que son:
energizacio
- // velocidad, sentido de giro, resolucion y la opcion de generar el numero
aleatorio
- Escribir 'seleccione el tipo de energizacion:'
- Escribir '(1) Simple'
- Escribir '(2) Onda'
- Escribir '(3) Medio Paso'
- Leer tipener
- Mientras (tipener>3) Hacer
- Escribir '(1) Simple'
- Escribir '(2) Onda'
- Escribir '(3) Medio Paso'
- Leer tipener
- FinMientras
- Escribir 'Velocidad de trabajo en RPM: de 1 a 10 '
- Leer velocidad
- Mientras (velocidad>10) Hacer
- Escribir 'Velocidad de trabajo en RPM: de 1 a 10 '
- Leer velocidad
- FinMientras
- Escribir 'seleccione el tipo de giro:'
- Escribir '(1) Horario'
- Escribir '(2) Antohorario'
- Leer giro
- Mientras (giro>2) Hacer
- Escribir 'seleccione el tipo de giro:'
- Escribir '(1) Horario'
- Escribir '(2) Antohorario'
- Leer giro
- FinMientras
- Escribir 'Seleccione la resolucion'
- Escribir '(1)---0,72°'
- Escribir '(2)---1,8°'
- Escribir '(3)---3,6°'
- Escribir '(4)---7,5°'
- Escribir '(5)---15°'
- Escribir '(6)---90°'
- Leer resolucion
- Mientras (resolucion>6) Hacer
- Escribir 'Seleccione la resolucion'
- Escribir '(1)---0,72°'
- Escribir '(2)---1,8°'
- Escribir '(3)---3,6°'
- Escribir '(4)---7,5°'
- Escribir '(5)---15°'
- Escribir '(6)---90°'
- Leer resolucion
- FinMientras
- Escribir 'para generar un grado aleatorio presione (1) de lo contrario ENTER'
- Leer nazar
- Escribir nazar
- // redonddeamos la cantidad de pasos necesarios para que no se nos cree un
error a la hora de simular la energizacion
- pasosne1 <- redon(pasosne)
- // para calcular los pasos necesarios para lograr los grados generados
aleatoriamente, usamos condicionales anidados
- // ya que tenemos 6 tipos de energizacion y para esto lo que hacemos es de
acuerdo a la resolucion seleccionada
- // aplicamos los siguiente (grados generados)/(resolucion seleccionada)=
pasos necesarios
- Si nazar==1 Entonces
- angaleatorio <- azar(720)
- Escribir 'el angulo aleatorio generado es:'
- Escribir angaleatorio
- Si resolucion=1 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/0.72
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/0.72
- SiNo
- Si resolucion=2 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/1.8
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/1.8
- SiNo
- Si resolucion=3 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/3.6
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/3.6
- SiNo
- Si resolucion=4 Entonces
- Escribir 'los pasos necesarios son:'
- pasosne <- angaleatorio/7.5
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/7.5
- SiNo
- Si resolucion=5 Entonces
- Escribir 'los pasos necesarios
son:'
- pasosne <- angaleatorio/15
- pasosne1 <- redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/15
- SiNo
- Si resolucion=6 Entonces
- Escribir 'los pasos
necesarios son:'
- pasosne <-
angaleatorio/90
- pasosne1 <-
redon(pasosne)
- Escribir pasosne1
- velocidad1 <- 360/90
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- SiNo
- Si resolucion=1 Entonces
- pasosne1 <- 1
- velocidad1 <- 360/0.72
- SiNo
- Si resolucion=2 Entonces
- pasosne1 <- 1
- velocidad1 <- 360/1.8
- SiNo
- Si resolucion=3 Entonces
- velocidad1 <- 360/3.6
- pasosne1 <- 1
- SiNo
- Si resolucion=4 Entonces
- velocidad1 <- 360/7.5
- pasosne1 <- 1
- SiNo
- Si resolucion=5 Entonces
- velocidad1 <- 360/15
- pasosne1 <- 1
- SiNo
- Si resolucion=6 Entonces
- velocidad1 <- 360/90
- pasosne1 <- 1
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- // creamos un ciclo mientras, para poder pausar la simulacion, entonces se
va repetir la simulacion siempre y cuando
- // el usuario seleccione la opcion de continuar
- pausa <- 1
- pasos <- 0
- Mientras pausa=1 Hacer
- // dentro de un condicional e introcucido dos opciones, si se cumple
el tipo de rotacion será horaria
- // y si no entonces será antohoraria
- Si giro=1 Entonces
- // se crean 3 condiconales anidados para que las bobinas se
energicen de acuerdo a lo elegido por el usuario
- // en este caso la energizacion sera en sentido horario
- Si tipener=1 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- // en este paso tomamos el valor de la velocidad
seleccionada por el usuario y mediante algunos calculos,
- // hallamos el valor en tiempo de cuanto se tardará
cada paso en realizarse.
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- // para realizar los pasos necesarios, se crea un siclo
mientras que se ejecuando pasos simulados son menores
- // a los pasos necesarios para lograr el angulo generdo
aleatoriamente.
- Mientras pasos<pasosne1 Hacer
- Esperar velocidad2 Segundos
- // para realizar los pasos necesarios, se crean
condicionales que lo que hacen es que se ejecutan
- // siempre y cuando los pasos simulados son
menores a los pasos necesarios para lograr
- // el angulo generdo aleatoriamente esto hace
que se muesten solo los pasos necesarios y no toda
- // la energizacion completa de nuevo.
- Si pasos<pasosne1 Entonces
- Escribir '|1---|1 |0 |0 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|2---|0 |1 |0 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|3---|0 |0 |1 |0 |'
- pasos <- pasos+1
- Esperar velocidad2 Segundos
- FinSi
- Si pasos<pasosne1 Entonces
- Escribir '|4---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si tipener=2 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- // en este caso la velocidad no se divide entre 4
ya que debemos hacer 8 pasos en este tipo de energizacion para
- // lograr un giro de 360° entonces lo dividimos
entre los 8 pasos y nos dará el tiempo necesario para cada paso
- // y asi lograr las RPM indicadas por el usuario
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/8
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |1 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |1 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|0 |0 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|5---|0 |0 |1 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|6---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|7---|1 |0 |0 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|8---|1 |0 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- FinSi
- FinSi
- SiNo
- // en este caso la energizacion sera en sentido antihorario, ya
que se supone que el usuario ha seleccionado esta opccion
- Si tipener=1 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|0 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |0 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |0 |0 |0 |'
- pasos <- pasos+1
- FinSi
- FinMientras
- SiNo
- Si tipener=2 Entonces
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/4
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- SiNo
- Si nazar=0 Entonces
- pasosne1 <- 4
- pasos <- 0
- FinSi
- velocidad2 <- ((60/velocidad)/(velocidad1/4))/8
- Escribir '|paso|A+ |B+ |-A |-B |'
- Mientras pasos<pasosne1 Hacer
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|1---|1 |0 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|2---|1 |0 |0 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|3---|0 |0 |0 |1 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|4---|0 |0 |1 |1 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|5---|0 |0 |1 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|6---|0 |1 |1 |0 |'
- pasos <- pasos+1
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|7---|0 |1 |0 |0 |'
- FinSi
- Si pasos<pasosne1 Entonces
- Esperar velocidad2 Segundos
- Escribir '|8---|1 |1 |0 |0 |'
- pasos <- pasos+1
- FinSi
- Escribir pasos
- FinMientras
- FinSi
- FinSi
- FinSi
- // luego de hacer la simulacion segun lo seleccionado por el usuario
se le da la opcion de continuar o finalizar la simulacion
- Escribir 'para continuar presione 1 de lo contrario ENTER?'
- Leer pausa
- FinMientras
- // como al inicio habiamos creado una funcion de repetir mientras se cumple
la condicion, en esta parte se le pide al usuario,
- // que seleccione la opcion que dea, si elige reiniciar, se reiniciará el ciclo
repetir.
- Escribir 'para reiniciar presione 1 para finalizar preione 2'
- Leer reset
- Mientras reset>2 Hacer
- Escribir 'para reiniciar presione 1 para finalizar presione 2'
- Leer reset
- FinMientras
- // se ha creado una condicion, que nos permite si el usuario desea reiniciar, la
pantalla se limpia, haciendo que la nueva informacion
- // se observe de una mejor manera y el usuario no se confunda.
- Si reset=1 Entonces
- Borrar Pantalla
- FinSi
- Hasta Que reset=2
- // en caso de que el usuario introduzaca el numero 2, el algoritmo se finaliza.
- // Finalmente se dan las opciones de exportar los datos de la simulación
- Escribir 'Desea Visualizar los datos de la simulación?'
- Escribir '(1)---si'
- Escribir '(2)---no'
- Leer expd
- Si expd=1 Entonces
- Escribir 'Cantidad de pasos calculados:',pasosne1
- Escribir 'Velocidad: ',velocidad,' RPM'
- // Condicional en el cual se establece el sentido del giro empleado.
- Si giro=1 Entonces
- Escribir 'Sentido de giro: Horario'
- SiNo
- Escribir 'Sentido de giro: Antihorario'
- FinSi
- // Condicional anidado en el cual se establece la resolucion del motor
simulado.
- Si resolucion=1 Entonces
- Escribir 'Resolución del motor: 0.72°'
- SiNo
- Si resolucion=2 Entonces
- Escribir 'Resolución del motor: 1.8°'
- SiNo
- Si resolucion=3 Entonces
- Escribir 'Resolución del motor: 3.6°'
- SiNo
- Si resolucion=4 Entonces
- Escribir 'Resolución del motor: 7.5°'
- SiNo
- Si resolucion=5 Entonces
- Escribir 'Resolución del motor: 15°'
- SiNo
- Si resolucion=6 Entonces
- Escribir 'Resolución del motor:
90°'
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- FinSi
- // Condicional anidado en el cual se establece el tipo de energización
simulado.
- Si tipener=1 Entonces
- Escribir 'El tipo de energizacion : simple'
- SiNo
- Si tipener=2 Entonces
- Escribir 'El tipo de energizacion : Onda'
- SiNo
- Si tipener=3 Entonces
- Escribir 'El tipo de energizacion : Medio paso'
- FinSi
- FinSi
- FinSi
- FinSi
- FinAlgoritmo
DIAGRAMA DE FLUJO.
CAPTURAS DE PANTALLA DEL FUNCIONAMIENTO DEL APLICATIVO.
Img4. En esta imagen se evidencia que, si generamos un Angulo aleatorio, se realizarán solo
los pasos necesarios para llegar a ese Angulo y se detiene el VI. También se observa que, al
finalizar la ejecución, nos genera una tabla electrónica en Excel donde se exportan los datos
finales usados por el usuario.
CONCLUSIONES
REFERENCIAS BIBLIOGRAFICAS