Sunteți pe pagina 1din 194

Libro de Texto

Elementos de Programacin para


Instrumentacin Virtual
Dr. Gerardo Trujillo Schiaffino
Instituto Tecnolgico de Chihuahua
Divisin de Estudios de Posgrado e Investigacin

Agosto 2011

Contenido

Captulo I. Fundamentos de Instrumentacin Virtual

1.1 Introduccin a la instrumentacin virtual

1.2 Evolucin de la instrumentacin

1.3 Instrumentos tradicionales

1.4 Instrumentos virtuales

1.4.1

Ejemplos de instrumentos virtuales

1.4.2

Arquitecturas bsicas

1.4.3

Aplicaciones

11

1.5 Comparacin entre instrumentos tradicionales y virtuales

12

1.6 Herramientas de programacin

13

1.6.1

Programacin tradicional

13

1.6.2

Programacin grfica

15

Captulo II. Fundamentos de LabVIEW

19

2.1 Ambiente de programacin grfica

19

2.1.1

Panel frontal

21

2.1.2

Diagrama a bloques

23

2.1.2.1 Sub-instrumentos exprs

24

2.1.2.2 Sub-instrumentos estndar

26

2.1.2.3 Funciones

27

2.1.3

Paleta de controles

27

2.1.4

Paleta de funciones

30

2.1.5

Paleta de herramientas

32

2.1.5.1.

Herramienta automtica

33

2.1.5.2.

Herramienta de operacin

34

2.1.5.3.

Herramienta de posicin / seleccin

34

2.1.5.4.

Herramienta de etiquetado

34

2.1.5.5.

Herramienta de cableado

34

2.1.5.6.

Herramienta de men

35

2.1.5.7.

Herramienta de arrastre

35

2.1.5.8.

Herramienta de punto de paro

35

2.1.5.9.

Herramienta de punto de prueba

35

2.1.5.10.

Herramienta de muestra de color

36

2.1.5.11.

Herramienta de colorear

36

2.1.6

Barra de herramientas

36

2.1.6.1.

Botn de ejecucin

37

2.1.6.2.

Botn de ejecucin continua

37

2.1.6.3.

Botn de cancelacin

37

2.1.6.4.

Botn de pausa

38

2.1.6.5.

Men de configuracin de textos

38

2.1.6.6.

Men de alineacin de objetos

38

2.1.6.7.

Men de distribucin de objetos

38

2.1.6.8.

Men de redimensionamiento

39

2.1.6.9.

Men de reordenamiento

39

2.1.6.10.

Botn de ejecucin resaltada

39

ii

2.1.6.11.

Botn de entrada al ciclo

40

2.1.6.12.

Botn de saltar ciclo

40

2.1.6.13.

Botn de salida de ciclo

40

2.2 Paradigma de programacin por flujo de datos

40

2.2.1. Creacin de un instrumento virtual

41

2.2.2. Cableado de funciones en el diagrama a bloques

43

2.2.3. Programacin por flujo de datos

46

2.3 Opciones de ayuda

48

2.3.1. Ventana de ayuda contextual

48

2.3.2. Ayuda de LabVIEW

50

2.3.3. Atajos en LabVIEW

51

2.4 Tcnicas de depuracin de errores

52

2.4.1. Lista de errores

52

2.4.2. Ejecucin resaltada

53

2.4.3. Ventanas de prueba

53

2.4.4. Puntos de paro

54

2.5 Documentacin del VI

55

2.6 Sub-instrumentos virtuales

56

2.6.1

Conceptos bsicos

56

2.6.2

Creacin de sub-instrumentos estndar

58

2.6.2.1.

Diseo del cono

58

2.6.2.2.

Creacin del conector

59

2.6.2.3.

Asignacin de Terminales

61

2.6.3

Libreras de sub-instrumentos

62

2.6.4

Uso de los sub-instrumentos

62

iii

Captulo III. Estructuras de Programacin

64

3.1 Ciclo While

65

3.2 Ciclo For

67

3.3 Registros de corrimiento

69

3.4 Nodos de retroalimentacin

71

3.5 Case

73

3.5.1. Case booleano

74

3.5.2. Case string

75

3.5.3. Case numrico

75

3.6 Secuencias

76

3.6.1. Secuencias apiladas

77

3.6.2. Secuencias extendidas

79

3.7 Nodos de frmula

80

Captulo IV. Herramientas y Funciones de Programacin

4.1

Arreglos

84

84

4.1.1. Controles e indicadores de arreglo

85

4.1.2. Arreglos auto-indexados

88

4.1.2.1.

Auto-indexamiento de salida

88

4.1.2.2.

Auto-indexamiento de entrada

90

4.1.2.3.

Arreglos auto-indexados multidimensionales

91

4.1.3. Arreglos constantes

92

iv

4.1.4. Funciones para arreglos

4.2

93

4.1.2.1.

Tamao de arreglo

93

4.1.2.2.

Inicializar arreglo

94

4.1.2.3.

Construir arreglo

94

4.1.2.4.

Subconjunto de arreglo

95

4.1.2.5.

ndice de arreglo

95

Clsteres

96

4.3.1. Controles e indicadores de clster

97

4.3.2. Clsteres constantes

98

4.3.3. Orden en el clster

99

4.3.4. Funciones para clsteres

100

4.3.1.1.

Agrupar

100

4.3.1.2.

Agrupar por nombre

101

4.3.1.3.

Desagrupar

101

4.3.1.4.

Desagrupar por nombre

102

4.3.5. Clster de error

4.3

102

4.2.5.1.

Estatus

103

4.2.5.2.

Cdigo

103

4.2.5.3.

Fuente

104

Grficas

105

4.3.1. Registradores de formas de onda

105

4.3.1.1.

Trazo sencillo

106

4.3.1.2.

Personalizacin de la grfica

106

4.3.1.3.

Modo de actualizacin de datos

108

4.3.1.4.

Trazos mltiples

108

4.3.1.5.

Trazos mltiples apilados

109

4.3.1.6.

Consideraciones de uso

4.3.2. Grficas de forma de onda

110

4.3.2.1.

Trazo sencillo

112

4.3.2.2.

Trazos mltiples

113

4.3.2.3.

Personalizacin de la grfica

115

4.3.2.4.

Consideraciones de uso

116

4.3.3. Grficas XY

4.4

116

4.3.3.1.

Trazo simple

117

4.3.3.2.

Trazos mltiples

118

4.3.3.3.

Personalizacin de la grfica

119

4.3.3.4.

Consideraciones de uso

120

Cadenas de caracteres

120

4.4.1. Controles e indicadores para cadenas de caracteres

121

4.4.2. Activacin de la barra de desplazamiento

122

4.4.3. Modos de despliegue de texto

122

4.4.4. Funciones para manejo de texto

123

4.4.4.1.

Longitud de texto

124

4.4.4.2.

Concatenar cadenas

124

4.4.4.3.

Subconjunto de cadena

124

4.4.5. Cadenas de caracteres constantes


4.5

110

Archivos

125
125

4.5.1. Archivos de texto

126

4.5.1.1.

Escribir en archivo de texto

126

4.5.1.2.

Leer en archivo texto

126

4.5.2. Archivos de hoja de clculo


4.3.1.1.

127

Escribir en archivo de hoja de clculo

vi

127

4.3.1.2.
4.6

4.7

4.8

Leer de archivo de hoja de clculo

Variables locales

128
128

4.6.1. Creacin de una variable local

129

4.6.2. Uso de las variables locales

131

Variables globales

132

4.7.1. Creacin de una variable global

133

4.7.2. Uso de las variables globales

135

Nodos de propiedades

136

4.8.1. Creacin de un nodo de propiedades

136

4.8.2. Uso de los nodos de propiedades

137

4.8.3. Acceso a propiedades mltiples

138

Captulo V. Arquitecturas de Programacin

140

5.1

Arquitectura de un VI simple

140

5.2

Arquitectura de un VI general

141

5.3

Arquitectura de una mquina de estados

143

Captulo VI. Adquisicin de Datos

145

6.1 Introduccin a los sistemas de adquisicin de datos

145

6.2 Transductores y actuadores

146

6.4.1. Transductores

146

vii

6.4.2. Actuadores

147

6.3 Acondicionadores de seal

147

6.3.1. Amplificacin

147

6.3.2. Aislamiento

148

6.3.3. Filtrado

148

6.3.4. Excitacin

149

6.3.5. Linealizacin

149

6.4 Tarjetas de adquisicin de datos

150

6.4.1. Seales analgicas

150

6.4.2. Lneas de entrada analgica

153

6.4.2.1.

Nmero de canales y modos de medicin

153

6.4.2.2.

Resolucin

158

6.4.2.3.

Rango de voltaje del dispositivo

159

6.4.2.4.

Rango de voltaje de la seal

160

6.4.2.5.

Razn de muestreo

162

6.4.2.6.

Tiempo de establecimiento

163

6.4.2.7.

Ruido

164

6.4.3. Salidas analgicas

165

6.4.3.1.

Tiempo de establecimiento

165

6.4.3.2.

Resolucin

166

6.4.4. Puertos digitales de entrada / salida

166

6.4.5. Lneas temporizadas de entrada / salida

168

6.5 Funciones de software para adquisicin de datos

171

6.5.1. Instalacin del hardware de adquisicin

172

6.5.2. Controladores NI-DAQ

172

6.5.3. Software de configuracin

174

viii

6.5.4. DAD Assistant

177

ix

INTRUDUCCIN

Este libro nace de la necesidad de contar con un libro de texto especficamente


diseado para la asignatura Elementos de Programacin para Instrumentacin Virtual
que se imparte en el programa de Maestra en Ciencias en Ingeniera Electrnica del
Instituto Tecnolgico de Chihuahua.

Actualmente no existe un libro que cubra en su totalidad la estructura del programa de


la asignatura antes mencionada, si bien existen algunos libros publicados sobre el tema,
la mayora estn escritos en ingles (solamente existe uno escrito en espaol), ninguno
de ellos tiene una estructura tal que le permita usarse como libro de texto para la
asignatura en cuestin, solo sirven como libros de consulta.

Adems de cubrir totalmente el contenido de esta asignatura, los temas presentados en


este libro tambin son de gran utilidad en otras asignaturas de las reas de
instrumentacin,

control,

automatizacin

industrial,

procesamiento

de

seales,

procesamiento de imgenes y programacin en general.

El contenido del libro se estructur en seis captulos, correspondiendo cada uno de ellos
a una de las unidades de aprendizaje de la asignatura.

El captulo I se titula Fundamentos de Instrumentacin Virtual y en l se desarrollan los


temas correspondientes a los conceptos fundamentales que dan origen al paradigma de
la instrumentacin virtual como son: la evolucin que ha sufrido la instrumentacin
industrial para llevarla desde la instrumentacin analgica hasta la instrumentacin

virtual de nuestros das, los conceptos de instrumento tradicional e instrumento virtual,


la comparacin entre los instrumentos tradicionales y los instrumentos virtuales, y una
breve descripcin de algunas de las herramientas de programacin utilizadas para el
desarrollo de instrumentos virtuales.

El captulo II se titula Fundamentos de LabVIEW y en l se describe el ambiente de


programacin grfica de LabVIEW, el paradigma de programacin por flujo de datos, las
distintas opciones para obtener ayuda del software, las distintas tcnicas para depurar
los errores de programacin, los procedimientos para generar la adecuada
documentacin de un programa y el concepto de un sub-instrumento y el procedimiento
para su creacin.

El captulo III se titula Estructuras de Programacin y en l se desarrollan los temas


concernientes al diseo de la estructura de control para un programa de aplicacin a
travs del uso correcto de los ciclos while, ciclos for, registros de corrimiento, nodos de
retroalimentacin, estructuras case (booleanas, numricas y de cadenas de caracteres),
estructuras de secuencia y nodos de formula.

El captulo IV se titula Herramientas y Funciones de Programacin y en l se detallan


todos los aspectos correspondientes a conceptos, herramientas y funciones para el
manejo de arreglos, clsteres, grficas, cadenas de caracteres, archivos, variables
locales, variables globales y nodos de propiedades.

El captulo V se titula Arquitecturas de Programacin y en l se describen los tres


distintos tipos de arquitectura que puede tener un programa de LabVIEW cuando se

xi

maneja su paradigma de programacin por flujo de datos: Instrumento virtual simple,


Instrumento virtual general y mquina de estados.

Y finalmente, el captulo VI se titula Sistemas de Adquisicin de Datos y en l se


presentan los aspectos fundamentales de los sistemas de adquisicin de datos, una
breve descripcin de transductores y actuadores, la clasificacin de los principales tipos
de acondicionamiento de seales, los principales parmetros que debe tomarse en
cuenta para la seleccin de un tarjeta de adquisicin de datos y todo lo referente a las
distintas capas se software relacionadas a los sistemas de adquisicin.

xii

Captulo I

Fundamentos de Instrumentacin Virtual

CAPTULO I:
FUNDAMENTOS DE INSTRUMENTACIN VIRTUAL.

1.1. INTRODUCCION A LA INSTRUMENTACIN VIRTUAL.

Como resultado de la vertiginosa evolucin que los sistemas computacionales han


tenido en los ltimos aos, la instrumentacin en general y la instrumentacin industrial muy
en particular han sufrido una notable transformacin, para pasar de los tradicionales
medidores de aguja a modernos sistemas computarizados con funciones y caractersticas que
hace 50 aos hubieran sido inimaginables.

Qu pensara, por ejemplo, un instrumentista de los aos 50s que recorra toda la
lnea de produccin tomando lecturas de las cartulas de los medidores para llenar a mano
interminables hojas de registro y generar de ah los reportes y las grficas de control de
procesos, si se encontrara frente a una moderna sala de instrumentos donde una
computadora monitorea y controla simultneamente todas las variables

del proceso de

produccin, generando automticamente reportes y registro de eventos.

La instrumentacin por computadora es hoy en da una prctica cotidiana en la


industria moderna. Esto ha dado lugar al nacimiento de nuevos conceptos como el de la
instrumentacin virtual, donde se integran diversas tecnologas computacionales con
instrumentos programables, tarjetas digitalizadoras y sofisticado software para el desarrollo
de interfaz de usuario, operando todo en conjunto bajo el esquema de un instrumento nico
especializado.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

1.2. EVOLUCIN DE LA INSTRUMENTACIN.

Para comprender mejor el concepto de la instrumentacin virtual,

es importante

conocer la evolucin que ha sufrido la instrumentacin. En los ltimos aos, los instrumentos
han evolucionado a la par de los grandes avances de la ciencia y la tecnologa.

Esta evolucin ha sido principalmente en trminos de flexibilidad y grado en que los


instrumentos se integran a los sistemas computacionales.

La primera generacin de instrumentos fueron instrumentos autnomos, controlados


manualmente desde sus paneles frontales. Las mediciones efectuadas en estos instrumentos
tenan que ser registradas a mano y los usuarios carecan de flexibilidad en cuanto al diseo
de la interfaz, capacidad de medicin, capacidades computacionales.

Con la invencin del GPIB (Bus de Interface de Propsito General) y de los


instrumentos digitales programables, los usuarios tuvieron la opcin de controlar los
instrumentos de ambas maneras: manualmente y por programa desde una computadora.
Cada instrumento GPIB fue diseado para un tipo especfico de mediciones, y los usuarios
reunan y apilaban una serie de instrumentos para crear un sistema de medicin completo.

Hoy en da, los instrumentos son una combinacin de computadoras personales o


estaciones de trabajo, software grfico, instrumentos digitales programables, y tarjetas
digitalizadoras de propsito general.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Estos instrumentos modernos pueden optimizar el rendimiento utilizando tcnicas


modernas como la programacin de registros, memoria compartida, y el poder computacional
de una PC. Estos instrumentos, tambin incluyen direccionamiento de seales sofisticadas al
igual que opciones programables de disparo. Se puede personalizar el interface de usuario
con software de alto nivel. Utilizando este software con digitalizadores de propsito general y
tecnologa de Procesamiento Digital de Seales (DSP), estos instrumentos se convierten en
herramientas muy verstiles debido a que son fcilmente reconfigurables. Se puede re
direccionar rpidamente los datos adquiridos para que sean utilizados por un gran nmero de
programas de aplicacin para el anlisis, almacenamiento o la generacin de reportes.

El trmino que describe esta nueva generacin de instrumentos basados en


computadora es Instrumentacin Virtual.

Con los instrumentos virtuales, se puede utilizar una gran variedad de hardware de
instrumentacin, y personalizar completamente la funcionalidad del instrumento y su interfaz
de usuario a travs de software de alto nivel.

La figura 1.1 nos muestra una representacin de la evolucin que ha sufrido la


instrumentacin.

En esta evolucin la palabra clave ha sido flexibilidad, los instrumentos virtuales se


caracterizan por la flexibilidad con que se ajustan a los requerimientos de la industria
moderna.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Instrumentacin
Virtual
Instrumentacin
Programable
Instrumentacin
Analgica

Fig. 1.1 Evolucin de la instrumentacin.

1.3. INSTRUMENTOS TRADICIONALES.

En el contexto de la instrumentacin tradicional, un instrumento es un equipo


autnomo al cual se conecta una o varias seales de entrada y para obtener informacin de
que refleje una medicin de alguna o algunas caractersticas de las seales de entradas
aplicadas.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

La funcionalidad de un instrumento tradicional se puede categorizar en tres elementos


bsicos: adquisicin de datos, anlisis de datos y presentacin de datos, tal como se muestra
en la figura 1.2. Generalmente, estas tres funciones son realizadas en hardware.

Adquisicin
(Hardware)

a)

Anlisis
(Hardware)

Presentacion
(Hardware)

b)

Fig. 1.2. a) Instrumento tradicional, b) Elementos funcionales

Histricamente hablando, un instrumento tradicional contiene todos estos elementos


funcionales dentro de un solo gabinete.

1.4. INSTRUMENTOS VIRTUALES.

Por otro lado, cuando analizamos un instrumento virtual, este tambin contiene estos
mismos elementos funcionales (adquisicin, anlisis y presentacin de datos).

Sin embargo, por lo general estos elementos no necesariamente residen en el mismo


gabinete, lo cual da pie a la virtualizacin del instrumento.

La figura 1.3 muestra la composicin bsica de un instrumento virtual.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Hardwarepara
Instrumentacin

Softwarepara
Instrumentacin

Computadora

Instrumento
Virtual

Fig. 1.3. Componentes de un Instrumento Virtual

En este orden de ideas, podemos definir un instrumento virtual como:

Conjunto de software y/o hardware adicionando a una computadora, operando bajo el


esquema de un instrumento nico especializado.

Es importante hacer notar el trmino y/o utilizado en la definicin, el cual nos indica
que el hardware puede o no estar presente en, es decir, un instrumento virtual puede estar
formado tan solo por la computadora y el software; esto puede clarificarse mejor a travs de
algunos ejemplos.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

1.4.1. Ejemplos de Instrumentos Virtuales

Cuando se le pide que describan un instrumento virtual, algunas personas citan el


ejemplo de una computadora controlando un instrumento a travs de RS232 o GPIB, con un
panel frontal grfico en la pantalla de la computadora para controlar el instrumento. Este
instrumento puede ser operado como unidad independiente a travs de su panel frontal fsico,
o bien, a travs de la pantalla de la computadora donde est representado el mismo panel
frontal fsico del instrumento remoto, con lo que se puede sentir como si se manipulara
directamente el instrumento. Esto resulta en la sensacin de que se est operando
virtualmente el instrumento original, pero con la ventaja de hacerlo desde una localizacin
remota.

Otros describen a un instrumento virtual como un panel frontal grfico en una


computadora, pero con una tarjeta de adquisicin de datos o un mdulo PXI trabajando como
si se tratara de un instrumento externo. En este caso, el hardware del instrumento no tiene
un panel frontal por s solo, por lo que no puede usarse como un instrumento independiente.
La computadora, de esta manera, es un componente necesario para el instrumento, y el panel
frontal de la computadora es el nico medio de operarlo.

Finalmente, algunos otros describen un instrumento virtual como un panel frontal


grfico sin instrumento fsico ni hardware de adquisicin conectado a la computadora. En este
caso la computadora adquiere y analiza datos de archivos o de otras computadoras en una
red, o bien datos que la misma computadora simula de un proceso fsico o evento, calculando
matemticamente los datos como si se tratara de una adquisicin en el mundo real.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

a)

b)

c)

Fig. 1.4 a) Computadora controlando un instrumento programable, b) Panel frontal grfico en la computadora
manejando un mdulo PXI, c) Panel grfico sin instrumento fsico conectado

Para los dos primeros ejemplos, el instrumento virtual est formado por la
computadora, el hardware de adquisicin y el software de anlisis y presentacin, como se
muestra en la figura 1.5.

Adquisicin
(Hardware)

Anlisis
(Software)

Presentacin
(Software)

Fig. 1.5. Representacin funcional de un instrumento virtual con hardware y software

Sin embargo, en el caso del ltimo ejemplo, el instrumento virtual est formado solo
por la computadora y el software que realiza las funciones de adquisicin, anlisis y
presentacin, como se muestra en la figura 1.6.

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Adquisicin
(Software)

Anlisis
(Software)

Presentacin
(Software)

Fig. 1.6. Representacin funcional de un instrumento virtual con software solamente.

Para ambos casos la computadora y el software representan la base indispensable


para tener un instrumento virtual, quedando el hardware como elemento opcional.

Sin embargo, la mayor parte de los instrumentos virtuales utilizados en los laboratorios
y en la industria contienen algn tipo de hardware de adquisicin y/o control, por lo que
normalmente el anlisis de los instrumentos virtuales se hace base a este tipo de
instrumentos (Computadora + Hardware + Software).

1.4.2. Arquitecturas Bsicas.

Los instrumentos virtuales pueden presentar muy diversos tipo de arquitecturas para
su construccin, las cuales pueden variar dependiendo de si se trata de un instrumento con la
combinacin hardware-software

o solamente software, dependiendo tambin de la

plataforma de computacin que se seleccione (PC, Mac, Sun, etc.), o bien, dependiendo del
ambiente de programacin para el software (lenguajes tradicionales, programacin grfica,
etc.).

Instituto Tecnolgico de Chihuahua

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Sin embargo, considerando el caso del instrumento hardware-software, por ser el ms


representativo, independientemente de la plataforma y el ambiente de programacin elegido
se puede categorizar la arquitectura de acuerdo al hardware de adquisicin y/o control que se
utilice. Las principales arquitecturas de hardware utilizadas en la instrumentacin virtual son:
bus de interface de propsito general (GPIB), extensin del bus VME para instrumentacin
(VXI), tarjetas de adquisicin de datos (DAQ), comunicacin serie (RS232, RS485) y sistemas
de visin. Un detalle importante es que el uso de estas arquitecturas no es excluyente, es
decir, un instrumento virtual puede estar formado por una o varias de estas arquitecturas, lo
que le da una versatilidad y flexibilidad que difcilmente podra tener un instrumento
tradicional. La figura 1.7 nos muestra estas arquitecturas bsicas de hardware.

Computadora

Software

GPIB

VXI

DAQ

Serial

Visin

Proceso o Unidad Bajo Prueba

Fig. 1.7. Arquitecturas bsicas de la instrumentacin virtual

Instituto Tecnolgico de Chihuahua

10

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

En un caso extremo, de ser necesario, un instrumento virtual puede incluir todas


estas arquitecturas juntas, trabajando coordinadas por el software como si se tratara de un
solo instrumento.

1.4.3. Aplicaciones.

Las principales reas en que se aplica la Instrumentacin Virtual son:

a) Sistemas de Automatizacin Industrial


Automatizacin de Procesos
Control Supervisorio
Interfaces Hombre - Mquina
Adquisicin de Datos
Control Estadstico de Procesos
Automatizacin de Laboratorios
Control de Maquinaria
Visin por Computadora

b) Sistemas de Prueba y Medicin


