El blog de Daniel Muñoz “No hay mayor riqueza que el conocimiento ni mayor pobreza que la ignorancia.” – Alí ibn Abi-Talib

30abr/097

LabVIEW – TCP/IP.

Índice y descarga de este y otros ejemplos de programación en LabVIEW.<- Descargar este VI

1.7.1a.vi

Servidor TCP/IP.

Envía la onda generada a la IP y puerto especificados.

En primer lugar intenta, cada 100ms, establecer una comunicación a la IP y puerto especificados. Cuando se establece la conexión empieza a enviar los datos.

Para enviar la onda primero la transforma a formato cadena (que es lo que se puede enviar por TCP/IP). Luego envía, también en formato cadena, el tamaño de esa cadena. La cadena que contiene el tamaño es un cast de int a vector de chars. Son 4 bytes. A continuación envía la cadena con los datos.

Este proceso (de envío) se repite cada 100ms siempre y cuando no haya error en la comunicación ni se presione el botón STOP.

Al finalizar, cierra la conexión TCP/IP.

1.7.1a.vi

1.7.1a.vi

cbool OFF reset signal, if TRUE, resets the phase to the phase control value and the time stamp to zero. The default is FALSE.
cdbl OFFSET offset is the DC offset of the signal. The default is 0.0.
cdbl FRECUENCIA frequency is the frequency of the waveform in units of hertz. The default is 10.
cdbl AMPLITUD amplitude is the amplitude of the waveform. The amplitude is also the peak voltage. The default is 1.0.
cdbl FASE phase is the initial phase, in degrees, of the waveform. The default is 0. The VI ignores phase if reset signal is FALSE.
cdbl DUTY CICLE square wave duty cycle is the percentage of time a square wave remains high versus low over one period. The VI uses this parameter only if the signal type is a square wave. The default is 50.
cdbl Fs Fs is the sampling rate in samples per second. The default is 1000.
cdbl NRO. MUESTRAS #s is the number of samples in the waveform. The default is 1000.
cu16 SEÑAL
cbool stop Se presiona este botón para salir.
cu16 Puerto Puerto remoto al que se enviarán los datos.
cstr ip IP remota donde se enviarán los datos.

1.7.1a.vi

NI_MABase.lvlib:Basic Function Generator.vi NI_MABase.lvlib:Basic Function Generator.vi

C:\Archivos de programa\National Instruments\LabVIEW 8.6\vi.lib\measure\masignal.llb\Basic Function Generator.vi

1.7.1b.vi

Cliente TCP/IP.

Escucha por conexiones entrantes TCP/IP en el puerto 2056.

Cuando se establece una conexión (supone que quien la estableció es el servidor 1.7.1a), lee primero los 4 bytes, que se supone contienen el tamaño de los datos que van a ser recibidos (porque así los envió 1.7.1a). Luego lee esa cantidad de bytes y transforma la cadena leída en un dato tipo waveform, que era el tipo de datos original en el servidor. El tipo de datos (la constante waveform) se crea afuera del bucle, para que no se tenga que estar creando una constante en cada repetición del bucle (para optimizar nomás). Una vez obtenida la forma de onda se la muestra en el osciloscopio.

Esto se repite hasta que:

1- Falle la lectura del tamaño de los datos.

2- Falle la lectura de los datos.

3- Falle la conversión de los datos a formato waveform.

4- Se presione el botón stop (SALIR).

Cuando ocurre alguna de las 4 cosas arriba mencionadas se cierra la conexión y termina el programa.

1.7.1b.vi

1.7.1b.vi

cbool stop SALIR: Presionando este botón se termina el programa.
cdbl Ch1 VOLTS/DIV de CH1.
cdbl Tiempo SEG/DIV de ambos canales.
cbool Ch1 CH1 ON.
cbool Ch2 CH2 ON.
cdbl Ch2 VOLTS/DIV de CH2.
i1dmsdt Waveform Graph Gráfico de la forma de onda recibida.

1.7.1b.vi

Osciloscopio.vi Osciloscopio.vi

C:\Documents and Settings\Daniel\Mis documentos\facu\5to\Digitales 3\1\Practico\Osciloscopio.vi

TCP Listen.vi TCP Listen.vi

C:\Archivos de programa\National Instruments\LabVIEW 8.6\vi.lib\Utility\tcp.llb\TCP Listen.vi

30abr/093

LabVIEW – Estructura FOR.

Índice y descarga de este y otros ejemplos de programación en LabVIEW.<- Descargar este VI

1- Dentro del bucle FOR simplemente se muestra, en el indicador Cuenta, el valor i+1. La variable i incrementa su valor en cada ciclo, empezando de cero y terminando en Contar hasta - 1. La estructuraFOR también contiene un retardo de 100ms para que el ojo pueda apreciar el incremento de la cuenta.

2- Dentro del bucle WHILE se espera a que se presione el botón Contar, para volver a contar hasta el valor indicado por el control Contar hasta, o hasta que se presione SALIR. En este último caso no se vuelve a repetir el bucle WHILE principal, terminando el programa. Las lecturas de los botones ContarSALIR solo se realizan cuando ocurre un cambio en el panel frontal. Esto para que este bucle no esté leyendo innecesariamente, ocupando así el procesador.

1.2.5.vi

1.2.5.vi

ci32 Contar hasta Establece hasta que valor se contará.
cbool SALIR Presionando este botón se sale del programa.
cbool Contar Hay que presionar este botón para volver a contar.
ii32 Cuenta Muestra el valor actual del contador.

1.2.5.vi