Sei sulla pagina 1di 17

TECNOLÓGICO SUPERIOR DE SAN LUIS POTOSI, CÁPITAL.

PROGRAMACION AVANZADA
Fecha:02/03/18

Unidad 1

Ejercicios en LabView
Alumnos: Alma Jocabed Castillo Renteria, Marco Antonio Paloalto Tristan, Juan Gerardo Contrera,
José Miguel Martinez Requena

Ejercicio:

1. Encendido de un led.
El problema consta de encender y apagar un led, usando LabView.

Requerimientos: Lab VIEW Full Development System 2017


Pasos para implementar o ejecutar código
1. Insert Number/Boleano
2. Run the VI

Información adicional o referencias:

1. Diagrama de bloques VI
2. Panel frontal VI

Función del programa


While Loop Es el equivalente al bucle while empleado en los lenguajes
convencionales de programación. Su funcionamiento es similar al del bucle for.
El programa comprueba el valor de lo que se halle conectado al terminal
condicional al finalizar el bucle. Por lo tanto, el bucle siempre se ejecuta al menos
una vez. Con esta estructura también se pueden emplear los shift registers para
tener disponibles los datos obtenidos en iteraciones anteriores (es decir, para
memorizar valores obtenidos).
Boolean controls and indicators

Interruptor de luz: la luz se enciende tan pronto como cambia el


control y permanece en ese estado hasta que vuelva a cambiar el control.

Round led: Utilícelo como un control que cambia el valor actual tan
pronto como hace clic en el control, y retiene el nuevo valor hasta que vuelva a
hacer clic en el control
.
3. Display 7 Segmentos

El problema consta de lograr poner un numero entero del 1 al 9 en la interfaz de


Lab View, y de manera automática se encienda un display de 7 segmentos,
elaborado a base de leds individuales, según el numero ingresado.

Requerimientos: Lab VIEW Full Development System 2017


Pasos para implementar o ejecutar código
1. Insert Number/Boleano
2. Run the VI
Información adicional o referencias:
1. Diagrama de bloques VI
2. Panel frontal VI

Función del programa: Una pantalla de siete segmentos es una forma de


dispositivo de visualización electrónica para mostrar números decimales. Las
pantallas de siete segmentos se usan ampliamente en relojes digitales, medidores
electrónicos, calculadoras básicas y otros dispositivos electrónicos que muestran
información numérica. Este VI toma un número entero, junto con algunos otros
parámetros opcionales, para generar una matriz booleana de 7 segmentos para el
número. Es útil tanto para crear interfaces creativas como para comunicarse con
hardware con pantalla de 7 segmentos.

Equal
Compara dos matrices, el modo de comparación predeterminado es Comparar
agregados, y esta función devuelve un escalar. Puede comparar una matriz o
agrupación de un tipo de datos con un escalar del mismo tipo de datos y generar
una matriz o agrupación de valores booleanos.
While Loop. Es el equivalente al bucle while empleado en los lenguajes
convencionales de programación. Su funcionamiento es similar al del bucle for.

El programa comprueba el valor de lo que se halle conectado al terminal


condicional al finalizar el bucle. Por lo tanto, el bucle siempre se ejecuta al menos
una vez. Con esta estructura también se pueden emplear los shift registers para
tener disponibles los datos obtenidos en iteraciones anteriores (es decir, para
memorizar valores obtenidos)
Case Structure
Al igual que otras estructuras posee varios subdiagramas, que se superponen
como si de una baraja de cartas se tratara. En la parte superior del subdiagrama
aparece el identificador del que se está representando en pantalla. A ambos lados
de este identificador aparecen unas flechas que permiten pasar de un
subdiagrama a otro. En este caso el identificador es un valor que selecciona el
subdiagrama que se debe ejecutar en cada momento.

.La estructura Case tiene al menos dos subdiagramas


(True y False). Únicamente se ejecutará el contenido de uno de ellos,
dependiendo del valor de lo que se conecte al selector.

Round led: Utilícelo como un control que cambia el valor actual tan
pronto como hace clic en el control, y retiene el nuevo valor hasta que vuelva a
hacer clic en el control
True o false Constant
Puede cambiar este valor a FALSO usando la herramienta Operativa para hacer
clic en la porción T de la constante o haciendo clic con el botón derecho en la
constante y seleccionando Operaciones de datos »Cambiar valor a falso en el
menú de acceso directo. No puede cambiar este valor mientras se ejecuta el VI.

Numeric – Para la introducción y visualización de cantidades numéricas.

3.Arranque y paro de un motor

El problema consta de elaborar un programa en la interfase de LabView que