Equipos de Prueba Automtica
Inspeccin Automtica
Prueba Electrnica
Prueba de Vibracin

Instituto Tecnolgico de Chihuahua

11

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Prueba Acstica
Monitoreo y Control en Tiempo Real

1.5. INSTRUMENTOS TRADICIONALES VS. INSTRUMENTOS VIRTUALES.

Histricamente, en la instrumentacin ha existido un enorme conflicto entre la rigidez


de los instrumentos definidos por el vendedor y la flexibilidad y funcionalidad de los
instrumentos definidos por el usuario. Una comparacin entre los instrumentos tradicionales y
los instrumentos virtuales se presenta en la tabla 1.1.

Tabla 1.1 Comparacin entre un instrumento virtual y un instrumento tradicional.

INSTRUMENTOS TRADICIONALES

INSTRUMENTOS VIRTUALES

Definidos por el vendedor.

Definido por el usuario.

Funciones especficas, independiente,

Sistema orientado a la aplicacin, conectividad

Conectividad limitada.

a redes de trabajo, perifricos, y aplicaciones.

Hardware es la clave.

Software es la clave.

Costoso.

Barato, reutilizable.

Cerrado, funcionalidad fija.

Abierto, funcionalidad flexible, escalable con


tecnologa computacional de uso comn.

Lento avance tecnolgico.

Rpido avance tecnolgico.

(ciclo de vida 5 - 10 aos)

(ciclo de vida 1-2 aos)

Alto costo de mantenimiento y desarrollo.

Mnimo costo de mantenimiento y desarrollo.

Instituto Tecnolgico de Chihuahua

12

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

1.6. HERRAMIENTAS DE PROGRAMACIN

En la Instrumentacin Virtual es posible manejar un sinnmero de opciones de


programacin para el desarrollo del software, estas opciones incluyen desde la ms bsica
programacin a bajo nivel (lenguaje ensamblador), hasta los ms sofisticados ambientes de
programacin de alto nivel. Estos ltimos se pueden clasificar en dos grandes grupos: la
programacin tradicional (secuencial o estructurada) representada por ambientes de
desarrollo como BASIC, Pascal, C, C++, o hasta LabWindows/CVI; y la moderna
programacin grfica representada por ambientes como LabVIEW, HPVEE o Gnesis.

1.6.1. Programacin Tradicional

La programacin tradicional de alto nivel se refiere a los lenguajes tradicionalmente


utilizados para el desarrollo de software, estos incluyen los lenguajes secuenciales (como
Basic) y los lenguajes estructurados (como Pascal o C), existiendo para cada uno de ellos un
sinnmero de ambientes de desarrollo de diversos proveedores.

Sin embargo, aunque

existen libreras especializadas con funciones de instrumentacin virtual para la mayora de


estos ambientes, resulta ms prctico y conveniente utilizar alguno de los ambientes de
desarrollo especializados para instrumentacin virtual.

Un excelente ejemplo de programacin para instrumentacin virtual utilizando


lenguajes tradicionales es LabWindows/CVI de National Instruments. Lab Windows/CVI es un
ambiente de desarrollo de software interactivo para construir sistemas de instrumentacin
utilizando el estndar de programacin ANSI C.

Instituto Tecnolgico de Chihuahua

13

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

El objetivo de este ambiente es desarrollar las aplicaciones fcil y rpidamente.


LabWindows/CVI combina el poder y la flexibilidad del lenguaje de programacin C con
herramientas y libreras de software para instrumentos especficos. Estas libreras incluyen
GPIB, RS-232, VXI, DAQ, y anlisis. La figura 1.8 muestra el ejemplo de la presentacin de
un programa fuente desarrollado en LabWindows/CVI.

Fig. 1.8. Programa fuente desarrollado en Lab Windows/CVI

LabWindows/CVI simplifica el diseo de interfaces de usuario, hacindolas amigables


y fciles de disear. En ellas se pueden incluir gran variedad de controles (entradas de datos)
o indicadores (salidas de

datos), tales como perillas, botones, interruptores, medidores,

grficas, etc., por lo que el resultado final es un programa de aplicacin verstil, flexible y
poderoso. La figura 1.9 muestra una interfaz de usuario desarrollado en este ambiente.

Instituto Tecnolgico de Chihuahua

14

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

Fig. 1.9. Interfaz de Usuario de un Programa en Lab Windows/CVI.

1.6.2. Programacin Grfica.

La programacin grfica, tambin conocida como programacin por flujo de datos o


lenguaje G, representa una novedosa alternativa para el desarrollo de software para
instrumentacin virtual

Un excelente ejemplo de programacin grfica lo constituye el ambiente de


programacin LabVIEW, tambin de National Instruments. El concepto de LabVIEW, un
interfaz de usuario de panel frontal combinado con una innovadora metodologa de
programacin por diagrama a bloques, es ideal para crear instrumentos virtuales. LabVIEW
trabaja con todos los aspectos de que incluye un sistema de instrumentacin: adquisicin de
datos, anlisis de datos y presentacin de datos. LabVIEW simplifica el desarrollo de los
sistemas de instrumentacin

Instituto Tecnolgico de Chihuahua

15

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

En la programacin grfica, los programas son llamados Instrumentos Virtuales (VI) y


estn formados por tres partes principales: Panel Frontal. Diagrama a Bloques e IconoConector.

Los paneles frontales son un concepto tomado de la instrumentacin tradicional, ya


que corresponden al interfaz de usuario donde se representa el panel frontal fsico de un
instrumento, con la ventaja de que ste es realizado en software. Un beneficio adicional de
utilizar el panel frontal en software, es que se pueden crear interfaces genricos,
independientemente del hardware que se utilice. Pero a diferencia de un panel fsico, en un
panel de software podemos representar slo los parmetros de inters a nuestra aplicacin
particular. La figura 1.10 muestra el ejemplo de un panel frontal desarrollado en LabVIEW.

Fig. 1.10. Ejemplo de un Panel Frontal de LabVIEW.

Instituto Tecnolgico de Chihuahua

16

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

LabVIEW permite crear paneles frontales amigables y de excelente presentacin,


dndole al interfaz de usuario una operabilidad intuitiva y sencilla. La programacin a travs
de diagramas a bloque aproxima la programacin a la utilizacin de los diagramas de flujo
utilizados por muchos ingenieros y cientficos, de hecho tambin se le conoce como
programacin por flujo de datos. La figura 1.11 muestra en ejemplo de un diagrama de flujo
de LabVIEW. En diagrama a bloques est libre de muchos de los detalles sintcticos de los
lenguajes de programacin convencional, lo que permite construir los programas en menor
tiempo.

Fig. 1.11 Ejemplo de un Diagrama a Bloques de LabVIEW.

Instituto Tecnolgico de Chihuahua

17

Dr. Gerardo Trujillo Schiaffino

Captulo I

Fundamentos de Instrumentacin Virtual

El icono - conector es una poderosa herramienta que le permite a la programacin


grfica trabajar con modularidad y jerarqua. El icono es la representacin grfica de un
instrumento virtual, a travs de la cual se puede representar a un instrumento virtual dentro de
otro, utilizndolo como funcin o subrutina. El conector es la representacin del icono que nos
indica las terminales de conexin a travs de las cuales podemos pasar los datos de entrada
a un instrumento virtual y leer sus salidas cuando se utiliza dentro de otro instrumento virtual.
El icono es la representacin grfica y el conector son las terminales de entrada y salida de
un instrumento virtual para ser utilizado como sub-instrumento virtual. La figura 1.12 muestra
un icono-conector.

Fig. 1.12. Ejemplo de un Icono y Conector.

Instituto Tecnolgico de Chihuahua

18

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

CAPTULO II
FUNDAMENTOS DE LABVIEW

2.1 AMBIENTE DE PROGRAMACIN GRFICA (LABVIEW).

LabVIEW es el acrnimo para Laboratory Virtual Instrument Engineering


Workbench y representa en la actualidad una poderosa y flexible plataforma de desarrollo de
software. LabVIEW se basa en el paradigma de la programacin por flujo de datos, pero
tambin puede ser aplicado bajo los paradigmas de programacin por mquinas de estados,
programacin por eventos y programacin orientada a objetos. En general, tambin se le
conoce como lenguaje G por ser un lenguaje esencialmente grfico.

Los programas en LabVIEW son llamados instrumentos virtuales (VIs). Cada VI


contiene tres partes principales:

Panel frontal

Diagrama de bloque

Icono/Conector

El panel frontal, como el mostrado en la figura 2.1, es utilizado para interaccionar con
el usuario cuando el programa est corriendo. El usuario puede controlar el programa, cambiar
entradas, y ver datos actualizados en tiempo real.

Instituto Tecnolgico de Chihuahua

19

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.1. Panel frontal de un instrumento virtual

Cada control o indicador del panel frontal tiene una terminal correspondiente en el
diagrama de bloques, como se muestra en la figura 2.2.

Fig. 2.2. Diagrama a bloques de un instrumento virtual

Instituto Tecnolgico de Chihuahua

20

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Cuando un VI se ejecuta, los valores de los controles fluyen a travs del diagrama de
bloques, en donde estos son usados en las funciones del diagrama, y los resultados son
pasados a otras funciones o indicadores.

El tercer elemento del VI es su icono conector, tal como se muestra en la figura 2.3,
este se encuentra localizado en la esquina superior derecha del panel frontal y del diagrama a
bloques, su funcin es representar al VI cuando se utiliza como subVI (sub-programa) dentro
otro VI y proporcionar las terminales de conexin adecuadas, pero esto ser a tratado a detalle
ms delante.

Fig. 2.3. Icono - Conector de un instrumento virtual

2.1.1 Panel frontal.

El panel frontal es la interface del usuario con el VI. El panel frontal se construye con
controles e indicadores, que son las entradas y salidas que interactan con las terminales del
VI, respectivamente. Los controles son usados como entradas, por ejemplo, ajustando
controles de deslizamiento para colocar un valor de alarma, encendiendo o apagando un
interruptor, o deteniendo un programa. Los controles son interruptores, botones, perillas, cajas
de texto y otros componentes de entradas. Los controles simulan dispositivos de entrada de

Instituto Tecnolgico de Chihuahua

21

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

equipos y suministra datos al diagrama de bloques del VI. Los indicadores son usados como
salidas, por ejemplo, termmetros, luces, y otros indicadores indican valores del programa.
Esto puede incluir datos, estados de programa y otra informacin.Los indicadores son las
grficas, luces y otros dispositivos. Los indicadores simulan salidas de instrumentos y
suministra datos que el diagrama de bloques adquiere o genera.

Barra de herramientas
del panel frontal

Icono

Control
Booleano

Leyenda del
grfico

Grfico de
Forma de onda
Leyenda de
la escala

Leyenda de
la grfica

Fig. 2.4. Ejemplo de un panel frontal sencillo

La figura 2.4 muestra un ejemplo de panel frontal, en esta imagen, el interruptor de


encendido es un control booleano. Un valor booleano contiene ambos un valor verdadero o
falso. El valor es falso hasta que el interruptor se presione. Cuando el interruptor se presiona,
el valor se convierte en verdadero. El indicador del historial de temperatura es una grfica de
forma de onda. Esta muestra valores mltiples. En este caso, la grfica indica grados
Fahrenheit vs. Tiempo (seg.).

Instituto Tecnolgico de Chihuahua

22

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

El panel frontal tambin contiene una barra de herramientas, y sus funciones sern
discutidas ms delante.

2.1.2 Diagrama a bloques.

El diagrama de bloque contiene el cdigo fuente grafico. Los objetos del panel frontal
aparecen como terminales en el diagrama de bloque. Adicionalmente, el diagrama de bloque
contiene funciones y estructuras incorporadas en las bibliotecas de LabVIEW VI. Los cables
conectan cada uno de los nodos en el diagrama de bloques, incluyendo controles e
indicadores de terminal, funciones y estructuras, estableciendo un flujo de datos que
representa la lgica del programa. La figura 2.5 muestra un ejemplo de un diagrama de
bloque.

Barra de
herramientas
del diagrama a
bloques

Funcin de
dividir

SubVI
Terminal
grfica
Cableado
de datos

Estructura
de ciclo
While

Constante
numrica

Funcin
Retardo
tiempo

Terminal de control
booleano

Fig. 2.5. Ejemplo de un diagrama a bloques sencillo

Instituto Tecnolgico de Chihuahua

23

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

En este diagrama de bloque, el subVI Temp llama a una subrutina, la cual obtiene una
temperatura desde una tarjeta de adquisicin de datos (DAQ). Esta temperatura es graficada
junto con el valor promedio de la temperatura en la grfica de forma de onda Temperature
History. El interruptor de encendido (Power) es un control booleano en el panel frontal el cual
va a detener la ejecucin de la estructura de ciclo While. La estructura de ciclo While tambin
contiene una funcin de tiempo para controlar que tan frecuentemente la estructura se repite.

Adems de las terminales de controles e indicadores y funciones propias de LabVIEW,


el diagrama puede contener sub-instrumentos virtuales (subVIs) que en realidad son
programas independientes que fueron encapsulados para ser utilizados como funciones dentro
de un programa principal, los subVIs pueden ser de dos tipos esenciales: subVIs exprs, o
subVIs estndar.

2.1.2.1. SubVI exprs

A partir de LabVIEW 7.0 se introduce un nuevo tipo de sub-instrumento virtual llamado


VIs exprs. Estos son VIs interactivos que tienen como medio de configuracin una ventana de
dialogo que permite al usuario personalizar la funcionalidad del VI exprs seleccionando los
distintos parmetros y argumentos. LabVIEW entonces genera un subVI de funcionalidad
especfica basado en estos argumentos. La figura 2.6 muestra un ejemplo de un VI exprs con
su ventana de configuracin abierta.

Instituto Tecnolgico de Chihuahua

24

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.6. Ejemplo de un subVI exprs

Cuando se coloca por primera vez un subVI exprs en el diagrama a bloques de un


programa de LabVIEW, su ventana de configuracin se abre automticamente para permitir la
configuracin inicial del subVI; una vez finalizada la configuracin inicial el subVI se recompila
quedando con la funcionalidad seleccionada. Si fuera necesario realizar cambios en la
configuracin de un subVI exprs, es necesario hacer un doble click sobre el subVI para abrir
de nuevo la ventana de configuracin.

Su rpida reconfiguracin hace de estos sub-instrumentos una herramienta muy


efectiva para economizar tiempo de desarrollo del programa, es conveniente recordar que uno
de los propsitos principales de LabVIEW es precisamente el ahorrar tiempo en la
implementacin de los programas. Sin embargo, esta ventaja en velocidad de desarrollo se
contrapone con la flexibilidad ya no es posible tener acceso el cdigo interno de estos subVIs
ni hacer cambios o modificaciones en funcionalidad fuera de las caractersticas configurables
desde su ventana.

Instituto Tecnolgico de Chihuahua

25

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Una vez colocados en el diagrama a bloques los subVIs exprs se pueden reconocer
por el recuadro azul cielo que rodea el icono del SubVI. Para efectos de ahorro de espacio en
el diagrama este recuadro puede ser removido.

2.1.2.2. SubVI estndar

Por otro lado los sub-instrumentos estndar, que son un concepto clsico desde las
primeras versiones de LabVIEW, son en realidad programas hechos en LabVIEW con su
propio panel frontal y diagrama a bloques que son encapsulados dentro de un icono conector
para ser usados adentro de otro VI. La figura 2.7 muestra un ejemplo de un VI estndar.

Fig. 2.7. Ejemplo de un subVI estndar

Estos sub-instrumentos no son tan rpidamente reconfigurables como los exprs, sin
embargo haciendo doble click sobre su icono se abre la ventana de su panel frontal y se tiene
acceso a su diagrama a bloques, el cual de ser necesario puede ser modificado.

Instituto Tecnolgico de Chihuahua

26

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Una vez colocados en el diagrama a bloques los subVIs estndar se pueden reconocer
por el recuadro amarillo que rodea el icono del SubVI. Para efectos de ahorro de espacio en el
diagrama este recuadro puede ser removido.

En secciones posteriores los subVIs estndar sern tratados a detalle.

2.1.2.3. Funciones

Las funciones son los bloques de construccin bsicos de todos los VIs. Las funciones
no tienen un panel frontal o un diagrama de bloque, fueron desarrollados en lenguaje C y
constituyen las funciones primitivas de LabVIEW. La figura 2.8 muestra el ejemplo de una
funcin aritmtica de multiplicacin.

Fig. 2.8. Ejemplo de una funcin

2.1.3 Paleta de controles.

La paleta de controles (Controls) se utiliza para colocar los controles e indicadores en


el panel frontal. La paleta de controles est disponible solamente en el panel frontal.

Para acceder a la paleta de controles, seleccione View Controls Palette en la barra


de men principal, esto activa de manera fija la paleta de controles o haga click derecho en el

Instituto Tecnolgico de Chihuahua

27

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

espacio de trabajo en el panel frontal esto la activa de manera temporal. Para desaparecer la
paleta de controles fija presione el botn de cerrar, caracterstico de Windows, en la parte
superior derecha de la paleta, para cerrar la paleta temporal haga click izquierdo sobre el
panel o click derecho sobre la misma paleta de controles. Para fijar la paleta temporal haga
click sobre el sujetador de la esquina superior izquierda.

a)

b)

Fig. 2.9. Paleta de controles a) fija, b) temporal.

En esta paleta los controles e indicadores estn agrupados de acuerdo al tipo de


variable o aplicacin correspondiente: controles e indicadores numricos, controles e
indicadores booleanos, controles e indicadores de texto, indicadores de grficos, entradas /
salidas, etc. Tambin es tan clasificados en diferentes categoras como modernos, de sistema,
clsicos, exprs, .NET & ActiveX o seleccin del usuario.

Instituto Tecnolgico de Chihuahua

28

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Las distintas categoras contienen un sin nmero de grupos de controles e indicadores


diferentes en funcionalidad o en presentacin.

Aunque por default cuando se llama a la paleta de funciones aparece seleccionada la


categora de controles e indicadores modernos, es posible cambiar esta seleccin y utilizar los
elementos de cualquier otra categora, e incluso es posible activarlas todas para mostrar
simultneamente todos los grupos y tipos de controles disponibles tal como se muestra en la
figura 2.10. Para lograr esto se parte de la paleta fija y se van seleccionado una a una las
distintas categoras. Si esto mismo se intenta con la paleta temporal, solo se podr tener
acceso a una categora a la vez.

Fig. 2.10. Despliegue simultneo de todas las categoras de controles e indicadores en la paleta de controles.

Instituto Tecnolgico de Chihuahua

29

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Para colocar un control o indicador en el panel primero se selecciona la categora,


luego el grupo y finalmente el elemento deseado, el cual se arrastra y se coloca en la posicin
que tendr sobre el panel. La figura 2.11 muestra el ejemplo de colocacin de un control
numrico tipo dial sobre el panel frontal

1) click

3) Arrastre

4) click

2) click

Fig. 2.11. Colocacin de un control sobre el panel frontal.

2.1.4 Paleta de Funciones.

La paleta de funciones (Functions), se utiliza para construir un diagrama de bloque. La


paleta de funciones est disponible solamente en el diagrama de bloque. Seleccione View
Functions Palette en la barra de men esto activa de manera fija la paleta de funciones o
haga click derecho en el espacio de trabajo del diagrama esto la activa de manera temporal.
Para desaparecer la paleta de funciones fija presione el botn de cerrar, caracterstico de

Instituto Tecnolgico de Chihuahua

30

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Windows, en la parte superior derecha de la paleta, para cerrar la paleta temporal haga click
izquierdo sobre el diagrama o click derecho sobre la misma paleta de controles. Para fijar la
paleta temporal haga click sobre el sujetador de la esquina superior izquierda.

a)

b)

Fig. 2.11. Paleta de funciones a) fija, b) temporal.

Al igual que en la paleta de controles, en la paleta de funciones, estas estn ordenadas


en grupos dentro de diferentes categoras: programacin, instrumentos de entrada/salida,
visin y movimiento, matemticas, procesamiento de seales, comunicacin de datos,
conectividad y exprs.

Instituto Tecnolgico de Chihuahua

31

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Esta paleta opera de manera muy similar a la paleta de controles del panel, tanto en su
forma fija como temporal.

La figura 2.12 muestra el ejemplo de la colocacin de una funcin numrica de


generacin de un nmero aleatorio en el diagrama a bloques.

3) Arrastre

4) click

1) click

2) click

Fig. 2.12. Colocacin de una funcin sobre el diagrama a bloques.

2.1.5. Paleta de Herramientas.

Por ser LabVIEW un lenguaje grfico, la mayor parte del manejo del ambiente de
programacin se hace a travs del ratn o dispositivo de sealizacin de la computadora, esto

Instituto Tecnolgico de Chihuahua

32

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

implica entonces la necesidad poder cambiar la funcionalidad del apuntador para ejecutar
tareas muy diversas.

La paleta de herramientas es una paleta flotante que permite cambiar la funcionalidad


del cursor. Esta paleta contiene herramientas de edicin y depuracin Generalmente se
encuentra activada por default, sin embargo, de no ser as se le puede activar manualmente
seleccionando WindowShow Tools Palette en la barra de men principal. Para desaparecer
la paleta de funciones presione el botn de cerrar, caracterstico de Windows, en la parte
superior derecha de la paleta. Esta paleta permite seleccionar entre 11 herramientas
diferentes. La figura 2.13 muestra la apariencia que tiene la paleta de herramientas.

Fig. 2.12. Paleta estndar de herramientas

2.1.5.1. Herramienta automtica

Si la herramienta de seleccin automtica est habilitada y usted mueve el cursor


sobre un objeto en el panel frontal o en el diagrama de bloque, LabVIEW automticamente
selecciona la herramienta correspondiente de la paleta de controles. Cambie a la herramienta
de seleccin automtica tecleando el botn de Seleccin de Herramienta Automtica en la
paleta de Herramientas.

Instituto Tecnolgico de Chihuahua

33

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.5.2. Herramienta de operacin

Utilice la herramienta de operacin para cambiar valores o para seleccionar texto de un


control.

2.1.5.3. Herramienta de posicin / seleccin

Utilice la herramienta de posicionamiento para seleccionar, mover o redimensionar


objetos. La herramienta de posicionamiento cambia las formas cuando se mueve sobre una
esquina de un objeto reajustable permitiendo cambiar su tamao.

2.1.5.4. Herramienta de Etiquetado

Utilice la herramienta de etiquetado para editar textos y crear etiquetas libres. La


herramienta de etiquetado se convierte en cursor cuando usted crea etiquetas libres.

2.1.5.5. Herramienta de cableado

Utilice la herramienta de cableado

para cablear objetos juntos en el diagrama de

bloque y establecer el flujo de los datos en el programa.

Instituto Tecnolgico de Chihuahua

34

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.5.6. Herramienta de men

Utilice la herramienta de men emergente para acceder a los mens emergentes de los
objetos colocados en el panel frontal o en el diagrama de bloque, para modificar sus
configuraciones.

2.1.5.7. Herramienta de arrastre

Utilice la herramienta de arrastre para mover todo el panel frontal o diagrama de


bloque.

2.1.5.8. Herramienta de punto de paro

Utilice la herramienta de punto de quiebre para colocar puntos de quiebre a lo largo del
diagrama de bloque y detener momentneamente la ejecucin del programa con el fin de
depurar el programa.

2.1.5.9. Herramienta de punto de prueba

Utilice la herramienta de punto de prueba para colocar puntos de prueba a lo largo del
diagrama de bloque y observar los valores correspondientes durante la ejecucin del programa
con el fin de depurar el programa.

Instituto Tecnolgico de Chihuahua

35

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.5.10. Herramienta de muestra de color

Utilice la herramienta de muestra de color para obtener una muestra (copia) del color
de un objeto.

2.1.5.11. Herramienta de colorear

