Вы находитесь на странице: 1из 14

Ejercicio 1: Explorar Main.

vi

Abra un proyecto NI myRIO de las platillas de proyecto incluidas en LabVIEW para NI


myRIO.

Sigue los siguientes pasos para iniciar un proyecto NI myRIO desde una plantilla:

1. Desde la ventana de Getting Started en LabVIEW, selecciona el botn Create


Project.

Creando un Proyecto

2. En la parte izquierda del panel de la caja de dilogo Create Project, selecciona


myRIO del rbol de Templates.
Plantillas de proyecto de NI myRIO

3. El panel derecho ahora muestra tres opciones: un Proyecto en Blanco (Blank


Project) estndar, un Proyecto myRIO (myRIO Project), y un Proyecto
Personalizado FPGA myRIO (myRIO Custom FPGA Project). El proyecto en blanco
es el mismo al proyecto creado en el Ejercicio 1.

a. Usa la platilla de proyecto myRIO para crear un proyecto con la


configuracin predeterminada FPGA. Esta platilla es til para proyectos
que no requieren funcionalidad extendida y configuracin de FPGA.
b. Usa la platilla personalizada FPGA de proyecto myRIO para establecer
una definicin personalizada de FPGA en el dispositivo NI myRIO. Por
ejemplo, los tres conectores combinados ofrecen un total de ocho lneas
de E/S PWM. Pero si se quieren conectar ms dispositivos controlados por
PWM o entradas PWM, se puede reconfigurar el FPGA para apoyar PWM
en ms lnea digitales de E/S. Esto aplica a otros protocolos de
comunicacin como I2C, SPI, y otros ms.

4. Selecciona el myRIO Project de la lista y presiona el botn Next.

5. Asigna al proyecto un nombre representativo y selecciona un directorio


apropiado para guardar el proyecto. Verifica que el botn de radio Plugged
into USB est seleccionado y que la unidad NI myRIO aparezca correctamente
nombrada en la lista de la derecha.
Configurando un Proyecto de LabVIEW

6. Selecciona Finish cuando todo aparezca estar configurado correctamente.

Esta platilla NI myRIO establece el dispositivo NI myRIO como destinatario en el


proyecto de LabVIEW. Un concepto crtico para recordar es que cuando un VI es
destinado a la unidad NI myRIO, el cdigo en el VI se est ejecutando en el
dispositivo an si el panel frontal es visualizado en el computador de desarrollo. A
esto se le llama modo de panel frontal interactivo, el cual est destinado para
depuracin y desarrollo nicamente. En la forma final de la aplicacin, cualquier
controlador e indicador en el panel frontal dentro de VIs que estn en el dispositivo
RT (target) son inaccesibles. El cdigo es eventualmente descargado a la unidad
NI myRIO y se ejecuta sin conexin USB al computador. Usted puede usar variables
compartidas publicadas en red o alguna forma de transmisin de red a un VI en
computador de desarrollo para recibir o procesar datos desde un dispositivo NI
myRIO.
An sin reconfigurar el FPGA, usted puede adquirir datos y tomar decisiones de
control rpidamente en el procesador RT de la unidad NI myRIO. Entretanto,
comunicaciones de red permiten al computador de desarrollo guardar y/o analizar
datos y an enviar decisiones de control de alto nivel de regreso al dispositivo NI
myRIO.

Para este ejercicio, la unidad NI myRIO est ligada al computador de desarrollo,


pero de todos modos se quiere correr el cdigo en su procesador. Esto significa que
se puede interactuar con el panel frontal del VI que se ejecuta en el procesador RT
del dispositivo NI myRIO, y el motor de variables compartidas NI se encarga de las
comunicaciones de red necesarias para manejar la transferencia de datos. Para
algunas pruebas, el modo interactivo del panel frontal es adecuado y elimina la
necesidad de comunicacin de datos ms complicada entre el host y el dispositivo
RT (target).

El Project Explorer de LabVIEW ahora muestra dos dispositivos destinatarios:


My Computer y myRIO-1900 (xxx.xx.xx.x). El destinatario NI myRIO ya contiene
un VI en el proyecto llamado Main.vi. Este VI presenta algo de cdigo para
ayudarte en el inicio.

Jerarqua de Proyecto de LabVIEW

1. Abre Main.vi desde el Project Explorer de LabVIEW dando doble-click.


2. El panel frontal del VI se abre y debe contener una grfica de onda (waveform
chart) y un botn stop.
3. Antes de ejecutar el VI, examina el diagrama de bloque. Regresa al diagrama de
bloque al presionar <Ctrl-E>.
4. La estructura que rodea al While Loop, parece como tres marcos de carrete del
cine clsico, se llama Sequence Structure.

