PROGRAMAS DE ADQUISICION EN LABVIEW 1. ENTRADAS ANALOGICAS ...................................................................................................... - 1 - 2. SALIDAS ANALOGICAS ........................................................................................................... - 4 - 3. ENTRADAS DIGITALES ........................................................................................................... - 7 - 4. SALIDAS DIGITALES.............................................................................................................. - 10 - Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 1. ENTRADAS ANALOGICAS Creación del bloque AI: 1. Buscar la función DAQ Assistant dentro de la categoría Express -> Input. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -1- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 2. Seleccionar Acquire Signal -> Analog Input -> Voltage en la nueva ventana emergente. 3. Elegir los 16 canales de la tarjeta PCI-MIO-16E-4. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -2- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 4. Aparece la siguiente configuración por defecto. 5. Cambiar el rango a ±10V, configuración de terminales a NRSE y el modo de adquisición a una muestra por demanda. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -3- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 2. SALIDAS ANALOGICAS Creación del bloque AO1 y AO2: 1. Buscar la función DAQ Assistant dentro de la categoría Express -> Output. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -4- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 2. Seleccionar Generate Signal -> Analog Output -> Voltage en la nueva ventana emergente. 3. Elegir el primer canal de la tarjeta PCI-MIO-16E-4. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -5- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 4. Cambiar el rango a ±10V, configuración de terminales a RSE y el modo de adquisición a una muestra por demanda. 5. Repetir el procedimiento con el otro canal de la tarjeta. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -6- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 3. ENTRADAS DIGITALES Creación del bloque DI: 1. Buscar la función DAQ Assistant dentro de la categoría Express -> Input. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -7- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 2. Seleccionar Acquire Signal -> Digital Input -> Port Input en la nueva ventana emergente. 3. Elegir el puerto 2 de la tarjeta PCI-6503. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -8- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 4. Cambiar el modo de adquisición a una muestra por demanda. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial -9- Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 4. SALIDAS DIGITALES Creación de los bloques DO 0-7 y DO 8-15: 1. Buscar la función DAQ Assistant dentro de la categoría Express -> Output. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial - 10 - Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 2. Seleccionar Acquire Signal -> Analog Output -> Port Output en la nueva ventana emergente 3. Elegir el puerto 0 de la tarjeta PCI-6503. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial - 11 - Creación de un sistema de control en LabVIEW para un banco de ensayos Universidad Carlos III de Madrid 4. Cambiar el modo de adquisición a una muestra por demanda. 5. Repetir el procedimiento para el puerto 1 de la misma tarjeta. David Pérez Calleja Ing. Téc. Ind. : Electrónica Industrial - 12 - DIAGRAMA DE BLOQUES DEL PROGRAMA 1. PROGRAMA.VI........................................................................................................................... - 2 - 2. ALARMAS.VI ............................................................................................................................ - 19 - 3. BUFFER REC.VI ....................................................................................................................... - 24 - 4. CONVERTIR TABLA.VI ......................................................................................................... - 26 - 5. CREAR CICLO.VI .................................................................................................................... - 36 - 6. CREAR TABLA.VI.................................................................................................................... - 37 - 7. ENTRADAS.VI........................................................................................................................... - 38 - 8. FILTRO.VI ................................................................................................................................. - 40 - 9. FILTRO_ARRAY.VI ................................................................................................................. - 42 - 10. OPEN ALL.VI ............................................................................................................................ - 44 - 11. PROMPT USER 1 ...................................................................................................................... - 46 - 12. REPRODUCIR CICLO.VI ....................................................................................................... - 47 - 13. SALIDAS.VI ............................................................................................................................... - 49 - 14. SELECCIONAR.VI ................................................................................................................... - 51 - 15. TXT OPEN.VI ............................................................................................................................ - 52 - 16. TXT WRITE.VI.......................................................................................................................... - 53 - 17. UNIDADES.VI ............................................................................................................................ - 54 - 18. WRITE ALL.VI.......................................................................................................................... - 55 - 1 [0..1] No Error True error R EC True Boolean 2 ST OP Enum 0 RUN Disabled Value Boolean 1 [0..3] MA Disabled Value N reposo Disabled x Enum 2 Outputs R Outputs y y2 Enum 2 "Ciclos" Digitales analogicas AO1 AO2 dt (ms) 17 7 AO1 AO2 True Fases Modificar Tabla Ciclo Tabla Ciclo aux ItemNames Value 1 Fases Posición Nombre Fase ItemNames Value Y 0 Nombre Fase Mixed Signal Graph Tabla Ciclo Tabla Ciclo t0 RowHdrs[] Tabla Ciclo True R fase 0 Tabla Ciclo 0 EditPos Fases Fases Borrar ItemNames Value Progreso True ItemNames Value 1 -1 Posición 200 True True Tabla Ciclo aux 2 Maximum Posición Nombre Prueba True True Fases True R EC Fases Select Ru ta %d-%m-%y %H.%M.txt True ItemNames R fase R fase Nombre Fase Insertar 0 Tabla Ciclo 0 EditPos T.muestreo Fases ItemNames Value Posición File 1 cabecera 0 False 1 Fases DO rec AO r ec DI rec AI rec Value Tabla Ciclo Disabled Disabled Disabled Disabled Posición Fases ItemNames 1 -1 Pagina 0 0 Maximum False Exportar 0 True Actualizar True Fases Fases ItemNames True ItemNames Value Importar -1 Ciclo AO1 Fases R prueba reposo Ciclo AO2 ItemNames Pagina 0 True Progreso True Fases config 0 1 0 0 0 0 0 1 0 Ciclo DO buffer grafica 1 Chart LISTO Exportar ensayo Nombre Prueba Caption.Visible Value Nombre Prueba 0 ItemNames Progreso Caption.Visible buffer rec Caption.Text 100 R prueba Prueba cargada Value Caption.TextColor 50 1 0 True True Tab Control 1 [0..1] RUN No Error Importar ensayo 4 [0..4] names a b Unidades Analog input a b Unidades In Modo L.inferiores L.superiores True Modo A L.inf A L. sup A Canal Tolerancia Tiempo REC File path totales Canales Tol. A horas T. A 0 AI rec salir 0,001 1000 42 [0] "salir": Value Change Type Time CtlRef 0,001 False False False False 0 [0..4] False Fases R prueba Nombre Prueba 0 ItemNames Value -1 Pagina Configuracion Fa False Fases 0 ItemNames Value 1 [0..4] 2 names Digital output Pagina REC DO rec 1 2 [0..4] names a Analog output a2 b Unidades REC b2 Unidades Out AO rec 3 [0..4] names Digital input REC DI rec Error Ciclos False Ciclos False True True False False False False False Fases Graph vacio Mixed Signal Graph ItemNames Value alse Error Nombre Fase Tabla Ciclo False source reposo Posición 0 error R fase 10000 ¿Tarjeta analógica desconectada? True Enum 2 False 0 [0..3] False 0 [0..1] "manual" Outputs 3600 False False 1000 "reposo", Default 0 Outputs False "auto" Outputs DO rec 0 Disabled AO r ec Disabled DI rec Disabled AI rec contadores aux Disabled STOP STOP True Boolean False 2 [0..3] False manual Alarma auto True Alarma 300000 3 [0..3] Alarma True Error alarma Alarm error Enum 2 RUN Alarmas Warning 22 Contador Contador "Configuracion" True Digital output 3 [0..5] 16 Analog output 9 DO 9 2 Analog input 10 DO 10 11 12 DO 11 13 DO 12 14 DO 13 DO 14 15 16 17 DO 15 AO 0 AO 1 Entradas True 0 [0..6] Chart Chart Unidades Out YScale.NameLbl.Text ActYScl Unidades units Unidades In units Digital input 1 True Digital input cabecera Digital input 2 config config 23 a cabecera 19 1 True a b True True b 0 [0..1] AO1 b2 True 0 100 b2 10 a2 0 True Increment Scale.Maximum Maximum Scale.Minimum Minimum a2 True DO rec True True 0 3 [0..3] Configuracion Chart ActYScl Chart config AO r ec YScale.Maximum YScale.Minimum 2 DI rec AI rec 6 mínimo máximo 5 9 12 config 1 19 23 33 Prueba False False Fals False False 0 [0..5] 1 [0..6] False False Mixed Signal Graph False Mixed Signal Graph ActPlot Chart Chart Plot.Name ActPlot Plot.Name Plot.YScaleIdx True True 1 [0..5] True 2 [0..6] Tabla Ciclo RowHdrs[] Tabla Ciclo RowHdrs[] cabecera 2 16 cabecera 27 Analog input 1 [0..1] 0 [0..3] AO2 1 100 10 1 Increment Scale.Maximum Maximum Scale.Minimum 1 0 Minimum Select False 1 [0..3] consigna False Alarmas salida 16 2 8 16 1 17 19 27 No Error False No Error Error source False 2 [0..5] 0 DO 0 1 DO 1 2 DO 2 3 DO 3 4 5 DO 4 DO 5 6 DO 6 7 DO 7 8 DO 8 4 [0..5] Canal Strings[] cabecera cabecera Canal Strings[] 1 1 5 [0..5] config 0 config 1 16 19 16 2 False 2 [0..3] False 3 [0..6] config 2 16 config 1 33 1 4 [0..6] config a2 config 2 19 33 6 a 6 5 [0..6] config b2 config 3 19 33 6 b 6 6 [0..6] config config 33 1 19 2 4 0 False "Alarmas" True Alarm Limites inferiores Limites superiores Canales Tolerancia permitida Tiempo Modo alarmas cluster Modo A config config L.inf A 50 6 1 1 1 0 0 33 5 L. sup A 1 6 Canales Tol. A 6 T. A 1 False Ciclos True Alarmas False "Prueba" "comp" Enum 2 MA True Actualizar RUN 1 True Disabled auto 100 LISTO dt (ms) STOP MA 0 0 00:00:00,000 DD/MM/YYYY 1 1 Chart History 0 Disabled RUN 0 Disabled Value True máximo Chart ActYScl mínimo Chart YScale.Maximum YScale.Minimum True False reposo False manual 50 dt (ms) Outputs 0 Disabled False False "reposo" Indicador de Modo False True comp Manual Enum 2 MA 0 RUN Disabled Disabled R EC Disabled Actualizar Disabled Outputs STOP 1 Disabled False True Auto "manual", Default 0 [0..1] Boolean AI rec 16 8 2 0 DO rec Boolean 2 Select DI rec 0 AO rec 0 Tabla Ciclo t(s) 19 Digital input 2 Tabla Ciclo aux NumRows RowHdrs[] Value NumRows RowHdrs[] Value 0 0 3 [0..3] output cluster 0 DI 1 Digital input True Mixed Signal Graph Digital input 1 0, D 0 DO 1 Mixed Signal Graph ActPlot Plot.YScaleIdx 0 Digital output Canal String Value 16 15 0 No Selection AO 1 1 [0..2] 0 AI 1 -10 10 ActYScl Analog input 0 Entradas Canal Char Chart 2 Modo A 0 0 StringsAndValues[] Analog output V Bar rpm Hz Nm ºC 0 1 2 3 4 5 YScale.Minimum YScale.Maximum YScale.NameLbl.Text YScale.UnitLabel.Text units String config eje1 0 1 16 16 2 Canales AI eje2 0 4 NumCols Canales DI 8 0 Nombre 2 eje5 String AO2 eje6 -10 Scale.Maximum Maximum Scale.Minimum Minimum Minimum 0,01 Increment Increment String Unidad 0 0 LISTO 10 eje4 String 5 AO1 eje3 String 3 ColHdrs[] ItemNames 0 8 2 Fases 2 String 1 String Scale.Maximum Maximum Scale.Minimum StringsAndValues[] 0 Unidad 2 0 Pagina Progreso -1 0 0 DO rec StringsAndValues[] Tabla Ciclo aux Unidad 1 a a Exportar 0 Tabla Ciclo 0 EditPos BoolText.FontBold 15 0 b 1 1 0 0 0 a2 b2 RUN Unidades In 0 DI rec AI rec Disabled R EC Disabled Disabled Value Actualizar MA Disabled Value Disabled Disabled Unidades Out b Unidad Importar 0 Disabled Unidad StringsAndValues[] 15 AO r ec Disabled 16 Ejes Strings[] BoolText.FontBold a2 0 error Ruta 0 0 Ciclo DO 2 b2 0 600 máximo -20 mínimo Value Progreso Caption.Visible 0 0 DATA Ciclo AO1 path Ciclo AO2 0 Elegir canal Canales reposo Enum Enum 2 15 0 L. sup A Nombre Prueba L.inf A Outputs R 7 Digitales Outputs Tol. A Configuracion Tab Control T. A VI\horas.ini Nombre Fase totales 0 R fase 1 Posición R prueba 0 horas 0, False 0 [0..2] Mixed Signal Graph 0, D Chart 0 16 1 17 2 Plot.Name Plot.YScaleIdx 30 0 XScale.Maximum XScale.Minimum History 0 0 0 [0..3] 2 [0..2] False Mixed Signal Graph 0 Chart Plot.Name ActPlot 1 [0..3] True Mixed Signal Graph 16,5 0,5 YScale.Maximum YScale.Minimum 2 [0..3] Graph vacio Chart Chart ActYScl Mixed Signal Graph Plot.Visible? No Error False error out error in Alarmas Enum alarma Contador 2 15 0 True Outputs True Config Analogicas "Nivel" Activar Radio Buttons 2 Config Analogicas Limites superiores Limites superiores y Warning alarmas cluster True Limites inferiores Alarmas Limites inferiores status source Canales Alarma Canales Tolerancia permitida Tolerancia permitida 15 0 0 Tiempo Contador Tiempo 1000 dt (ms) True Alarma en , Analog input 2 2 Analog input False False 0 "No Selection", Default "Seguimiento" 0, Default 16 1 18 17 2 0,5 4 0, Default 0 17 18 False Error %.1f True String 0 00:00:00,000 DD/MM/YYYY 0 0 0 current time %d/%m/%y %H:%M:%S%1u 0 0 0 AO1 date/time string 0 0 0 AO2 Array 1 0 0 AO array queue in 1 Select 17 0 19 2 Analog array 1 27 AI array Array comprimido 2 size(s) size(s) AO 16 size(s) AI DO array T.muestreo 40 1 size(s) DO 1000 size(s) DI DI array 1 False 1 [0..5] 1 1 0 Array 16 Array 2 Tabla Completa 17 0 2 Array 4 0 0 1 Array Completo Array Headers String 0 [0..5] n n Tabla 1 0 19 False . , True 0 ,0 Tabla Completa 19 0 Datos iguales Actualizar Error Dimensiones iguales Table aux Array AO0 Array Completo Array Array AO1 0 Array 2 0 insertar ArrayDBL Array 4 0 0 0 0 0 0 Array T Array Bits C Array AO0 C Array Bits Insertado 0 0 0 Array Bits U Array AO1 C False True 1 2 [0..5] 0, Array 1 Array Bits C 0 Array 2 ArrayDBL n Array 4 Array T 0 10 Error 1 0 True 0 Error en los tiempos aviso multiple Actualizar 0, 0, False 1 3 [0..5] n ArrayDBL 0 Array AO0 C n ArrayDBL Array AO1 C 1 Array Bits C Array Bits C 1 n Array T n t final 4 [0..5] t final False Array T Array Bits C Array Bits U Array Bits U 0 Array Bits Insertado t final Array T False Array T Array AO0 C t (I) Array AO0 A (I) dA Array AO0 0 a insertar t (I-1) A (I-1) dT t Boolean Index Index2 t final Array T False Array T 0 Array AO1 C Array AO1 Array AO1 True Array AO1 C True Array AO0 C Array AO1 Array AO1 True Array Bits C Array AO0 Array Bits U Array AO0 Array Bits U insertar Array Bits Inse ertado 5 [0..5] Array Bits U Digital Data U 1 Digital Waveform Digital Data C Compress Digital.vi n Representar 1 Error 0 Index 1 contadores aux total i fase 0 Item Names 0, 1 16 2 Array DO C 1 0 0 titulos 1 Tabla Ciclo 2 1 0 0 contadores 1 0 Array T 0 0 dt (ms) 17 2 xf yi1 yf1 dx dy1 n1 dy 2 n2 Array AO C 1 1000 xi yi 2 yf 2 Array 4 update rate tamaños dt (s) True 0 3 indices contadores 0 Array D 1 indices tamaños OK Button Array 5 Repetir Prueba Array DO C 2 Nombre Prueba 0 Nombre Prueba Ciclo AO1 0 0 Ciclo AO1 0 Ciclo AO2 Ciclo AO2 Ciclo DO 0 0 Ciclo DO 15 titulos 0, False 0, 1 False String Array Filas Tabla 0 -1 Array Columnas Array Ciclo 0 1 0 Array headers 1 Tabla RowHdrs[] headers -1 True Tabla 19 0 t(s) NumRows RowHdrs[] error in ¿Tarjeta analógica desconectada? error out source DAQ ERROR No Error data 0 status code source data 4 0 DI Digitales data 0 AI data N y 100 x 100 y2 a a b b Error No Error error out Full String 0 [0..1] 2 Abrir 4 i canal 1 Ensayos Canal config 0 Archivo de configuración 51 0 headers index 0 *.cicle error in Cluste 1 2 16 3 2 4 8 5 Modo 2 1 6 16 names Modo L.inferiores L.superiores Canal Tolerancia Tiempo REC 7 String columnas 8 0 0 1 19 DI 0 0 0 Array 0 String 0 -1, Default 0 0 1 DO names REC 0 1 0 1 2 0 3 4 names 0 AO a b Unidades REC 0 3 0 1 2 0 3 4 0 5 7 Unidades Modo L.inferiores 8 9 Modo 10 11 names a b 6 AI L.superiores Canal Tolerancia Tiempo REC 1 0 0 0 0 0 1 [0..1] True %s %s 0 Tabla Ciclo Nombre del ciclo %s fila 0 Repetir String indices t(s) -1 filas Array Nombre Pru eba 0 1 0 Repetir prueba 1 False Error Item Names 0 [0..1] False rate #Taps number of samples error in (no error) AI data Boolean Filter Topology Filter Type IIR-FIR Lower Cut-Off Order output cluster subFilter.vi #Taps error in (no error) Filter Topology Filter Type IIR/FIR Lower Cut-Off Order output cluster Signals Upper Cut-Off error out filter information Filtered Signals Sine with Uniform Noise Select Signals Signals Signal Out error out error in (no error) Selector Input Signals error out True Array of Waveform Array Spectral Measurements Signals FFT - (Peak) Array 2 Filtered Signal Array 3 FFT Results (Log) FFT Results (Lin) Signal Channel Upper Cut-Off Waveform Chart 10 x/y 10 100 stop True False Frequency Amplitude Noise amplitude Offset Simulate Signal Sine with Uniform Noise error out error in (no error) Noise amplitude Offset Reset Signal Seed Number 0 0 1 [0..1] x-y Signal Y Scale.Range:Maximum YScale.Maximum YScale.Minimum Filtered Signal YScale.Maximum YScale.Minimum Sine with Uniform Noise YScale.Maximum YScale.Minimum Waveform Chart YScale.Maximum YScale.Minimum n 2 size elemento IN OUT 0 0, Default 1 0 4 0 No Error Main While Loop i nput names 0 Input Name Posicion Posicion P o Input Data Type 0 Posicion String maximo Val ue Tabla Ciclo size(s) Message to Display Abrir Maximum Minimum 1 String 2 %s 3 0 Nombre Fase Ensayos 0 error in (no error) 0 *.fase 0 Repetir VI 7 Default Vals.Reinit All fila 0 3 Archivo de configuración Tabla Ciclo 2 RowHdrs[] Cancel OK2 OK1 status Second Button Name Cancel Visible Visible Visible Strings[4] Strings[4] Strings[4] error out VI VI FP.Open FP.Open Cancel status Two Buttons? OK2 Button Name 50 OK OK1 Enabl e App App.UserInterfaceAvailable focus on Posicion KeyFocus Error OK True True False Nombre Prueba False tamaños i True tamaños True ST OP 0 index indices Ciclo DO DO indices Ciclo DO Listo 0 Ciclo AO2 AO 2 Ciclo AO2 Ciclo AO1 AO 1 0 Ciclo AO1 Reset contadores aux 0 0 contadores contadores 0 False False False True True False 0 0 False DO 8-15 DO 0-7 DO 8- DO 0- "reposo", Default 8 8 analogica1 digitales out Outputs R Enum analogicas alarma 0 analogica2 AO data error in stop (T) timeout (sec) error out task out analogicas conv2 a2 OutputsOUT representar "auto" digitales in analogica1 in analogica2 in "manual" Outputs IN data 8 data 0 b2 1 AO2 data error in stop (T) timeout (sec) error out task out True Array comprimido 1 Array size(s) True Array 3 True Select size(s) 2 True 0 Array 2 0 Select 2 False False False size(s) 3 Tabla Ciclo error in size(s) String %s 3 0 Nombre Fase 0 0 Repetir 7 fila 0 0 3 Tabla Ciclo 2 RowHdrs[] error out status fila Nombre Fase Nombre del ciclo 0 Full String Repetir 1 Repetir Array Tabla Ciclo String 2 Tabla Ciclo 2 4 RowHdrs[] error out Abrir Ensayos error in *.fase Archivo de configuración Unidades Indice V 0 0 Array Ylabel Units Array unidades String True 10 True a2 max a2 x+y 10 10 b2 b2 -x+y Rango min a -10 -10 a 10 b b -10 False False No Error 0 [0..1] 16 1 Abrir headers 2 Ensayos error out t(s) 19 en d 0 1 *.cicle config error in Archivo de configuración en d End of Line Constant (prueba sin nombre) Nombre Pru eba Tab Constant Repetir 2 1 [0..1] Tab Constant Item Names fila Nombre Fase Nombre del ciclo 0 Full String Repetir Line Feed Constant 1 Repetir Array Tabla Ciclo String Line Feed Constant 2 2 Tabla Ciclo RowHdrs[] Error 4 End of Line Constant