Está en la página 1de 10

Departamento de Tecnologa Electrnica

Universidad de Mlaga

Introduccin al CVI (Clase 11 Dic 13)


(Un primer instrumento virtual mnimo)

Qu es el CVI? Un entorno de programacin " con diversos complementos para la creacin de instrumentos virtuales# especialmente la creacin de paneles virtuales$ Componentes principales del CVI

!ntorno de pro"ramacin C
!estin de entorno de tra%a&o '(or)space* + de pro+ectos ,erramienta de edicin de programas "# -ic.ero $.# / ,erramientas de depuracin '%reac)points# paso a paso# /* ,erramientas de programacin 'compilacin# %uild# /* 0i%reras clsicas '1nsi "# Utilit+# 2ormating and /I3#/* 0i%reras espec-icas '456232# !7I8# T"7# Internet# /* 0i%reras especiales para mane&o de paneles 'User Inter-ace* 7antalla interactiva para mane&o de li%reras

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

!dicin # creacin de paneles virtuales (!spec$ico de CVI)


,erramienta de edicin de paneles + %arras de men9

%tros
Instrumentos '0i%reras para mane&o de instrumentos espec-icos 1ctive :# I;I# D1<m= tas)# /

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

Creacin de un instrumento virtual


1$ Especi-icacin# creacin + dise>o del panel 2$ 7rograma " de aplicacin 'inclu+endo mane&o del panel* !speci$icacin& creacin ' dise(o del panel En el men9 de 2ile ?e@ User Inter-ace 'A$uir*

"on ello se crea un panel + se entra en el editor de paneles$ En el editor podremos crear ms paneles +/o incorporar elementos en el 'los* mismo's* 8sicamente podremos a>adir dos tipos de elementosB Indicadores 'Elementos para visualiCar valores 'Depsitos# diodos led# te=to# /* "ontroladores 'Elementos para introducir valores '7otencimetros# te=to# conmutadores# /*

De todos los elementos 'paneles# indicadores + controladores* se pueden editar sus propiedades con un do%le clic) en el mismo$ 0as propiedades de cada uno dependern del elemento 'elementos numDricos podrn con-igurarse en rango# tipo de varia%le 'dou%le# -loat# int# /*# valores por de-ecto# /# elementos %ooleanos no tienen tipo de varia%le 'son %oolean* ni rango# / 'slo on/o--*# /

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

Todos tienen una propiedad 380I!1T34I1 E ?E"E514I1 Constant )ame Fue ser el nom%re Fue le identi-icar a la .ora de ser re-erenciado por las -unciones Fue se encargarn de actuar so%re el panel + sus elementos$

Una veC creado un panel + sus componentes + editadas las propiedades de cada elemento 'incluido el "onstant ?ame de T3D35* se guarda con su nom%re 'nom%re$uir* + se incorpora al pro+ecto '2ile 1dd -ic.ero$uir to 7ro&ect*

"uando guardamos un -ic.ero $uir automticamente se crea un -ic.ero de te=to del mismo nom%re + e=tensin $. 'nom%re$.*$ Este -ic.ero contiene una lista de Gde-ine para cada elemento del panel# incluido el propio panel# donde se de-ine cada identi-icacin del elemento asociado a un n9mero 'de 1 en adelante*$ 0a identi-icacin del elemento serB ?om%re de constante del panel H nom%re de constante del elemento 'E&emplosB 71?E01H1IU5TE# 71?E01H0ED# 71?E01H510I4# /*

Este -ic.ero DE8E4J I?"0UI45E 10 "3MIE?K3 del programa " para Fue las -unciones Fue mane&an el panel puedan re-erirse a los elementos del mismo$

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

El -ic.ero $. ser de la -ormaB

Donde se o%serva Fue cada elemento del panel est asociado a un n9mero$ El -ic.ero $. no de%e editarse +a Fue se crea/modi-ica automticamente cada veC Fue se modi-iFue el $uir

7ara incorporar el -ic.ero$. al pro+ecto# como +a est creado# lo a%rimos + lo incorporamos al pro+ecto '2ile 2ic.ero$. to 7ro&ect*

!dicin del pro"rama C ?uevamente# 2ile ?e@ 5ource 'A$c*/

Entraremos en un editor de te=to tpico para edicin de programa " 'deteccin automtica de sentencias# declaraciones# / cam%io de colores# /*

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