permita arrancar y parar un motor de manera eficiente.

Requerimientos: Lab VIEW Full Development System 2017

Para esta práctica se utilizó una herramienta básica en electrónica, que son las
compuertas lógicas, en conjunto con el álgebra Booleana. Se puede definir como
un conjunto de reglas matemáticas similares al álgebra convencional, pero con la
finalidad de implementarlo en el arranque y paro del motor. Se tradujo un
diagrama escalera que describía la función de arranque y paro de un motor
monofásico, a programación en LabVIEW. De manera relevante, además de
usarse un While Loop, se le agrego una manera de realizar una retroalimentación.

La compuerta NOT invierte el estado lógico del dato de entrada, esta compuerta
sólo tiene una entrada y una salida. Si a la entrada hay un nivel alto a la salida se
obtendrá un nivel bajo, su tabla de verdad es:

La compuerta AND tiene como mínimo dos entradas y su operación lógica es un


producto entre ambas, pero no es un producto aritmético sino como el que se
muestra en la tabla de verdad.

La compuerta OR, la operación lógica es una suma (no aritmética) entre ambas en
donde basta que una de las entradas sea uno para que a la salida se obtenga un
uno lógico, su tabla de verdad es:

Función del programa


Se utilizo algunos elementos de Lab VIEW como el que se utilizó en la practica 2,
ya mencionados, como: While Loop, Interruptor de luz, Round led y True o false
Constant.

5.Compuertas básicas

El problema consta de elaborar un programa en la interfase de LabView que


permita identificar el funcionamiento de compuertas loicas en el programa,
haciendo uso del While Loop.
Primero se necesita crear una interfaz de usuario, el cual debe ser la
comunicación entre el programador y el programa.

La interfaz, que se denomina como Panel Frontal, muestra el comportamiento de


las compuertas básicas AND, OR, NOT representadas por un foco verde.
Además, se colocan un indicador numérico, el cual se emplea en conjunto con el
While Loop, únicamente para demostrar su funcionamiento como control. También
se añaden dos interruptores, para simular los ceros y unos y así comprobar el
funcionamiento del programa.
Se muestra una imagen previa del programa. Esta interfaz es denominada
Diagrama de Bloques. Es aquí donde se desarrollan las operaciones y la lógica en
general.

6. Ecuacion de Segundo grado

El problema consta de elaborar un programa en la interfase de LabView que


calcule las raíces de una ecuación de Segundo grado, la cual es ingresada por el
usuario.

Primero se necesita crear una interfaz de usuario, el cual debe ser la


comunicación entre el programador y el programa.
(No se mostraran los pasos específicos para insertar estos comandos)

La interfaz, que se denomina como Panel Frontal, muestra tres controles


numéricos, los cuales se encargan de ingresar los coeficientes de cada variable.
Además, se colocan cuatro indicadores numéricos, los cuales muestran los
resultados obtenidos y los gestiona según su característica numérica, con ello
identificando de manera visual si el dato es un complejo conjugado o un número
real.
Se muestra una imagen previa del programa. Esta interfaz es denominada
Diagrama de Bloques. Es aquí donde se desarrollan las operaciones y la lógica en
general. Las pequeñas notas numéricas son solo representaciones de una prueba
anterior (se deben ignorar).

Como buen habito de análisis, es recomendable estudiar el problema a fondo, esto


con la obvia necesidad de comprender cuál es el problema y como resolverlo.
Se sabe que una ecuación de segundo grado, es una ecuación que tiene una
expresión general:

Donde:
X es la variable, y a, b y c son las constantes.
Para una ecuación cuadrática con coeficientes reales o complejos existen siempre
dos soluciones, llamadas raíces, que pueden ser reales o complejas (si los
coeficientes son reales y existen dos soluciones no reales, entonces deben ser
complejas conjugadas).
Fórmula general para la obtención de raíces:

La sección que define la naturaleza de las soluciones, si son raíces reales o


complejas, se denomina como Discriminante.
Para nuestro caso este apartado es la columna vertebral de nuestro programa. A
continuación se explica brevemente el porqué.
∆> 0 ∶ 𝐻𝑎𝑦 𝑑𝑜𝑠 𝑟𝑎𝑖𝑐𝑒𝑠 𝑟𝑒𝑎𝑙𝑒𝑠 𝑑𝑖𝑠𝑡𝑖𝑛𝑡𝑎𝑠

∆= 0 ∶ 𝑈𝑛𝑎 𝑟𝑎𝑖𝑧 𝑟𝑒𝑎𝑙

