Buch lesen: «LabVIEW: Entorno gráfico de programación»

Schriftart:

LabVIEW: entorno gráfico de programación

José Rafael Lajara

José Pelegrí

LabVIEW: entorno gráfico de programación


LabVIEW. Entorno gráfico de programación

Segunda edición, 2011

© 2011 José Rafael Lajara Vizcaíno - José Pelegrí Sebastià

© 2011 MARCOMBO, S.A.

Gran Via de les Corts Catalanes, 594

08007 Barcelona

www.marcombo.com

Corrección y maquetación: O3 BCN PACKAGERS

Diseño de la cubierta: NDENU DISSENY

«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».

ISBN: 978-84-267-1868-6

D.L.:

Impreso en

Printed in Spain

Prólogo

El alcance del software LabVIEW en la sociedad y cómo contribuye en el mundo científico y tecnológico, para mejorar el mundo en el que vivimos, ha superado nuestras expectativas y esperanzas desde su creación hace 25 años.

Desde los inicios se pensó en crear una herramienta que aportase a los ingenieros y científicos lo que la hoja de datos aportó a los analistas y financieros para trabajar de forma más rápida, eficiente y más fácil. Nuestra visión de que LabVIEW es una herramienta que se use en todos los diferentes sectores para solucionar retos tan complejos a los que se enfrentan los ingenieros de todo el mundo a diario se ha convertido en realidad. LabVIEW es una ayuda para los ingenieros y físicos nucleares del CERN en Suiza que controla la máquina más grande del mundo y también se usa en el diseño de dispositivos médicos innovadores y en los sistemas de test para garantizar nuestra seguridad al viajar en aviones y coches. Dada dicha realidad, LabVIEW ha llegado a ser una herramienta adoptada por universidades, institutos y muchos programas educativos.

Además, LabVIEW juega un papel muy importante en la educación de los ingenieros más pequeños, pues cada año existen nuevas competiciones de robots de niños que pueden diseñar, programar y controlar su creación a través de LabVIEW, lo que hace que los niños se entusiasmen por seguir aprendiendo y vean más atractiva la educación y la ingeniería tan necesaria para nuestro mundo. La colaboración entre National Instruments y LEGO Education ha hecho que haya más de 500.000 niños en distintas partes del mundo aprendiendo conceptos sobre robots y que lleguen a construir el suyo propio a través de la plataforma LEGO Mindstorms.

Hoy en día LabVIEW tiene su propio «ecosistema», que cuenta con más de 100 grupos de usuarios registrados, más de 70.000 usuarios en línea, más de 300 complementos de terceras empresas y más de 400 casos de estudio. Le animamos a aprovechar esta red o comunidad de usuarios de nivel principiante hasta los más expertos en arquitecturas de LabVIEW.

Felicidades por optar por aprender y conocer una nueva forma de enfocar su aplicación o proyecto con el diseño gráfico de sistemas. Esperamos que el material técnico junto con las explicaciones y ejercicios de este libro, le sirvan de gran ayuda para poder avanzar en sus habilidades técnicas.

Por favor, visite www.ni.com/spain e ingrese el código splabviewmarcombo para acceder a los recursos técnicos adicionales tales como la versión de evaluación de LabVIEW, notas técnicas, y foros.

Cristóbal Rus Responsable del Programa Académico de España National Instruments

Carlos Ríos Director General de España National Instruments

Índice

Capítulo 1Introducción a LabVIEW. Entorno

1.1. Entorno

1.2. Menús (paletas)

1.2.1. Menú de herramientas

1.2.2. Controles

1.2.2.1. Personalización de controles

1.2.3. Funciones

1.2.4. Personalización de los menús

1.3. Creación de programas

1.4. Flujo de ejecución

1.5. VI y subVI

1.5.1. Librerías

1.5.2. Polimorfismo

1.6. Proyectos

1.7. Depuración de código

1.8. Otras herramientas

1.8.1. Snippet

1.8.2. Opciones

1.8.3. Jerarquía

1.8.4. Ventana de navegación

1.8.5. Compilación masiva

1.8.6. Búsqueda y comparación