Los dos tipos de estructura de secuencia son planos o apilados (flat and
stacked). La estructura de secuencia en este Main.vi es plana (flat squense
structure). Las estructuras de secuencia obligan la ejecucin del cdigo a que
siga una secuencia determinada. Todo el cdigo en cada marco de la estructura
(de izquierda a derecha) debe ejecutarse antes del inicio del siguiente marco.
Pueden usarse tuneles para pasar datos a travs de los marcos (frames). En
este caso, la estructura de secuencia en Main.vi est siendo implementada para
cumplir con una arquitectura abrir-adquirir/procesar-cerrar. La manera ms
simple de garantizar la ejecucin del cdigo de una manera deseada es usando
una estructura de secuencia, aunque puedes alcanzar este comportamiento
usando tcnicas de programacin de flujo de datos apropiadas sin la
implementacin de una estructura de secuencia.

TIP: Tneles son los pequeos recuadros que aparecen en los bordes de loops, marcos, y estructuras de
casos. Se pueden crear automticamente con la herramienta de cableado (wiring tool) conectando dos terminales
separadas por una de las estructuras antes mencionadas, o se pueden conectar manualmente dando click en el
borde de las estructuras. Los Tneles pasan datos de una estructura o loop solo cuando todo el cdigo de la
estructura se ha terminado de ejecutar.

a. El marco (frame) initialize de la estructura de secuencia es la primera


en ejecutarse. La nica accin ocurriendo en esta estructura es un
clster (grupo) de constante de error siendo creada y conectada
rpidamente al siguiente marco va el tnel.
b. El marco acquire and process data recibe el clster de error, y el ciclo
While llamado Main Loop empieza a ejecutarse. Dentro del main loop,
un VI Express (el VI azul que dice Accelerometer) es usado para
recuperar datos desde el acelermetro integrado en el dispositivo NI
myRIO. Luego los datos se transfieren desde las terminales de salida de
los ejes x, y, y z a travs de los cables naranjas (tipo de doble precisin)
y unidos (bundle) en un clster que es pasado a un indicador de
grfica de aceleracin en forma de onda (waveform).

Observe el VI wait (ms) en la esquina superior derecha.

El VI hace ejecutar el loop cada 10 ms siempre y cuando todo el


cdigo en el ciclo se haya ejecutado en menos de 10 ms; de otra
manera, el ciclo se ejecuta slo tan rapido como el cdigo que est
adentro de l, pero no est obligado a esperar 10 ms adicionales.
Bsicamente, esto le brinda al ciclo una frecuencia de 100 Hz (de nuevo,
con la advertencia de que el cdigo en el ciclo se pueda ejecutar a esa
velocidad). Ya que la grfica de onda (waveform chart) muestra las
ltimas 100 muestras de los datos del acelermetro, se puede ver un
segundo completo de datos del acelermetro en la grfica a la vez.
Como en la mayora de estructuras temporizadas por software, siempre
se tiene cierto nivel de incertidumbre en la temporizacin de un ciclo.
Para tareas temporizadas de mayor importancia, se puede mejorar el
determinismo o precisin en LabVIEW a travs de Timed Loops y
programacin FPGA.

Se pueden escoger dos condiciones para detener el ciclo principal:


el botn de stop, el cual puede ser presionado en cualquier momento
mientras el cdigo se est ejecutando para detener el ciclo While y
continuar la ejecucin de la estructura de secuencia, y una condicin de
stop-on-error (detener en caso de error), la cual se crea conectado el
clster de error del Acceleremeter Express VI a un nodo OR con el botn
de stop. La condicin de stop-on-error termina el ciclo While y contina
con la ejecucin de la estructura de secuencia si algn error ocurre en un
VI que est conectado al clster de error. Se pueden combinar errores de
VIs mltiples para crear protocolos de ejecucin ms seguros para que
los dispositivos fsicos conectados al sistema no sean daados por fallas
en la ejecucin del cdigo o por la falta de informacin en el sensor.

c. Cuando el ciclo While Main Loop termina de ejecutarse, el error es pasado


a travs de la estructura de secuencia hasta el final. Use este marco para
cerrar cualquier referencia en el dispositivo NI myRIO antes de cerrar el
programa. Cuando se agrega ms funcionalidad, se puede utilizar este
marco (estructura) para cerrar lneas E/S y guardar o eliminar datos.

5. Ahora que ha analizado la estructura del cdigo, observe cmo se comporta al


ejecutarse. Regrese al panel frontal usando <Ctrl-E>. D Click en la flecha de
ejecucin o presione <Ctrl-R> para comenzar la ejecucin del VI en el
dispositivo NI myRIO.
6. Cuando hay descargado exitosamente el VI en la unidad NI myRIO, la grfica de
onda comienza a mostrar las muestras del acelermetro. Agite el dispositivo NI
myRIO para ver el cambio de las lecturas del acelermetro en tiempo real.
7. Presione el botn de stop para permitir que el VI salga del ciclo While and
termine de ejecutar la estructura de secuencia.
8. Mantenga abierto este proyecto y el VI.