Utilice la herramienta de colorear para cambiar el color de un objeto.

2.1.6. Barra de Herramientas.

La barra de herramientas es una barra fija que contiene herramientas de ejecucin, y


cosmticas, se encuentra tanto en el panel frontal como en el diagrama de bloque, ambas
presentan casi las mismas herramientas salvo una herramienta cosmtica que solo aparece en
el panel frontal y cuatro herramienta de depuracin que solo aparecen en el diagrama de
bloque. La figura 2.13 muestra las barras de herramientas del a) panel frontal y b) diagrama de
bloque.

a)

b)

Fig. 2.13. Barra de herramientas del a) panel frontal, b) diagrama de bloque

Instituto Tecnolgico de Chihuahua

36

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.6.1. Botn de ejecucin

Pulse el botn de ejecucin (Run) para ejecutar el VI. Mientras el VI se est


ejecutando, el botn de ejecucin aparecer con una flecha negra si es que el VI es un VI
principal, lo que significa que no ha sido llamado por otro VI y por lo tanto este no es un subVI.

2.1.6.2. Botn de ejecucin contina

Pulse el botn de ejecucin continua (Continuous Run) para ejecutar el VI hasta que
el botn de cancelacin de ejecucin o de pausa sea presionado. Usted tambin puede pulsar
este botn nuevamente para deshabilitar la ejecucin continua.

2.1.6.3. Botn de cancelacin

Mientras el VI se est ejecutando, El botn de cancelacin de ejecucin (Abort


Execution) aparece. Presione este botn para detener el VI inmediatamente.

NOTA: Evite usar el botn de cancelacin de ejecucin (Abort Execution) como


mtodo ordinario para detener la ejecucin de un VI ya finalizado, pues la accin de
cancelacin aborta el programa dondequiera que este se encuentre, pudiendo dejar registro,
archivos o puertos abiertos. Ya sea que deje que el VI complete su flujo de datos o disee un
mtodo para detener el VI programticamente. Al hacer esto el VI se encuentra en un estado
conocido. Por ejemplo, coloque un botn en el panel frontal que detenga el VI cuando sea
presionado.

Instituto Tecnolgico de Chihuahua

37

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.6.4. Botn de pausa

Pulse el botn de pausa (Pause) para detener momentneamente la ejecucin de un


VI. Cuando usted presiona el botn de Pausa, LabVIEW seala la posicin donde usted
detuvo la ejecucin en el diagrama de bloque. Pulse el botn de Pausa nuevamente para que
el VI contine ejecutndose.

2.1.6.5. Men de configuracin de textos

Seleccione el men Configuracin de Textos (Text Settings) para cambiar el tipo de


fuente (letra) del VI, incluyendo el tamao, estilo y color.

2.1.6.6. Men de alineacin de objetos

Seleccione el men Alineacin de Objetos (Align Objects) para alinear objetos con
respecto a los ejes, incluyendo eje vertical, superior, izquierdo, etc.

2.1.6.7. Men de distribucin de objetos

Seleccione el men Distribucin de Objetos (Distribute Objects) para espaciar objetos


uniformemente, incluyendo espacios vacos, compresiones, etc.

Instituto Tecnolgico de Chihuahua

38

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.6.8. Men de redimensionamiento

Seleccione el Redimensionamiento de Objetos (Resize Objects) para cambiar el


ancho y alto de objetos del panel frontal. Este men solo est disponible en el panel frontal

2.1.6.9. Men de reordenamiento

Seleccione el men Reordenamiento (Reorder) cuando tenga objetos superpuestos


unos con otros y usted quiera definir cual est enfrente de quien y cual atrs. Seleccione uno
de los objetos con la herramienta de posicionamiento y seleccione entre Move Forward
(mover hacia adelante), Move Backward (mover hacia atrs), Move to Front (mover al frente)
y Move to Back (mover hacia atrs).

NOTA: Los siguientes botones solo estn disponibles en la barra de herramientas del
diagrama de bloque.

2.1.6.10. Botn de ejecucin resaltada

Pulse en el botn de ejecucin resaltada (Highlight Execution) para ver el flujo de


informacin en el diagrama de bloques. Pulse el botn nuevamente para detener este tipo de
ejecucin resaltada.

Instituto Tecnolgico de Chihuahua

39

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.1.6.11. Botn de entrada al ciclo

Pulse el botn de entrada al ciclo (Step Into) para entrar un paso adentro de un ciclo,
un SubVI, etc. Entrando un paso a la vez adentro de un VI le permite introducirse en la VI nodo
a nodo. Cada nodo se resalta para sealar cuando est listo para ejecutarse. Al entrar un paso
adentro de un nodo usted est listo para caminar paso a paso adentro del nodo.

2.1.6.12. Botn de saltar ciclo

Pulse el botn de saltar ciclo (Step Over) para posicionarse encima de un ciclo, un
SubVI, etc. Al posicionarse encima del nodo, usted ejecuta el nodo sin entrar paso a paso
adentro del nodo.

2.1.6.13. Botn de salida del ciclo

Pulse el botn de Salida del ciclo (Step Over) para salirse de un ciclo, SubVI, etc. Al
posicionarse fuera del nodo, usted completa la ejecucin de un nodo y puede moverse al
siguiente nodo.

2.2 PARADIGMA DE PROGRAMACION POR FLUJO DE DATOS.

Como se ha mencionado con anterioridad, LabVIEW se basa en un nuevo paradigma:


la programacin por flujo de datos; este concepto es tan antiguo y tradicional en la enseanza

Instituto Tecnolgico de Chihuahua

40

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

de los principios bsicos de la programacin que resulta innovador al ser aplicado


directamente como un lenguaje.

Generalmente, en cualquier curso inicial de programacin, lo primero que se ensea es


la elaboracin de un diagrama de flujo para representar la lgica de nuestro programa, de ah
se sigue una secuencia de pasos hasta implementacin del programa en algn lenguaje de
programacin. LabVIEW es un compilador grfico en el cual se construye un diagrama con el
flujo de los datos del programa que se quiere desarrollar y listo, este diagrama que representa
nuestro lenguaje de programacin se compila para ser ejecutado.

A continuacin se describen los aspectos fundamentales sobre este paradigma de


programacin.

2.2.1 Creacin de un Instrumento Virtual

Cuando se coloca un objeto en el panel frontal, una terminal es creada en el diagrama


de bloques. Estas terminales le dan acceso a los objetos del panel frontal del cdigo creado
mediante el diagrama de bloque.

Cada terminal contiene informacin til referente al objeto al cual corresponde en el


panel frontal. Por ejemplo, el color y los smbolos proporcionan el tipo de dato: las variables
numricas de punto flotante son representados con terminales anaranjadas y las letras DBL,
SGL o EXT (doble precisin, precisin sencilla o precisin extendida); las variables numricas
enteras tienen terminales azules y las letras I8, I16, I32, U8, U16, U32 (enteros de 8,16 y 32
bits o enteros sin signo del 8,16 y 32 bits respectivamente); las variables booleanas tienen

Instituto Tecnolgico de Chihuahua

41

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

terminales verdes y son representadas por las letras TF (true/false); las variables string
(cadenas de caracteres) tienen terminales de color rosa y las letras ABC.

En general, las terminales anaranjadas deben unirse (cablearse) con las terminales
anaranjadas, verdes con verdes, y as sucesivamente. Pero, esta no es una regla que no se
puede romper; por ejemplo LabVIEW permitir al usuario conectar una terminal azul (valor
entero) a una terminal anaranjada (valor fraccional) o viceversa. Pero en la mayora de casos,
busque mejor una igualdad en colores.

Los controles tienen una flecha en el lado derecho y tienen un borde grueso. Los
indicadores tienen una flecha en el lado izquierdo y un borde fino. Reglas lgicas pueden ser
aplicadas al conectar en LabVIEW: Cada cable debe tener una (pero solo una) fuente (o
control), y cada cable puede tener varios destinos (o indicadores). El programa mostrado en la
figura 2.14 toma datos de los controles A y B y pasa valores a una funcin de adicin y a una
funcin de resta. Los resultados son mostrados en los indicadores A+B y A-B respectivamente.

a)

b)

Fig. 2.14. Ejemplo de un instrumento virtual, a) panel frontal, b) diagrama de bloque

Instituto Tecnolgico de Chihuahua

42

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.2.2 Cableado de funciones en el diagrama a bloques

Adems de los terminales del panel frontal, el diagrama de bloques contiene funciones.
Cada funcin puede tener mltiples terminales de entradas y salidas. La conexin de estas
terminales es una parte muy importante de la programacin en LabVIEW.

Una vez que se tenga cierta experiencia programado en LabVIEW, la conexin de


cables se le har ms fcil. Primero puede que necesite ayuda. En seguida se le muestra
algunas recomendaciones para comenzar:

La herramienta para conectar o de cableado es utilizada para conectarse a los nodos


de las funciones. Cuando apunte con la herramienta de cableado, apunte con el extremo del
cable que cuelga del carrete. Aqu es donde el cable ser colocado. La figura 2.15 muestra el
punto sensible de la herramienta de cableado.

Fig. 2.15. Punto sensible de la herramienta de cableado

Mientras se mueve la herramienta de cableado sobre las funciones, observe la vieta


amarilla que aparece. Esto le dir el nombre de la terminal al que se est conectando.
Mientras se mueva la herramienta de cableado encima de una terminal, esta va a mostrar
informacin. Esto le ayudara a identificar donde se va a unir el cable. La figura 2.16 muestra
un ejemplo de este tipo de identificacin de terminales.

Instituto Tecnolgico de Chihuahua

43

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.16. Identificacin de terminales

Para ms ayuda con los terminales, haga click derecho en la funcin y seleccione
Visible Items >>Terminals. Un dibujo de la funcin ser colocada atrs para revelar las
terminales de la conexin. Note los colores - estos corresponden a los tipos de datos utilizados
por los terminales del panel frontal. La figura 2.17 muestra un ejemplo al respecto.

Fig. 2.17. Opcin para mostrar terminales

LabVIEW cablea automticamente los objetos a medida que usted los coloca en el
diagrama de bloque. Tambin puede cablear automticamente objetos que ya estn colocados
en el diagrama de bloque. LabVIEW conecta la terminal que mejor combina (match) y deja las
terminales que no combinan (match) sin conectar. A medida que usted mueve un objeto
seleccionado cerca de otros objetos en el diagrama de bloque, LabVIEW dibuja cables
temporales para mostrarle conexiones validas. Cuando usted suelta el botn del ratn para
poner el objeto en el diagrama de bloque, LabVIEW conecta automticamente los cables.

Instituto Tecnolgico de Chihuahua

44

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.18. Cableado de objetos en el diagrama de bloque

Cambie al cableado automtico presionando el espaciador (spacebar) mientras mueve


un objeto utilizando la herramienta de posicionamiento (Positioning tool). Puede ajustarlas
opciones del cableado automtico seleccionando Tools >> Options y seleccionando Block
Diagram de el men superior principal.

No se preocupe por el color de los cables. LabVIEW seleccionar automticamente el


cable correcto y adecuado para cada situacin.

Fig. 2.19. Opcin de limpieza de cables

Instituto Tecnolgico de Chihuahua

45

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Si el cableado no se mira muy bien, haga click derecho en el cable que se desea
arreglar y escoja la opcin de Clean Up Wire (Limpieza del Cable) para que automticamente
el cable haga su ruta de nuevo.

El cableado es muy flexible en LabVIEW. Experimente con combinaciones de clicks y/o


teclas cuando este cableando. Aqu hay algunas de las caractersticas ms a menudo
utilizadas.

Fig. 2.20. Seleccin de cables

El hacer un simple, doble, y triple click en el cable selecciona el cable para moverlo o
para borrarlo, tal como se muestra en la figura 2.20. El hacer un click mientras se est
cableando hace un doblez en el cable. Haciendo click derecho o presionando el botn Esc
mientras se est cableando cancela la operacin de cableado.

2.2.3 Programacin por Flujo de Datos

LabVIEW sigue un modelo de flujo de datos para correr los VIs. Un nodo del diagrama
de bloque se ejecuta cuando todas sus entradas estn disponibles. Cuando un nodo completa
la ejecucin, suministra datos a sus terminales de salida y pasa los datos de salida al siguiente

Instituto Tecnolgico de Chihuahua

46

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

nodo en la trayectoria del flujo de datos. Visual Basic, C++, JAVA y otros lenguajes de
programacin basados en texto, siguen un modelo de control de flujo de la ejecucin de un
programa. En flujo de control, el orden secuencial de los elementos del programa determina el
orden de ejecucin de un programa.

Considere el diagrama de bloque que se muestra en la figura 2.21. Este suma dos
nmeros y luego resta 50 del resultado de la suma. En este caso, el diagrama de bloque se
ejecuta de izquierda a derecha, no porque los objetos estn puestos en ese orden, sino porque
una de las entradas de la funcin de resta no es vlida hasta que la funcin de suma o adicin
haya terminado su ejecucin y pasado los datos a la funcin de resta. Recuerde que un nodo
se ejecuta solamente cuando tiene datos disponibles en todas sus terminales de entrada, y
suministra datos a sus terminales de salidas solamente cuando termina su ejecucin.

Fig. 2.21. Ejemplo de cdigo dependiente

En el cdigo de la figura 2.22, considere cual segmento del cdigo se ejecutara


primero---la suma, el nmero aleatorio, o la funcin de divisin. No se puede saber porque las
entradas a las funciones de suma y divisin estn disponibles al mismo tiempo, y la funcin de
nmero aleatorio no tiene entradas. En una situacin en donde un segmento del cdigo se
debe ejecutar antes que otro, y no existe dependencia de datos entre las funciones, utilice una
estructura de Secuencia para forzar el orden de la ejecucin.

Instituto Tecnolgico de Chihuahua

47

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.22. Ejemplo de cdigo independiente

2.3. OPCIONES DE AYUDA

Utilice la ventana de Context Help (Ayuda Contextual) y LabVIEW Help (Ayuda de


LabVIEW) para ayudarle a construir o editar los VIs. Refirase a la ayuda de LabVIEW y a los
manuales para ms informacin.

2.3.1. Ventana de Ayuda Contextual (Context Help Window)

Para desplegar la ventana de Context Help, seleccione Help>>Show Context Help o


presione las teclas <Ctrl-H>. Cuando mueva el cursor sobre el panel frontal y los objetos del
diagrama de bloque, la ventana de Context Help despliega el icono de los subVIs, funciones,
constantes, controles e indicadores, con cables adjuntos a cada una de sus terminales.
Cuando mueva el cursor sobre la caja de opciones de dialogo, la ventana de Context Help
despliega descripciones de esas opciones. En la ventana, las conexiones requeridas estn en

Instituto Tecnolgico de Chihuahua

48

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

negrilla, las conexiones recomendadas en texto normal, y las conexiones opcionales estn
poco claras o no aparecen. La figura 2.23 presenta un ejemplo de la ventana de Context Help.

Ayuda en lnea
Congelar Ayuda
Ayuda del Diagrama
Simple/Complejo

Referencias en Lnea
Fig. 2.23. Ejemplo de ventana de ayuda contextual

Haga un click en el botn de Simple/Detailed Context Help localizado en la esquina


inferior izquierda de la ventana de Context Help para distinguir entre la ayuda contextual
simple y detallada. El modo simple enfatiza las conexiones importantes. Las terminales
opcionales son mostradas por segmentos de cables, informndole de la existencia de otras
conexiones.

Haga click en el botn de Lock Context Help para congelar el contenido actual de la
ventana de la Context Help. Cuando los contenidos estn congelados, el mover el cursor
sobre otros objetos no cambia los contenidos de la ventana. Para descongelar la ventana,
haga click nuevamente en el botn. Usted tambin puede tener acceso a esta opcin desde el
men de ayuda (Help).

Haga click en el botn de More Help (mas ayuda) para desplegar el tema
correspondiente en LabVIEW Help, el cual describe el objeto en forma detallada.

Instituto Tecnolgico de Chihuahua

49

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.3.2. Ayuda de LabVIEW

Puede acceder a LabVIEW Help ya sea haciendo click en el botn de More Help en la
ventana de Context Help, seleccionando HelpVI, Function, & How-To Help, haciendo click
en la oracin Click here for more help en la ventana de Context Help o presionando <Ctrl?>.

Fig. 2.24. Ejemplo de ventana de ayuda de LabVIEW

Instituto Tecnolgico de Chihuahua

50

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

La ayuda LabVIEW Help contiene descripciones detalladas de casi todos los mens,
herramientas, VIs y funciones. Tambin incluye instrucciones paso-a-paso para la utilizacin
de muchas caractersticas de LabVIEW y enlaces al Tutorial de LabVIEW, versiones en PDF
de todos los manuales y Notas de Aplicacin de LabVIEW, adems de recursos de soporte
tcnico en el sitio web de National Instruments (www.ni.com).

2.3.3. Atajos en LabVIEW

LabVIEW tiene muchas teclas de atajo que hacen el trabajo ms fcil.

Mientras que la Herramienta de Seleccin Automtica (Automatic Selection Tool) es


muy til para escoger la herramienta que usted deseara utilizar en LabVIEW, a veces hay
casos cuando usted desea controles manuales. Utilice la tecla Tab para cambiar entre las
cuatro herramientas ms comunes Operate Value (valor de operacin), Position/Size/Select,
(Posicin/Tamao/Seleccin), Edit Text (editar texto), Set Color on Front Panel (establecer
color en panel frontal), Connect wire on Block Diagram (conectar cable en el diagrama de
bloque). Una vez que se ha terminado con la seleccin de herramientas, puede presionar
<Shift-Tab> para activar la Herramienta de Seleccin Automtica.

En el dialogo de Tools >> Options , hay muchas opciones configurables para el


Panel Frontal, Diagrama de Bloque, Colores, Impresin y mucho mas.

Similar a las opciones de LabVIEW, se pueden configurar propiedades especificas del


VI al ir a File >> VI Properties Ah se puede documentar el VI, cambiar la apariencia de la
ventana, y personalizarlos de varias maneras.

Instituto Tecnolgico de Chihuahua

51

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.4. TCNICAS PARA DEPURACIN DE ERRORES.

Cuando el VI contiene errores de sintaxis y por lo tanto no es posible ejecutarlo, se


despliega una flecha quebrada en el botn de correr en la paleta de herramientas.

2.4.1. Lista de errores

Para hacer una lista de los errores, haga click en la flecha quebrada. Para localizar el
objeto malo, haga click en el mensaje del error.

Fig. 2.24. Lista de errores

Instituto Tecnolgico de Chihuahua

52

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.4.2. Ejecucin resaltada:

Usar la herramienta de ejecucin resaltada anima el diagrama y traza el flujo de datos,


permitindole ver adems los valores intermedios que circulan por cada cable. Para activar
esta herramienta simplemente haga click en el bombillo incandescente (light bulb) en la barra
de herramientas

Fig. 2.25. Ejecucin resaltada

2.4.3. Ventanas de prueba (Probe):

Las ventanas de prueba son utilizadas para ver los valores en cualquier cable del
diagrama de bloque. Para activar estas ventanas haga click en el cable que quiera visualizar
con la herramienta Probe o si lo prefiere simplemente haga click derecho en el cable para
seleccionar Probe.

Instituto Tecnolgico de Chihuahua

53

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Fig. 2.26. Puntos de prueba

2.4.4. Punto de Paro (Breakpoint):

Coloca pausas en diferentes lugares del diagrama. Haga click en los cables o en los
objetos con la herramienta de Punto de Paro para colocar los puntos de paro. El punto de
quiebre quedar resaltado con un marco color rojo.

Fig. 2.27. Punto de quiebre

Instituto Tecnolgico de Chihuahua

54

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.5. DOCUMENTACIN DEL VI.

Al abrir VIs properties (propiedades del VI) un desarrollador puede aadir


documentacin a su VI. La documentacin colocada en el Description field (espacio para la
descripcin) de la ventana Documentation (documentacin) del VI es mostrada en Context
Help (ayuda en contexto), y se imprime con el VI.

Si un usuario tiene una aplicacin que est siendo desarrollada continuamente, se


puede seguir los cambios en el desarrollo con Revision History (historial de revisiones),
tambin encontrado en VI Properties.

Cualquier control o indicador en el Panel Frontal puede ser documentado al hacer click
derecho con el ratn y elegir Description and Tip (Descripcin y sugerencia) La
informacin de descripcin aparece en el men Context Help (ayuda en contexto) cuando un
usuario pasa el cursor sobre el objeto, y la informacin de sugerencia es mostrada en una
pequea ventana pegada al cursor cuando el usuario pausa el movimiento del cursor sobre el
objeto.

Al igual que los comentarios en un lenguaje basado en texto, el desarrollador podra


querer explicar una porcin de su cdigo, o proveer direcciones en el panel de frontal.
Cualquiera de estas necesidades puede ser cumplida al usar la herramienta de etiquetado
(labeling tool) para crear una caja de texto libre con tantas instrucciones o explicaciones
como sean necesarias.

Instituto Tecnolgico de Chihuahua

55

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.6. SUB-INSTRUMENTOS VIRTUALES (SubVI).

Despus de haber construido un VI, y creado su propio icono y panel de conexin, este
puede ser utilizado en otro VI. Un VI dentro de otro VI se llama un subVI. Un subVI
corresponde a una subrutina en lenguajes de programacin basados en texto. La utilizacin de
subVIs le ayuda a manejar cambios y a eliminar errores del diagrama de bloque rpidamente.

2.6.1 Conceptos Bsicos

Los sub-instrumentos virtuales (subVI), son en realidad VIs que se utilizan dentro de
otros VIs como funciones o subrutinas, por lo tanto tienen sus propios panel frontal y diagrama
de bloque, los cuales se pueden acceder haciendo doble click sobre el icono del subVI.

Fig. 2.28. Sub-instrumento virtual

Instituto Tecnolgico de Chihuahua

56

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

As como en las terminales de control o de indicador en el diagrama de bloque pueden


ser vistos como un icono o como una simple terminal, los subVIs pueden ser vistos como un
icono, un nodo expandible o un nodo expandido. Las diferentes vistas dependen en la
preferencia del usuario y no cambia la funcionalidad del subVI. En sus modos expandible y
expendido el campo amarillo designa un VI estndar para diferenciarlo de los VI Express que
presentan un campo azul.
Icono

Nodo Expandible

Nodo Expandido

Fig. 2.29. Presentaciones de un sub-VI

Cada VI muestra un icono, mostrado arriba, en la esquina superior derecha de las


ventanas del panel frontal y del diagrama de bloque. Un icono es una representacin grfica
de un VI. Puede contener texto, imgenes, o una combinacin de ambos. Si usted utiliza un VI
como subVI, el icono identifica el subVI en el diagrama de bloque del VI.

El conector muestra terminales disponibles para la transferencia de datos hacia y


desde el subVI. Hay varios patrones de conectores para elegir. Haga un click derecho sobre el
conector y seleccione el patrn del men de patrones. A partir de ah usted puede asignar
controles e indicadores en el panel frontal al conector terminal, como veremos ms adelante.

Instituto Tecnolgico de Chihuahua

57

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Icono

Conector
Fig. 2.30. Icono conector

2.6.2 Creacin de subVIs

Como se mencion con anterioridad un subVI es en realidad un VI empaquetado o


encapsulado que se puede utilizar dentro de otro VI. Para convertir un VI en subVI se siguen
tres sencillos pasos:

1) disear un icono
2) crear el conector
3) asignar terminales.

2.6.2.1. Diseo del Icono.

Para crear iconos personalizados para reemplazar los iconos predeterminados se hace
click derecho en la esquina superior derecha del panel frontal o del diagrama de bloques y se
selecciona Edit Icon del men de atajo o bien haciendo un doble click en el icono en la

Instituto Tecnolgico de Chihuahua

58

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