1.8.7. Seguridad

1.8.8. Ejemplos

1.9. Ejercicios

1.10. Bibliografía

Capítulo 2Estructuras

2.1. SEQUENCE

2.2. CASE

2.3. WHILE

2.4. FOR

2.5. EVENT

2.6. TIMED LOOP y TIMED SEQUENCE

2.7. DISABLE STRUCTURE

2.8. FORMULA NODE

2.9. Scripts

2.10. Ejemplos

2.10.1. Ejemplo I: Filtro promediador

2.10.1.1. Explicación teórica

2.10.1.2. Código

2.10.1.3. Resultado

2.10.2. Ejemplo II: Generación de números primos

2.10.2.1. Explicación teórica

2.10.2.2. Código

2.10.2.3. Resultado

2.10.3. Ejemplo III: Bingo

2.10.3.1. Explicación teórica

2.10.3.2. Código

2.10.3.3. Resultado

2.11. Ejercicios

2.12. Bibliografía

Capítulo 3Tipos de datos

3.1. Tipos de terminales

3.2. Tipos de datos

3.2.1. Boolean

3.2.2. Numeric

3.2.3. Strings

3.2.3.1. Transformaciones número-texto

3.2.4. Path

3.2.5. Arrays

3.2.6. Clusters

3.2.7. Waveforms

3.2.8. Referencias

3.2.9. Variant

3.2.10. Dynamic

3.3. Manipulación de datos

3.3.1. Manipulación de bytes y bits

3.3.2. Otras transformaciones

3.3.3. Type Cast

3.4. Variables y propiedades

3.4.1. Variables locales

3.4.2. Variables globales

3.4.3. Variables compartidas

3.4.4. Nodos de propiedades y métodos

3.4.5. Referencias

3.5. Ejemplos

3.5.1. Ejemplo I: varios métodos para convertir la representación ASCII a su valor

3.5.1.1. Explicación teórica

3.5.1.2. Código

3.5.2. Ejemplo II: Carrera de fórmula 1

3.5.2.1. Explicación teórica

3.5.2.2. Código

3.5.2.3. Resultados

3.6. Ejercicios

3.7. Bibliografía

Capítulo 4Ficheros

4.1. Ficheros de texto

4.1.1. Ejemplo I: Ficheros de texto y binarios

4.1.2. Ejemplo II: Lotería

4.2. Ficheros de configuración

4.2.1. Ejemplo

4.3. Ficheros XML

4.3.1. Ejemplo I: Agenda

4.3.2. Ejemplo II: Buscador en la agenda

4.4. Ficheros de imagen

4.4.1. Ejemplo

4.5. Ficheros de sonido

4.5.1. Ejemplo I: Lectura de fichero y procesado

4.5.2. Ejemplo II: Adquisición y VIs Express

4.6. Acceso al registro de Windows

4.6.1. Ejemplo: Registro de LabVIEW

4.7. Reports

4.7.1. Ejemplo: Generación de un fichero PDF

4.8. Storage

4.8.1. Ejemplo

4.9. Datalog

4.9.1. Ejemplo

4.10. Waveform

4.11. Ejercicios

Capítulo 5Comunicación serie

5.1. Introducción

5.2. Historia

5.3. RS-232

5.3.1. Conectores

5.3.2. Puertos

5.3.3. Handshake

5.3.4. Otros estándares

5.4. Comunicaciones serie en LabVIEW

5.4.1. VISA

5.5. Ejemplos

5.5.1. Ejemplo I: Comunicación con un microcontrolador

5.5.1.1. Explicación teórica

5.5.1.2. Código del microcontrolador

5.5.1.3. Código en LabVIEW

5.5.1.4. Resultado

5.5.2. Ejemplo II: Control de un instrumento de laboratorio

5.5.2.1. Explicación teórica

5.5.2.2. Código

5.5.2.3. Resultado

5.5.3. Ejemplo III: Manejo de eventos

5.5.3.1. Explicación teórica

5.5.3.2. Código

5.6. Ejercicios

5.7. Bibliografía

Capítulo 6GPIB

6.1. Introducción