Crear un nuevo proyecto de NI myRIO es similar a crear cualquier


destinatario/objeto (target) de tiempo real (NI real-time). Se puede cambiar
cualquier proyecto a un proyecto de tiempo real (real-time) agregando el dispositivo
RT como destinatario (target) en el proyecto desde la raz del proyecto. Tambin
se puede crear un proyecto RT desde una plantilla usando el proceso de la seccin
anterior. Con la explicacin del default Main.vi, su arquitectura y funcionalidad
debe ser entendida fcilmente. Ahora puede agregar funcionalidad a un proceso
existente (un ciclo While existente) o incluso agregar ms ciclos While para
procesar datos en paralelo. Sin embargo, el procesador RT puede ejecutar procesos
en paralelo slo de acuerdo al nmero de ncleos que posea. Cuando hay ms
ciclos presentes, el procesador maneja el paralelismo igual que otros lenguajes de
programacincon hilos (threads) e intercambian entre tareas durante el tiempo
de ejecucin.
Ejercicio 2: Crear Cdigo en Tiempo-Real en el Dispositivo NI
myRIO

Usando la plantilla NI myRIO project, escribir un VI en LabVIEW para ejecutarse


en el dispositivo NI myRIO, para explorar algunas de las funcionalidades integradas en
el dispositivo. En este ejercicio, usted crear una aplicacin independiente usando un
pulsador (push button) y LEDs integrados.

Si el proyecto del ejercicio anterior sigue abierto, siga los pasos presentados abajo
para crear el VI RT. Si el proyecto de la seccin anterior no est abierto, regrese a la
seccin anterior y siga las instrucciones para crear un proyecto Nuevo NI myRIO.

1. Abra Main.vi debajo del dispositivo myRIO-1900 (xxx.xx.xx.x) en el LabVIEW


Project Explorer.
2. Abra el diagrama de bloques.
3. Alargue el marco del centro de la estructura de secuencia y el ciclo While que se
encuentra dentro de ella.
4. Crear un rising-edge trigger para detectar cuando un botton en la unidad NI
myRIO es presionado (ignorando la salida mientras el botn est siendo
presionado).
a. Colocar un Button Express VI en el diagrama de bloque desde la paleta
de NI myRIO.
i. D Click Derecho y navegue al myRIOOnboardButton.
Coloque el VI Express dentro del ciclo While justo debajo del VI del
acelermetro.
ii. Presione OK en la caja de dilogo de la configuracin para
mantener los ajustes predeterminados para el VI Express. Este VI
Express abre una referencia al hardware fsico a travs de la
configuracin predeterminada FPGA en el dispositivo NI myRIO y
lee el valor real desde el botn. Ya que se est colocando este VI
en un ciclo While, todo el cdigo en el VI se ejecuta durante cada
iteracin del ciclo. Esto puede parecer excesivo porque el cdigo
tiene que abrir una referencia para el canal de datos particular
que se est leyendo en el FPGA cada ciclo. Sin embargo, los VIs
Express para el dispositivo NI myRIO han sido escritos con una
caracterstica smart open que no permite la apertura de la
referencia en cada iteracin. As que despus de la primera
iteracin del cdigo, el VI se ejecuta ms rpido porque slo
necesita leer datos de entrada desde el botn.
b. Conecte la salida Value del VI Express del botn al borde derecho del
ciclo While.
c. D Click Derecho en el tnel creado en el borde derecho del ciclo While
cerca del botn de valor de datos booleanos y seleccione Replace with
Shift Register. Esto cambia el cono del tnel y genera otro cono en el
mismo lugar en el lado izquierdo del ciclo While. Ambos tneles crean un
shift register (registro de desplazamiento). El lado derecho del
register guarda datos de la iteracin que est corriendo, mientras que el
lado izquierdo del register llama los datos de la iteracin anterior. Con
este registro, se puede comparar el valor del botn en la iteracin actual
al valor del botn de la previa iteracin (en la primera iteracin el valor
previo est predeterminado a FALSE).

d. Coloque un nodo Exclusive Or en el diagrama de bloque.


i. D Click Derecho y navegue a
ProgrammingBooleanExclusive Or. Coloque el nodo
Exclusive Or en el diagrama de bloque justo debajo y a la derecha
del VI Express de Botn (button Express VI).
ii. Conecte el valor de salida del VI Express de Botn a la terminal
superior del nodo Exclusive Or.
iii. Conecte el shift register que guarda el valor del botn a la
entrada inferior de la terminal Exclusive Or.

e. Coloque un nodo And en el diagrama de bloque.