esquina superior derecha del panel frontal. Tambin se puede corregir iconos seleccionando
File >> VI Properties, seleccionando General del men Category, y haciendo click en el botn
de editar (Edit Icon). Utilice las herramientas del lado izquierdo de la casilla de dialogo del Icon
Editor para crear el diseo del icono en el rea de edicin. El tamao normal de la imagen del
icono aparece en la casilla apropiada en la parte derecha del rea de edicin.

Fig. 2.31. Editor de Iconos

Tambin se puede arrastrar un grfico desde cualquier archivo y colocarlo

en la

esquina superior derecha del panel frontal o del diagrama de bloque. LabVIEW convierte el
grfico a un icono de 32 32 pxeles.

2.6.2.2. Creacin del Conector

Para utilizar un VI como un subVI, usted necesita crear un conector. El conector es una
serie de terminales que corresponden a los controles y a los indicadores de ese VI, similar a la

Instituto Tecnolgico de Chihuahua

59

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

lista de parmetros de una funcin basada en un lenguaje de programacin de texto. El


conector define las entradas y las salidas que usted puede cablear al VI para que pueda
utilizarlo como subVI.

Defina las conexiones asignando un control del panel frontal o un indicador a cada una
de las terminales del conector. Para definir un conector, de un click derecho sobre el icono en
la esquina superior derecha de la ventana del panel frontal y seleccione Show Connector del
men. El conector substituye el icono. Cada rectngulo en el conector representa una terminal.
Utilice los rectngulos para asignar entradas y salidas.

El nmero de terminales que LabVIEW muestra en el conector depende del nmero de


controles e indicadores en el panel frontal. Para el panel frontal mostrado en la figura 2.32, el
cual tiene cuatro controles y un indicador, LabVIEW mostrara cuatro terminales de entradas y
una terminal de salida en el conector.

Fig. 2.32. Creacin de conector

Instituto Tecnolgico de Chihuahua

60

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.6.2.3. Asignacin de terminales

Despus que seleccione un patrn para utilizar en su conector, debe definir las
conexiones asignando un control del panel frontal o indicador a cada uno de los terminales
del conector. Cuando usted hace vnculos entre controles e indicadores y el conector, coloque
las entradas en la izquierda y las salidas a la derecha para evitar patrones complicados y poco
claros en su VI. Para asignar una terminal a un control de panel frontal o indicador, presione
una terminal del conector. Presione el control del panel frontal o indicador que usted desea
asignar a la terminal. Haga click en un rea abierta del panel frontal. La terminal cambia al
color del tipo de datos del control para indicar que usted conect la terminal. Usted tambin
puede seleccionar el control o el indicador primeramente y despus seleccionar la terminal.

Fig. 2.33. Asignacin de terminales

Asegurase que salv el VI despus de haber hecho las asignaciones de las terminales.

Instituto Tecnolgico de Chihuahua

61

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

2.6.3 Libreras de SubVIs

Hay varias maneras de organizar sus subVIs. La manera ms comn es organizarlos


por aplicacin. En este caso, son salvados en el mismo directorio o dentro de un archivo de
librera de VI todos los VIs para una aplicacin en particular. Salvarlos en un archivo de
librera permite que usted transporte una aplicacin entera dentro de un solo archivo.
Salvar dentro de una librera es simple. Despus de presionar Save As (guardar
como), presione New VI Library (nueva librera de VI). Esto permitir que usted nombre la
librera, y entonces salvar su VI en l. Para agregar VI subsecuentes, simplemente haga un
doble click al archivo .llb de la ventana estndar de Salvar, y dar un nombre al VI.

2.6.4 Uso de los subVIs

Despus de construir un VI y crear su icono y conector, usted puede utilizarlo como un


subVI. Para colocar un subVI en el diagrama de bloque, seleccione Functions>> Select VI.,
tal y como se muestra en la figura 2.34, luego navegue y haga un doble-click en el VI que
usted desea utilizar como subVI y colquelo en el diagrama de bloques.

Tambin puede colocar un VI abierto en el diagrama de bloque de otro VI abierto


usando la herramienta de colocacin (Positioning Tool) para hacer click en el icono en la
esquina superior derecha del panel frontal o diagrama de bloque del VI que usted desea
utilizar como subVI y arrastrar el icono al diagrama de bloque del otro VI.

Instituto Tecnolgico de Chihuahua

62

Dr. Gerardo Trujillo Schiaffino

Captulo II

Fundamentos de LabVIEW

Seleccionar

Fig. 2.34. Acceso a los subVIs en la paleta de funciones

Instituto Tecnolgico de Chihuahua

63

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

CAPTULO III
ESTRUCTURAS DE PROGRAMACIN

3. ESTRUCTURAS DE PROGRAMACION.

LabVIEW, como cualquier otro lenguaje de programacin, contiene estructuras de


programacin como ciclos While, ciclos For, estructuras Case, y estructuras de Secuencias
entre otras. El uso correcto de todas estas estructuras de programacin permite desarrollar un
mejor control en la programacin del flujo de los datos. Para tener acceso a todas las
estructuras de programacin se debe seleccionar en la paleta de funciones la sub-paleta
Programming y luego seleccionar la sub-paleta Structures como se muestra en la Figura 3.1.

click

Fig. 3.1. Acceso a las estructuras en la paleta de funciones

Instituto Tecnolgico de Chihuahua

64

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

3.1 CICLO WHILE.

El ciclo While es similar al ciclo Do o al ciclo Repeat-Until en lenguajes de


programacin basados en texto, un ciclo While, como el mostrado en la figura 3.2, ejecuta el
cdigo contenido dentro de este hasta que una cierta condicin sea cumplida, es decir, el ciclo
While ejecuta el cdigo de manera repetida hasta que la terminal del control del condicional,
recibe un valor booleano especfico.

El comportamiento y la apariencia de la terminal de control condicional de iteraciones


puede ser Continue if True (contine si es verdadero), que es el valor por default, o Stop if
True (detngase si es verdadero). Cuando el control condicional de iteraciones es Continue if
True, el ciclo While ejecuta repetidamente su sub-diagrama hasta que la terminal recibe un
valor falso. Cuando el control condicional de iteraciones es Stop if True, el ciclo While ejecuta
repetidamente su sub-diagrama hasta que la terminal recibe un valor verdadero.

La terminal del contador de iteraciones i, mostrada en la esquina inferior izquierda del


ciclo, contiene el nmero de iteraciones completas que se han realizado. El contador de
iteraciones siempre empieza en 0 durante la primera iteracin.
Tnel

Control del Condicional


de Iteraciones
Contador de Iteraciones

Fig. 3.2. Estructura de ciclo While.

Instituto Tecnolgico de Chihuahua

65

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Cuando un valor entra o sale de la estructura de ciclo, se genera automticamente en


el recuadro de la estructura una terminal llamada tnel, cuando se trata de un tnel de entrada
esta terminal almacena el valor externo para que est disponible en cada iteracin del ciclo,
como este almacenamiento se hace antes de entrar al ciclo, una vez adentro el programa no
puede leer el valor externo.

NOTA IMPORTANTE: Nunca conecte el control del condicional del ciclo de manera
externa pues el programa se quedara ciclado

Para colocar ciclos While en el diagrama se selecciona While Loop de la sub-paleta


Structures en el diagrama de bloque como se muestra en la figura 3.3.

click

Fig. 3.3. Acceso a la estructura de ciclo While en la sub-paleta de estructuras.

Instituto Tecnolgico de Chihuahua

66

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Una vez que se ha seleccionado esta estructura el cursor del ratn se convierte en un
puntero especial que se utiliza para encerrar la seccin del cdigo que se desea repetir.
Dando un primer click al botn del ratn se define la esquina superior-izquierda de lo que ser
el rea del ciclo, dando un segundo click al botn del ratn se define lo que ser la esquina
inferior izquierda, de esta manera se coloca la frontera del ciclo While alrededor del cdigo
seleccionado. Tambin es posible agregar nodos adicionales arrastrndolos dentro del ciclo
While si es necesario.

3.2 CICLO FOR

Un ciclo For, como el mostrado en la figura 3.4, ejecuta el cdigo contenido dentro de
l una cierta cantidad de veces determinada por el valor numrico conectado en la terminal del
control de iteraciones N.

La terminal del contador de iteraciones i, mostrada en la esquina inferior izquierda,


contiene el nmero de iteraciones completas que se han realizado. Al igual que en el ciclo
While el contador de iteraciones siempre empieza en 0 durante la primera iteracin.

Como el ciclo ejecuta la cantidad de iteraciones conectadas a la terminal N y el


contador i siempre empieza con un valor de 0, entonces el valor final del contador de
iteraciones siempre ser igual a N-1.

Considere para los ciclos For el mismo comportamiento de generacin de tneles para
la conexin de valores externos que el definido para los ciclos While.

Instituto Tecnolgico de Chihuahua

67

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Control de Iteraciones

Contador de Iteraciones

Fig. 3.4 Estructura de ciclo For.

Coloque ciclos For en su diagrama seleccionando For Loop de la sub-paleta


Structures en el diagrama de bloque como se muestra en la figura 3.5.

click

Fig. 3.5. Acceso a la estructura de ciclo For en la sub-paleta de estructuras.

Una vez que se ha seleccionado esta estructura el cursor del ratn se convierte en un
puntero especial que se utiliza para encerrar la seccin del cdigo que se incluir dentro del

Instituto Tecnolgico de Chihuahua

68

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

ciclo. Dando un primer click al botn del ratn se define la esquina superior-izquierda de lo
que ser el rea del ciclo, dando un segundo click al botn del ratn se define lo que ser la
esquina inferior izquierda. Tambin es posible agregar nodos adicionales arrastrndolos dentro
del ciclo si es necesario.

3.3. REGISTROS DE CORRIMIENTO

Los registros de corrimiento son terminales que se pueden activar en las estructuras de
los ciclos While y For para almacenar temporalmente los valores generados en variables
determinadas durante la iteracin actual para ser utilizados en iteraciones posteriores

Para agregar un registro de corrimiento en una estructura de ciclo, haga click derecho
sobre el contorno de la estructura y seleccione Add Shift Register del men emergente como
se muestra en la figura 3.6.

Fig. 3.6 Agregando un registro de corrimiento en la estructura de un ciclo

Instituto Tecnolgico de Chihuahua

69

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Por omisin (default) los registros de corrimiento permiten almacenar solo el valor la
iteracin anterior, cuando necesitamos aumentar esta capacidad de almacenamiento para ms
iteraciones, simplemente agregamos elementos de almacenamiento al mismo registro de
corrimiento haciendo un click derecho en la terminal del registro y seleccionando Add Element
del men emergente, tal como se muestra en la figura 3.7. Se pueden adicionar tantos
elementos de memoria como sean necesarios

Fig. 3.7. Agregando elementos de memoria a un registro de corrimiento

La operacin de los registros de corrimiento es muy sencilla. Antes de iniciar las


iteraciones del ciclo, los elementos de memoria son inicializados con los valores conectados
por fuera del ciclo, este paso es importante debido a que si no se inicializan con un valor
conocido, los elementos de memoria podran contener basura que podra afectar el
desempeo del cdigo.

En la primer iteracin del ciclo, i=0, los elementos de memoria transfieren se contenido
hacia el interior del ciclo y se efecta el cdigo programado, en este paso tambin se asigna
en la terminal correspondiente el nuevo valor que ser almacenado en el registro.

Instituto Tecnolgico de Chihuahua

70

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Antes de ejecutar la siguiente iteracin, i=1, el valor almacenado en la iteracin anterior


es transferido al primer elemento de memoria, el valor contenido en este se transfiere al
segundo y as sucesivamente efectuando un corrimiento de los valores almacenados en el
registro, el valor en el ltimo elemento de memoria se elimina y un nuevo valor es almacenado
en la terminal correspondiente para ser transferido en la siguiente iteracin, este
comportamiento se repite para el resto de las iteraciones del ciclo.

La figura 3.8 muestra de manera grfica la operacin de un registro de corrimiento con


cuatro terminales de memoria.

a)

b)

c)

d)

Fig. 3.8. Operacin del registro de corrimiento a) antes de ejecutar i=0, b) i=0, c) antes de ejecutar i=1,2,3N-1,
d) i=1,2,3N-1

Los registros de corrimiento pueden almacenar cualquier tipo de variable y tambin se


pueden activar en los ciclos While.

3.4. NODOS DE RETROALIMENTACIN

Los nodos de retroalimentacin son una estructura que nos permite retroalimentar un
valor de salida en la iteracin de un ciclo para utilizarlo como entrada en la siguiente iteracin,
su funcin es similar a la de un registro de corrimiento con solo un elemento de memoria.

Instituto Tecnolgico de Chihuahua

71

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Al igual que en caso de los registros de corrimiento, es conveniente siempre inicializar


los nodos de retroalimentacin en la terminal respectiva.

Fig. 3.9. Nodo de retroalimentacin en un ciclo For.

Coloque nodos de retroalimentacin en su diagrama seleccionando Feedback Node


de la sub-paleta Structures en el diagrama de bloque como se muestra en la figura 3.10.

click

Fig. 3.10. Acceso a los Nodos de Retroalimentacin

Instituto Tecnolgico de Chihuahua

72

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Los nodos de retroalimentacin, al igual que los registros de corrimiento, tambin


aceptan cualquier tipo de variable para su almacenamiento.

3.5. CASE

Las estructuras Case (de caso) nos permiten ejecutar un cdigo especfico
dependiendo del valor de una variable de entrada en una terminal de selector. Solo se puede
ver un cuadro de caso a la vez, as que para cambiar de un cuadro de caso a otro se hace un
click en las flechas correspondientes en el encabezado del cuadro. Cuando un valor exterior
entra a un cuadro de caso se genera un tnel que pone el mismo valor de entrada disponible
para todos los cuadros de caso. Cuando un valor debe salir de un cuadro de caso, el tnel de
salida que se genera debe tener algn valor asignado para todos los casos o se mostrara en
color blanco (vaco) y generar un error de sintaxis.

Dependiendo del tipo de variable de entrada las estructuras Case pueden ser:
booleano, string o numrico.

a)

b)

c)

Fig. 3.11. Estructura Case a) booleano, b) string, c) numrico.

Instituto Tecnolgico de Chihuahua

73

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Coloque estructuras Case en su diagrama seleccionando Case Structure de la subpaleta Structures en el diagrama de bloque como se muestra en la figura 3.12

click

Fig. 3.12. Acceso a la estructura Case en la paleta de funciones

3.5.1. Case Booleano

Para una entrada Booleana la estructura Case se comporta de manera similar a los
enunciados if-then-else (si-entonces-de otro modo) comunes en otros lenguajes de
programacin basados en texto. Si el valor booleano de la entrada es verdadero (true), se
ejecuta el cdigo dentro del cuadro del caso verdadero; de otra manera se ejecutara el cdigo
dentro del cuadro del caso falso (false)

Instituto Tecnolgico de Chihuahua

74

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

3.5.2. Case String

Para una entrada de cadena de caracteres (string), se ejecuta solamente el cdigo


contenido en el cuadro del caso que corresponda exactamente con la cadena en la entrada de
selector, si el valor no coincide con ninguno de los casos, entonces se ejecuta el caso que
este marcado como caso por omisin (default).

Por omisin (default) todas las estructuras case aparecen como Case Booleano, para
convertir a Case String simplemente conecte una variable tipo string en la terminal de
selector y la estructura Case se convertir automticamente. Con la herramienta de texto
cambie las cadenas True y False que aparecen por default tecleando la cadena que quiere
asignar en cada caso especifico. Para agregar ms cuadros de caso haga click derecho
tocando el cuadro de la estructura Case y seleccione Add Case After del men emergente.
Es posible agregar tantos cuadros de caso diferentes como sea necesario

3.5.3. Case Numrico

Para una entrada de valor numrico conectada en la entrada del selector de la


estructura Case se ejecuta solamente el cdigo contenido en el cuadro del caso que
corresponda exactamente con el valor numrico en la entrada de selector. Si el valor de
entrada esta fuera de rango de los casos definidos, al igual que en los Case String, LabVIEW
escoger el caso designado por omisin (default).

Instituto Tecnolgico de Chihuahua

75

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

3.6. ESTRUCTURAS DE SECUENCIA

En un lenguaje basado en texto, las declaraciones del programa generalmente se


ejecutan en el orden en que aparecen.

Por otro lado, en un lenguaje basado en flujo de datos como LabVIEW, un nodo se
ejecuta cuando los datos estn disponibles en todas sus terminales de entrada por lo cual
algunas veces es difcil determinar el orden exacto de ejecucin de las funciones.

Cuando se necesita controlar de manera estricta el orden de la ejecucin del cdigo en


el diagrama de bloques, se hace necesario utilizar una estructura de secuencia (Sequence
Structure).

Las estructuras de secuencia lucen como un pedazo de rollo de pelcula. Como se


muestra en la figura 3.13 existen dos tipos diferentes para esta estructura: la estructura de
secuencia apilada y la estructura de secuencia extendida.

a)

b)

Fig. 3.13. Estructura de secuencia a) apilada, b) extendida.

Instituto Tecnolgico de Chihuahua

76

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Coloque estructuras de secuencia en su diagrama seleccionando Stacked Secuence o


Flat Secuence de la sub-paleta Structures en el diagrama de bloque como se muestra en la
figura 3.14.

click

Fig. 3.14. Acceso a la estructura de secuencia en la paleta de funciones

3.6.1. Secuencias Apiladas

Las estructuras de secuencia apiladas solo muestran un cuadro de secuencia a la vez,


de manera similar a las estructuras de caso, solo que a diferencia de estas, todos los cuadros
ejecutan de manera secuencial el cdigo contenido en ellos.

Para agregar cuadros a una secuencia se hace un click derecho sobre la estructura y
se selecciona Add Frame After o Add Frame Before del men emergente, tal como se
muestra en la figura 3.15.

Instituto Tecnolgico de Chihuahua

77

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Fig. 3.15. Agregando cuadros a una secuencia.

Cuando se requiere transferir valores entre diferentes cuadros de una estructura de


secuencia apilada, se debe activar las terminales de almacenamiento local haciendo un click
derecho sobre la estructura y seleccionando Add Local Secuence, tal como se muestra en la
figura 3.16. Este tipo de terminal almacena un valor generado en un cuadro de secuencia
para que pueda ser utilizado en los cuadros siguientes.

Instituto Tecnolgico de Chihuahua

78

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Fig. 3.16. Agregando terminal de almacenamiento local a una estructura de secuencia.

3.6.2. Secuencias Extendidas

Las estructuras de secuencia extendida realizan exactamente la misma funcin que las
estructuras de secuencia apiladas descritas anteriormente, la nica diferencia es que las
secuencias extendidas muestran simultneamente todos los cuadros de secuencia de manera
que se puede visualizar simultneamente el cdigo contenido en toda la estructura.

La transferencia de valores entre distintos cuadros de una secuencia extendida se


realiza a travs de tneles simples como los empleados en otras estructuras.

Instituto Tecnolgico de Chihuahua

79

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Para convertir una secuencia apilada en secuencia extendida y viceversa se hace click
sobre la estructura y se selecciona Replace / Replace with Flat Secuence o Replace with
Stacked Secuence segn sea el caso, tal como se muestra en la figura 3.17.

Fig. 3.17. Acceso a la estructura de secuencia en la paleta de funciones

3.7. NODOS DE FRMULA

Algunas veces es preferible programar expresiones matemticas con funciones


basadas en texto, en lugar de hacerlo con iconos (los que pueden tomar mucho espacio en el
diagrama). Los nodos de frmula nos permiten implementar ecuaciones complicadas usando
instrucciones basadas en texto.

Instituto Tecnolgico de Chihuahua

80

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

Compare los ejemplos mostrados en la figura 3.18 de una misma expresin


matemtica evaluada en forma de diagrama y con un nodo de frmula.

a)

b)

Fig. 3.18. Expresin matemtica evaluada a) en diagrama, b) en nodo de frmula

Coloque nodos de frmula en su diagrama seleccionando Formula Node de la subpaleta Structures en el diagrama de bloque como se muestra en la figura 3.19.

click

Fig. 3.19. Acceso a los nodos de frmula en la paleta de funciones

Instituto Tecnolgico de Chihuahua

81

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

La cajas de este nodo pueden cambiar de tamao para introducir formulas algebraicas
directamente a los diagramas de bloque. Para agregar variables, se hace un click derecho
sobre la estructura y se selecciona la opcin de agregar entrada (Add Input) o agregar salida
(Add Output), tal como se muestra en la figura 3.20

Fig. 3.20. Agregando terminales de entrada y de salida a un nodo de frmula

Hay que nombrar las variables de la misma manera en que sern usadas dentro del
nodo de formula (los nombres son sensibles a las maysculas).

Todas las declaraciones independientes entre s deben terminar siempre con un punto
y coma (;).

Al usar varias frmulas en un solo nodo de frmula, cada variable asignada (las que
aparecen en la parte izquierda de cada frmula) deben de tener una terminal de salida en el
nodo de frmula. Sin embargo, estas terminales de salida no necesitan estar cableadas si no
se requiere su valor de salida

Instituto Tecnolgico de Chihuahua

82

Dr. Gerardo Trujillo Schiaffino

Captulo III

Estructuras de Programacin

En los nodos de frmula es posible utilizar funciones estndar como: abs, acos, acosh,
asin, asinh, atan, atan2, atanh, ceil, cos, cosh, cot, csc, exp, expm1, floor, getexp, getman, int,
intrz, In, Inp1, log, log2, max, min, mod, pow, rand, rem, sec, sign, sin, sinc, sinh, sqrt, tan,
tanh.

Tambin se puede utilizar estructuras de programacin como If then, for, case, entre
muchas otras, utilizando la sintaxis del lenguaje C (especficamente ANSI C).

Instituto Tecnolgico de Chihuahua

83

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

CAPTULO IV
HERRAMIENTAS Y FUNCIONES DE PROGRAMACION

4.1 ARREGLOS

Al igual que en otros lenguajes de programacin, en LabVIEW los arreglos agrupan


elementos de datos del mismo tipo. Un arreglo consiste de elementos ordenados a travs de
ndices y dimensiones.

Los elementos son los datos que componen el arreglo, el ndice es el lugar o posicin
que ocupa el elemento dentro del arreglo y la dimensin es la cantidad de ndices que se
utilizan para indicar una posicin nica dentro del arreglo.

Un arreglo puede tener una o ms dimensiones y hasta 2^31 1 elementos por


dimensin, si lo permite la memoria de la computadora.

El ndice es basado en cero, lo que significa que tiene un rango de 0 a n 1, donde n


es el nmero de elementos en el arreglo. Por ejemplo, n = 9 para los nueve planetas, as que
el ndice recorre de 0 a 8. La Tierra es el tercer planeta, as que tiene un ndice de 2.

La figura 4.1 muestra el esquema de un arreglo unidimensional en el cual cada


elemento se accesa a travs de un solo ndice.

Instituto Tecnolgico de Chihuahua

84

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Arreglo

elemento

ndice

elemento

elemento

elemento

elemento

Fig. 4.1. Arreglo unidimensional

La figura 4.2 muestra el esquema de un arreglo bidimensional en el cual cada elemento


se accesa a travs de dos ndices

ndices

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

elemento

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

elemento

elemento

elemento

elemento

Arreglo
.
.
.

elemento

Fig. 4.2. Arreglo bidimensional n X m

Se pueden construir arreglos de tipos de datos numricos, booleanos, rutas, cadenas,


formas de onda y clusters.

4.1.1. Controles e Indicadores de Arreglo

Para crear un control o indicador de un arreglo en el panel, primero se selecciona una


preforma de arreglo (array) en la paleta Controls Modern Array, Matrix & Cluster, y se
coloca en el panel frontal, como se muestra en la figura 4.3.
Instituto Tecnolgico de Chihuahua

85

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

click

click

Fig. 4.3. Acceso a la preforma para un arreglo en el panel frontal