6.2. El estándar IEEE 488.1

6.2.1. Cableado

6.2.2. Handshake

6.2.3. Funcionamiento

6.3. El estándar IEEE 488.2

6.4. SCPI

6.5. GPIB en LabVIEW

6.5.1. VISA

6.5.2. Drivers

6.6. Ejemplos

6.6.1. Ejemplo I: Escáner del bus

6.6.1.1. Explicación teórica

6.6.1.2. Código

6.6.1.3. Resultado

6.6.2. Ejemplo II: Osciloscopio Tektronix TDS210

6.6.2.1. Explicación teórica

6.6.2.2. Código

6.6.2.3. Resultado

6.6.3. Ejemplo III: Uso de VI Express, Instrument I/O Assistant

6.6.3.1. Explicación teórica

6.6.3.2. Procedimiento

6.6.4. Ejemplo IV: Generador HP 33120A usando un driver

6.7. Ejercicios

6.8. Bibliografía

Capítulo 7Adquisición de datos

7.1. Introducción

7.2. Adquisición de señales analógicas

7.2.1. Configuraciones de terminales

7.2.2. Conversión a digital

7.2.3. Procesamiento

7.3. Tarjeta de adquisición de datos NI PCI-6221M

7.4. Measurement & Automation Explorer (MAX)

7.5. DAQ en LabVIEW

7.5.1. DAQ Assistant

7.6. Ejemplos

7.6.1. Ejemplo I: Crear un osciloscopio y un generador de funciones con la tarjeta PCI-6221M

7.6.1.1. Explicación teórica

7.6.1.2. Código

7.6.1.3. Resultado

7.6.2. Ejemplo II: Medida de la temperatura

7.6.2.1. Explicación teórica

7.6.2.2. Código

7.6.3. Ejemplo III: Control de un motor paso a paso

7.6.3.1. Explicación teórica

7.6.3.2. Código

7.6.3.3. Resultados

7.7. Ejercicios

7.8. Bibliografía

Capítulo 8TCP y UDP

8.1. TCP/IP

8.1.1. Nivel de red

8.1.2. Nivel de transporte

8.1.3. Nivel de aplicación

8.2. Arquitecturas habituales

8.3. TCP/IP en LabVIEW

8.4. HTTP en LabVIEW

8.5. Ejemplos

8.5.1. Ejemplo I: Servidor de Telnet

8.5.1.1. Explicación teórica de Telnet

8.5.1.2. Código

8.5.1.3. Resultados

8.5.2. Ejemplo II: Transmisión de voz

8.5.2.1. Explicación teórica

8.5.2.2. Código

8.5.2.3. Resultados

8.5.3. Ejemplo III: Obtener ficheros a través de HTTP

8.5.3.1. Explicación teórica

8.5.3.2. Código

8.5.3.3. Resultados

8.6. Ejercicios

8.7. Bibliografía

Capítulo 9VI Server y comunicaciones avanzadas

9.1. Acceso remoto

9.1.1. Paneles remotos

9.1.2. Publicación en web

9.2. Enlaces de datos

9.2.1. DataSocket

9.2.1.1. API

9.2.1.2. Método directo

9.2.2. Shared variables

9.2.3. Data Binding

9.2.4. Networks Streams

9.3. VI Server

9.4. Servicios web

9.4.1. Servicios web en LabVIEW

9.5. Ejemplos

9.5.1. Ejemplo I: Chat

9.5.1.1. Explicación teórica

9.5.1.2. Código

9.5.1.3. Resultados

9.5.2. Ejemplo II: Controlar Decorations

9.5.2.1. Explicación teórica

9.5.2.2. Código

9.5.3. Ejemplo III: Rendimiento de VI

9.5.3.1. Explicación teórica

9.5.3.2. Código

9.5.3.3. Resultados

9.5.4. Ejemplo IV: Sistema distribuido con variables compartidas

9.5.4.1. Explicación teórica

9.5.4.2. Código

9.6. Ejercicios

9.7. Bibliografía

Capítulo 10Sincronización y multihilo

10.1. Multihilo en LabVIEW

10.1.1. Sistemas de ejecución

