You are on page 1of 14

Lo primero que se realiz fue crear un nuevo proyecto en LabVIEW seleccionando Archivo Nuevo proyecto

Para agregar su sistema CompactRIO al proyecto, haga clic con el botn derecho en el elemento Proyecto en
la parte superior del rbol y seleccione Nuevo Objetivos y dispositivos ...

Despus expandimos la carpeta CompactRIO en tiempo real, seleccionamos nuestro sistema e


hicimos clic en Aceptar.
LabVIEW ofrece dos modelos de programacin para los sistemas CompactRIO.
Scan Interface (modo de exploracin CompactRIO): esta opcin nos permite programar el procesador en
tiempo real de su sistema CompactRIO, pero no el FPGA. En este modo, NI proporciona una personalidad
predefinida para el FPGA que peridicamente escanea la E / S y la coloca en un mapa de memoria,
ponindola a disposicin de LabVIEW Real-Time. El modo de exploracin CompactRIO es suficiente para
aplicaciones que requieren acceso de punto nico a E / S a velocidades de unos cientos de hertzios.

LabVIEW intentar ahora detectar el chasis y los mdulos de E / S de la Serie C presentes en el sistema y
agregarlos automticamente al Proyecto LabVIEW.
Una vez que el sistema ha sido agregado al Proyecto de LabVIEW, continuamos con el Tutorial del Modo de
Escaneo de CompactRIO o el Tutorial de LabVIEW FPGA a continuacin, dependiendo del modelo de
programacin que se seleccion.
Despus creamos un nuevo proyecto de LabVIEW que contendr su sistema CompactRIO, incluyendo el
controlador, el chasis y los mdulos de E / S de la serie C.
Guardamos el proyecto seleccionando Archivo Guardar e ingresando Registro bsico con el modo de
escaneado . Hicimos clic en Aceptar.
Este proyecto contiene un VI, que es la aplicacin de LabVIEW Real-Time que se ejecuta incrustada en el
controlador CompactRIO. Creamos este VI haciendo clic con el botn derecho en el controlador CompactRIO
en tiempo real del proyecto y seleccionamos Nuevo VI. Guarde el VI como RT.vi.
El funcionamiento bsico de esta aplicacin incluir tres rutinas: arranque, ejecucin y apagado. Una
estructura de secuencia plana es una manera fcil de hacer cumplir este orden de operacin. Colocamos
una estructura de secuencia plana con tres tramas en su diagrama de bloques RT.vi como se muestra a
continuacin.

Despus, agregamos un bucle temporizado al marco Ejecutar de la estructura de secuencia. Los bucles
temporizados proporcionan la capacidad de sincronizar el cdigo a diversas bases de tiempo, incluido el motor
de exploracin de NI que lee y escribe la E / S de modo de exploracin.
Para configurar el bucle temporizado, hicimos doble clic en el icono del reloj en el nodo de entrada izquierdo.

Seleccionamos Sincronizar para Explorar motor como Fuente de temporizacin de bucle. Hicimos clic
en Aceptar . Esto har que el cdigo en el bucle temporizado se ejecute una vez, inmediatamente despus de
cada exploracin de E / S, asegurndonos de que los valores de E / S utilizados en este bucle temporizado
sean los valores ms recientes.
El paso anterior configuramos el bucle temporizado para ejecutar sincronizado al motor de
exploracin. Despus, configuramos la velocidad del propio motor de exploracin haciendo clic con el botn
derecho del ratn en el controlador CompactRIO en tiempo real en el Proyecto LabVIEW y
seleccionando Propiedades.
Seleccionamos Explorar motor de las categoras de la izquierda e ingrese 100 ms como Perodo de
exploracin. Esto har que todas las E / S en el sistema CompactRIO sean actualizadas cada 100ms
(10Hz). El perodo de publicacin en red tambin se puede establecer desde esta pgina, que controla la
frecuencia con la que los valores de E / S se publican en la red para la supervisin remota y la
depuracin. Hicimos clic en Aceptar.
Despus de que ha configuramos la velocidad de exploracin de E / S, agregamos las lecturas de E / S a la
aplicacin para el registro. Cuando utilizamos el modo de escaneado de CompactRIO, simplemente
arrastraamos y soltamos las variables de E / S del Proyecto de LabVIEW al diagrama de bloques. Expandimos
el controlador CompactRIO en tiempo real, el chasis y el mdulo de E / S que desea registrar. Seleccionamos
todos los canales debajo del mdulo haciendo clic en ellos y usando la tecla Mays, luego arrastramos y
soltamos en el ciclo temporizado en el diagrama RT.vi como se muestra a continuacin.
El siguiente paso lgico que hicimos fue escribir los valores de la variable de E / S en el disco usando
funciones de E / S de archivo; sin embargo, debido a que la E / S de archivos toma y socava la cantidad de
tiempo, fue necesario separar la tarea de adquisicin de E / S y la tarea de E / S de archivos. Despreciar este
requisito podra ocasionar la prdida de datos, ya que la E / S del archivo puede tardar ms que la exploracin
de E / S, provocando que se pierda una muestra. Colocamos un bucle normal while en el marco
de ejecucin bajo el bucle temporizado, que se utilizar para la tarea de E / S de archivo.
Para escribir los datos en el disco en el bucle regular while, es necesario transferir los valores de E / S del
bucle temporizado usando FIFO en tiempo real. Esto proporcionar un amortiguador entre los dos bucles. El
bucle temporizado se ejecutar, sincronizar la exploracin de E / S y escribir los nuevos valores de E / S en
el bfer cada vez. A continuacin, el bucle regular while leer los datos del bfer y lo escribir en el
disco. Separar la tarea de E / S y el acceso al disco de esta manera permite que su ciclo temporizado se
ejecute con un rendimiento "en tiempo real", lo que significa que siempre terminar a tiempo.