Luego, como se muestra en la figura 4.4, se arrastra un control o un indicador adentro


de la preforma para asignarle el tipo de dato correspondiente, por ejemplo, si se requiere un
arreglo indicador numrico se debe colocar dentro de la preforma de arreglo un indicador
numrico, si lo que se desea el arreglo control booleano entonces de debe colocar dentro de la
preforma un control booleano.

Si se intenta arrastrar un control o indicador invlido, tal como una grfica XY, no ser
posible colocarlo dentro de la preforma de arreglo.

Instituto Tecnolgico de Chihuahua

86

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.4. Asignacin del tipo de dato al arreglo

Para poder utilizar un arreglo se debe asignar el tipo de variable, de otro modo, la
terminal del arreglo en el diagrama de bloques aparece negra con un parntesis vaco.

Para agregar dimensiones a un arreglo, se hace click derecho en el indicador del ndice
y seleccione Add Dimension del men emergente como se muestra en la figura 4.5.

Tambin se puede utilizar la herramienta que posicionamiento para cambiar el tamao


del indicador del ndice hasta que se obtengan las dimensiones requeridas.

Instituto Tecnolgico de Chihuahua

87

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.5. Adicionando dimensiones a un arreglo

4.1.2. Arreglos Auto Indexados

El manejo de auto-indexamiento de arreglos es una capacidad novedosa de LabVIEW


que le da una gran versatilidad en el uso de los ciclos For y While. El Auto-indexamiento es
una caracterstica propia de los tneles de entrada o salida en las estructuras de ciclos y se
activa o desactiva seleccionando Enable Indexing o Disable Indexing en los mens
emergentes al hacer click derecho sobe un tnel.

4.1.2.1. Auto-indexamiento de salida

Cuando se utiliza el auto-ndice en tnel de salida, se genera de manera automtica un


arreglo de salida que recibe un nuevo elemento por cada iteracin del ciclo. El tnel de salida
contiene corchetes cuadrados representando un arreglo que al alambrarse al exterior del ciclo

Instituto Tecnolgico de Chihuahua

88

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

transfiere el arreglo que contiene los elementos almacenados en cada una de las iteraciones
del ciclo. Si el auto-ndice esta desactivado, entonces el tnel no crea un arreglo para
almacenar los valores de las distintas iteraciones y al finalizar el ciclo solo se transfiere al
exterior el ultimo valor generado. En este caso el tnel tiene una apariencia normal y no
muestra corchetes como en caso anterior.

La figura 4.6 muestra un ejemplo de un ciclo For con dos tneles de salida, en el
primero (parte superior) el auto- indexamiento est habilitado por lo cual genera un arreglo de
salida, mientras que en el segundo (parte inferior) el auto-indexamiento esta deshabilitado por
lo cual solo sale un valor numrico simple.

Fig. 4.6. Ejemplo de auto-indexamiento en tneles de salida

El auto-indexamiento en los tneles de salida aplica por igual a los ciclos While y a los
ciclos For. Sin embargo, por omisin (default) en el caso de los ciclos For el auto-indexamiento
est habilitado, mientras que en los ciclos While por omisin el auto-indexamiento est
deshabilitado.

Instituto Tecnolgico de Chihuahua

89

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.1.2.2. Auto-indexamiento de entrada

Cuando se alambra un arreglo a un tnel de entrada de un ciclo For o un ciclo While, si


el auto-indexamiento se encuentra activado, entonces en cada iteracin solo pasar a travs
del tnel un elemento, cuyo ndice coincida con el contador de iteraciones i del ciclo. Por otro
lado, si el auto-indexamiento se encuentra desactivado entonces el arreglo completo pasar
por el tnel en cada iteracin. Un ejemplo de este comportamiento se muestra en la figura 4.7.

Fig. 4.7. Ejemplo de auto-indexamiento en tneles de entrada

Ntese que el primer tnel de entrada (parte superior) tiene el auto-ndice habilitado por
lo que al ciclo entran los elementos de manera individual, mientras que en segundo tnel
(parte inferior) el auto-ndice se encuentra deshabilitado por lo cual al interior del ciclo llega el
arreglo completo. Ntese tambin como cambia la representacin de la terminal del tnel
cuando est activado el auto-indexamiento.

Otra caracterstica particular de LabVIEW con respecto a los arreglos alambrados en


tneles de entrada en ciclos For se presenta cuando existe uno o ms tneles que tengan
habilitado el auto-ndice, el tamao de los arreglos se puede utilizar para controlar el numero
de iteraciones del ciclo, incluso la terminal N del ciclo pude quedar desconectada.

Instituto Tecnolgico de Chihuahua

90

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

En el caso de existan arreglos de entrada de diferentes tamaos o incluso si estuviera


alambrada la terminal N, el control de las iteraciones lo tiene el que tenga el tamao menor.
Por ejemplo, si se cablean un arreglo con 10 elementos y otro de 5 elementos a tneles de
entrada de entrada de un ciclo For y se pone la terminal del contador a 15, el ciclo se ejecuta
solo 5 veces.

4.1.2.3. Arreglos auto-indexados multidimensionales

Se pueden utilizar dos ciclos For, uno dentro del otro, para crear arreglos
bidimensionales. El ciclo For externo crea las filas de elementos y el ciclo For interno crea las
columnas de elementos. La figura 4.8 genera un arreglo bidimensional de 3 renglones y seis
columnas de nmeros aleatorios

Fig. 4.8. Creacin de arreglos bidimensionales.

De

igual

manera,

anidando

ms

ciclos

For,

se

pueden

crear

arreglos

multidimensionales.

Instituto Tecnolgico de Chihuahua

91

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.1.3. Arreglo Constantes

Tambin es posible crear constantes de arreglo en el diagrama a bloque, el


procedimiento es muy parecido a la creacin de controles o indicadores de arreglo en el panel.

Primero seleccione una preforma Array Constant en la paleta Functions All


Functions Array en el diagrama a bloque, como se muestra en al figura 4.9.

click

click

Fig. 4.9. Acceso a la preforma para constante de arreglo.

Luego asigne el tipo de constante a la preforma de arreglo. La figura 4.10a muestra la


construccin de una constante de arreglo booleano. La figura 4.10b Muestra la construccin de
una constante de arreglo numrico bidimensional. Ntese que cada elemento del arreglo
puede tener valor diferente entre s.

Instituto Tecnolgico de Chihuahua

92

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

a)

b)

Fig. 4.10. Construccin de una constante de arreglo a) booleano, b) numrico bidimensional.

4.1.4. Funciones para Arreglos

LabVIEW cuenta con una gran cantidad de funciones para crear, manipular o trabajar
con arreglos. Estas funciones estn situadas en la paleta Functions All Functions Array.

Las principales funciones para trabajar con arreglos incluyen:

4.1.4.1. Tamao de Arreglo (Array Size)

Fig. 4.11. Funcin Array Size.

Instituto Tecnolgico de Chihuahua

93

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

La funcin Array Size (tamao de arreglo) devuelve el nmero de elementos en cada


dimensin de un arreglo. Si el arreglo es de n-dimensiones, el tamao (size) de la salida es un
arreglo de n elementos, donde cada elemento es el tamao del arreglo en esa dimensin

4.1.4.2. Inicializar Arreglo (Initialize Array)

Fig. 4.12. Funcin Initialize Array.

La funcin Initialize Array (inicializar el arreglo) crea un arreglo de n dimensiones en


donde cada elemento ha sido inicializado al valor conectado en la entrada del elemento
(element). Se puede cambiar el tamao de la funcin para incrementar el nmero de
dimensiones del arreglo de salida.

4.1.4.3. Construir Arreglo (Build Array)

Fig. 4.13. Funcin Build Array.

La funcin Build Array (construir de arreglo) puede realizar dos funciones distintas.
Concatena mltiples arreglos o aade elementos a un arreglo de n dimensiones. Se puede

Instituto Tecnolgico de Chihuahua

94

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

cambiar el tamao de la funcin para incrementar el nmero de dimensiones del arreglo de


salida. Para concatenar las entradas en un arreglo ms largo de la misma dimensin, se hace
click derecho en el nodo de la funcin y seleccione Concatenate Inputs (Concatenar
Entradas) desde el men emergente.

4.1.4.4. Subconjunto de Arreglo (Array Subset)

Fig. 4.14. Funcin Array Subset.

La funcin Array Subset (subconjunto de arreglo) devuelve parte de un arreglo


comenzando en el ndice indicado y con una longitud (cantidad de elementos) tambin
indicada. Para arreglos multidimensionales se puede cambiar el tamao de la funcin para
incrementar el nmero de dimensiones.

4.1.4.5. ndice del Arreglo (Index Array)

Fig. 4.15. Funcin Index Array.

Instituto Tecnolgico de Chihuahua

95

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

La funcin Index Array (ndice del arreglo) devuelve el elemento de un arreglo


almacenado en el ndice indicado. Tambin se puede utilizar la funcin ndice del Arreglo para
extraer una fila o una columna de un arreglo bidimensional para as crear un sub-arreglo del
original. Para hacer esto se conecta un arreglo bidimensional a la entrada de la funcin, la cual
se auto-ajusta para mostrar dos terminales de ndice disponibles. La terminal del ndice
superior indica la fila, y la segunda terminal indica la columna. Se puede cablear entradas a
ambas terminales de ndice para indicar un solo elemento, o se puede cablear solamente una
terminal para extraer una fila o una columna de datos.

4.2. CLSTERES

Los clsteres son otra manera de empaquetar datos en LabVIEW, son equivalentes a
un record en Pascal o una struct en C.

A diferencia de los arreglos en cuales todos los elementos deben de ser del mismo
tipo, los componentes de los clsteres pueden ser de diferentes tipos de datos. Sin embargo,
se debe respetar siempre que todos los elementos de un clster deben ser ya sea Indicadores
o controles. No se puede tener controles e Indicadores juntos en el mismo clster.

Los clsteres se pueden considerar como un grupo de alambres individuales (datos)


juntos en un cable (clster). Uno de los principales usos de los clsteres es disminuir la
cantidad de terminales de conexin en los subVIs. Un grupo de entradas y/o salidas se pueden
empaquetar para utilizar solo una lnea de conexin.

Instituto Tecnolgico de Chihuahua

96

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.2.1. Controles e Indicadores de Clster

Para crear un clster se selecciona Cluster en el panel frontal desde la paleta


Controls Modern Array, Matrix & Cluster. Tal como se muestra en la figura 4.16.

click
click

Fig. 4.16. Acceso a la preforma de cluster en el panel frontal.

Esta opcin genera una preforma (shell) parecida a la preforma obtenida al crear
arreglos, solo que sin el control de ndice.

Una vez que esta se ha seleccionado se puede cambiar el tamao a la preforma. Al


hacer click derecho adentro de la preforma se puede aadir objetos de cualquier tipo como se
muestra en la figura 4.17. Inclusive se puede tener un clster adentro de otro clster.

Instituto Tecnolgico de Chihuahua

97

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Los componentes (controles o indicadores) que son introducidos a un clster, no


generan terminal en el diagrama de bloque, estos componentes se accesan a travs de la
terminal del clster.

a)

b)

Fig. 4.17. Ejemplo de un clster en el panel frontal a) control, b) indicador.

El clster se convierte en un indicador o control basado en el primer objeto que fue


ingresado dentro del grupo.

4.2.2. Constante de Clsteres

Tambin se puede crear una constante de clster en el diagrama de bloque


escogiendo Cluster Constant de la paleta Cluster, esto brinda una preforma (shell) de clster
vaca. Una vez ingresado se puede dar cualquier tamao al clster, dentro de la preforma de
se puede introducir otras constantes, tal como se muestra en la figura 4.18.

Instituto Tecnolgico de Chihuahua

98

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.18. Ejemplo de una constante de clster en el diagrama de bloque.

No se puede colocar terminales para los objetos del panel frontal en una constante de
clster en el diagrama de bloques, ni tampoco puede colocar constantes especiales como el
Tab o una cadena de caracteres vaca dentro de una preforma de clster.

4.2.3. Orden en el Clster

Dentro del clster, los componentes estn acomodados de acuerdo al orden en que
fueron introducidos a la pre-forma. Este orden es importante debido a que para poder
interconectar los clsteres, estos deben tener la misma cantidad de elementos y el mismo
orden, de lo contrario LabVIEW no permitir la conexin.

Para visualizar o modificar el orden de los elementos de un clster se hace un click


derecho tocando la estructura del clster y se selecciona Reorder Controls in Cluster del
men emergente como se muestra en la figura 4.19.

Instituto Tecnolgico de Chihuahua

99

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.19. Reordenar elementos en un control o indicador de clster.

El nmero en fondo blanco muestra el orden actual de los elementos en el clster y el


nmero en fondo negro indica el nuevo orden de los elementos, esto se cambia haciendo click
en el elemento que se desea modificar.

4.2.4. Funciones para Clsteres

LabVIEW cuenta con funciones para crear, manipular o trabajar con clsteres. Estas
funciones estn situadas en la paleta Functions All Functions Clusters. Las principales
funciones para trabajar con clsteres incluyen:

4.2.4.1. Agrupar (Bundle)

Fig. 4.20. Funcin Bundle.

Instituto Tecnolgico de Chihuahua

100

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

La funcin Bundle (agrupar) forma un cluster conteniendo los objetos dados en las
entradas de elementos

4.2.4.2. Agrupar por Nombre (Bundle by Name)

Fig. 4.21. Funcin Bundle by Name.

Actualiza valores de objetos localizados en grupos especficos (los objetos deben tener
su propia clasificacin).Se debe de tener un clster existente cableado a la terminal de en
medio de la funcin para poder utilizar Bundle by Name (agrupar por nombre).

4.2.4.3. Desagrupar (Unbundle)

Fig. 4.22. Funcin Unbundle.

La funcin Unbundle (desagrupar) se utiliza para acceder a todos los objetos del
clster. Esta funcin debe tener exactamente el mismo nmero de terminales como se tienen
elementos en el clster. Aadiendo o Removiendo elementos en el clster se rompen los
cables en el diagrama.

Instituto Tecnolgico de Chihuahua

101

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.2.4.4. Desagrupar por Nombre (Unbundle by Name)

Fig. 4.23. Funcin Unbundle by Name.

La Funcin Unbundle by Name (desagrupar por nombre) se utiliza para acceder


objetos especficos (uno o ms) en el clster. Solamente los objetos en el clster que tengan
su propia marca (Label) pueden ser accesados. Cuando se desagrupe por nombre, haga click
en la terminal con la herramienta de operacin para escoger el elemento que quiere acceder.

Tambin se puede obtener las funciones de Bundle (agrupar), Unbundle


(desagrupar), Bundle by Name (agrupar por nombre), y Unbundle by Name (Desagrupar por
Nombre) al hacer click derecho con el ratn en la terminal del clster en el diagrama de
bloques y eligiendo Cluster Tools (herramientas de cluster) del Men. Cuando usted escoge
Cluster Tools las funciones Bundle (agrupar) y Unbundle (desagrupar) automticamente
contienen el nmero correcto de terminales. Las funciones Bundle by Name (agrupar por
nombre) y Unbundle by Name (desagrupar por nombre) aparecen con el primer elemento del
clster.

4.2.5. Clster de Error

Los clsteres de errores son un medio poderoso que utiliza LabVIEW para indicar y
manejar errores en funciones especficas. Los VI de adquisicin de datos (DAQ VIs) las

Instituto Tecnolgico de Chihuahua

102

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

funciones de manejo de entradas y salidas de archivo (File I/O), los VIs de manejo de redes, y
muchos otros VIs utilizan este mtodo para pasar informacin entre nodos acerca de errores.
La figura 4.24 muestra el indicador de un clster de error.

Fig. 4.24. Indicador de clster de error.

El clster para errores contiene tres elementos: status, code y source.

4.2.5.1. Estatus.

Es una variable de tipo booleano a la cual se le asigna un valor verdadero si ocurre


algn error.

4.2.5.2. Cdigo.

Es una variable de tipo valor numrico entero a la cual se le asigna un nmero de


cdigo correspondiente al error que ha ocurrido.

Instituto Tecnolgico de Chihuahua

103

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.2.5.3. Fuente.

Es una variable de tipo cadena de caracteres que identifica el VI en donde ocurri el


error.

Los clsteres de errores son tiles para determinar cuando ocurre un error durante la
ejecucin de un VI. Para ello simplemente se deben encadenar las funciones conectando la
salida Error Out de una a la entrada Error In de la siguiente, tal como se muestra en la figura
4.25.

Al hacer esto tambin se establece una secuencia de ejecucin de las funciones


interconectadas a travs de los clsteres de error, pues el flujo de datos establece que una
funcin deba esperar a que se ejecute primero la funcin cuya salida Error Out est
conectada a su entrada Error In.

Fig. 4.25. Conexin de los clster de error.

Instituto Tecnolgico de Chihuahua

104

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3. GRFICAS

Las grficas son indicadores muy verstiles en LabVIEW. Pueden ser altamente
adaptables y pueden ser usados para mostrar de forma concisa una gran cantidad de
informacin. LabVIEW cuenta con una gran variedad de grficas para casi todas las
aplicaciones, pero los tres tipos de grficas ms utilizados son: Waveform Chart, Waveform
Graph y XY Graph.

4.3.1. Registrador de Formas de Onda (Waveform Chart)

Las grficas del tipo Waveform Chart (registrador de forma de onda) es un indicador
numrico especial que muestra en una grfica uno o ms trazos (plots) correspondientes a
variables numricas. La grfica Waveform Chart est localizada en la paleta Controls
Modern Graph, como se muestra en la figura 4.26.

click
click

Fig. 4.26. Ubicacin de una grfica Waveform Chart en el panel frontal.

Instituto Tecnolgico de Chihuahua

105

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.1.1. Trazo Sencillo

Cuando se utiliza este tipo de grfica para mostrar un solo trazo o variable,
simplemente se cablea la terminal de la grfica a la salida escalar que se desea graficar como
se muestra en la figura 4.27.

Fig. 4.27. Conexin de una grfica Waveform Chart en el diagrama de bloque para trazo simple.

Bajo estas condiciones la grfica utiliza la configuracin por default y va graficando uno
a uno los valores que va enviando la variable numrica conectada en esta.

4.3.1.2. Personalizacin de las Grficas

Uno de los aspectos que da mayor versatilidad a las grficas en LabVIEW, es su


capacidad de personalizarlas, de manera que la informacin presentada en la grfica exprese
las caractersticas que el usuario quiere resaltar en ellas.

Instituto Tecnolgico de Chihuahua

106

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Por ejemplo, se pueden cambiar los valores mnimo y mximo de los ejes x y y, dando
doble click al valor con la herramientas de etiquetado y escribiendo el nuevo valor. De manera
similar, se puede cambiar las etiquetas asignadas por default a los ejes (Time y Amplitude).

Para personalizar la representacin grfica de cada trazo e la grfica se puede dar un


click derecho a la leyenda de la grfica y cambiar el estilo, forma y color de cada trazo.

Tambin es posible personalizar la grfica seleccionando Properties del men


emergente al hacer click derecho sobre esta, como se muestra en la figura 4.28, en la ventana
de configuracin que aparece se puede personalizar la apariencia, el formato y precisin, los
trazos, las escalas y la documentacin.

Fig. 4.28. Ventana de configuracin para personalizar una grfica Waveform Chart.

Esta ventana de configuracin permite acceder a todas las caractersticas


personalizables de la grfica.

Instituto Tecnolgico de Chihuahua

107

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.1.3. Modo de actualizacin de datos

Las grficas Waveform Chart de LabVIEW se pueden configurar para actualizar el


rea grfica de datos en tres modos diferentes: strip chart, scope chart y sweep chart.

El modo por default es el strip chart, en el cual el rea grfica se va llenando punto a
punto y al completarse esta la grfica se va recorriendo (scroll) con un corrimiento sencillo por
cada punto que se grafica. En el modo scope chart el rea grfica se va llenando punto a
punto y al completarse esta la grfica se hace un corrimiento de una pantalla completa, dando
la apariencia de que se borra la grfica y vuelve a empezar. Finalmente en el modo sweep
chart aparece un cursor rojo sobre la grfica que va barriendo de izquierda a derecha toda el
rea, los valores de la grfica se actualizan al pasar el cursor.

Estos modos de actualizacin se configuran seleccionando Update Mode en la


pestaa Appearance de la ventana de personalizacin.

4.3.1.4. Trazo Mltiple.

Las grficas Waveform Chart tambin pueden mostrar trazos de mltiples seales,
para hacer esto se enva a la terminal de la grfica un cluster compuesto de valores escalares
donde cada valor es una trazo a graficar. La figura 4.29 muestra un ejemplo de un registrador
de forma de onda mltiple. De nuevo la grfica utiliza la configuracin por default y asigna
colores diferentes a cada una de las variables numricas conectadas en esta.

Instituto Tecnolgico de Chihuahua

108

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.29. Conexin de una grfica Waveform Chart en el diagrama de bloque para trazo mltiple.

4.3.1.5. Trazos Mltiples Apilados.

La figura 4.30 muestra un ejemplo de una grfica Waveform Chart configurada para
mostrar de manera apilada tres seales aleatorias con personalizaciones diferentes

Fig. 4.30. Ejemplo de una grfica Waveform Chart personalizada.

Instituto Tecnolgico de Chihuahua

109

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.1.6. Consideraciones para el uso de Waveform Chart.

El uso de las grficas Waveform Chart resulta, como se ha visto hasta aqu, muy
sencillo y amigable, sin embargo, este tipo de grficas tiene algunas restricciones de uso.

Como primer consideracin, debemos tomar en cuenta que la actualizacin del rea
grfica en cada valor que se grafica da como resultado una muy baja velocidad de graficacin,
por lo cual este tipo de grficas no es recomendable en el caso de trabajar con seales
dinmicas o de altas frecuencias. Solo se recomienda su uso en aplicaciones para la
graficacin de seales lentas como puede ser el caso de variables industriales (temperatura,
nivel, flujo, presin, etc.).

Otra consideracin importante para el uso de esta grfica es que los valores
correspondientes al eje X representan el nmero consecutivo del valor graficado (muestra) y
se encuentran uniformemente distribuidos.

4.3.2. Grfica de Forma de Onda (Waveform Graph)

Cuando se requiere graficar seales dinmicas (que contienen altas frecuencias) el uso
de los registradores de forma de onda (Waveform Chart) resulta inadecuado debido a su baja
velocidad de graficacin.

Instituto Tecnolgico de Chihuahua

110

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Sin embargo, LabVIEW cuenta con otro tipo de grfica ms adecuada para este tipo de
seales: la grfica de forma de onda (Waveform Graph).

A diferencia de la Waveform Chart que grafica los datos uno a uno conforme son
enviados a la grfica, la Waveform Graph recibe los datos en forma de un arreglo numrico,
mostrando en la grfica en un solo paso el trazo completo de la forma de onda recolectada.

La grfica Waveform Graph est localizada en la paleta Controls Modern Graph,


como se muestra en la figura 4.31.

Este tipo de grfico de forma de onda traza solamente funciones de una sola variable,
como en y = f(x), con puntos distribuidos uniformemente a lo largo del eje x, tal como formas
de onda adquiridas con tiempo variable.

click
click

Fig. 4.31. Ubicacin de una grfica Waveform Graph en el panel frontal.

Instituto Tecnolgico de Chihuahua

111

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.2.1. Trazo Simple

Por default las grficas de forma de onda aceptan un solo arreglo de valores e
interpreta los datos como puntos en el grfico que incrementa el ndice x por uno comenzando
en x = 0. La figura 4.32 muestra el ejemplo de una grfica de 100 nmeros aleatorios entre 0 y
1 utilizando una Waveform Graph. Ntese que los valores del arreglo son interpretados como
valores para la coordenada y (amplitud) mientras que los valores correspondientes a la
coordenada x (tiempo) son asignados automticamente con x0=0 y x=1.

