Está en la página 1de 17

26-11-2019 Manipulación de

Datos

Israel Cedeño, Israel Marcatoma, Erick Silva


3RO “A”
Introducción

Los datos son representaciones simbólicas (vale decir: numéricas, alfabéticas, algorítmicas, etc.) de
un determinado atributo o variable cualitativa o cuantitativa, o sea: la descripción codificada de un
hecho empírico, un suceso, una entidad.

En el tipo de dato se define el modo en que se usa el espacio (memoria) en los programas.
Especificando un tipo de datos, está indicando al compilador como crear un espacio de
almacenamiento en particular, y también como manipular este espacio.

Los tipos de datos pueden parecer confusos. Por ejemplo, si el tipo de datos de un campo es Texto,
puede contener datos que constan de texto o caracteres numéricos. Pero un campo cuyo tipo de
datos es Número solo puede contener datos numéricos. Por tanto, debe saber qué propiedades se
usan con cada tipo de datos.

La manipulación de datos es el proceso de obtención y manipulación (cambio de formato) de los


datos para facilitar su lectura o mejorar su organización. Por ejemplo, una lista de entradas de datos
se puede organizar por orden alfabético, lo que facilita la visualización y la búsqueda de información.

A continuación hablaremos acerca de algunas funciones que nos permite manipular datos
conociendo su funcionamiento, para que nos sirve y como poder manejarlos.

Marco teórico
Manipulación de datos

Las funciones más sencillas para manipular datos son las que trabajan con bytes y bits.

Éstas se encuentran en la paleta en Programming > Numeric > Data Manipulation

Rotate Function

Esta función permite girar x el número de bits especificado por y. Tanto en las entradas como en la
salida se ingresan valores de tipo entero sea de 8-16-32 o 64 bits.

“y” especifica el número de bits en “x” que gira la función. Si “y” es mayor que 0, la función desplaza
los primeros bits y en el extremo izquierdo de “x” al extremo derecho. Si “y” es menor que 0, la
función desplaza los primeros bits “y” en el extremo derecho de “x” al extremo izquierdo.

Si x es un entero de 8, 16, 32 o 64 bits, para cualquier valor de y produce el mismo valor de salida,
respectivamente. Por ejemplo, si x es un entero de 8 bits, y = 1 e y = 9 producen el mismo resultado.

El tipo de dato de “x” recorrido a la izquierda por “y”, está determinado por el tipo de datos de la
entrada de “x”. De modo que “y” indica el número de bits recorridos de la izquierda, mientras que
“x” indica el valor entero de 8 bits.

La siguiente tabla ilustra cómo x e y afectan a x girado a la izquierda por y:

y x x girado a la izquierda Comentario


por y
1 3 6 (00000110) Esta función desplaza el primer bit de la izquierda, 0, al extremo
derecho
(00000011)

2 3 12 (00001100) Esta función desplaza los dos primeros bits de la izquierda, 00, al
extremo derecho.
(00000011)
–3 3 96 (01100000) Esta función desplaza los primeros tres bits a la derecha, 011, al
extremo izquierdo.
(00000011)

Type Cast

Convierte x en el tipo de datos, tipo, aplanándolo y desaplanándolo usando el nuevo tipo de datos.
Si la función debe reinterpretar los datos en lugar de transformarlos, LabVIEW usa un buffer
temporal. Esta función tiene el riesgo de reinterpretar datos. Para preservar el valor de los datos
mientras convierte los datos, use la función Coerc.

Nota También puede usar los VIs de conversión y las funciones para convertir tipos de datos.

type es el tipo de datos al que desea convertir los datos. Conecte cualquier constante o
control para escribir para establecer el tipo de datos al que desea convertir los datos. LabVIEW
ignora cualquier dato en la constante o control que conecte para escribir.

x especifica los datos que desea convertir. Esta entrada acepta cualquier tipo de datos.

* (type*) & x es el valor proporcionado en x y convertido al mismo tipo de datos que el


tipo.

Mantissa & Exponent

Devuelve la mantisa y el exponente del valor numérico de entrada tal que número = mantisa * 2 ^
exponente.

Si el número es 0, tanto la mantisa como el exponente son 0. De lo contrario, el valor absoluto de


mantisa es mayor o igual que 1 y menor que 2, y el valor del exponente es un número entero. El
panel del conector muestra los tipos de datos predeterminados para esta función polimórfica.

number puede ser cualquier representación decimal

mantissa tiene la misma representación decimal que número.

exponent tiene la misma representación decimal que número.


Split Number

Rompe un número en sus bytes o palabras en componentes

x puede ser un entero de 8, 16, 32 o 64 bits, o una matriz o grupo de esas representaciones.