∆< 0 ∶ 𝐷𝑜𝑠 𝑟𝑎𝑖𝑐𝑒𝑠 𝑐𝑜𝑚𝑝𝑙𝑒𝑗𝑎𝑠 𝑐𝑜𝑛𝑗𝑢𝑔𝑎𝑑𝑎𝑠, 𝑑𝑜𝑛𝑑𝑒 (𝑖) 𝑒𝑠 𝑙𝑎 𝑟𝑎𝑖𝑧 𝑖𝑚𝑎𝑔𝑖𝑛𝑎𝑟𝑖𝑎

Entendiendo lo anterior se procede con el desarrollo del programa.

Inicialmente ingresamos la sección del discriminante de la ecuación general.


Cabe mencionar que no se calcula el valor de la raíz, esto por simplicidad en el
algoritmo, ya que solo necesitamos saber si su valor es se encuentra en alguno de
los tres casos anteriormente mencionados.
Al ingresar el discriminante se realiza una comparación, si el valor es menor o
igual a cero.
Con la ayuda de la estructura case, podemos evaluar cada caso. Si es verdad el
resultado de la comparación, entonces se trata del despliegue de raíces complejas
conjugadas.

Se muestra el algoritmo de la estructura case en el estado True (verdadero). Se


observa que es aquí donde se ingresan los demás datos de la ecuación general.
Si el estado de la comparación es false (falso), entonces el valor es igual a cero o
mayor. En este caso como trabajamos con raíces reales, puede compartir el
mismo algoritmo y las mismas salidas.

Finalmente los resultados se despliegan de esta manera.


Raíces complejas:
Raíces reales:

Se muestra el siguiente ejemplo:


8. Arranque y paro de motor con giro

El problema consta de elaborar un programa en la interfase de LabView que


permita arrancar y parar un motor de manera eficiente, además permitiendo que
este pueda cambiar de giro.

Requerimientos: Lab VIEW Full Development System 2017


Pasos para implementar o ejecutar código
1) Insert Number
2) Run the VI
Información adicional o referencias:
1) Diagrama de bloques VI
2) Panel frontal VI
Para esta práctica vamos a utilizar una herramienta básica en electrónica, que son
las compuertas lógicas, que utilizan el álgebra Booleana. Se puede definir como
un conjunto de reglas matemáticas similares al álgebra convencional, pero con la
finalidad de implementarlo en el arranque y paro del motor con el giro
correspondiente y con la ayuda del código de escalera nos ayudara a resolver la
lógica del programa en LabView.

Esta practica en particular, fue el complemento de la practica numero 2. Se usaron


exactamente los mismos comandos de LabView, solo que ahora resolvimos otra
lógica diferente, aunque solo fue complemento para poder realizar además del
arranque y paro de un motor monofásico, también pudiera realizar cambio de giro.

9 .Método de la Bisección

El problema consta de elaborar un programa en la interfase de LabView que


calcule el ángulo de disparo para un voltaje rms con valor variable, y definido en el
intervalo de 0 𝑎 𝜋.

*Se utilizará un polinomio de cuarto grado para encontrar la raíz deseada.


Vrms = 2.936𝛼 4 − 12.18𝛼 3 − 3.487𝛼 2 + 1.936𝛼 + 119.8
El planteamiento nos dice dos conceptos clave: un intervalo definido y un
polinomio de cuarto grado.
Existen diversos métodos para encontrar las raíces de cualquier polinomio. En
este caso particular se utilizara el método de bisección. Nuevamente como un
buen habito de programación se necesita conocer el problema y su solución.
El método de la bisección o de intervalos, aprovecha el hecho de que una función
cambia de signo en la vecindad de una raíz. A esta técnica se les llama método
cerrado, porque se necesita de dos valores iniciales para la raíz.
Entonces, la localización del cambio de signo (y, en consecuencia, de la raíz) se
logra con más exactitud al dividir el intervalo en varios subintervalos. El proceso se
repite y la aproximación a la raíz mejora cada vez más en la medida que los
subintervalos se dividen en intervalos cada vez más pequeños.
A continuación de muestra el algoritmo.
Ahora se debe desarrollar un criterio para decidir cuándo debe terminar el método,
obviamente no debe estar en un ciclo infinito.
Una sugerencia sería finalizar el cálculo cuando el error verdadero se encuentre
por debajo de algún nivel prefijado, en nuestro caso el error es de 0.001%.

Donde: 𝑋𝑟 (𝑛𝑢𝑒𝑣𝑜)𝑒𝑠 𝑙𝑎 𝑟𝑎𝑖𝑧 𝑑𝑒 𝑙𝑎 𝑖𝑡𝑒𝑟𝑎𝑐𝑖𝑜𝑛 𝑎𝑐𝑡𝑢𝑎𝑙 𝑦