*i+reras ' ventana interactiva 1dems de escri%ir el programa " con las -unciones + estructuras clsicas '@.ile# -or# declaracin de varia%les# / * se puede recurrir a las li%reras Fue nos -acilitarn la construccin de las -unciones + sus parmetros a travDs de la ventana interactivaB 5eleccionando una -uncin de la li%rera

5e a%rir la ventana o pantalla interactiva de la misma

En esta pantalla interactiva podemos introducir los parmetros de la -uncin Fue se irn constru+endo en la lnea in-erior$ Una veC construida podemos incluso e&ecutarla individualmente para pro%arla$ 7ara ello se pueden declarar varia%les Fue tam%iDn se pueden insertar en el -ic.ero$c Fue se est editando$ "uando tengamos la -uncin deseada con sus parmetros podemos decirle Fue inclu+a esa lnea en donde .a+amos de&ado el curso en la pantalla de edicin de te=to desde la Fue a%rimos la li%reraB

Esto nos ser mu+ 9til a la .ora de construir las -unciones# recordar su sinta=is# sus parmetros# la posicin de estos/

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica ,ccediendo al panel ' sus controles desde el pro"rama C

Universidad de Mlaga

7ara el mane&o + control de los paneles e=iste una li%rera espec-ica B User Inter$ace

Antes de entrar en el control de paneles procede hacer una aclaracin: El manejo de paneles (interfaz de usuario) puede hacerse de dos modos diferentes: Por acceso desde funciones del programa. (El programa controla todos los eventos y evolucin de las acciones a realizar.) Por Call ac! El primer modo ser" el #ue se utilizar" en este primer tutorial de manejo "sico de paneles. El modo Call ac! consiste$ "sicamente$ en #ue$ en el panel$ se puede asociar a cada elemento (tipo hot) una funcin especial propia del mismo. (% s&rvese$ en las propiedades de los elementos en el editor de uir$ de ajo del Constant 'ame se puede indicar el nom re de una funcin Call ac!. En nuestro caso no hemos puesto nada por#ue no vamos a usar este sistema de control). (i se opta por este modo$ el programa principal se reduce a cargar el panel$ visualizarlo y ejecutar una funcin especial denomidada )un*ser+nterface ()$ momento a partir del cual cedemos el control del programa a la misma. El funcionamiento general consistir" en #ue cada vez #ue un usuario provo#ue un evento actuando so re alg,n elemento hot$ se ejecutar" la funcin respectiva. (% viamente de en de e-istir la declaracin y definicin de las funciones respectivas). Estas funciones tienen tam i&n una declaracin especial. En el directorio .directorio del C/+ samples userint0 se puede encontrar un ejemplo "sico de este modo de funcionamiento. (call ac!.c1s)

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica

Universidad de Mlaga