del hi (x) y lo(x) son enteros que tienen la mitad ancho de x. hi (x) y lo(x) son enteros sin signo
de 8 bits, 16 bits o 32 bits, respectivamente, o una matriz o grupo de esas representaciones. hi(x)
es el byte de orden numéricamente alto y lo(x) es el byte de orden numéricamente bajo,
independientemente de la endianness del sistema operativo.

Join Numbers

Crea un número a partir de los bytes o palabras del componente.

El panel del conector muestra los tipos de datos predeterminados para esta función polimórfica.

hi puede ser un número de 8, 16 o 32 bits o una matriz o clúster de esa representación.

lo puede ser un número de 8, 16 o 32 bits o una matriz o clúster de esa representación.

(hi.lo) es un número entero dos veces el ancho de hi y lo. (hi.lo) es un entero sin signo de 16,
32 o 64 bits o una matriz o clúster de esas representaciones. Si hi y lo son de diferentes anchos,
(hi.lo) es el doble del ancho del número más ancho.

Swap Words

Intercambia los 16 bits de orden superior y los 16 bits de orden bajo por cada entero largo en los
datos.

Por ejemplo, si la entrada en formato hexadecimal es 1234567890ABCDEF, esta función intercambia


1234 con 5678 y 90AB con CDEF, devolviendo 56781234CDEF90AB. El panel del conector muestra
los tipos de datos predeterminados para esta función polimórfica.

data es un entero, una matriz de enteros o un clúster que contiene enteros que desea
intercambiar. En el caso de un clúster que contiene enteros, esta función intercambia solo los
elementos enteros del clúster. Si desea intercambiar byte-números de punto flotante o de punto
fijo, use la función Type Cast para convertir el valor en una matriz de bytes 1D. Luego use la función
Reverse 1D Array y escriba cast de nuevo a un número de punto flotante o de punto fijo. Ni las
referencias ni las variantes son entradas válidas. Ambos romperán el cable de entrada.

word swappedes es del mismo tipo y estructura de datos que los datos.

Swap Bytes

Intercambia los 8 bits de orden superior y los 8 bits de orden inferior por cada palabra en los datos.

Si desea intercambiar byte con números de punto flotante o de punto fijo, use la función Type Cast
para convertir el valor en una matriz 1D de bytes conectando una matriz de controles numéricos a
la entrada de tipo y al punto flotante o fijo. señalar números a la entrada x. Luego use la función
Reverse 1D Array para convertir la matriz a un número de punto flotante con los elementos
invertidos. El panel del conector muestra los tipos de datos predeterminados para esta función
polimórfica.

data es un entero, una matriz de enteros o un clúster que contiene enteros que desea
intercambiar en bytes. Si los datos son un clúster que contiene enteros, esta función intercambia
solo los elementos enteros del clúster. Ni las referencias ni las variantes son entradas válidas. Ambos
romperán el cable de entrada.

byte swapped es del mismo tipo y estructura de datos que los datos

Manual de Sistema de control de seguridad de una caja fuerte

1. Para iniciar creamos un proyecto nuevo y elegimos un archivo en blanco en el cual nos aparecerá
dos ventas el panel frontal y el diagrama de bloques.
2. En el panel frontal ingresamos un bloque de tipo string control para la contraseña y en el
diagrama de bloque ingresamos una constante de tipo string donde se asignará la contraseña
real de la caja fuerte.

3. En el panel frontal añadir un Led y editar en propiedades el color verde para on (encendido) y
rojo para off (apagado), mismo que indicara si la clave es correcta o incorrecta. Agregamos otro
led para la puerta. También se añade la etiqueta en cada led.

4. Añadimos dos imágenes de puerta cerrada y abierta y la pegamos en el panel frontal. Y lo


editamos dando click derecho en el led> advanced> customize, llevando ambas imágenes a la
nueva interfaz. Con el led en color verde damos cliqueamos en change to costomize mode >
click en la imagen puerta abierta > copy to cliboard > import picture from clipboard, y lo mismo
cuando esté cerrada o en color rojo respectivamente. Arrastramos el led personalizado al panel
frontal. Eliminamos las imágenes restantes.

5. Añadimos la función Match Pattern, que permite comparar un dato ingresado tipo String y
compararla con una expresión regular, de modo que si son iguales el pin de salida offset envía
el valor de la extensión del dato comparado.
Conectamos un control a la función, y agregamos una contraseña de 7310310243863900720
que esquvale a espoch20 en cadena(podemos cambiar la contraseña utilizando el control de
entrada y copiando el nuevo número en match pattern, ojo solo 8 caracteres), esto el terminal
regular expression de la misma función. Posterior se necesita comparar la extensión del dato
resultante con la ingresada. Entonces se ingresa un “String Lenght” y un comparador de
igualdad equal?. Y conectamos los cables a los terminales de los leds y funciones.
6. Ingresamos type cast, lo conectamos al control de la contraseña, conectamos una constante al
terminal type y creamos un indicador tipo U64(entero sin signo 64 bytes). Luego agregamos la
función Number to Decimal String y conectamos según corresponda.