En el Proyecto LabVIEW, hicimos clic con el botn derecho en el controlador en tiempo real CompactRIO y
seleccionamos Nueva Variable.
Nombramos de la variable Bfer de datos, seleccionamos Proceso nico como el tipo de variable y Array de
doble como el tipo de datos. Esto crear una variable con alcance local (sin publicacin en la red) que
contenga una matriz de nmeros de coma flotante de doble precisin. A continuacin, seleccionamos RT
FIFO en el men de la izquierda.
Con la categora FIFO de RT seleccionado, seleccionamos la casilla de verificacin Habilitar FIFO RT ,
seleccionamos Multi-elemento para el tipo FIFO, escribimos 50 para el Nmero de matrices e
introduzcimos 4 para el Nmero de elementos (si est registrando un nmero de canales que no sean 4,
ingrese eso en su lugar). Esto configura la variable para funcionar como un FIFO en tiempo real, que puede
servir como buffer de datos entre nuestras tareas en tiempo real y de baja prioridad. El FIFO tendr cincuenta
arrays unidimensionales, cada uno de los cuales contiene cuatro nmeros de doble precisin. Hicimos clic
en Aceptar.

Arrastramos y soltamos el bfer de datos FIFO RT en su bucle temporizado y utilizamos una funcin
de matriz de compilacin para crear una matriz a partir de las variables de E / S y pasarla a la FIFO RT.

Arrastramos y soltamos una copia adicional de la memoria intermedia FIFO de buffer de datos en
el bucle regular while , donde leeremos los datos y lo registrar en el disco. Adems, hicimos clic con el botn
derecho del ratn en el FIFO de RT y seleccione Show Timeout y conectamos un tiempo de espera
de 100 . Esto har que el FIFO de RT espere hasta 100ms para que los nuevos datos lleguen a la memoria
intermedia antes de que expire. Si los datos estn presentes en el bfer, el FIFO RT devolver los datos ms
antiguos en el bfer inmediatamente.

Agregamos las funciones de E / S del archivo. Colocamos un TDMS Open VI en el marco de inicio de su
estructura de secuencia. Creamos constantes para la ruta del archivo y las entradas
de operacin. Escribimos c: \ tempdata.tdms en la ruta del archivo y seleccionamos crear o reemplazar para la
operacin.

Para realizar la E / S del archivo, se proporcion un fragmento de cdigo. Lo arrastramos y soltamos el


fragmento de VI, colocamos este cdigo en el bucle regular while y conectamos como se muestra a
continuacin.
Una estructura de caso se utiliza para ejecutar esta seccin de cdigo slo cuando el FIFO RT no se agota, lo
que indica que los nuevos datos han sido devueltos desde el bfer. Los datos se formatean para que se
escriban en el archivo TDMS y se muestran en el grfico de forma de onda. Tambin se proporciona un botn
de parada para el bucle while adems de comprobar si hay errores como condicin de parada.

Despus, creamos una condicin de parada para el bucle temporizado y cerraramos el archivo TDMS en
el marco de apagado.

En el Proyecto de LabVIEW, creamos otra variable compartida haciendo clic con el botn derecho del ratn en
la biblioteca que contiene el bfer de datos FIFO RT y seleccionamos Nueva Variable.

Nombramos la variable stop, seleccionamos Single Process y seleccionamos Boolean. Despus,


seleccionamos la categora FIFO RT de la izquierda.
Seleccionamos Habilitar RT FIFO, dejamos seleccionado Elemento nico e hicimos clic en Aceptar. Esto crea
una variable que es segura de leer en tareas que requieren un rendimiento en tiempo real.
Colocamos una copia de la variable de parada en el bucle temporizado y lo conectamos a la condicin de
parada.
Colocamos otra copia de la variable de parada en el bucle regular while y escribimos el resultado de
la funcin OR como se muestra. Esto har que el bucle temporizado se detenga cuando el bucle regular se
detiene.
Colocamos una funcin TDMS Close en el cuadro Shutdown y conectamos el clster de referencia de archivo
y error hasta el mismo. Adems, agregamos e indicamos la terminal TDMS Close error out .
Como se muestra a continuacin:
Hicimos clic en Ejecutar en RT.vi, despus, hicimos clic en Guardar para los elementos no guardados y
luego clic en Aceptar en todos los dilogos o advertencias sobre la aplicacin de cambios en el sistema
CompactRIO. LabVIEW implementar ahora el VI sobre Ethernet para ejecutarlo incrustado en el sistema
CompactRIO.
Cuando el VI se despleg y comenz a ejecutarse, visualizamos el panel frontal de el VI para ver los valores
de E / S actuales trazados en el grfico de forma de onda.

Haga clic en STOP una vez que haya terminado de ver y registrar datos.

You might also like