i. D Click Derecho y navegue a ProgrammingBooleanAnd.
Coloque el nodo And en el diagrama de bloque a la derecha del
nodo Exclusive Or.
ii. Conecte la salida del VI Express de Botn a la terminal superior
del nodo And.
iii. Conecte la salida del nodo Exclusive Or a la terminal inferior del
nodo And.
f. Ahora que la lgica est en su lugar, para detectar el incremento o el
flanco positivo de la seal desde el botn integrado en la unidad NI
myRIO, se puede utilizar la lgica para proveer parte de la funcionalidad.
5. Crear un ciclo de encendido de los LEDs integrados cuando el botn es
presionado.
a. Coloque una constante True en el diagrama de bloque.
i. D Click Derecho y navegue a ProgrammingBooleanTrue
Constant. Coloque la constante en el initialize frame de la
estructura de secuencia.
ii. Conecte la constante true al borde izquierdo del ciclo While
(automticamente se conecta a travs del marco de la estructura
de secuencia).
b. Coloque tres False Constants en el diagrama de bloque.
i. D Click Derecho y navegue a ProgrammingBooleanFalse
Constant. Coloque las tres constantes en el initialize frame de la
estructura de secuencia.
ii. Conecte las constantes false (falsas) al borde izquierdo del ciclo
While.
c. Reemplace los tneles constantes con shift registers.
d. Cada una de las cuatro constantes booleanas (una true, tres false) que
se acaban de colocar en el diagrama de bloque es usada para
monitorear el estado de uno de los cuatro LEDs integrados en el
dispositivo NI myRIO. Este cdigo es de simple implementacin del
concepto de desplazar el valor del LED al siguiente LED en la serie.
e. Coloque un case structure en el diagrama de bloque.
i. D Click Derecho y navegue a
ProgrammingStructuresCase Structure. Coloque una
estructura de casos en el ciclo While justo debajo y a la derecha
de la lgica rising-edge trigger (nodos Exclusive Or y And).

ii. Conecte la salida del nodo And al selector de casos en la


estructura de casos.

iii. Cambie la estructura de casos al caso false presionando las


flechas pequeas a la izquierda y derecha de la caja indicadora
de casos.
iv. Conecte los shift registers directamente a travs de la estructura
de casos conectando los registers de la izquierda al borde de la
izquierda de la estructura de casos, y luego conectando
directamente al lado derecho del register en el ciclo While. Si el
valor no es conectado primero al borde izquierdo de la estructura
de casos, la herramienta de conexin automtica pasa los cables
alrededor de la estructura de casos en lugar de pasar a travs de
ella.

v. Cambia la estructura de casos al caso true.


vi. Conecte el tnel para cada valor booleano al siguiente tnel que
est debajo de ese tnel conectando el ltimo tnel en la
izquierda al primer tnel de la derecha.

f. La lgica es que cuando el flanco ascendente de la seal del botn es


detectado (en otras palabras, el momento que alguien presionar el
botn), el caso true de la estructura de casos se cambia al siguiente LED
y los dems se apagan. Esto sucede cada vez que el botn es
presionado, y cuando el cuarto LED est iluminado y el botn es
presionado, el primer LED se enciende y el cuarto se apaga. Sin
embargo, nada de este cdigo funciona sino se le dice al dispositivo NI
myRIO a interpretar los datos booleanos como una seal para los LEDs.

g. Seale los LEDs integrados para encender y apagar en base a la lgica


creada.
h. Coloque un LED Express VI integrado en el diagrama de bloque.
i. D Click Derecho y navegue a myRIOOnboardLED. Coloque
el LED Express VI en la esquina inferior derecha del ciclo While.
Seleccione OK en caja de dilogo de Configure LED Express VI
para mantener los ajustes predeterminados. Por default, el
Express VI permite a los cuatro LEDs ser escritos.
ii. Cable cada uno de los valores booleanos creados en el paso
anterior a las entradas LED0, LED1, LED2, y LED3 en el LED
Express VI.

6. Ejecute el VI. Verifica la funcionalidad del cdigo presionando el botn en el


dispositivo NI myRIO y observando el cambio de encendido de LED, y
comenzando el ciclo de nuevo del cuarto al primero en la cuarta pulsacin del
botn.
7. Para verificar que el cdigo se est ejecutando en el dispositivo NI myRIO y no
en el computador de desarrollo, d Click Derecho en NI myRIO en el proyecto de
LabVIEW y selecciona Disconnect.
8. Desconecte el cable USB del dispositivo NI myRIO y verifica que el cdigo
contine ejecutndose.
9. Una vez terminado, reconecte el cable USB.
10. En el proyecto de LabVIEW, seleccione Connect.
11. D click al botn stop en el panel frontal de LabVIEW para detener el cdigo.

Вам также может понравиться