10.1.2. Prioridades

10.1.3. VI reentrantes

10.1.4. Pipeline

10.1.5. Paralelismo

10.2. Multinúcleo

10.2.1. FOR

10.2.2. TIMED LOOP

10.3. Sincronización

10.3.1. Occurrences

10.3.2. Semáforos

10.3.3. Notificaciones

10.3.4. Colas

10.3.5. Rendezvous

10.4. Problemas típicos de la programación multihilo

10.4.1. Condición de carrera

10.4.2. Inanición

10.4.3. Inversión de prioridad

10.4.4. Interbloqueo

10.5. Eventos

10.5.1. Ejemplo I: Eventos dinámicos

10.5.2. Ejemplo II: Eventos de usuario

10.6. Ejercicios

10.7. Bibliografía

Capítulo 11Modelos de programación

11.1. Estructuras de interfaz de usuario

11.2. Temporización

11.3. Manejo de errores

11.4. Máquinas de estado

11.4.1. Máquinas de estados en LabVIEW

11.4.2. Ejemplo: Máquina expendedora

11.4.2.1. Explicación teórica

11.4.2.2. Código

11.4.2.3. Resultados

11.5. Comunicaciones

11.5.1. Maestro/esclavo

11.5.2. Productor/consumidor

11.5.3. Ejemplo: keylogger

11.5.3.1. Explicación teórica

11.5.3.2. Código

11.5.3.3. Resultado

11.6. Orientado a objetos

11.6.1. Programación orientada a objetos en LabVIEW

11.6.1.1. Ejemplo: Fichas de empleados

11.7. Scripting

11.7.1. Introducción

11.7.2. XNodes

11.7.3. Ejemplo I

11.7.3.1. Código

11.7.4. Ejemplo II: Metaprograma

11.7.4.1. Código

11.7.4.2. Resultado

11.8. Ejercicios

11.9. Bibliografía

Capítulo 12Código externo

12.1. Librerías externas

12.1.1. CIN

12.1.2. Librerías compartidas en LabVIEW

12.1.3. Ejemplo I: Creación de una DLL y su uso en LabVIEW

12.1.3.1. Explicación teórica

12.1.3.2. Código en C++

12.1.3.3. Código en LabVIEW

12.1.4. Ejemplo II: Wait (μs)

12.1.4.1. Explicación teórica

12.1.4.2. Código

12.1.4.3. Resultados

12.1.5. Ejemplo III: CIN

12.1.5.1. Explicación teórica

12.1.5.2. Código en C++

12.1.5.3. Código en LabVIEW

12.2. Comunicaciones entre aplicaciones

12.2.1. ActiveX

12.2.1.1. ActiveX en LabVIEW

12.2.1.2. Ejemplo: Creación de un control ActiveX y su uso en LabVIEW

12.2.2. .NET

12.2.2.1. .NET en LabVIEW

12.2.2.2. Ejemplo I: Creación de una librería de clases .NET y su uso en LabVIEW

12.2.2.3. Ejemplo II: Navegador Web

12.3. Creación de librerías y ejecutables con LabVIEW

12.4. Ejercicios

12.5. Bibliografía

Capítulo 13Optimización de la interfaz

13.1. Elementos del Panel Frontal

13.1.1. Otros tipos de gráficos

13.1.2. Subpaneles

13.1.3. Splitters

13.2. Localizar la interfaz

13.3. Interactuando con el usuario programadamente

13.3.1. Menús personalizados

13.3.2. Teclado

13.3.3. Drag & Drop

13.4. XControls

13.4.1. Ejemplo: Polímetro virtual

13.4.1.1. Explicación teórica

13.4.1.2. Metodología

13.4.1.3. Resultados

13.5. Consejos para diseñar una interfaz

13.5.1. Layout

13.5.2. Tipografía

13.5.3. Color

13.5.4. Imágenes

13.5.5. Otros

13.6. Ejercicios

13.7. Bibliografía

Capítulo 14Optimización del código

14.1. Diseño de la aplicación

14.2. Estilo del código

14.2.1. Organización

14.2.2. Comentar el código