Fig. 4.32. Uso de una grfica Waveform Graph para trazo sencillo con x0=0 y x=1.

Cuando las condiciones de adquisicin de la forma de onda a graficar son diferentes de


los valores tomados por default, por ejemplo para una seal que inicia en x0=10 y cuyas
muestras fueron tomadas cada x=5. Toda esta informacin se puede enviar a la grfica en
forma de un cluster compuesto de tres elementos: el primero es un valor numrico que
representa el valor inicial x0, el segundo es otro valor numrico que representa el incremento

x, y el tercero es el arreglo de valores de y a graficar. La figura 4.33 muestra el ejemplo de


graficacin de una forma de onda bajo las condiciones antes descritas.

Instituto Tecnolgico de Chihuahua

112

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.33. Uso de una grfica Waveform Graph para trazo sencillo con x0=10 y x=5.

El primer valor graficado de x aparecen en x=10 y el eje X se re-escala para


representar adecuadamente los incrementos de x=5 en cada valor graficado.

4.3.2.2. Trazo- Mltiple

Los grficos de forma de onda tambin aceptan trazos mltiples, esto se hace a travs
de un arreglo bidimensional de valores, en donde cada rengln del arreglo representa una
forma de onda independiente a graficar. Por default, al igual que en trazo sencillo, la grfica
interpreta los datos de cada arreglo como los valores y en la grfica e incrementa el ndice x
por uno, comenzando en x = 0.

La figura 4.34 muestra el ejemplo de un a grfica Waveform Graph utilizada para


graficar simultneamente tres formas de onda independientes con los valores por default de
x0=0 y x=1 en las tres seales.

Instituto Tecnolgico de Chihuahua

113

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.34. Uso de una grfica Waveform Graph para trazo mltiple con x0=0 y x=1.

En el caso de las grficas de forma de onda de trazos mltiples tambin es posible


especificar condiciones diferentes a las asumidas por default para cada uno de los arreglos de
datos. Para ello se define un cluster, igual que en trazo sencillo, para cada una de las formas
de onda y luego se agrupan como un arreglo de clusters que se enva a la grfica. La figura
4.35 muestra un ejemplo de una grfica Waveform Graph para trazo mltiple con condiciones
diferentes a x0=0 y x=1.

Fig. 4.35. Uso de una grfica Waveform Graph para trazo mltiple con condiciones diferentes.

Instituto Tecnolgico de Chihuahua

114

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.2.3. Personalizacin de las Grficas

Las grficas de forma de onda tambin se pueden personalizar de manera similar a los
registradores de forma de onda seleccionando Properties del men emergente al hacer click
derecho sobre esta, como se muestra en la figura 4.36,

Fig. 4.36. Ventana de configuracin para personalizar una grfica Waveform Graph.

4.3.2.4. Consideraciones para el uso de Waveform Graph.

Debido a su capacidad de graficar arreglos previamente generados, este tipo de


grficas (Waveform Graph) resultan muy tiles para la visualizacin de seales dinmicas o
con contenido de altas frecuencias.

Sin embargo, aunque las grficas de forma de onda nos proporcionan un poco de
flexibilidad sobre las representacin de los valores graficados en el eje X, al permitirnos definir
un valor inicial y un incremento, an presentan el inconveniente de que solo se pueden

Instituto Tecnolgico de Chihuahua

115

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

representar formas de onda, seales o informacin uniformemente distribuida en el eje X,


haciendo inviable su uso en la representacin grfica de funciones que no presenten este
comportamiento o bien de funciones con dependencia de dos variables f(x,y).

4.3.3. Grfica X-Y (XY Graph)

Cuando se requiere graficar funciones que no han sido muestreadas uniformemente o


bien que no tienen un comportamiento uniforme y progresivo en alguno o ambos ejes, se debe
utilizar las grficas x-y (XY Graph).

Este tipo de grficas exhiben cualquier set de puntos, ya sea que estos sean
muestreados uniformemente o no. La figura 4.37 muestra la ubicacin de la grfica x-y en la
paleta de controles del panel frontal.

click
click

Fig. 4.37. Ubicacin de una grfica XY Graph en el panel frontal.

Instituto Tecnolgico de Chihuahua

116

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.3.1 Trazo Simple

Para realizar el trazo simple de una sola seal o funcin se deben enviar a la grfica
las coordenadas (x,y) de todos los puntos a graficar, este envo de realiza a travs de un
cluster que contenga dos arreglos: un arreglo con todas las coordenadas x y un arreglo con
todas las coordenadas y.

Los elementos de los arreglos son tomados uno a uno para formar los puntos
correspondientes (x0,y0), (x1,y1), (x2,y2), etc.

La figura 4.38 muestra un ejemplo de graficacin de trazo simple utilizando una grfica
x-y en el cual se grafican los puntos: (1,1), (8,2), (5,9) y (1,3). Los arreglos X y Y
proporcionados desde el panel se empaquetan en un cluster para ser enviados a la grfica.

Fig. 4.38. Uso de una grfica XY Graph para trazo simple.

Instituto Tecnolgico de Chihuahua

117

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.3.2. Trazo Mltiple

Para realizar un trazo mltiple de seales o funciones en una grfica x-y cada seal
independiente se empaqueta en un cluster igual al correspondiente a un trazo simple y luego
se construye un arreglo con estos clusters, entonces la grfica x-y recibe un arreglo de clusters
donde cada cluster es un trazo diferente.

La figura 4.38 muestra un ejemplo de graficacin de trazo simple utilizando una grfica
x-y en el cual se grafican: plot 0=[(1,1), (8,2), (5,9) y (1,3)] y plot 1=[(2,2), (7,3), (7,8) y (0,4)].

Fig. 4.39. Uso de una grfica XY Graph para trazo mltiple.

Instituto Tecnolgico de Chihuahua

118

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.3.3.3. Personalizacin de las Grficas

Las grficas de forma de onda tambin se pueden personalizar de manera similar a los
registradores de forma de onda seleccionando Properties del men emergente al hacer click
derecho sobre esta, como se muestra en la figura 4.40.

Fig. 4.40. Ventana de configuracin para personalizar una grfica Waveform Graph.

4.3.3.4. Consideraciones para el uso de XY Graph.

Las grficas x-y permiten la graficacin de cualquier funcin expresada en forma de


coordenadas (x,y), lo cual las convierte en un tipo de grfica ms universal que los anteriores,
Sin embargo, precisamente por requerir enviar las coordenadas de cada punto separadas en
dos arreglo dentro de un cluster, su uso se torna un poco ms complicado.

Instituto Tecnolgico de Chihuahua

119

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.4. CADENAS DE CARACTERES (STRINGS)

Una cadena de caracteres (strings) es una secuencia de caracteres ASCII que pueden
ser texto imprimible o no imprimible. Las cadenas de caracteres se usan frecuentemente para
enviar comandos a instrumentos, para proveer informacin acerca de pruebas (tales como el
nombre del operador y la fecha), o para desplegar en forma de texto resultados al usuario.

4.4.1 Controles e Indicador String

Los controles e indicadores de string se encuentran en la sub-paleta Modern/String &


Path de la paleta de Controles como se muestra en la figura 4.41.
click

Fig. 4.41. Ubicacin del Control String y del Indicador String en el panel frontal.

Instituto Tecnolgico de Chihuahua

120

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Para introducir o cambiar el contenido de texto en los controles string se utiliza la


herramienta de texto (Text Tool). Las cadenas de caracteres pueden variar en su tamao.
4.4.2. Activacin del Scrollbar

Los indicadores y controles string pueden tener barras de movimiento (Scroll Bars)
Estos se activan haciendo click con el botn derecho del mouse y seleccionando Visible
Items Scrollbar. Como se muestra en la figura 4.42.

Fig. 4.42. Activacin del Scrollbar en los controles e indicadores string.

La barra de movimiento no se activar si el Control o el Indicador no son lo


suficientemente grandes.

Instituto Tecnolgico de Chihuahua

121

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.4.3. Modos de despliegue del texto

Tanto los controles como los indicadores string tiene la capacidad de desplegar el texto
contenido en ellos de tres maneras diferentes: normal, cdigos diagonal, password y
hexadecimal.

En el modo de despliegue normal aparece solo el texto imprimible, en el modo de


despliegue de cdigos diagonal aparece el texto imprimible y los caracteres de control en
forma se los cdigos diagonal respectivos, en el modo password el texto es sustituido para su
despliegue por asteriscos para proteger el contenido tecleado y en el modo de despliegue
hexadecimal aparecen los valores hexadecimales de cada carcter. La figura 4.43 muestra el
mismo contenido de texto desplegado en los distintos modos en un indicador string.

Fig. 4.43. Modos de despliegue de texto.

Instituto Tecnolgico de Chihuahua

122

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.4.5. Funciones para Manejo de Texto

LabVIEW cuenta con muchas funciones para manejo de texto, algunas de las
principales son:

4.4.5.1. Longitud de texto (String Length)

Fig. 4.43. Funcin String Length.

Esta funcin cuenta el nmero de caracteres que contiene una cadena, es importante
hacer notar que el conteo incluye todos los carates, tanto los imprimibles como los caracteres
de control.

4.4.5.2. Concatenar Strings (Concatenate Strings)

Fig. 4.44. Funcin Concatenate Strings.

Esta funcin forma una nueva cadena de caracteres en base a la concatenacin


consecutiva de las cadenas de caracteres de entrada

Instituto Tecnolgico de Chihuahua

123

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.4.5.3. Sub-conjunto de Strings (Subset Strings)

Fig. 4.45. Funcin Subset Strings.

Esta funcin extrae un subconjunto de una cadena de caracteres iniciando en el


carcter que se encuentra en la posicin indicada por offset y con una longitud indicada en
length.

4.4.5.4. Constantes de Strings (Subset Strings)

Adems de las normales constantes string en las que se puede establecer el texto
necesario, LabVIEW cuenta tambin con una gran cantidad de constantes string que
corresponden a caracteres de control tales como: retorno de carro, fin de lnea, tabulador, etc.

4.5. ARCHIVOS

Cuando se requiere guardar informacin en disco o recuperar informacin previamente


guardada, LabVIEW cuenta con funciones especializadas para realizar operaciones de
entrada/salida de archivo (I/O File). Estas funciones estn localizadas en la paleta
Programming File I/O para manejar todos aspectos relativos a entrada/salida de archivos
de distintos tipos: archivos de texto y archivos de hoja de clculo entre otros. La figura 4.46
muestra el acceso a estas funciones.

Instituto Tecnolgico de Chihuahua

124

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

click

Fig. 4.61. Ubicacin del las funciones de entrada/salida para archivos.

4.5.1. Archivos de Texto.

Para el manejo de archivos de texto, LabVIEW cuenta con diversas funciones entre las
que destacan Escribir en Archivo de Texto (Write to Text File) y Leer de Archivo de Texto
(Read from Text File).

4.5.1.1. Escribir en Archivo de Texto (Write to Text File).

Fig. 4.62. Funcin Escribir en Archivo de Texto.

Instituto Tecnolgico de Chihuahua

125

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Esta funcin escribe una cadena de caracteres o un arreglo de caracteres como lneas
en un archivo. Si se alambre una trayectoria de archivo valida a la entrada file (use dialog), la
funcin abre o crea e archivo antes de escribir en l y reemplaza cualquier contenido previo
del archivo. Si se alambre una referencia de archivo (file refnum) a la entrada file (use
dialog), la escritura comienza en la posicin de archivo actual. Para agregar contenido a un
archivo existente (append to file) se debe poner la posicin de archivo al final de este usando
la funcin Set File Position.

4.5.1.2. Leer de Archivo de Texto (Read from Text File).

Fig. 4.63. Funcin Leer de Archivo de Texto.

Esta funcin lee un determinado nmero de caracteres o lneas de un archivo de texto.


Por default, esta funcin lee todos los caracteres del archivo de texto. Alambre un valor entero
a la entrada count para especificar el nmero de caracteres individuales que desee leer
empezando por el primer carcter. Haga click derecho y del men emergente (popup menu)
seleccione la opcin Read Lines para leer lneas completas del archivo de texto. Al
seleccionar la opcin Read Lines alambre un valor a la entrada count para especificar el
nmero de lneas individuales que desee leer en el archivo a partir de la primera lnea.
Introduzca un valor de -1 en la entrada count para leer todos los caracteres y las lneas del
archivo de texto.

Instituto Tecnolgico de Chihuahua

126

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.5.2. Archivos de Hoja de Clculo

Cuando se requiere escribir o leer un archivo de texto que contenga informacin


numrica tal como los valores de medicin de una variable y se requiere adems que dicha
informacin sea accesible a travs de algn programa de hoja electrnica de clculo, como
Excel por ejemplo, entonces se pueden utilizar las funciones de LabVIEW especficas para
esto que son: Escribir en Archivo de Hoja de Clculo (Write to Spreadsheet File) y Leer de
Archivo de Hoja de Clculo (Read from Spreadsheet File).

4.5.2.1. Escribir en Archivo de Hoja de Clculo (Write to Spreadsheet File)

Fig. 4.64. Funcin Escribir en Archivo de Hoja de Clculo.

Esta funcin convierte un arreglo numrico 2D o 1D del tipo entero o flotante a una
cadena de texto y escribe esta cadena a un nuevo archivo o agrega la cadena a un archivo
existente. El tipo de datos que se cablea a la entrada de datos 2D Data o 1D Data determina
la instancia polimrfica a usar. Tambin se puede obtener la transpuesta de la matriz de
datos. El VI abre o crea el archivo antes de grabar en l y se cierra despus. Puede utilizar
esta VI para crear un archivo de texto legible por la mayora de las aplicaciones de hoja de
clculo.

Instituto Tecnolgico de Chihuahua

127

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.5.2.2. Leer de Archivo de Hoja de Clculo (Read from Spreadsheet File)

Fig. 4.65. Funcin Leer de Archivo de Hoja de Clculo.

Esta funcin lee un determinado nmero de lneas o filas de un archivo de texto


numrico a partir de un determinado carcter (offset) y convierte los datos en un arreglo
numrico 2D o 1D del tipo flotante en doble precisin. Se debe seleccionar manualmente el
formato de texto que desea utilizar. Tambin se puede, opcionalmente, hacer la transpuesta
de la matriz. El VI abre el archivo antes de la lectura del mismo y se cierra despus. Puede
utilizar esta VI para leer un archivo de hoja de clculo en formato de texto.

4.6. VARIABLES LOCALES

De acuerdo al paradigma de la programacin por flujo de datos dos o ms fuentes de


datos no pueden alambrarse juntas ya que esto genera un error de sintaxis. Esto implica un
problema cuando se requiere asignar en distintas partes del programa a una misma terminal
datos diferentes generados en fuentes independientes.

Por ejemplo, si la lgica de nuestro programa requiere hacer una asignacin a un


indicador x asignando primero x=a, luego x=b y finalmente x=c, donde a, b y c son datos
diferentes generados en fuentes independientes.

De igual manera evaluar la expresin x=x+1 resulta complicado si no se quiere utilizar


algn tipo de ciclo con registros de corrimiento o nodos de retroalimentacin.

Instituto Tecnolgico de Chihuahua

128

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

La solucin a estos inconvenientes la dan la generacin de variables locales. Las


variables locales son terminales asociadas a los controles e indicadores, a travs de las
cuales podemos leerlos o escribirlos sin utilizar la terminal propia del elemento en cuestin.

4.6.1. Creacin de una Variable Local.

Existen dos maneras de crear una variable local. La ms sencilla consiste en crearla
de manera automtica a travs del men emergente (popup) del control o indicador se quiere
manejar a travs de la variable local. Para ello se debe seleccionar en el men de popup las
opciones Create/Local Variable, como se muestra en la figura 4.67. Esto genera una
terminal de variable local asociada al control o indicador. Esta terminal es del mismo tipo de
variable que tenga definido el elemento que la gener y est identificada con el mismo
nombre. Para un mismo elemento (control o indicador) se pueden crear tantas terminales de
variable local como sean necesarias.

Fig. 4.67. Creacin automtica de una terminal de variable local.

Instituto Tecnolgico de Chihuahua

129

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

La otra manera de crear una variable local es un poco ms larga y consiste de dos
pasos: primero se crea una terminal genrica de variable local y luego se le asigna el
elemento al que va a estar asociada.

Para realizar el primer paso en el diagrama a bloques se selecciona Local Variable


de la sub-paleta Programming/Structures, tal como se muestra en la figura 4.68.

click

Fig. 4.68. Ubicacin de la terminal genrica para variable local.

Luego, para asociar esta terminal genrica con alguno de los controles o indicadores
del panel se accesa el men emergente y se selecciona el nombre del elemento de una lista
de todos los elementos del panel a travs de la opcin Select Item como se muestra en la
figura 4.69.

Instituto Tecnolgico de Chihuahua

130

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.69. Asociacin de la terminal genrica de variable local con el elemento deseado.

4.6.1. Uso de las variables locales.

El escribir en una variable local tiene el mismo resultado que pasar los datos
directamente a la terminal del control o indicador asociado, con la ventaja de que se puede
escribir o leer el elemento sin importar que se trate de un control o un indicador.

Por default, las terminales de variables locales estn habilitadas para escribir en ellas
(asignar valor). Sin embargo, si lo que se quiere es leer el valor actual del elemento asociado,
entonces se debe cambiar la terminal a modo de lectura seleccionando Change to Read del
men emergente de la terminal como se muestra en la figura 4.70.

Instituto Tecnolgico de Chihuahua

131

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.70. Cambio de la terminal de variable local a modo de lectura.

Las terminales de variable local permiten leer y/o escribir las veces que sea necesario
cualquier control o indicador del VI en cualquier momento y lugar dentro del programa lo cual
le da a LabVIEW una gran capacidad de programacin. Sin embargo, debido al hecho de que
su uso dificulta la visualizacin del flujo de datos en el programa, es recomendable no abusar
de su uso.

4.7. VARIABLES GLOBALES

Cuando se requiere compartir datos entre programas (VIs) independientes, la opcin


ms viable es el uso de variables globales. Las variables globales permiten leer y escribir
datos que son compartidos por diferentes VIs en ejecucin.

En realidad las variables globales son una especie de VI que no tiene diagrama a
bloques solamente tiene un panel frontal en el cual se definen los controles e indicadores que
se utilizarn para transferir datos entre los Vis. En una misma variable global se pueden
definir tantos controles e indicadores como sea necesario

Instituto Tecnolgico de Chihuahua

132

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.7.1. Creacin de una Variable Global.

Para crear una variable global se selecciona en el diagrama a bloques Global


Variable de la sub-paleta Programming/Structures, tal como se muestra en la figura 4.71.
Esto genera una terminal genrica para variable global.

Para poder utilizar esta terminal en primer lugar es necesario abrir su panel para
colocar en el los controles e indicadores que se utilizarn para la transferencia de datos esto
se hace seleccionando Open Front Panel del men emergente como se muestra en la figura
4.72.

click

Fig. 4.71. Ubicacin de la terminal de variable global.

Instituto Tecnolgico de Chihuahua

133

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.72. Acceso al panel frontal de la variable global.

Luego se colocan en el panel frontal de la variable global los controles e indicadores


que se van a utilizar, tal y como se muestra en la figura 4.73.

Fig. 4.73. Controles en el panel frontal de la variable global.

Finalmente se asocia la terminal con uno de los elementos del panel accesando el
men emergente y seleccionando el nombre del elemento de una lista de todos los elementos
del panel a travs de la opcin Select Item como se muestra en la figura 4.74.

Instituto Tecnolgico de Chihuahua

134

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Fig. 4.74. Asociacin de la terminal genrica de variable global con el elemento deseado.

4.7.2. Uso de las Variables Globales.

Al igual que en caso de las variables locales, por default las terminales de variables
globales estn habilitadas para escribir en ellas (asignar valor). Sin embargo, si lo que se
quiere es leer el valor actual del elemento asociado, entonces se debe cambiar la terminal a
modo de lectura seleccionando Change to Read del men emergente de la terminal como se
muestra en la figura 4.75.

Fig. 4.75. Cambio de la terminal de variable global a modo de lectura.

Instituto Tecnolgico de Chihuahua

135

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.8. NODOS DE PROPIEDAD

Los nodos de propiedad son una herramienta que nos permite accesar a travs de
cdigo a muchas de las caractersticas configurables que se encuentran en los mens
emergentes de los objetos, dando a la programacin en LabVIEW una excelente flexibilidad.

4.8.1. Creacin de un Nodo de Propiedad

Los nodos de propiedad se crean de manera automtica a travs del men emergente
(popup) del control o indicador del cual se le llama. Para ello se debe seleccionar la
propiedad especfica que se quiere accesar en el men de popup a travs de las opciones
Create/Property Node, como se muestra en la figura 4.76.

Fig. 4.76. Creacin automtica de una terminal de nodo de propiedad.

Instituto Tecnolgico de Chihuahua

136

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Esto genera una terminal de nodo de propiedad asociada a la propiedad especfica del
control o indicador. Esta terminal est identificada con el mismo nombre del elemento, el
nombre de la propiedad aparece en el color correspondiente al tipo de variable que
corresponde a dicha propiedad. Para un mismo elemento (control o indicador) se pueden
crear tantas terminales de nodo de propiedad como sean necesarias. La lista de propiedades
depende del tipo especfico de control o indicador.

4.8.2. Uso de los Nodos de Propiedad.

En caso de los nodos de propiedad, por default las terminales creadas estn
habilitadas para leer de ellas el valor actual de dicha propiedad. Sin embargo, si lo que se
quiere es escribir e ellas y con ello cambiar el valor de la propiedad, entonces se debe
cambiar la terminal a modo de escritura seleccionando Change to Write del men emergente
de la terminal como se muestra en la figura 4.77.

Fig. 4.77. Cambio de la terminal de nodo de propiedad a modo de escritura.

Instituto Tecnolgico de Chihuahua

137

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

4.8.3. Acceso a Propiedades Mltiples.

A travs de un solo nodo se puede acceder a mltiples propiedades de un mismo


elemento, para ello se requiere seleccionar la opcin Add Element del men de popup del
nodo, como se muestra en la figura 4.48.

Fig. 4.78. Adicin de propiedades a un mismo nodo.

Por default la propiedad adicionada es la misma que la propiedad original que tena el
nodo, para cambiarla se selecciona la nueva propiedad de la opcin Properties del men
emergente como se muestra en la figura 4.79

Fig. 4.79. Cambio de propiedades.

Instituto Tecnolgico de Chihuahua

138

Dr. Gerardo Trujillo Schiaffino

Captulo IV

Herramientas y Funciones de Programacin

Cada una de las propiedades adicionadas al nodo se puede configurar de manera


independiente en modo de lectura o de escritura.

Instituto Tecnolgico de Chihuahua

139

Dr. Gerardo Trujillo Schiaffino

Captulo V

Arquitecturas de Programacin

UNIDAD V.
ARQUITECTURAS DE PROGRAMACION.

5. ARQUITECTURAS DE PROGRAMACIN

Dependiendo de la funcionalidad requerida por la aplicacin existen diversas maneras


de estructurar un programa en LabVIEW. Las tres arquitecturas ms comnmente utilizadas
son: VI simple, VI general y mquina de estado (state machine).
.

5.1. Arquitectura de un VI Simple

Cuando se hacen pruebas de laboratorio rpidas, no se necesita una arquitectura


complicada. El programa puede consistir de un solo VI que toma una medicin, hace clculos,
y ya sea despliega los resultados o los guarda en el disco, pero en general no existe una
estructura de control. La operacin inicia cuando el usuario le da click a la flecha de inicio (run
arrow), el VI se ejecuta una sola vez y luego termina.

Adems de ser usada para aplicaciones de prueba, esta arquitectura tambin es


utilizada para desarrollar componentes funcionales dentro de aplicaciones ms grandes, es
decir como subVIs dentro de una aplicacin principal.

