Programación en LabView
En LabView disponemos de dos ventanas:
- Diagrama de Bloques: En esta ventana crearemos nuestro código agregando los VIs.
- Panel Frontal: En esta ventana se muestra la interfaz del usuario donde se agregan los controles.
¿Cómo crear un proyecto en LabView?
- Para agregar los instrumentos virtuales de SADE da clic derecho en un espacio en blanco en tu diagrama de bloques y selecciona Select a VI.
- Siempre empieza agregando SADE_OPEN.vi, crea un control para VISA resource name y selecciona el puerto COM que le haya asignado tu ordenador a la tarjeta (Siempre selecciona el mayor).
Si no sabes cual puerto COM elegir entonces dirígete al Administrador de dispositivos y verifica en la pestaña Puertos (COM y LPT) . Tu tarjeta debe estar conectada y encendida.
- Añade los VI de SADE siempre conectándolos en serie.
- Siempre respeta el tipo de dato de las entradas y salidas para evitar errores en tu código, por ejemplo si una entrada es de tipo entero (U8) no se debe conectar un control cuyo tipo de datos que entrega sea double (DBL).
Instrumentos Virtuales de SADE
1) SADE_OPEN.vi
Es el primer VI que debe estar en nuestro código. Con él abrimos el puerto COM que le ha asignado el ordenador a nuestra tarjeta.
- SERIAL SADE: Nombre del puerto COM.
- SERIA SADE OUT: Salida del puerto serial, deberá ir conectado con los demás VIs.
2) SADE_LED.vi
Utilizamos este VI para mandar datos para que se muestren en los LEDs.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- LEDs: Entrada donde se coloca el dato de tipo entero (U8) que se mostrará en los LEDs.
3) SADE_SW.vi
VI que realiza una lectura de los Switches.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- SWITCHES: Salida de tipo entero (U8) que contiene la información de la lectura de los Switches.
4) SADE_PIN.vi
Con este VI podemos utilizar un pin de la tarjeta como entrada, salida o PWM.
Pines en Symbhia: G1, F1, E1, F3, B3, A3, A4, B5, A5, A6, C6, A7, B7.
Pines en Avanxe verde: M15, N16, P16, R16, P15, R12, N12, P12, M16, C16, D16, E12, E13, E15, F13, F14.
Pines en Avanxe azul: A6, C7, B8, C9, F9, A9, D11, E10, C13, D12, B12, A11, E15, A14, F16, F15.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- TIPO DIGITAL: Se utiliza para seleccionar el modo de operación del pin, ya sea que trabaje como entrada, salida o PWM.
- PIN FPGA: Permite escoger el pin de la tarjeta Symbhia.
- DOUT: Entrada de tipo boleana que se utiliza para mandar un ‘1’ o ‘0’ lógico a través del pin.
- CICLO TRABAJO PWM: Entrada de tipo entero (U32) donde se especifica el tiempo que dura el ciclo de trabajo del PWM, se calcula con la siguiente fórmula:
CicloPWM = ( Tiempo del ciclo de trabajo [S] ) * ( 50,000,000 )
- PERIODO PWM: Entrada de tipo entero (U32) donde se especifica el tiempo que dura el periodo del PWM, se calcula con la siguiente fórmula:
PeriodoPWM = ( Tiempo del ciclo de trabajo [S] ) * ( 50,000,000 )
- DIN: Salida que devuelve la lectura hecha en el pin cuando se utiliza como entrada.
5) SADE_BiPORT.vi
Permite la lectura o escritura del puerto bidireccional de 8 bits.
Puerto Bidireccional en Symbhia: P6 (MSb) – D11 (LSb).
Puerto Bidireccional en Avanxe verde: P15 (MSb) – L12 (LSb).
Puerto Bidireccional en Avanxe azul: P4 (MSb) – E16 (LSb).
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- ENTRADA/SALIDA: Entrada de tipo boleana que se utiliza para seleccionar el modo de operación del puerto. Para que el puerto sea de entrada debe ponerse en False, para que sea salida debe ser True.
- DATAIN: Entrada de tipo entero (U8) en la cual se coloca el dato a enviar a través del puerto.
- DATAOUT: Salida de tipo entero (U8) que devuelve el dato leído en el puerto cuando se configura como entrada.
6) SADE_ADC_CHAN y SADE_ADC.vi
VIs que trabajan en conjunto y se utilizan para hacer una conversión analógica-digital. El voltaje de entrada debe ir de 0 a 3.3V.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- CANAL: Entrada de tipo entero (U8) que se utiliza para seleccionar el canal.
- ELEMENT: Salida de tipo entero (U8) que muestra el valor digital de la conversión.
NOTA: En Symbhia es importante mandar a tierra los canales que no se utilicen para evitar ruido entre las entradas (Crosstalking).
NOTA 2: En Symbhia disponemos de 4 canales. En avanxe sólo hay un canal por lo que siempre debe ser 1.
7) SADE_DAC.vi
Utiliza este VI cuando quieras hacer una conversión Digital-Analógica. La fórmula que se utiliza es:
En Symbhia:
Voltaje de salida = (Valor digital) * (0.011)
Donde: Voltaje de salida va de 400mV a Vcc; Valor digital va de 0 a 255
En Avanxe:
Voltaje de salida = (Valor digital) * (0.016)
Donde: Voltaje de salida va de 0V a 4.08V; Valor digital va de 0 a 255
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- Numeric: Entrada de tipo entero (U8) en la cual colocaremos el valor digital de 0 a 255.
8) SADE_I2C.vi
VI que permite comunicarnos con dispositivos que utilicen protocolo de comunicación I2C.
Pines en Symbhia: SDA -D4, SCL – C4.
Pines en Avanxe verde: SDA – G12, SCL – E16.
Pines en Avanxe azul: SDA – H15, SCL – J16.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- LEC ‘0’/ESC ‘1’: Entrada de tipo boleana la cual selecciona si se quiere hacer una lectura o escritura.
- SLAVE ADDRESS: Dirección esclava del dispositivo sin el bit R/W.
- REG ADDRESS: Entrada de tipo entero (U8) donde se coloca la dirección del registro a leer o escribir.
- REG DATA: Entrada de tipo entero (U8) donde se coloca el dato a escribir en el registro.
- ELEMENT: Salida de tipo entero (U8) que contiene la información que envía el dispositivo.
9) SADE_RS232_READ.vi
Recepción de datos mediante protocolo de comunicación RS232 cuya velocidad de transmisión/recepción es de 9600 baudios.
Pines en Symbhia: TX – F10, RX – B9, bit de interrupción de recepción – A9.
Pines en Avanxe verde: TX – F15, RX – G16, bit de interrupción de recepción – G14.
Pines en Avanxe azul: TX – J14, RX – K16, bit de interrupción de recepción – L16.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- DATO: Salida de tipo entero (U8). Muestra el byte leído en decimal.
10) SADE_RS232_WRITE.vi
Transmisión de datos mediante protocolo de comunicación RS232 cuya velocidad de transmisión/recepción es de 9600 baudios.
Pines en Symbhia: TX – F10, RX – B9, bit de interrupción de recepción – A9.
Pines en Avanxe verde: TX – F15, RX – G16, bit de interrupción de recepción – G14.
Pines en Avanxe azul: TX – J14, RX – K16, bit de interrupción de recepción – L16.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- RS232_Write: Entrada de tipo entero (U8) donde se coloca el dato a enviar cuyo rango va de 0 a 255.
11) SADE_ULTRASÓNICO.vi
(No compatible con Symbhia X4)
Con este VI podemos obtener la distancia que nos devuelve un sensor ultrasónico HC-SR04. En Symbhia podemos trabajar con máximo 2 sensores y en Avanxe hasta con 4. Cada sensor requiere de dos pines de control: Trigger y Eco. El VI nos permite seleccionar el pin que queramos para cada control.
Pines en Symbhia: G1, F1, E1, F3.
Pines en Avanxe verde: M15, N16, P16, R16, P15, R12, N12, P12.
Pines en Avanxe azul: A6, C7, B8, C9, F9, A9, D11, E10.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- TRIGGER PIN FPGA: Permite seleccionar el pin que funcionará como Trigger.
- ECO PIN FPGA: Permite seleccionar el pin que funcionará como Eco.
- DISTANCIA [cm]: Salida de tipo entero (U16) que mostrará la distancia que detectó el sensor en centímetros.
12) SADE_LM35.vi
Utiliza este VI para obtener la temperatura que detecta un sensor LM35.
IMPORTANTE: En Avanxe se debe utilizar un atenuador para limitar el voltaje que entra al ADC.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- CANAL ADC: Entrada de tipo entero (U8) que selecciona el canal.
- Temperatura [°C]: Salida de tipo double (DBL) que muestra la temperatura en grados centígrados.
13) SADE_TIMER_MODO1.vi
(No compatible con Symbhia X4)
VI que inicializa un Timer controlado desde Hardware. En el momento que LabView ejecute este VI se inicializará el conteo y al terminar esperará a que se haga un reset para volver a contar.
Tiempo mínimo = 13 microsegundos (Tiempo que tarda en enviar la información por el puerto COM)
Tiempo máximo = 85 segundos
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- SELECCIONAR TIMER: Entrada que selecciona 1 de los 4 Timers disponibles.
- TIEMPO: Entrada de tipo entero (U32) donde se coloca el tiempo.
- ESCALA TIEMPO: Permite seleccionar la escala del tiempo ya sea microsegundos (us), milisegundos (ms) o segundos (s).
- RESET: Entrada de tipo boleana que resetea el timer.
- FIN: Salida de tipo boleana que notifica cuando ya haya transcurrido el tiempo.
IMPORTANTE: La notificación sólo será visible cuando LabView pregunte por ella.
14) SADE_TIMER_MODO2.vi
(No compatible con Symbhia X4)
VI que inicializa un Timer controlado desde Hardware cuya notificación se muestra en LabView y además puede salir a través de un pin seleccionado. En el momento que LabView ejecute este VI se inicializará el conteo y al terminar esperará a que se haga un reset para volver a contar.
Tiempo mínimo = 13 microsegundos (Tiempo que tarda en enviar la información por el puerto COM)
Tiempo máximo = 85 segundos
Pines en Symbhia: B3, A3, A4, B5.
Pines en Avanxe verde: M16, C16, D16, E12.
Pines en Avanxe azul: C13, D12, B12, A11.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- PIN FPGA: Entrada que selecciona uno de los 4 pines disponibles.
- TIEMPO: Entrada de tipo entero (U32) donde se coloca el tiempo.
- ESCALA TIEMPO: Permite seleccionar la escala del tiempo ya sea microsegundos (us), milisegundos (ms) o segundos (s).
- RESET: Entrada de tipo boleana que resetea el timer.
- FIN: Salida de tipo boleana que notifica cuando ya haya transcurrido el tiempo.
IMPORTANTE: La notificación FIN sólo será visible cuando LabView pregunte por ella, en cambio la notificación del pin seleccionado saldrá en el tiempo justo.
15) SADE_TIMER_MODO3.vi
(No compatible con Symbhia X4)
VI que inicializa un Timer controlado desde Hardware cuya notificación se muestra en LabView y además puede salir a través de un pin. A diferencia del MODO1 y el MODO2 éste Timer se inicializa mediante un disparo externo ocurrido en un pin (cada timer tiene su pin de disparo externo). Además se puede especificar el tiempo que durará la notificación.
Tiempo mínimo = 13 microsegundos (Tiempo que tarda en enviar la información por el puerto COM)
Tiempo máximo = 85 segundos
Pines en Symbhia:
- DISPARO EXTERNO – A5 -> NOTIFICACIÓN – B3
- DISPARO EXTERNO – A6 -> NOTIFICACIÓN – A3
- DISPARO EXTERNO – C6 -> NOTIFICACIÓN – A4
- DISPARO EXTERNO – A7 -> NOTIFICACIÓN – B5
Pines en Avanxe verde:
- DISPARO EXTERNO – E13 -> NOTIFICACIÓN – M16
- DISPARO EXTERNO – E15 -> NOTIFICACIÓN – C16
- DISPARO EXTERNO – F13 -> NOTIFICACIÓN – D16
- DISPARO EXTERNO – F14 -> NOTIFICACIÓN – E12
Pines en Avanxe azul:
- DISPARO EXTERNO – E15 -> NOTIFICACIÓN – C13
- DISPARO EXTERNO – A14 -> NOTIFICACIÓN – D12
- DISPARO EXTERNO – F16 -> NOTIFICACIÓN – B12
- DISPARO EXTERNO – F15 -> NOTIFICACIÓN – A11
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- TIEMPO: Entrada de tipo entero (U32) donde se coloca el tiempo.
- ESCALA TIEMPO: Permite seleccionar la escala del tiempo ya sea microsegundos (us), milisegundos (ms) o segundos (s).
- PINES FPGA: Entrada que selecciona uno de los 4 pines disponibles.
- ANCHO: Entrada de tipo entero (U32) donde se coloca el ancho que durará el pulso en alto.
- ESCALA ANCHO: Permite seleccionar la escala del tiempo que durará el pulso en alto, ya sea microsegundos (us), milisegundos (ms) o segundos (s).
- NOTI DISPARO EXTERNO: Se activa cuando se haya detectado el disparo externo.
- FIN: Salida de tipo boleana que notifica cuando ya haya transcurrido el tiempo.
NOTA: El timer en modo 3 se reinicia cuando ya haya transcurrido el tiempo de ANCHO.
16) SADE_GENERADOR.vi
VI que utiliza el DAC como generador de funciones. Se pueden generar 4 funciones con una frecuencia fija.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- Onda: Selecciona el tipo de onda que se generará (Seno, Triangular, Cuadrada, Diente de sierra).
- FRECUENCIA [Hz]: Entrada de tipo entero (U16) donde se especificará la frecuencia de la señal en Hertz.
IMPORTANTE: Siempre colocar este VI fuera de los ciclos de repetición.
17) SADE_INI_FUNC.vi y SADE_MUESTRAS.vi
Utiliza estos VIs para generar tu propia función.
- VISA resource name y VISA resource name out: Se utilizan para que los VIs utilicen el mismo puerto COM.
- FRECUENCIA [Hz]: Entrada de tipo entero (U16) donde se especificará la frecuencia de la señal en Hertz.
- Fs: Salida de tipo entero (U16) que indica la frecuencia de muestreo.
- MUESTRAS: Salida de tipo entero (U16) que indica el número de muestras.
- FIN: Salida de tipo boleana que indica cuando finalizó el proceso para generar la señal.
- NUMERO MUESTRAS: Entrada de tipo entero (U16) donde se especifica el número de muestras de la señal.
- MUESTRA: Entrada de tipo double precision (DBL) donde se especifica el valor de la muestra. El valor va de 0 a 3.3.
- ITERACIONES: Entrada de tipo entero (I32) que irá conectada a las iteraciones del ciclo de repetición
IMPORTANTE: Colocar SADE_INI_FUNC.vi fuera del bloque de repetición y SADE_MUESTRAS.vi dentro del ciclo.