𝑋𝑟 (𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟)𝑒𝑠 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑙𝑎 𝑟𝑎𝑖𝑧 𝑒𝑛 𝑙𝑎 𝑖𝑡𝑒𝑟𝑎𝑐𝑖𝑜𝑛 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟.
Con lo anterior estamos listos para comenzar a desarrollar el programa.
De nueva cuenta hacemos una interfaz de usuario.

Se coloca un control numérico para el valor del Vrms, dos indicadores numéricos,
uno para mostrar el valor de la raíz y otro solamente para visualizar la cantidad de
iteraciones realizadas, y un botón de paro de programa.
Los valores para el intervalo, en este caso son constantes, solo por comodidad del
programador. Para ingresar el polinomio y la ecuación de punto medio se utiliza el
comando Formula.
Ahora solo queda realizar el algoritmo en Labview.
Se muestra una imagen previa:
Se observan las entradas al ciclo while y las funciones (función A y C) que
contienen al polinomio y a la ecuación punto medio (C).

La parte esencial del programa es evaluar el producto de la función A por la


función C. Esto con el fin de saber si la raíz está en un rango de positivo o
negativo o también izquierda o derecha del punto medio.
Por ello en el programa se realiza una primera comparación, preguntando si el
valor del producto es menor o mayor a cero.
Si es menor (true) el valor de (A) se almacena y actualiza con un shift register. Si
es false, entonces, el valor de punto medio remplaza (A) por medio de un shift
register.
Si es mayor (true) el valor (B) se almacena y actualiza con un shift register. Si es
false, entonces, el valor de punto medio reemplaza (B) por medio de un shift
register.
Estas evacuaciones se harán indefinidamente hasta encontrar un error permisible,
el cual si es válido el programa se detendrá y mostrara el resultado de la raíz.

Se muestra un ejemplo del cálculo para encontrar un ángulo de disparo para un


Vrms de 60v.

10. Calcular temperatura de °C a ° F

El problema consta de elaborar un programa en la interfase de LabVIEW que


permita realizar la conversión de una temperatura ingresada por el usuario en °C y
el resultado ofrecido sea en °F. A demás se emplean nodos de propiedad y se
debe realizar el uso de la función de bloquear el nodo de la operación básica.

Requerimientos: Lab VIEW Full Development System 2017


Pasos para implementar o ejecutar código
3) Insert Number
4) Run the VI
Información adicional o referencias:
3) Diagrama de bloques VI
4) Panel frontal VI

Se realizo la conversión de °C a ° F, con ayuda de operaciones básicas.


Se empleo una nueva herramienta llamada nodos de propiedad, que se encuentra
representado por el siguiente icono , la parte izquierda muestra las
terminales propias que se encuentran en el panel frontal y la parte derecha
engloba lo existente en el panel de diagrama de bloques.
Cabe mencionar que este paso se guarda en un VI.
Posteriormente se realiza un nuevo VI dentro del mismo proyecto que el anterior y
ahora podrá tener así el programa anterior, en un solo bloque expresado en un
mediante una carita feliz. Solo basto con arrastrarlo a la pantalla de bloques donde
queríamos creacr el nuevo proyecto, lo complementamos y se obtuvo lo siguiente.

Es así como se logró que el usuario pudiera ingresar un valor de temperatura en


°C y se obtuviera automáticamente un valor de salida en °F.

Una aplicación muy útil que se encontró fue el poder bloquear con una contraseña
el nodo de propiedad. En el ejemplo mostrado donde usamos el nodo de
propiedad, realiza la función deseada, pero si deseamos ver cual es el código,
este automáticamente abre una ventana que pide un Pasword que previamente
debiste haber ingresado.
11.Clasificador de UDC

El problema consta de elaborar un programa en la interfase de LabView que


permita separar, Unidades, Decenas, Centenas y enciende un display según el
numero que indica en cada segmento, en este caso solo se muestra en las
unidades y decenas
Para esta práctica, se hizo uso de la practica 8 y se le añadió la opción de nodos
de propiedad. Se puede observar que tenemos 8 terminales en este icono
debido a que tenemos 7 elementos boléanos y uno numérico en la ventana frontal.
En este caso se realizo un diseño diferente para la parte de representar el nodo de
propiedad .

En el segundo programa donde se realiza la operación básica para poder separar


las UDC, se añaden los nodos de propiedad. Se observo que es una manera mas
fácil de identificar una función en u programa.

Potrebbero piacerti anche