La figura 5.1 muestra un ejemplo de un programa con arquitectura de VI simple


utilizado para efectuar un clculo de conversin de grados Centgrados a grados Fahrenheit

Instituto Tecnolgico de Chihuahua

140

Dr. Gerardo Trujillo Schiaffino

Captulo V

Arquitecturas de Programacin

Fig. 5.1. Arquitectura de un VI simple.

5.2. Arquitectura de un VI General

A diferencia de un VI simple, un Vi general si cuenta con una estructura de control


propia. Generalmente este tipo de arquitectura se utiliza para el desarrollo de programas de
aplicacin final.

Para el diseo de programas con esta arquitectura se realizan tres pasos:

Inicio (startup)

Esta rea se usa para inicializar el hardware, leer informacin de configuracin,


preguntar al usuario la localizacin de archivos o cualquier otro procedimiento de inicializacin
que sea necesario.

Aplicacin Principal (main application)

Generalmente consiste de por lo menos un ciclo que se repite hasta que el usuario
decida salir del programa, o el programa termina debido a otras razones. Aqu es donde se

Instituto Tecnolgico de Chihuahua

141

Dr. Gerardo Trujillo Schiaffino

Captulo V

Arquitecturas de Programacin

realiza la mayor parte de la lgica del programa y se resuelve el problema de la aplicacin de


este.

Apagado (shutdown)

Esta seccin usualmente se encarga de cerrar los archivos, escribir datos de


configuracin al disco, restablecer los datos de entrada/salida (I/O) a su estado
predeterminado o cualquier otro procedimiento de apagado que sea necesario

La figura 5.2 muestra el ejemplo de un programa de LabVIEW con arquitectura de VI


General. Ntese que los procesos de inicializacin y apagado se han compactado como
subVIs y la secuencia de ejecucin se establece a travs de la dependencia generada por la
conexin de un cluster de error.

Fig. 5.2. Arquitectura de un VI general.

Para algunas aplicaciones sencillas, el ciclo de la aplicacin principal puede ser


bastante directo. Sin embargo, cuando se tiene interfaces de usuario complejas o eventos

Instituto Tecnolgico de Chihuahua

142

Dr. Gerardo Trujillo Schiaffino

Captulo V

Arquitecturas de Programacin

mltiples (accin de usuario, accionamientos de entradas/salidas, etc.), esta seccin puede


volverse bastante complicada.

5.3. Arquitectura de un VI de Mquina de Estado

Usted puede hacer sus diagramas ms compactos con el uso de una estructura de
caso simple para manejar todos sus eventos. En este modelo usted escanea (scan) la lista de
posibles eventos, o estados, y luego correlaciona (map) estos a un caso. Para el VI mostrado
arriba, los estados posibles son inicio (startup), ocio (idle), evento 1, evento2 y apagado
(shutdown). Estos estados se encuentran guardados en una constante enumerada. Cada
estado tiene su propio caso en el lugar que usted coloque los nodos apropiados. Mientras se
ejecuta un caso, el siguiente caso es determinado por el resultado actual. El siguiente caso
que se ejecutara es guardado en el registro de desplazamiento (shift register). Si ocurre un
error en cualquier estado, el caso de apagado (shutdown) el llamado.

La ventaja de este modelo es que su diagrama se puede reducirse significativamente


(izquierda a derecha), haciendo que sea ms fcil de lee y depurar. Una desventaja de la
estructura de secuencia es que no puede saltarse o salirse de un caso. Este mtodo resuelve
ese problema ya que cada caso determina cual ser el prximo caso que se ejecutara.

Una desventaja de esta tcnica es que con se pueden perder eventos. Si dos eventos
ocurren al mismo tiempo, este modelo maneja solo el primero, y el segundo se pierde. Esto
puede conducir a errores que son difciles de depurar porque solo ocurren ocasionalmente.
Existen versiones ms complejas de la Arquitectura del VI de la Mquina de Estado que

Instituto Tecnolgico de Chihuahua

143

Dr. Gerardo Trujillo Schiaffino

Captulo V

Arquitecturas de Programacin

contiene cdigo extra para construir un queue de eventos (estados) de manera que usted no
pierda ningn evento.

Fig. 5.3. Arquitectura de una mquina de estados.

Instituto Tecnolgico de Chihuahua

144

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

CAPTULO VI:
SISTEMAS DE ADQUISICIN DE DATOS.

6.1. INTRODUCCIN A LOS SISTEMAS DE ADQUISICION DE DATOS.

Hoy en da, son muchos los ingenieros y cientficos que estn utilizando las
computadoras personales en sus investigaciones de laboratorio, control industrial, sistemas de
prueba y medicin, etc. Estas y otras aplicaciones son desarrolladas a travs de sistemas de
adquisicin de datos.

Un sistema de adquisicin de datos (DAQ) basado en computadora personal est


formado por los elementos mostrados en la figura 6.1.

* Computadora Personal.
* Traductores y actuadores.
* Acondicionamiento de Seales.
* Hardware de Adquisicin.
* Hardware de Anlisis.
* Software.

La figura 6.1 muestra un esquema de la arquitectura general de un sistema de


adquisicin de datos.

Instituto Tecnolgico de Chihuahua

145

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Acondicionamiento
de Seales

Tarjeta de Adquisicin
de Datos

Computadora

Transductores
Software

Figura 6.1 Arquitectura de un Sistema de Adquisicin de Datos.

6.2. TRANSDUCTORES Y ACTUADORES.

6.2.1. Transductores.

Los transductores son dispositivos que sensan un fenmeno fsico, qumico o biolgico
y proporcionan una seal elctrica que contenga la informacin de dicho fenmeno. Por
ejemplo, termopares, RTDs, termistores, y sensores IC convierten la temperatura en una seal
analgica que los ADCs pueden medir. Otros ejemplos incluyen galgas extensomtricas,
transductores de flujo, y transductores de presin, los cuales miden fuerza, flujo y presin
respectivamente. En cada caso, la seal elctrica producida es proporcional al parmetro fsico
que esta monitoreando. Para mayor informacin sobre transductores dirjase al anexo A.

Instituto Tecnolgico de Chihuahua

146

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.2.2. Actuadores.

Los actuadores, al contrario de los transductores, son dispositivos que transforman una
seal elctrica de control en una accin fsica como abrir o cerrar una vlvula o encender o
apagar un motor. Existen muchos tipos de actuadores, entre ellos los elctricos, hidrulicos y
neumticos para controlar motores, fluidos y flujos de aire respectivamente. Para mayor
informacin sobre actuadores dirjase al anexo B

6.3. ACONDICIONAMIENTO DE SEALES.

La seal elctrica generada por el transductor debe ser convertida a una forma que la
tarjeta de adquisicin pueda aceptar. Los accesorios de acondicionamiento de seales pueden
amplificar seales de bajo nivel, y tambin aislarlas y filtrarlas para mediciones ms precisas.
El acondicionamiento de seales puede tambin excitar y linealizar ciertos tipos de
transductores.

6.3.1. Amplificacin.

El ms comn tipo de conversin es la amplificacin. Las seales de bajo nivel de los


termopares por ejemplo deben ser amplificadas para aumentar la resolucin y reducir el ruido.
Para obtener la ms alta precisin posible es necesario amplificar la seal para que la mxima
variacin de esta sea igual al rango mximo de entrada del ADC.

Instituto Tecnolgico de Chihuahua

147

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.3.2. Aislamiento.

Otra aplicacin comn del acondicionamiento de seales es aislar la seal del


transductor de la computadora con propsitos de seguridad. El sistema cuando empieza a ser
monitoreado, contiene transitorios de alto voltaje que pueden daar la computadora. Una razn
adicional para necesitar aislamiento es estar seguros de que las lecturas en tarjeta DAQ no son
afectadas por diferencias en potenciales de tierra o voltajes de modo comn. Cuando las
entradas de la tarjeta DAQ y la seal que es adquirida estn referenciadas a su propia tierra,
pueden existir problemas si hay diferencia de potencial entre ambas tierras. Esta diferencia
ocasiona lo que se conoce

como lazo de tierra lo que puede causar una representacin

inexacta de la seal adquirida, o bien, si es demasiado grande puede daar el sistema de


medicin. Utilizando mdulos aisladores de acondicionamiento de seales se elimina el lazo de
tierra y se asegura que la seal es adquirida con exactitud.

6.3.3. Filtrado.

El propsito de un filtro es remover seales indeseadas de la seal que se trata de


medir. En seales de tipo DC como la temperatura, se utiliza un filtro de ruido para atenuar las
seales de alta frecuencia que pueden reducir la exactitud de la medicin.

Las seales del tipo AC como las vibraciones, necesitan un tipo diferente de filtro
conocido como filtro antialiasing. Al igual que el filtro de ruido, el filtro antialiasing es tambin un
filtro pasa bajo, solo que su pendiente de corte es muy pronunciada, para remover
completamente todas las frecuencias de la seal que son ms grandes que el rango de entrada
de la tarjeta de adquisicin. Si estas frecuencias no son removidas, aparecern errneamente

Instituto Tecnolgico de Chihuahua

148

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

como seales adicionales en el rango de frecuencias de la tarjeta. Las tarjetas de adquisicin


diseadas especficamente para medicin de seales del tipo AC, al igual que las tarjetas para
adquisicin dinmica, tienen inter-construidos los filtros antialiasing de entrada.

6.3.4. Excitacin.

El acondicionador de seales tambin puede generar la excitacin para algunos


transductores. Las galgas extensomtricas, los termistores y las RTDs, por ejemplo, requieren
seales d excitacin externa de voltaje o corriente. Los mdulos de acondicionamiento de
seales para estos transductores usualmente proporcionan estas seales. Las mediciones con
RTD son generalmente hechas con una fuente de corriente que convierte las variaciones de
resistencia en un voltaje medible. Las galgas extensomtricas, las cuales son dispositivos de
muy baja resistencia, normalmente se utilizan en configuracin de Puente de Wheastone con
una fuente de excitacin de voltaje.

6.3.5. Linealizacin.

Otra funcin comn de los acondicionadores de seales es la linealizacin. Muchos


transductores, como los termopares, tienen una respuesta no lineal a los cambios en el
fenmeno

medido.

Esto

hace

necesario

contar

con

mdulos

linealizadores

acondicionamiento de seales para convertir estas seales no lineales en seales lineales.

Instituto Tecnolgico de Chihuahua

149

Dr. Gerardo Trujillo Schiaffino

de

Captulo VI

Sistemas de Adquisicin de Datos

6.4. TARJETAS DE ADQUISICIN DE DATOS.

Cuando hablamos de hardware de adquisicin, nos referimos a una tarjeta de


adquisicin de datos (DAQ), la cual comnmente es una tarjeta insertable que se coloca dentro
de la computadora para digitalizar seales analgicas de manera tal que la computadora pueda
disponer de la informacin contenida en ellas. Dependiendo de la tarjeta en particular de que
se trate puede variar el nmero, caractersticas y tipo de entradas/salidas que contenga, sin
embargo, una tarjeta DAQ genrica cuenta con: entradas analgicas, salidas analgicas,
entradas/salidas digitales y entradas/salidas temporizadas. La figura 6.2 muestra una tarjeta
DAQ genrica.

Bus
Computacional

Entradas Analgicas
Salidas Analgicas
Entradas / Saldas Digitales
Entradas / Salidas
Temporizadas

Fig.6. 2 Tarjeta de Adquisicin de Datos.

6.4.1. Seales Analgicas.

Antes de entrar en detalle sobre las principales caractersticas que deben tomarse en
cuenta en las entradas analgicas de las tarjetas de adquisicin de datos, es conveniente
repasar algunos conceptos importantes sobre las seales analgicas que se analizarn con
ellas.

Instituto Tecnolgico de Chihuahua

150

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Las seales analgicas se pueden dividir en tres categoras bsicas dependientes del
tipo de informacin que contienen: D.C., dominio del tiempo y dominio de la frecuencia. La
figura 6.3 muestra esta clasificacin.

Nivel
D.C.

Seales Analgicas

Dominio del
Tiempo

Forma

t
Dominio de
la Frecuencia

Contenido de
Frecuencias

f
Fig. 6.3 Tipos de Seales Analgicas.

En las seales analgicas D.C. la informacin se encuentra contenida en el nivel de la


misma, es decir, en este tipo de seales solo nos interesa la magnitud de esta. En las seales
analgicas en el dominio del tiempo la informacin est contenida en la forma de la seal, es
decir, en este tipo de seales nos interesa el comportamiento que tiene el nivel con respecto al
tiempo. En las seales analgicas en el dominio de la frecuencia la informacin est contenida
en la magnitud de las frecuencias presentes en la seal, es decir, lo que nos interesa en este
tipo de seales es el espectro de frecuencias de la seal.

Instituto Tecnolgico de Chihuahua

151

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Las seales pueden ser de dos tipos: fuente referenciada o fuente no referenciada.
Tambin se conoce a las seales de fuente referenciada como seales aterrizadas, y a las
seales de fuente no referenciada como seales flotantes.

En las fuentes de seal aterrizada se tienen seales de voltaje que estn referenciadas
a un sistema de tierra. En la figura 6.4 se muestra una fuente de este tipo, donde podemos
apreciar que una de las terminales de salida est conectada a la tierra del sistema.

Vs

Tierra
Fig.6.4 Fuente de Seal Aterrizada.

Las fuentes de seal flotante contienen una seal cuyo voltaje no est conectado a una
referencia absoluta, como tierra o chasis. Un ejemplo comn de este tipo de fuentes de seal
son las bateras, los termopares, los transformadores, los amplificadores de aislamiento y
algunos instrumentos con salidas flotantes. En la figura 6.5 se muestra una fuente de seal
flotante donde se puede observar que ninguna de las terminales de salida est conectada a la
terminal de tierra.

Vs

Tierra
Fig. 6.5 Fuente de Seal Flotante.

Instituto Tecnolgico de Chihuahua

152

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Teniendo en cuenta estos aspectos fundamentales sobre las seales analgicas,


podemos entonces dar paso al anlisis de las principales caractersticas que deben
considerarse en las entradas analgicas de las tarjetas de adquisicin de datos.

Las especificaciones de las entradas analgicas proporcionan informacin tanto en las


capacidades como en la exactitud de la tarjeta de adquisicin de datos. Las especificaciones
bsicas que se proporcionan en los productos de adquisicin de datos nos dicen: nmero de
canales de entrada, modo de medicin, resolucin, rango de voltaje de entrada razn de
muestreo, resolucin y rango de entrada.

6.4.2. Lneas de Entrada Analgica.

Una de las funciones principales de una tarjeta de adquisicin de datos es proporcionar


lneas de entrada que le permitan a la computadora capturar seales analgicas. Los
principales parmetros que se deben tener en cuenta para la seleccin de la tarjeta de
adquisicin adecuada para una aplicacin dada son: nmero de canales de entrada y modos
de medicin, resolucin, rango de voltaje del dispositivo, rango de voltaje de la seal, razn de
muestreo, tiempo de establecimiento y ruido

Nmero de Canales de Entrada y Modos de Medicin.

Es importante conocer el nmero de canales de entrada con que cuenta la tarjeta DAQ,
este se deber especificar tanto para modo diferencial como para modo desbalanceado en

Instituto Tecnolgico de Chihuahua

153

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

tarjetas que tengan ambos tipos de entrada. Las entradas desbalanceadas pueden ser
referenciadas o no referenciadas.

A) Sistemas de Medicin Diferencial (DIF).

En un sistema de medicin diferencial, no es necesario conectar ninguna de las


entradas a una referencia fija, tal como tierra o chasis. Las entradas analgicas en las tarjetas
de adquisicin de datos cuentan normalmente con un amplificador de instrumentacin que
puede ser configurado como sistema de medicin diferencial. La figura 3.6 muestra un sistema
de medicin diferencial de 8 canales utilizado en algunas tarjetas DAQ. El uso de multiplexores
analgicos (AMUX) incrementa el nmero de canales de medicin utilizando un solo
amplificador de instrumentacin. Para este caso, la terminal etiquetada AIGND (tierra para
entradas analgicas) es la tierra del sistema de medicin.

En general, es preferible un sistema de medicin diferencial ya que no solo rechaza los


errores inducidos por lazos de tierra, sino tambin hasta ciertos lmites. El ruido colectado del
sistema.

Se deber usar los sistemas de medicin diferencial cuando las seales de entrada
cumplan con los siguientes criterios:

Seales de bajo nivel. (menores de 1 v.).

Alambrado largo o no blindado a travs de ambientes ruidosos.

Instituto Tecnolgico de Chihuahua

154

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Alguna de las seales de entrada requiere un punto de referencia de tierra o retorno de


seal independiente.

Amplificador
de
Instrumentacin

AMUX
CH0+
CH1+
CH2+
.
.
.
CH7+

+
AMUX

+
Vm
-

CH0CH1CH2.
.
.
CH7AIGND

Fig.6.6 Sistema de Medicin Diferencial de 8 Canales.

Un sistema de medicin diferencial ideal solo lee la diferencia de potencial entre las
terminales de entrada (+) y (-). Cualquier voltaje presente en las entradas del amplificador con
respecto a la tierra del mismo amplificador es llamado voltaje de modo comn. Un sistema de
medicin diferencial ideal rechaza (no mide) los voltajes de modo comn. La figura 3.7 muestra
la representacin de este voltaje.

Amplificador
de
Instrumentacin
Voltaje de la Seal
Voltaje de Modo
Comn, Potencial de
Tierra, Ruido, etc.

+
Vs
-

+
Vcm
-

+
Vm
-

Fig. 6.7 Voltaje de Modo Comn.

Instituto Tecnolgico de Chihuahua

155

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

B) Sistema de Medicin Desbalanceada Referenciada (RSE)

Un sistema de medicin desbalanceado referenciado (Referenced Single-Ended ) tiene


todas sus entradas de medicin referenciadas a la tierra del sistema. La figura 3.8 muestra un
sistema de medicin desbalanceado referenciado de 16 canales de entrada donde se puede
notar que todas las seales de entrada deben estar referenciadas a la tierra del sistema
denominada AIGND (Analog Input Ground).
CH0+
CH1+
CH2+
.
.
.

Amplificador
de
Instrumentacin
+

CH15+
AMUX

+
Vm
-

AIGND

Fig. 6.8 Sistema de Medicin RSE de 16 Canales.

C) Sistema de Medicin Desbalanceado No Referenciado (NRSE).

Las tarjetas de adquisicin de datos en ocasiones ofrecen una variante de la tcnica de


medicin RSE, conocida como sistema de medicin desbalanceada no referenciada
(Nonreferenced Single-Ended), donde todas las mediciones se hacen con respecto a una
referencia comn, es decir, todas las seales de entrada tienen una referencia a tierra. Sin
embargo, esta tierra no es la misma que la tierra del sistema de medicin. En la figura 3.9 se
muestra un sistema de medicin desbalanceado no referenciado donde la terminal AISENSE

Instituto Tecnolgico de Chihuahua

156

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

es la referencia comn para tomar las mediciones y la terminal AIGND es la tierra del sistema,
ntese que todas las seales de entrada estn referenciadas a AISENSE.

La configuracin desbalanceada, tanto la referenciada como la no referenciada, nos


proporciona el doble de canales de medicin y es aceptable cuando la magnitud del error
inducido es ms pequea que la exactitud requerida en los datos.

CH0+
CH1+
CH2+
.
.

Amplificador
de
Instrumentacin
+

CH15+

AMUX
+
Vm
-

AISENS
AIGND

Fig. 6.9 Sistema de Medicin NRSE de 16 Canales.

Los sistemas de medicin desbalanceados se pueden utilizar cuando todas las seales
de entrada cumplen los siguientes criterios:

Seales de alto nivel (normalmente mayores de 1 v.)


Cableados cortos y apropiadamente blindados a travs de ambientes libres de ruido.
Todas las seales tiene una referencia comn en la fuente de las mismas.

Si no se cumple alguno de estos criterios se recomienda utilizar un sistema de medicin


diferencial.

Instituto Tecnolgico de Chihuahua

157

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Resolucin.

Una vez definidas las caractersticas de las seales y el sistema de medicin adecuado
para ellas debemos recordar que todava tenemos una seal analgica, la cual debe ser
convertida por un convertidor analgico-digital (ADC) en una seal digital que pueda ser
entendida por la computadora. Algunas de las caractersticas que deben tomarse en cuanta
para una adecuada digitalizacin son: la resolucin del ADC, el rango de voltaje de la entrada
de la tarjeta digitalizadora y el rango de voltaje de la seal que se va a digitalizar.

El nmero de bits utilizado para representar una seal analgica determina la


resolucin del ADC. Se podra comparar la resolucin con la graduacin de una regla. Entre
ms marcas se tengan es ms precisa la medicin. De manera similar, a mayor resolucin en
un convertidor ADC, ser mayor el nmero de segmentos en que el sistema puede dividir la
seal de entrada, y por lo tanto, es ms pequeo el mnimo cambio de voltaje detectable.

Un ADC de 3 bits divide el rango en 23 o 8 divisiones. Un cdigo binario o digital entre


000 y 111 representa cada divisin. El ADC traduce cada medicin de la seal analgica a una
de las divisiones digitales. La Figura 6.10 muestra una onda senoidal representada
digitalmente con un convertidor ADC de 3 bits. Claramente se puede ver que la representacin
digital no es una buena representacin de la seal analgica original debido a que se pierde
mucha informacin en la conversin ya que el convertidor tiene unos cuantos cdigos digitales
para representar una infinidad de niveles analgicos Aumentando la resolucin a 16 bits se
aumenta el nmero de cdigos de 8 a 65,536 (216), con lo cual el ADC podra obtener una
representacin digital extremadamente exacta de la seal analgica.

Instituto Tecnolgico de Chihuahua

158

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

a)

b)

c)

Figura 6.10 a) Representacin de una Seal Senoidal b) con resolucin de 3 bits c) con resolucin de 16 bits

Rango de Voltaje del Dispositivo.

El rango de entrada de voltaje del dispositivo se refiere a los voltajes mximo y mnimo
que pueden ser digitalizados por el ADC. Las tarjetas DAQ multifuncin ofrecen generalmente
rangos seleccionables para poder configurar la tarjeta para manejar una variedad de niveles
de entrada. Con esta flexibilidad se tiene la ventaja de poder obtener la mejor resolucin
posible para medir la seal de manera ms precisa. Por ejemplo, suponiendo que el ADC de 3
bits tiene un rango de 0 a 10 volts, este rango se divide en ocho segmentos de 1.25 volts cada
uno. Si para este mismo ADC se selecciona un rango de - 10 a 10 volts, al dividir estos 20 volts
entre los mismos ocho segmentos cada uno queda de 2.50 volts. De esta manera el voltaje
detectable ms pequeo aumenta de 1.25 a 2.50 volts, por lo que tendremos una
representacin mucho menos exacta de la seal analgica. La figura 6.11 muestra este efecto

Instituto Tecnolgico de Chihuahua

159

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

a)

b)

c)

Figura 6.11. Efecto del rango de voltaje del dispositivo en la precisin del ADC

a) Seal Aplicada, b) Rango 0 a 10 v., c) Rango -10 a 10 v.

Rango de Voltaje de la Seal.

El rango de voltaje de la seal, tambin denominado lmite establecido, es el mximo y


mnimo voltaje de la seal que se va a medir. Con lmites establecidos ms precisos el ADC
optimiza los cdigos digitales disponibles para representar la seal analgica. Por ejemplo,
usando un ADC de 3 bits y seleccionando un rango de entrada de dispositivo de 0 a 10 volts
para medir una seal que solo vara de 0 a 5 volts, utilizando lmites establecidos de 0 a 10
volts, el ADC solo podr utilizar cuatro de los ocho cdigos digitales para representar la seal,
en cambio utilizando lmites establecidos de 0 a 5 volts el ADC podr utilizar los ocho cdigos
disponibles. La figura 6.12 muestra este efecto