7. Añadimos una estructura case, true para el proceso actual y para false creamos variables
locales de ambos leds y los colocamos allí, además de conectarlos a una constante de tipo
booleano false. Podemos decorar a nuestro gusto el panel frontal en la paleta decorations.
8. Por ultimo ejecutamos el VI.
Manual de rotate function

1. Para iniciar creamos un proyecto nuevo y elegimos un archivo en blanco en el cual nos aparecerá
dos ventas el panel frontal y el diagrama de bloques.

2. En el panel frontal ingresamos un bloque de tipo numeric control para ingresar un valor y con
su respectiva salida que es un numeric indicator

3. En el diagrama de bloque vamos a definir los bits de cada una de unas entradas el uno va ser de
16 y el otro 8 bit que esto nos va permitir la conversión de los números
4. Una vez realizado lo anterior vamos a buscar la opción rotate que se encuentra en numeric
después data manipulation y seleccionamos y colocamos una conversión de 8bit para que que
esa sea nuestra respuesta
5. En la pantalla de bloque vamos añadir un number to boolean array y también seleccionamos
index array
6. Por finalizado colocamos un led para poder visualizar nuestro resultado de como sirve la
función rotate si es que el numero nos roto o se mantuvo en el mismo

Conclusiones

 Labview permite la manipulación de datos con funciones, las cuales ayudan a rotar los
números, dividir o acoplar cadenas y para reinterpretar datos numéricos o de cadena.
 Type cast permite convertir los datos de entrada a un tipo de dato compatible, entonces
cuando necesite reinterpretar los datos y no transformarlos Labview utiliza un buffer
temporal. Coerce to type se utiliza cuando queremos convertir los datos de entrada a
un tipo de datos compatible mientras conserva los datos
 Para almacenar una cadena desde Labview en un archivo o base de datos o enviarse a
otras computadoras, podemos aplanar o ‘convertir’ con la ayuda de la función Flatten
to string.

Recomendaciones

 Al momento de elegir el formato de números que queremos utilizar debemos cerciorarnos


de que las funciones de Labview funcionen como deseamos y así evitar conflictos en los
resultados finales.
 Podemos optimizar el código si entendemos bien en donde realizar conversiones numéricas
y así optimizar el espacio de memoria que dispondríamos en dispositivos integrados o
microcontroladores que no poseen mucha memoria a diferencia de los computadores.

Bibliografía

[1] De la Cruz L. (2016) “Manipulación de datos Labview”. [Online] de:


https://es.scribd.com/presentation/325972395/Manipulacion-de-datos-Labview
[2] National Instruments (2019) “Tipos de datos y estructuras Labview”. [Online] de:
https://www.ni.com/academic/students/learnlabview/esa/datatypes.htm#boolean
[3] InfoPLC (2013) “Tipos de datos en Labview”. [Online] de: https://www.infoplc.net/descargas/50-
national-instruments/1815-tipos-de-datos-en-labview
Cuestionario
1.En la manipulación de datos la función Rotate utiliza valores de tipo:

a. Cadena de caracteres
b. Dato tipo array
c. Entero de 8-16-32-64 bits
d. Dato tipo dinámico

2. La función Join Numbers que nos permite realizar:

a. Crea un número a partir de los bytes o palabras del componente


b. Crea un número a partir de bits o palabras del componente
c. Rompe un número en sus bytes o palabras en componentes
d. Rompe un número en bits o palabras en componentes

3. La función Swap Words que nos permite realizar:

a. Crea un número a partir de los bytes o palabras del componente


b. Intercambia los 8 bits de orden superior y los 8 bits de orden inferior por cada palabra en
los datos
c. Intercambia los 16 bits de orden superior y los 16 bits de orden bajo por cada entero largo
en los datos.
d. Devuelve la mantisa y el exponente del valor numérico de entrada

4. En la manipulación de datos la función Type Cast que realiza:

a. Crea un número a partir de los bytes o palabras del componente


b. Convierte la entrada en el tipo de datos, tipo, aplanándolo y desaplanándolo usando el
nuevo tipo de datos
c. Rompe un número en sus bytes o palabras en componentes
d. Devuelve la mantisa y el exponente del valor numérico de entrada

5. La función Swap Bytes que nos permite realizar:

a. Crea un número a partir de los bytes o palabras del componente


b. Intercambia los 8 bits de orden superior y los 8 bits de orden inferior por cada palabra en
los datos
c. Intercambia los 8 bits de orden superior y los 8 bits de orden inferior por cada palabra en
los datos.
d. Devuelve la mantisa y el exponente del valor numérico de entrada

También podría gustarte