En este tutorial %sico utiliCaremos el modo control por programa$ E=isten inconta%les -unciones para el mane&o de los paneles# controles# pop6pups# / pero vamos a empeCar con el mnimo necesario$ Este mnimo consistir en los siguientes conceptosB A "argar un panel guardado '0oad7anel* 'aFuDl Fue previamente editamos + guardamos con el editor de uir$ TDngase en cuenta Fue podemos tener varios -ic.eros + paneles creados +# en un programa dado cargar aFuDl o aFuellos Fue nos interesen$ 0a carga del panel no tiene ms e-ecto Fue su apertura en el disco$ 5i al cargarlo se produce un error 'el -ic.ero llamado no est# tiene error# en Dl no e=iste el panel llamado# /* nos devolver un n9mero negativo correspondiente al error producido$ Es conveniente analiCar este valor devuelto porFue si es negativo no .a+ Fue seguir el programa +a Fue no .a+ panel cargado so%re el Fue actuar/ 5i la carga se produce sin error la -uncin nos devolver el identi-icador del panel cargado 'el n9mero correspondiente Fue vemos en -ic.ero$. Fue se cre*$ Este valor nos servir para re-erirnos al panel en las siguientes -unciones de acceso al mismo$ En nuestros e&emplos de clase esta varia%le ser LpanelM$ "uando +a no utilicemos un determinado panel# podemos recurrir a la -uncin complementaria de descargar el panel para li%erar recursos$ 'Discard7anel* A Visuali-ar un panel 'Displa+7anel*$ Esta -uncin s Fue tiene por e-ecto Fue# cuando la invoFuemos# se presentar en pantalla el panel correspondiente$ 1s mismo# el panel presentado ser operativo para el usuario 'el mismo podr interactuar con Dl*$ Tendremos tam%iDn una -uncin para ocultar paneles ',ide7anel* si en un momento dado Fueremos ocultarlo$ 5e pueden visualiCar/ocultar varios paneles simultneamente durante la e&ecucin del programa$ A *eer el valor de un control del panel '!et"trl;al*$ ?os permitir adFuirir el valor Fue tenga un elemento 'tipo control* del panel$ A !scri+ir un valor en un indicador del panel '5et"trl;al*$ ?os permitir darle valor a un elemento indicador del panel$ Este elemento visualiCar dic.o valor 'por e&emplo si es un led podremos apagarlo/encenderlo 'varia%le %ooleana# le pasaremos 1 o 0*# si es un depsito podremos esta%lecerle un valor Fue se mostrar en su nivel pasndole el valor deseado 'dentro de su rango + tipo '-loat# dou%le# /* A .odi$icar atri+utos de los elementos del panel '5et"trl1ttri%ute*$ "on este comando podremos cam%iar dinmicamente# durante la e&ecucin del programa# atri%utos de los controles 'propiedades como in.i%irlo/activarlo# colores# parpadeo# /* A 2inalmente# tendremos la -uncin !etUserEvent Fue nos permitir conocer si se /an producido eventos en el panel durante su e&ecucin 'Fue el usuario .a+a actuado so%re alg9n control .ot*$ Esta -uncin nos devolver el identi-icador del elemento so%re el Fue se .a actuado + el del panel correspondiente$ 7ara ello le pasaremos por re-erencia las direcciones de dos varia%les nuestras donde nos de&ar dic.os datos$ 'En nuestro e&emplo de clase son las varia%le id + .andler* ?otaB 0a ventana interactiva de las -unciones del inter-aC de usuario nos permitir acceder directamente a los
parmetros sin tener Fue recordarlos en un momento dado$ 7ara ello# al colocarnos en la casilla del parmetro Fue no recordamos# si le damos al Lcarr+ returnM en %lanco# nos saldr un desplega%le con las opciones$

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica !0emplo +1sico

Universidad de Mlaga

El siguiente es un e&emplo mu+ %sico pero Fue contempla las principales -unciones mencionadasB "rearemos un instrumento Fue consistir en un control 'potencimetro 'dial** + en un depsito en el Fue visualiCaremos el valor Fue el usuario -i&e so%re el potencimetro$ 2asos "rear un @or)space nuevo En Dl# crear un pro+ecto nuevo 'o renom%rar el Fue aparece por de-ecto 'untitled* "rear un -ic.ero nuevo $uir donde incorporaremos un control 'dial*# un indicador 'depsito* + un %otn de comando para salir$ "on-igurar todos los elementos creados sin olvidar darle a cada uno su constant name$ 'se conviene utiliCar ma+9sculas# aunFue no es o%ligatorio# pero no olvidemos Fue son etiFuetas# no constantes*$ Una veC creado# darle nom%re# guardarlo e incorporarlo al pro+ecto$ 1l guardarlo se .a creado automticamente el -ic.ero $. respectivo$ Incorporar el -ic.ero $. al pro+ecto e incluirlo en la ca%ecera del -ic.ero $c principal$ "rear el -ic.ero $c principal Fue se encargar del control del panel$ En nuestro caso este control consistir en cargar el panel# visualiCarlo + entrar en un %ucle donde leeremos el dial + pasaremos su valor directamente al depsito$ El programa saldr del %ucle + -inaliCar cuando pulsemos el %otn de salida$ Darle nom%re al -ic.ero $c e incorporarlo al pro+ecto$ E&ecutarlo$ 7anel e&emploB

2ic.ero $. creado automticamente al guardar el panel $uir

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica

Departamento de Tecnologa Electrnica 2ic.ero $c de control

Universidad de Mlaga

"on este primer pro+ecto .a%remos utiliCado las -unciones mnimas para crear# depurar + e&ecutar un instrumento virtual %sico$

'El contenido de este tutorial es el correspondiente a la clase del 11 de diciem%re + servir de %ase para sucesivas clases$ En la pr=ima sesin de grupo reducido se realiCar una prctica relacionada$*

Instrumentacin Electrnica

2013/201

!raduado en Ingeniera Electrnica