Instituto Tecnolgico de Chihuahua

160

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

b)

a)

c)

Figura 6.12. Efecto del rango de voltaje de la seal en la precisin del ADC
a) Seal original, b) con lmite establecido de 0 a 5 v., c) con lmite establecido de 0 a10 v.

La relacin entre el rango de voltaje del dispositivo y el rango de voltaje de la seal est
dada por la ganancia del amplificador de instrumentacin utilizado en la tarjeta DAQ,
normalmente las tarjetas cuentas cuentan con ganancias programables para este fin.

El rango, la resolucin y la ganancia de una tarjeta DAQ determinan el ms pequeo


cambio de voltaje detectable. Este cambio en voltaje representa 1 LSB del valor digital, y
tambin es llamado ancho de cdigo. El ancho de cdigo ideal se encuentra dividiendo el
rango entre la ganancia multiplicada por dos elevado a la potencia del nmero de bit de
resolucin. Por ejemplo, para el caso de una tarjeta DAQ con un rango de voltaje de entrada
de 0 a 10 volts, una ganancia de 100 y resolucin de 12 bits, el ancho de cdigo es:

10 v. / (100 * 212) = 24.414 v.

Para un dispositivo pero con rango de entrada de -10 a 10 volts el ancho de cdigo es:

Instituto Tecnolgico de Chihuahua

161

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

20 v. / (100 * 212) = 48.828 v.

Por otro lado, si utilizamos el dispositivo original pero con una ganancia de 200, el
ancho de cdigo es:
10 v. / (200 * 212) = 12.207 v.

Y finalmente, utilizando una resolucin de 16 Bits.

10 v. / (100 * 216) = 1.525 v.

Entre ms pequeo sea el ancho de cdigo las mediciones efectuadas sern ms


exactas.

Razn de Muestreo.

La razn de muestreo determina la velocidad con que son tomadas las muestras. Una
razn de muestreo ms grande adquiere ms puntos en un tiempo dado y puede de esta
manera ofrecer una mejor representacin de la seal original. Por ejemplo, una seal de audio
convertida en seal elctrica por un micrfono comnmente tiene componentes de frecuencia
hasta de 20 KHz. Para digitalizar apropiadamente esta seal, el Teorema de Muestreo de
Nyquist nos dice que debemos muestrear a ms del doble que la mxima componente de
frecuencia que queremos detectar. As, se necesita una tarjeta DAQ con una razn de
muestreo ms grande de 40 KS/s.

Instituto Tecnolgico de Chihuahua

162

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

El multiplexeo es una tcnica comn para medir varia seales con un solo ADC. El ADC
muestrea un canal, se cambia a otro canal, lo muestrea, se cambia al siguiente canal y as
sucesivamente. Debido a que un solo ADC est muestreando varios canales en vez de uno
solo, la razn de muestreo efectiva para cada canal es inversamente proporcional al nmero
de canales que muestrea. Como un ejemplo, una tarjeta con razn de muestreo de 100 KS/s
sobre 10 canales, muestrea efectivamente cada canal a 10 KS/s. Tambin es vlido utilizar
multiplexores analgicos externos para aumentar el nmero de canales que la tarjeta puede
medir. La razn de muestreo disminuye proporcionalmente por la adicin de multiplexores
externos.

Tiempo de Establecimiento.

En una tarjeta DAQ tpica, una seal analgica es primero seleccionada por un
multiplexor, y luego amplificada a travs de un amplificador de instrumentacin antes de ser
convertida a seal digital por el ADC. El amplificador de instrumentacin deber estar
habilitado para seguir a la salida del multiplexor mientras este conmuta entre los distintos
canales, y de esta manera alcanzar la exactitud del ADC.

De no ser as, el ADC deber convertir una seal que todava no ha alcanzado su valor
verdadero. El tiempo que requiere el amplificador de instrumentacin para alcanzar una
exactitud especfica, es llamado tiempo de establecimiento. Un tiempo de establecimiento
pobre es un problema grave, ya que la inexactitud usualmente vara con la ganancia y con la
razn de muestreo. Si esto ocurre, la tarjeta DAQ no tendr manera de enviar mensaje de
error, ya que este ocurre en la etapa analgica.

Instituto Tecnolgico de Chihuahua

163

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

El amplificador de instrumentacin es ms propenso a no alcanzar el valor de la seal


cuando se muestrean muchos canales a altas ganancia y con una elevada razn de muestreo.
Cuando la aplicacin est muestreando mltiples canales, el multiplexor est cambiando entre
diferentes canales, lo que dificulta al amplificador seguir la seal con variaciones de voltaje
significativas. En efecto, no tos loa amplificadores de Instrumentacin pueden alcanzar una
exactitud de 12 bits en menos de 5 s. cuando amplifican con una ganancia de 100.

Ruido.

El ruido es cualquier seal no deseada que aparezca en la seal digitalizada de la


tarjeta DAQ. Debido a que una computadora es un ambiente digital extremadamente ruidoso,
los sistemas de adquisicin de datos en tarjetas insertables

para PCs se deben disear

cuidadosamente en tecnologa multicapa. Simplemente colocando un ADC, un amplificador de


instrumentacin, y la circuitera para interface de bus en un circuito impreso de una o dos
caras, el resultado es una ruidosa tarjeta DAQ. Los diseadores utilizan blindajes metlicos en
las tarjetas DAQ para ayudar a reducir el ruido. Un blindaje apropiado no se obtiene tan solo
blindando la secciones analgicas sensitivas, sino a travs de del diseo de circuitos
multicapas con planos de tierra.
1.00E 0

1.00E 0

1.00E-1

1.00E-1

1.00E-2

1.00E-2

1.00E-3

1.00E-3

1.00E-4

1.00E-4

1.00E-5

1.00E-5

1.00E-6

1.00E-6

1.00E-7

1.00E-7

1.00E-8

1.00E-8

1.00E-9

1.00E-9

-50 -40 -30 -20 -10 0

10 20 30 40 50

a)

-50 -40 -30 -20 -10 0

10 20 30 40 50

b)
Figura.6.13 Ruido

Instituto Tecnolgico de Chihuahua

164

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

La Figura 6.13 muestra las grficas de ruido D.C. para dos tarjetas DAQ diferentes, las
cuales utilizan el mismo circuito ADC. De la grfica de ruido se pueden determinar dos
caractersticas: rango y distribucin del ruido. La grfica en la Figura 6.13a tiene una alta
distribucin de muestras en 0 y un muy pequeo nmero de puntos ocurriendo en otros
cdigos. La distribucin es Gaussiana, lo cual es de esperarse para ruido aleatorio. Para esta
grfica, el nivel pico de ruido est entre 3 LSB. La grfica en la Figura 6.13b corresponde a
una tarjeta muy ruidosa, la cual tiene una distribucin diferente. Esta tarjeta tiene ruido de ms
de 20 LSB, con muchas muestras ocurriendo en puntos diferentes a los esperados.

6.4.3. Salidas Analgicas.

Para proporcionar estmulos a los sistemas DAQ, en ocasiones se requiere contar con
algunas lneas de salida analgica. Las especificaciones de los DACs que determinan la
calidad de la seal de salida producida son: tiempo de establecimiento, slew rate, y resolucin.

Tiempo de Establecimiento y Slew Rate.

El tiempo de establecimiento y el slew rate trabajan juntos para determinar que tan
rpido el DAC puede cambiar el nivel de la seal de salida. El tiempo de establecimiento es el
tiempo que tarda la salida en alcanzar la precisin especificada. El tiempo de establecimiento
se especifica usualmente para un cambio de voltaje de escala completa. El slew rate es la
mxima razn de cambio que el DAC puede producir en la seal de salida. As, un DAC con un
tiempo d establecimiento pequeo y un slew rate grande, puede generar seales de alta

Instituto Tecnolgico de Chihuahua

165

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

frecuencia, ya que se necesita un tiempo pequeo para cambiar con precisin la salida a un
nuevo nivel de voltaje.

Un ejemplo de aplicacin que requiere un alto desempeo de estos parmetros es la


generacin de seales de audio. El DAC requiere de un pequeo tiempo de establecimiento y
un gran slew rate para generar las altas frecuencias necesarias para cubrir el espectro de
audio. En contraste, una aplicacin en la cual no se requiere una rpida conversin digitalanalgica, es la seal de voltaje para controlar un calefactor, debido a que el calefactor no
puede responder rpidamente a los cambios de voltaje.

Resolucin.

La resolucin de una salida es similar a la resolucin de una entrada. Es el nmero de


bits en el cdigo digital que genera una salida analgica. Un mayor nmero de bits reduce la
magnitud de cada incremento en el voltaje de salida, lo que hace posible generar seales ms
continuas. Las aplicaciones que requieren un amplio rango dinmico con pequeos cambios
incrementales en el voltaje de salida, necesitan salidas analgicas de alta resolucin.

6.4.4. Puertos de Entradas / Salidas Digitales.

Las interfaces de entrada salida digital son muy utilizadas en los sistemas DAQ
basados en PC para controlar procesos, generar patrones de prueba, o comunicarse con
equipos perifricos. Los componentes digitales de entrada/salida en las tarjetas DAQ consisten
en hardware que genera o produce seales encendido/apagado. Como se muestra en la figura

Instituto Tecnolgico de Chihuahua

166

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.14 todas las lneas digitales de una tarjeta DAQ estn agrupadas en puertos. El nmero de
lneas digitales por puerto es especfico de cada dispositivo en particular, pero en la mayora de
los casos un puerto consiste en cuatro u ocho lneas. Escribiendo o leyendo un puerto se
puede modificar o conocer simultneamente el estado de todas las lneas del puerto.

Hardware
Digital

Puerto
de Salida

Lneas
de Salida

Tarjeta DAQ
Hardware
Digital
Puerto
de Entrada

Lneas
de Entrada

Figura 6.14. Puertos y Lneas Digitales.

En cada caso, los parmetros ms importantes incluyen el nmero de lneas digitales


disponibles, la razn de datos o velocidad a la cual se pueden utilizar estas lneas, y la
capacidad de manejo de las mismas.

Si las lneas digitales se utilizan para controlar eventos tales como encendido y apagado de
calefactores, motores o luces, usualmente no se requiere una razn de datos muy grande, ya
que estos equipos no responden muy rpidamente. Del nmero de lneas digitales disponibles,
depende el nmero de eventos que pueden ser monitoreados o controlados. El nico
inconveniente es que la cantidad de corriente requerida para encender los dispositivos, debe
ser menor que la corriente proporcionada por la lnea digital de la tarjeta DAQ. Sin embargo,
con el acondicionador de seales adecuado, se pueden utilizar las seales TTL de baja
corriente para manejar niveles ms altos de voltaje y corriente para dispositivos de uso
industrial. Por ejemplo, el voltaje y corriente que se necesita para operar una electro-vlvula
industrial es del orden de 100 v.a.c. a 2 Amp., como las salidas digitales de una tarjeta DAQ

Instituto Tecnolgico de Chihuahua

167

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

proporcional solo 5 v.d.c. a unas cuantos miliamperes, es evidentemente necesario el uso de


un acondicionador de seales para poder manejar la vlvula.

Otra aplicacin comn de las lneas digitales de entrada-salida es la de transferir datos


entre la computadora y otros equipos, tales como capturadores o procesadores de datos,
impresoras, etc. Debido a que estos dispositivos usualmente transfieren los datos en
incrementos de un byte (8 bits), las lneas digitales en las tarjetas DAQ estas agrupadas
generalmente en puertos de 8 bits.

Existen dos tipos de adquisicin / generacin digital: no-atrapada o inmediata y


atrapada o protocolizada. En una salida digital no-atrapada o inmediata, el sistema actualiza
las lneas digitales inmediatamente. Una salida atrapada o protocolizada es cuando el
dispositivo acepta o transfiere el dato despus de recibir un pulso.

Existen a su vez dos tipos de entradas / salidas digitales protocolizadas: noalmacenadas y almacenadas. Una generacin o adquisicin no-almacenada se llega a cabo
cuando el dispositivo digital genera o acepta un solo valor despus de recibir el pulso de
protocolo. Una generacin / adquisicin almacenada es necesaria cuando en vez de un solo
valor se debe generar o aceptar un patrn digital despus de recibir el pulso de protocolo.

6.4.5. Lneas de Entradas / Salidas Temporizadas.

Las tarjetas DAQ cuentan tambin con circuitera para temporizadores y contadores
necesarios en algunas aplicaciones, por ejemplo, el conteo de eventos digitales ocurridos,
temporizado de pulsos digitales y generacin de ondas cuadradas y trenes de pulsos.

Instituto Tecnolgico de Chihuahua

168

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Los contadores adicionan conteo y temporizado de alta precisin al sistema de adquisicin de


datos. Los contadores responden a seales TTL (Transistor Transistor Logic) en las cuales un
nivel bajo o cero lgico est representado por 0 volts y un nivel alto o uno lgico est
representado por 5 Volts. La figura 6.15 muestra una seal TTL.

+5 V.
Transicin de la Seal
0 V.

Figura 6.15. Seal TTL

Aun cuando los contadores cuentan las transiciones de la seal TTL, esta capacidad de
conteo se puede utilizar de muchas maneras:

Generar pulsos TTL para seales de reloj y disparo de otras aplicaciones.

Medir el ancho de pulso de una seal TTL.

Medir la frecuencia y periodo de una seal TTL

Contar las transiciones de una seal TTL o el tiempo asociado.

Dividir la frecuencia de seales TTL.

La figura 6.16 muestra el modelo bsico de un contador.

Compuerta

Salida

Registro de
Conteo
Fuente

Fig. 6.16. Modelo de un Contador.

Instituto Tecnolgico de Chihuahua

169

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Un contador consiste de una terminal de entrada fuente, una terminal de entrada


compuerta y una terminal de salida asociadas a un registro de conteo.

Tpicamente, un contador cuenta las transiciones de la seal en la entrada fuente. Sin


embargo, se puede configurar al contador para contar tanto la transicin de bajo a alto o la
transicin de alto a bajo. Para cada transicin contabilizada, el contador incrementa o
decrementa su registro de conteo interno.

La compuerta es una entrada digital que habilita o deshabilita la funcin de un contador.


Existen cuatro modos de compuerta: transicin ascendente, transicin descendente, nivel alto
y nivel bajo.
Finalmente, la salida genera la onda cuadrada o los trenes de pulsos en la lnea digital
de salida.

Las especificaciones ms importantes para la operacin de un contador son: la


resolucin y la frecuencia de reloj.

La resolucin es el nmero de bits que utiliza el contador una resolucin grande


significa que el contador puede efectuar conteos ms grandes.

La frecuencia de reloj determina que tan rpido se puede cambiar la seal de la fuente.
Con una frecuencia ms grande el contador se incrementa ms rpidamente y puede detectar
seales de alta frecuencia en la entrada y generar pulsos de alta frecuencia o seales de onda
cuadrada de alta frecuencia en la salida.

Instituto Tecnolgico de Chihuahua

170

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.5. FUNCIONES DE SOFTWARE PARA ADQUISICION DE DATOS

Para comprender mejor la estructuracin del software para adquisicin de datos y su


interaccin con el hardware correspondiente, es conveniente analizar la figura 6.17.

Aplicacin Final

Programa de Adquisicin de Datos

Lenguaje de Programacin

LabVIEW,
LabWindows/CVI
Measurement Studio

Software de
Configuracin

Manejadores
de Hardware

Measurement &
Automation Explorer

NI-DAQ Tradicional
NI-DAQmx

Interno
PCI, PCMCIA, etc.

Hardware de Adquisicin de
Datos

Externo
USB, RS232, etc.

Fig. 6.17. Estructura del software de adquisicin de datos.

Para que un programa de adquisicin de datos desarrollado en cualquier lenguaje de


programacin pueda interactuar con el hardware de adquisicin, se requiere generalmente de
una etapa de software intermedia que sirva como interfaz entre el lenguaje de alto nivel y el
hardware.

En el caso de los productos de National Instruments este interface se realiza en a


travs de la interaccin de dos programas diferentes, un software controlador para el manejo
propio del hardware llamado NI-DAQ y un software de configuracin y prueba llamado
Measurement & Automation Explorer.

Instituto Tecnolgico de Chihuahua

171

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.5.1. Instalacin del Hardware de adquisicin.

Debido a que el hardware de adquisicin generalmente es PLug & Play, su instalacin


resulta bastante sencilla si se siguen estos sencillos pasos:

a. Primero se instala el software de programacin (LabVIEW, LabWindows/CVI, etc.).


b. Luego se instala el software de configuracin (Measurement & Automation, etc.).
c. Despus se instalan los controladores de hardware (NI-DAQ tradicional, NI-DAQmx, etc.).
d. Finalmente se instala el hardware (PCI, PCMCIA, USB, etc.).

El seguir esta secuencia de instalacin garantiza que el Administrador de


Configuracin de Windows detecte y configure automticamente el dispositivo DAQ agregado.
Si se tiene que instalar un dispositivo DAQ que no es Plug & Play (dispositivo antiguo), este
debe configurarse manualmente mediante la opcin de Agregar Nuevo Hardware en el Panel
de Control de Windows.

6.5.2. Controladores NI-DAQ

Los dispositivos de adquisicin de National Instruments incluyen el programa


controlador NI-DAQ, Una coleccin de funciones especializadas para configurar y adquirir
datos. NI-DAQ tiene dos controladores diferentes, el NI-DAQ tradicional y el NI-DAQmx,
cada uno de ellos con su propia interfaz de programacin de aplicaciones. NI-DAQ tradicional
es el controlador soportado por una gran cantidad de hardware antiguo y representa la
tecnologa anterior de controladores de adquisicin, sin embargo aun est disponible el
mercado, por otro lado NI-DAQmx es la nueva generacin de controladores soportado por las

Instituto Tecnolgico de Chihuahua

172

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

nuevas tecnologas de hardware de adquisicin que a la larga representar la opcin que


prevalezca en el mercado.

Dependiendo del tipo y del modelo del hardware de adquisicin este pude soportar NIDAQ tradicional, NI-DAQmx o ambos. Los controladores NI-DAQ generalmente son
proporcionados en forma CD con junto con el hardware de adquisicin. Una vez instalados de
manera correcta

los controladores de NI-DAQ se tiene acceso a todas las funciones

especializadas de adquisicin de datos en LabVIEW siguiendo la trayectoria: Function/All


Functions/ NI Measurements, tal como se muestra en la figura 6.18.

click
NI-DAQmx

click
NI-DAQ Tradicional

Fig. 6.18. Funciones de adquisicin de datos agregadas por NI-DAQ.

Instituto Tecnolgico de Chihuahua

173

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.5.3. Software de configuracin Measurement & Automation Explorer (MAX).

Measurement & Automation Explorer, tambin llamado MAX, es un programa que le


permite a los diversos lenguajes de programacin tener acceso a los recursos de hardware
instalados en la computadora: dispositivos DAQ, interfaces GPIB, puertos serie y paralelo
(COM1, COM2, LPT1, etc.). Si este programa no detecta algn tipo especfico de hardware
instalado en la computadora, entonces no ser posible acceder a este desde ningn lenguaje
de programacin. MAX permite establecer los parmetros de configuracin (direcciones,
interrupciones DMA, etc.) de los dispositivos DAQ instalados y de los canales de adquisicin
asociados, por lo cual, despus de instalar un dispositivo DAQ en la computadora, es
necesario ejecutar MAX para efectuar la configuracin del mismo. Tambin permite efectuar
pruebas funcionales de los recursos de adquisicin (entradas analgicas, salidas analgicas,
puertos digitales, timers / contadores, etc.). La figura 6.19 muestra la ventana principal de
MAX.

Fig. 6.19. Ventana principal del software Measurement & Automation Explorer.

Instituto Tecnolgico de Chihuahua

174

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Para acceder a la configuracin de un dispositivo DAQ seleccione en Devices and


Interfaces el controlador adecuado (NI-DAQ tradicional, NI-DAQmx, etc.) y el nombre
especfico del hardware, tal como se muestra en la figura 6.20 para el caso de una tarjeta
DAQCard 6024E denominada Dev1 en bajo el controlador NI-DAQmx.

Fig. 6.20. Acceso a un dispositivo DAQ especifico.

En la parte central de la ventana con la seleccin en la pestaa Atributes, aparecen


los recursos asignados al dispositivo (rango de direcciones, IRQ, etc.). Para probar estos
recursos haga un click en el botn Self-Test como se muestra en la figura 6.21.

click

Fig. 6.21. Auto prueba de recursos asignados al dispositivo DAQ.

Instituto Tecnolgico de Chihuahua

175

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

El botn Test Panels abre los paneles de prueba correspondientes para cada tipo de
entrada o salida del dispositivo DAQ. Es en estos paneles donde se configura el tipo de
entrada analgica (diferencial, referenciada, etc.), los rangos de voltaje del dispositivo y todas
las dems caractersticas propias a cada entrada o salida. Adems, desde estos mismos
paneles se puede efectuar la prueba funcional de todos los recursos de adquisicin del
dispositivo como se muestra en la figura 6.22.

a)

b)

c)

d)

Fig. 6.22. Panel de prueba para a) entradas analgicas, b) salidas analgicas,


c) puertos digitales y d) timers / contadores.

Instituto Tecnolgico de Chihuahua

176

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

6.5.4. DAQ Assistant.

La forma ms sencilla de adquirir datos en LabVIEW es utilizar un SubVI Express


llamado DAQ Assistant el cual se encuentra directamente en la paleta de funciones en la
subpaleta de entradas: Function > Input > DAQ Assistant, como se muestra en la figura
6.23.

click

Fig. 6.23. Acceso al SubVI Express DAQ Assistant,

Instituto Tecnolgico de Chihuahua

177

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Al colocar el subVI por primera vez en el diagrama de bloque se abre una ventana
inicial del DAQ Assistant, como se muestra en la figura 6.24, la cual permite seleccionar el tipo
general de recurso que se desea utilizar: entradas analgicas, salidas analgicas, entradas de
contadores, salidas de contadores o entradas salidas digitales.

Fig. 6.24. Ventana inicial del DAQ Assistant,

Una vez seleccionado el recurso general se pasa a una ventana de seleccin del tipo
especfico de recurso (voltaje, temperatura, corriente, resistencia, etc.), la figura 6.25 muestra
el ejemplo de seleccin de una entrada analgica de voltaje.

Instituto Tecnolgico de Chihuahua

178

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Fig. 6.25. Ventana para seleccin del recurso general y especfico.

Luego se asigna el canal fsico que se emplear para la adquisicin, como se muestra
en la figura 6.26

Fig. 6.26. Ventana de asignacin del canal fsico.

Instituto Tecnolgico de Chihuahua

179

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Finalmente se configuran los parmetros de adquisicin del canal tales como rango y
tipo de entrada, escalamiento y modo de adquisicin. La figura 6.27 muestra un ejemplo de
configuracin para un canal de entrada de voltaje analgico en modo diferencial para un rango
de entradas de 20 volts y adquisicin de 1000 muestras a una frecuencia de muestreo
de1000 Hz utilizando la seal de reloj interno de la tarjeta de adquisicin.

Fig. 6.27. Ventana de configuracin para los parmetros de adquisicin.

Una vez configurado, el subVI exprs est listo para ser alambrado en el diagrama a
bloques, tal como se muestra en la figura 6.28. En caso de ser necesario es posible cambiar
los parmetros de configuracin haciendo doble click sobre el subVI.

Instituto Tecnolgico de Chihuahua

180

Dr. Gerardo Trujillo Schiaffino

Captulo VI

Sistemas de Adquisicin de Datos

Fig. 6.28. SubVI Express DAQ Assistant listo para alambrar.

Instituto Tecnolgico de Chihuahua

181

Dr. Gerardo Trujillo Schiaffino

S-ar putea să vă placă și