14.2.3. VI

14.2.4. Cableado

14.3. Control de código

14.3.1. Ejemplo en LabVIEW

14.4. Mejorar el rendimiento

14.4.1. Herramientas

14.4.2. Manejo de memoria

14.4.2.1. Buffers

14.4.2.2. In Place Element Structure

14.4.2.3. Paso de valores por referencia

14.4.3. Técnicas para mejorar el rendimiento

14.4.3.1. Cálculos inútiles

14.4.3.2. No reinventar la rueda

14.4.3.3. Tamaño de los datos

14.4.3.4. Datos simples o complejos

14.4.3.5. Redimensionado de arrays

14.4.3.6. Cuellos de botella

14.4.3.7. Variables y propiedades

14.4.3.8. SubVI

14.5. Ejercicios

14.6. Bibliografía

Capítulo 15Otras plataformas

15.1. PDA

15.1.1. Ejemplo: Escáner de dispositivos Bluetooth

15.1.1.1. Explicación teórica

15.1.1.2. Código

15.1.1.3. Resultados

15.2. FPGA

15.2.1. Ejemplo: Luces del coche fantástico en CompactRIO

15.2.1.1. Explicación teórica

15.2.1.2. Código

15.2.1.3. Resultados

15.3. Bus PXI

15.3.1. PCI

15.3.2. PXI

15.3.3. Ejemplo I: Lectura de los registros de configuración

15.3.3.1. Explicación teórica

15.3.3.2. Código

15.3.3.3. Resultado

15.3.4. Ejemplo II: Generación y adquisición de señales

15.3.4.1. Explicación teórica

15.3.4.2. Código

15.3.4.3. Resultados

15.3.5. Ejemplo III: Medida de capacidad

15.3.5.1. Explicación teórica

15.3.5.2. Código

15.3.5.3. Resultados

15.4. Bibliografía

Capítulo 16LabWindows/CVI

16.1. Introducción

16.2. Librerías

16.3. Generación automática de código

16.4. Creación de GUI

16.5. Manejo de eventos

16.6. Ejemplo

16.6.1. Interfaz

16.6.2. Lógica

16.6.3. Resultados

16.7. Ejercicio

16.8. Bibliografía

Capítulo 17Measurement Studio

17.1. Introducción

17.2. Clases y controles

17.3. Ejemplos

17.3.1. Ejemplo I: Gráficas

17.3.2. Ejemplo II: Filtros digitales y FFT

17.3.3. Ejemplo III: Proyecto web

17.4. Ejercicio

17.5. Bibliografía

Capítulo 18Measurement Studio

18.1. Introducción

18.2. Ejemplos

18.2.1. Ejemplo I: Datos electrocardiográficos en un fichero CSV

18.2.1.1. Navigator

18.2.1.2. View

18.2.1.3. Analysis

18.2.1.4. Report

18.2.1.5. Scripts

18.3. Conectividad con LabVIEW

18.4. Bibliografía

Capítulo 19TestStand

19.1. Introducción

19.2. Ejemplo

19.2.1. Variables

19.2.2. Estructuras

19.3. Conectividad

19.4. Herramientas avanzadas

19.5. Bibliografía

Genres und Tags

Altersbeschränkung:
0+
Umfang:
813 S. 672 Illustrationen
ISBN:
9788426718686
Verleger:
Rechteinhaber:
Bookwire
Download-Format:
Audio
Средний рейтинг 4,7 на основе 285 оценок
Audio
Средний рейтинг 4,1 на основе 1050 оценок
Audio
Средний рейтинг 4,6 на основе 1088 оценок
Audio
Средний рейтинг 3,7 на основе 39 оценок
Audio
Средний рейтинг 3 на основе 22 оценок
Text
Средний рейтинг 3,9 на основе 584 оценок
Text, audioformat verfügbar
Средний рейтинг 3,6 на основе 46 оценок
Text, audioformat verfügbar
Средний рейтинг 4,1 на основе 109 оценок
Entwurf
Средний рейтинг 4,8 на основе 1015 оценок
Text
Средний рейтинг 0 на основе 0 оценок