practica 7. bus gpib: control remoto´ de equipos de ...fbarrero/lie/pract7.pdf · practica 7. bus...

24
PR ´ ACTICA 7. BUS GPIB: CONTROL REMOTO DE EQUIPOS DE INSTRUMENTACI ´ ON 1 Objetivo. En esta pr´ actica se va a analizar la posibilidad de trabajar con instru- mentaci´ on de laboratorio en modo remoto, controlando a los equipos desde un PC. Para ello, se va a estudiar el protocolo GPIB (Global Pur- pose Interface Bus) y se va dise˜ nar un programa en Visual Basic para controlar, mediante una tarjeta GPIB un osciloscopio Philips PM3375. Posteriormente se visualizar´ a el protocolo GPIB observando, mediante el analizador l´ ogico Tektronix–1230, la comunicaci´ on que se establece entre la tarjeta GPIB y el osciloscopio. 2 Introducci ´ on. En este apartado se describen, someramente, el funcionamiento del protocolo GPIB, los comandos b´ asicos soportados por el osciloscopio y la programaci´ on en Visual Basic con los que se va a trabajar. 2.1 Protocolo GPIB 2.1.1 Introducci ´ on al protocolo GPIB El est ´ andar de ANSI/IEEE 488, tambi´ en conocido como GPIB, describe un interfaz est´ andar de comunicaciones entre instrumentos y contro- ladores de distintos fabricantes. Contiene informaci´ on acerca de especi- ficaciones el´ ectricas, mec´ anicas y funcionales. GPIB es una interfaz de comunicaciones de 8 bits en paralelo con tasas binarias de un 1 Mbyte y superiores. El bus soporta un Sistema Controlador, generalmente un ordenador, y hasta 14 instrumentos conectados a ´ el. 1

Upload: others

Post on 14-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

PRACTICA 7. BUS GPIB: CONTROL REMOTO

DE EQUIPOS DE INSTRUMENTACION

1 Objetivo.

En esta practica se va a analizar la posibilidad de trabajar con instru-mentacion de laboratorio en modo remoto, controlando a los equiposdesde un PC. Para ello, se va a estudiar el protocolo GPIB (Global Pur-pose Interface Bus) y se va disenar un programa en Visual Basic paracontrolar, mediante una tarjeta GPIB un osciloscopio Philips PM3375.Posteriormente se visualizara el protocolo GPIB observando, medianteel analizador logico Tektronix–1230, la comunicacion que se estableceentre la tarjeta GPIB y el osciloscopio.

2 Introduccion.

En este apartado se describen, someramente, el funcionamiento delprotocolo GPIB, los comandos basicos soportados por el osciloscopio yla programacion en Visual Basic con los que se va a trabajar.

2.1 Protocolo GPIB

2.1.1 Introduccion al protocolo GPIB

El estandar de ANSI/IEEE 488, tambien conocido como GPIB, describeun interfaz estandar de comunicaciones entre instrumentos y contro-ladores de distintos fabricantes. Contiene informacion acerca de especi-ficaciones electricas, mecanicas y funcionales. GPIB es una interfaz decomunicaciones de 8 bits en paralelo con tasas binarias de un 1 Mbytey superiores. El bus soporta un Sistema Controlador, generalmente unordenador, y hasta 14 instrumentos conectados a el.

1

Page 2: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

2.1.2 Talkers, Listeners y Controllers

Los dispositivos GPIB pueden ser “talkers” (dispositivos que hablan),“listeners” (dispositivos que escuchan) o “controllers” (dispositivos con-troladores del bus). Un Talker es un dispositivo capaz de enviar men-sajes de datos por el bus GPIB, el Listener es el dispositivo capaz derecibir los mensajes de datos que circulan por el bus GPIB y el Con-troller es el dispositivo que gestiona el flujo de informacion por el bus,define los enlaces de comunicacion y envıa comandos GPIB a los dis-positivos.Algunos dispositivos pueden ser Listener y Talker a la vez. Una tarjetade control GPIB (como las comerciales que existen) permiten al PC fun-cionar como Listener, Talker o Controller en el bus GPIB. En el caso dehaber varios Controllers conectados al mismo bus GPIB, solo uno podraser el CIC (Controller In Charge) o controlador a cargo de la gestion delbus.

2.1.3 Direccionamiento GPIB

A cada dispositivo GPIB debe asignarsele una direccion exclusiva den-tro del bus GPIB. Las direcciones GPIB constan de dos partes, unadireccion primaria (DP) y una direccion secundaria (DS).DP debe ser un numero entero comprendido entre 0 y 30. El Con-troller usa esta direccion para seleccionar a un dispositivo conectadoal bus GPIB en modo “talker” o “listener”. La activacion de un dispos-itivo conectado al bus GPIB en modo talker se hece activando el bit 6(TA:Talk Active) de un byte de control que incluya (bits 0 al 4) la di-reccion GPIB del dispositivo. La activacion de un dispositivo conectadoal bus GPIB en modo listener se forma activando el bit 5 (LA:ListenActive) de un byte de control que incluya (bits 0 al 4) la direccion GPIBdel dispositivo:Bit 7: 0Bit 6: TABit 5: LABits 0-4: Direccion primaria del dispositivo GPIB (0-30)

2

Page 3: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

2.1.4 Mensajes GPIB

Los dispositivos conectados al bus, se comunican enviandose mensajes.Para ello se dispone de un cable con 16 lıneas de senal y 8 de tierra.Las lıneas de senal se agrupan en:

1. 8 lıneas de datos. Se nombran DIO1 a DIO8 y se utilizan en latransferencia de datos o comandos.

2. 3 lıneas de control que implementan un protocolo de acuse derecibo (HANDSHAKE) para la gestion de la transferencia asıncronade los datos o comandos. Este protocolo garantiza la transmision,sin error, de los mensajes entre dispositivos:

� NRFD. Not Ready For Data. Senal impuesta por el listener.Indica cuando el dispositivo esta listo para recibir nuevosdatos.

� NDAC. Not Data ACcepted. Senal impuesta por el listener.Indica cuando el dispositivo ha recibido un dato transmitido.

� DAV: DAta Valid. Senal impuesta por el talker. Sirve paraindicar cuando se ha impuesto un dato valido en las lıneasDIO1 a DIO8.

3. 5 lıneas de control del flujo de informacion por el bus: ATN, IFC,REN (que son enviadas, exclusivamente, por el controller), SRQ yEOI.

� ATN: ATteNtion. Cuando vale 1, el controller indica que seestan enviando comandos y, cuando vale 0, que se estan en-viando datos.

� IFC: InterFace Clear. Sirve para inicializar el bus. El dispos-itivo que genera esta senal se pone como CIC.

� REN: Remote ENable. Poner a los dispositivos en modo localo remoto.

� SRQ: Service ReQuest. Cualquier dispositivo la activa para,de forma asıncrona, solicitar servicios del Controller.

� EOI: End Or Identify. El Talker la utiliza para senalar elfinal del mensaje. Cuando la usa el Controlador es para hacerun sondeo paralelo (solicitando identificaciones).

3

Page 4: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

2.2 Comandos basicos para el manejo GPIB del Os-ciloscopio PM3375

El estandar GPIB define una serie de comandos basicos que deben sersoportados por TODOS los dispositivos que se conecten mediante estanorma. Ademas de estos, algunos dispositivos pueden, tambien, teneralgunos comandos especiales soportados. A modo de ejemplo, un oscilo-scopio puede tener funciones referentes a la representacion bidimen-sional (pantalla del osciloscopio) que puede no tener un generador deonda.En este punto hay que decir que existe una diferencia entre los coman-dos que mandamos desde el programa de usuario (Visual Basic) a latarjeta del PC y los comandos que la tarjeta GPIB manda a traves delbus GPIB. En este apartado estudiamos unicamente los comandos quecircularan por el bus GPIB. Estos comandos los manda el Controller,que tambien recibira las respuestas (en forma de mensajes) por partede los dispositivos implicados (osciloscopio). En el apartado siguiente,referente a Visual Basic, haremos referencia a como ordenar a la tar-jeta (Controller) que envıe los comandos al dispositivo (osciloscopio).Para comunicarse el controlador con el osciloscopio (u otro dispositivo)o en el otro sentido, se utiliza lo que se denomina “Message Record”(MR). El MR es una agrupacion de “Message Units” (MU). Cada MUconsta de Cabecera y de Cuerpo. Los MU pueden ir agrupados en elMR (separados entre sı por “separadores”).Aquı se muestran algunas de las funciones mas comunes del protocoloNI-488. La lista completa de las funciones se muestra en las fotocopiasanexas a esta memoria:

1. Funciones a nivel de DISPOSITIVOS:

� ibclr. Resetea un dispositivo especıfico.

� ibdev. Abre e inicializa un dispositivo.

� ibloc. Pasa a modo local.

� ibwait. Espera a eventos GPIB.

� ibwrt. Escribe datos en un dispositivo desde el buffer deusuario.

2. Funciones a nivel de TARJETAS.

4

Page 5: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

� ibcac. Pasa a Controler activo.

� ibcmd. Manda comandos GPIB.

� ibfind. Abre e inicializa una tarjeta GPIB

� ibloc. Pasa a modo local.

� ibpad. Cambia la direccion primaria.

� ibrd. Lee datos de un dispositivo a un buffer de usuario.

� ibwait. Espera a eventos GPIB.

� ibwrt. Escribe datos en un dispositivo desde el buffer deusuario.

Para dar ordenes al osciloscopio utilizaremos la Funcion ibwrt (escribirdatos en un dispositivo).En la figura 1 se anticipa un diagrama en el que se representa la jer-arquıa de funciones que se explica a continuacion.

Figure 1: Arbol de funciones del osciloscopio.

Las ordenes que pueden darse al osciloscopio Philips se agrupan en dos“Super-Funciones” (SF): FRO y REG.

1. FRO: Hace referencia al panel frontal del osciloscopio.

� FRO ?. Solicita activar el frontal. Respuestas: FRO 0 o REGX.

5

Page 6: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

� FRO 0. Seleciona el panel frontal.

� FRO OFF. De-selecciona el frontal (=REG 0).

2. REG: Hace referencia a los registros del osciloscopio.

� REG ?. Solicita activar el frontal. Respuestas: FRO 0 o REGX.

� REG X. Seleciona el registro (0, 1, 2, 3).

� REG OFF. De-selecciona el modo de registro (=FRO 0).

Cada una de estas dos SF tiene definidas una serie de “Funciones-Principales” (FP):

1. Para FRO:

� VER: Relacionada con el selector vertical (i.e. voltios/division).

� HOR: Relacionada con el selector horizontal (i.e. tiempo/division).

� MSC: Funciones varias del panel frontal.

� SPL: Funciones especiales. Relacionadas principalmente conel funcionamiento en modo digital del osciloscopio (cursores,. . . ).

2. Para REG:

� VER: Relacionada con el registro del selector vertical (i.e.voltios/division).

� HOR: Relacionada con el registro del selector horizontal (i.e.tiempo/division).

� MSC: Funciones varias para registros del panel frontal.

� SPL: Funciones especiales. Relacionadas principalmente conel funcionamiento en modo digital del osciloscopio (cursores,. . . ) accediendo a los registros.

A su vez, las FP tienen sus opciones, denominadas “Funciones-Bajas”(FB). Aquı se van a exponer algunas como ejemplo. La lista completade las SF, FP y FB, con sus argumentos y opciones, se detallan en lasfotocopias adjuntas.

6

Page 7: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

1. Funciones-Bajas de la FP-VER:

� ATT: Selecciona la sensibilidad de entrada (2mV/div, . . . 10v/div).

� CPL: Indica si el canal esta acoplado en DC o AC.

2. Funciones-Bajas de la FP-HOR:

� TIM: Selecciona la base de tiempos (20nS/div, . . . 50s/div).

� SET: Funcion de AUTOSET (boton verde del osciloscopio).

� TRG: Funcion para el control del trigger.

� TSL: Flanco de subida o bajada del trigger.

3. Funciones-Bajas de la FP-MSC:

� SET: Funcion de AUTOSET (boton verde del osciloscopio).

� MEM: Almacenamiento digital.

� LCK: Bloqueo de la memoria principal.

� XPOS: Funcion para la posicion del comienzo de la repre-sentacion en el eje X.

Ejemplo: Ordenarle al osciloscopio que realize el trigger con el flancode subida. Para ello sera necesario enviar un mensaje ibwrt. Losparametros deben incluir una SF, una FP y una FB, todas con los argu-mentos adecuados. En conclusion, se enviara el mensaje: ibwrt(dirGPIBoscil,“FRO 0, HOR MTB, TSL POS,”). Como se puede observar en este ejem-plo, para llegar hasta un comando es necesario recorrer el arbol com-pleto de la jerarquıa: SUPER-FUNCION (FRO), FUNCION-PRINCIPAL(HOR) y, finalmente, FUNCION-BAJA (TSL).

2.3 Visual Basic

2.3.1 Introduccion a Visual Basic

La palabra “Visual” hace referencia al metodo que se utiliza para crearla interfaz grafica de usuario (GUI). En lugar de escribir numerosaslıneas de codigo para describir la apariencia y la ubicacion de los ele-mentos de la interfaz, simplemente se puede arrastrar y colocar objetos

7

Page 8: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

prefabricados en su lugar dentro de la pantalla. Si se ha utilizado al-guna vez un programa de dibujo como Paint, ya se tienen la mayorparte de las habilidades necesarias para crear una interfaz de usuarioefectiva.La palabra “Basic” hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code), un lenguaje utilizado por mas pro-gramadores que ningun otro lenguaje en la historia de la informaticao computacion. Visual Basic ha evolucionado a partir del lenguaje BA-SIC original y ahora contiene centenares de instrucciones, funciones ypalabras clave, muchas de las cuales estan directamente relacionadascon la interfaz grafica de Windows. Los principiantes pueden crearaplicaciones utiles con solo aprender unas pocas palabras clave, pero,al mismo tiempo, la eficacia del lenguaje permite a los profesionalesacometer cualquier objetivo que pueda alcanzarse mediante cualquierotro lenguaje de programacion de Windows. El lenguaje de progra-macion Visual Basic no es exclusivo de Visual Basic. La Edicion paraaplicaciones del sistema de programacion de Visual Basic, incluida enMicrosoft Excel, Microsoft Access y muchas otras aplicaciones Win-dows, utilizan el mismo lenguaje. La aplicacion terminada es un autenticoarchivo .exe que utiliza una biblioteca de vınculos dinamicos (DLL) detiempo de ejecucion que puede distribuir con toda libertad.

2.3.2 Elementos de Visual Basic

El entorno integrado de desarrollo de Visual Basic (IDE) consta de lossiguientes elementos:

1. Barra de menus: Presenta los comandos que se usan para tra-bajar con Visual Basic. Ademas de los menus estandar (Archivo,Edicion, Ver, Ventana y Ayuda) se proporcionan otros menus paratener acceso a funciones especıficas de programacion como Proyecto,Formato o Depuracion.

2. Menus contextuales: Contienen accesos directos a acciones que serealizan con frecuencia. Para abrir un menu contextual, haga cliccon el boton secundario del mouse en el objeto que esta usando. Lalista especıfica de opciones disponibles en el menu contextual de-pende de la parte del entorno en la que se hace clic con el boton se-cundario del mouse. Por ejemplo, el menu contextual que aparece

8

Page 9: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

cuando hace clic con el boton secundario del mouse en el cuadrode herramientas le permite mostrar el cuadro de dialogo Compo-nentes, ocultar el cuadro de herramientas, acoplar o desacoplarel cuadro de herramientas, o agregar una ficha personalizada alcuadro de herramientas.

3. Barras de herramientas: Proporcionan un rapido acceso a loscomandos usados normalmente en el entorno de programacion.Seleccionando un boton de la barra de herramientas se lleva acabo la accion que representa ese boton. De forma predetermi-nada, al iniciar Visual Basic, se presenta la barra de herramien-tas estandar. Es posible activar o desactivar otras barras de her-ramientas adicionales para modificar, disenar formularios desdeel comando Barras de herramientas del menu Ver.

4. Cuadro de herramientas: Proporciona un conjunto de herramien-tas que se puede usar durante el diseno para colocar controlesen un formulario. Ademas del diseno del cuadro de herramien-tas predeterminado, se puede crear un diseno personalizado si seselecciona “agregar” ficha en el menu contextual y se agregan con-troles a la ficha resultante.

5. Ventana Explorador de proyectos: Enumera los formularios y modulosdel proyecto actual. Un proyecto es la coleccion de archivos que seusan para generar una aplicacion.

6. Ventana Propiedades: Enumera los valores de las propiedadesdel control o formulario seleccionado. Una propiedad es una car-acterıstica de un objeto, como su tamano, tıtulo o color.

7. Examinador de objeto: Enumera los objetos disponibles que sepueden usar en su proyecto y proporciona una manera rapida dedesplazarse a traves del codigo. Se puede usar el Examinador deobjetos para explorar objetos en Visual Basic y otras aplicaciones,ver que metodos y propiedades estan disponibles para esos objetosy pegar codigo de procedimientos en una aplicacion.

8. Disenador de formularios: Funciona como una ventana en la quese personaliza el diseno de la interfaz de una aplicacion. Se puedenagregar controles, graficos e imagenes a un formulario para crear

9

Page 10: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

la apariencia que se desee. Cada formulario de una aplicaciontiene su propia ventana disenador de formulario.

9. Ventana Editor de codigo: Funciona como un editor para escribirel codigo de la aplicacion. Se crea una ventana editor de codigodiferente para cada formulario o modulo del codigo de la apli-cacion.

Figure 2: Elementos de Visual Basic.

2.3.3 Primera aplicacion

Hay tres pasos principales para crear una aplicacion en Visual Basic:

1. Crear la interfaz.

2. Establecer propiedades.

3. Escribir el codigo.

10

Page 11: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Para ver como se crea una aplicacion con Visual Basic vamos a crearuna aplicacion sencilla formada por un cuadro de texto y un boton decomando. Cuando se seleccione el boton de comando aparecera el men-saje “Hola, mundo” en el cuadro de texto.

1. Creacion de la interfaz. Los formularios son la base para crearla interfaz de una aplicacion. Se pueden usar formularios paraagregar ventanas y cuadros de dialogo a la aplicacion. Tambiense pueden usar como contenedores de elementos que no son partevisible de la interfaz de la aplicacion (por ejemplo, se puede tenerun formulario en una aplicacion que sirva como contenedor paragraficos que se quieran presentar en otros formularios). El primerpaso para generar una aplicacion de Visual Basic consiste en crearlos formularios que van a ser la base de la interfaz de la apli-cacion. Despues, se dibujan los objetos que van a componer lainterfaz en los formularios que se han creado. Para esta primeraaplicacion, usaremos dos controles del cuadro de herramientas:Boton Control, Cuadro de texto y Boton de comando.

Para dibujar un control mediante el cuadro de herramientas:

� Seleccionar la herramienta del control que se ha elegido dibu-jar (en este caso el cuadro de texto).

� Mover el puntero dentro del formulario. El puntero adoptarala forma de cruz, como se muestra en la figura 3.

� Colocar la cruz donde quiera que aparezca la esquina supe-rior izquierda del control.

� Arrastrar la cruz hasta que el control tenga el tamano de-seado (arrastrar significa mantener presionado el boton pri-mario del mouse mientras mueve un objeto con el mouse).

� Soltar el boton del raton. El control aparecera en el formula-rio.

Otra forma sencilla de agregar un control a un formulario es hacerdoble clic en el boton de ese control en el cuadro de herramientas.Esto crea un control con un tamano predeterminado situado en elcentro del formulario. Posteriormente, es posible mover el controla otra ubicacion del formulario. Observese que, en las esquinas

11

Page 12: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Figure 3: Dibujar un cuadro de texto con el cuadro de herramientas.

del control, aparecen unos pequenos cuadros rectangulares (lla-mados controladores de tamano). En el siguiente paso se usaranestos controladores para cambiar el tamano del control. Tambiense puede usar el raton, el teclado y comandos de menu para movercontroles, bloquear y desbloquear la posicion de los controles yajustar sus posiciones.

� Para cambiar el tamano de un control:

– Seleccionar el control que se desee cambiar de tamano.Apareceran en el control los controladores de tamano.

– Situar el puntero del raton en un controlador de tamanoy arrastrarlo hasta que el control tenga el tamano de-seado. Los controladores de las esquinas cambiaran eltamano de controles horizontal y verticalmente, mien-tras que los controladores de los lados cambiaran el tamanosolo en una direccion.

– Soltar el boton del raton. Otra forma de cambiar el tamano

12

Page 13: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

es emplear la tecla MAYUSCULAS junto con las teclasde direccion para cambiar el tamano del control selec-cionado.

� Mover un control. Usar el raton para arrastrar el control aotra ubicacion del formulario o bien, usar la ventana Propiedadespara cambiar las propiedades Top y Left. Cuando se ha se-leccionado un control, es posible usar la tecla CTRL junto conlas teclas de direccion para desplazar el control una unidadde la cuadrıcula cada vez que se pulse la tecla de direccion. Sila cuadrıcula esta desactivada, el control se mueve un pıxelcada vez.

� Bloquear la posicion de todos los controles. En el menu For-mato, seleccionar Bloquear controles (o bien seleccionar elboton Alternar bloqueo de controles de la barra de herramien-tas Editor de formularios). Esto bloqueara todos los controlesdel formulario en sus posiciones actuales, de forma que no lospodra mover accidentalmente una vez que esten en la ubi-cacion deseada. Se bloquearan los controles solo en el formu-lario seleccionado (los controles de otros formularios no seven afectados). Este comando se puede usar, tambien, paradesbloquear las posiciones de los controles.

� Ajustar la posicion de controles bloqueados. Es posible ar-rastrar el control que tiene el enfoque si se presiona la teclaCTRL y la tecla de direccion adecuada o bien se pueden cam-biar las propiedades Top y Left del control en la ventanaPropiedades.

Ya se dispone de la interfaz de la aplicacion “Hola, mundo”, comose muestra en la figura 4.

2. Establecimiento de propiedades. El siguiente paso consiste enestablecer las propiedades de los objetos que se han creado. Laventana Propiedades (figura 5) proporciona una manera facil deestablecer las propiedades de todos los objetos de un formulario.Para abrir la ventana Propiedades, seleccionar el comando Ven-tana (propiedades del menu Ver), seleccionar el boton Ventana(propiedades de la barra de herramientas) o utilizar el menu con-textual del control.

13

Page 14: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Figure 4: La interfaz de la aplicacion ”Hola, mundo!”.

La ventana Propiedades consta de los siguientes elementos:

� Cuadro del objeto: Presenta el nombre del objeto. Mediantela flecha situada a la derecha del cuadro Objeto se puede pre-sentar la lista de objetos del formulario actual.

� Fichas de orden: Permite seleccionar entre una lista alfabeticade propiedades o una vista jerarquica dividida en categorıaslogicas, como las que tratan de la apariencia, fuentes o posicion.

� Lista de propiedades: La columna de la izquierda presentatodas las propiedades del objeto seleccionado. Es posible mod-ificar y ver los valores en la columna de la derecha.

Para establecer propiedades desde la ventana Propiedades:

� Abrir la ventana de propiedades del formulario o control se-leccionado.

14

Page 15: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Figure 5: La ventana de propiedades.

� En la lista Propiedades, seleccionar el nombre de una propiedad.

� En la columna de la derecha, escribir o seleccionar el nuevovalor de la propiedad. Las propiedades enumeradas tienenuna lista predefinida de valores. Es posible presentar la listasi se presiona la flecha hacia abajo que hay a la derecha delcuadro Valores o puede recorrer la lista haciendo doble clicen un elemento de la lista.

En el ejemplo “Hola, mundo” es necesario cambiar los valores detres propiedades. El resto de propiedades se dejara al valor pre-determinado.

Establecimiento de la propiedad Icon. Todos los formularios en Vi-sual Basic tienen un icono generico predeterminado que aparece

15

Page 16: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Objeto Propiedad ValorForm Caption Hola Mundo

TextBox Text (Vacıo)CommandButton Caption Aceptar

Table 1: Establecimiento de las propiedades.

cuando se minimiza el formulario. Es posible cambiar este iconopor otro. Para asignar un icono a un formulario, establecer lapropiedad Icon para el formulario en cuestion. Sera posible uti-lizar iconos de 32 x 32 pıxeles que eran estandar en las versionesde Microsoft Windows de 16 bits y que se utilizan tambien enWindows 95 y Windows NT, ası como los iconos de 16 x 16 pıxelesempleados en Windows 95.

3. Escritura de codigo. La ventana Editor de codigo es el lugar dondese escribe el codigo de Visual Basic para la aplicacion que se estedisenando. El codigo consta de instrucciones del lenguaje, con-stantes y declaraciones. Mediante la ventana Editor de codigo sepuede ver y modificar rapidamente el codigo de la aplicacion.

Para abrir la ventana Codigo, seleccionar el formulario o el controlpara el que se desea escribir codigo o bien, en la ventana Explo-rador de proyectos, seleccionar el nombre de un formulario o unmodulo y escoger la opcion Ver codigo. La figura 6 muestra laventana Editor de codigo que aparece. Sera posible seleccionarla presentacion de todos los procedimientos en la misma ventanaCodigo o presentar un unico procedimiento cada vez.

� Para presentar todos los procedimientos en la misma ven-tana Codigo, seleccionar, en el menu Herramientas, Opciones.Posteriormente, en la ficha Editor, del cuadro de dialogo Op-ciones, activar la casilla de verificacion situada a la izquierdade Vista completa predeterminada del modulo (agrega o quitauna lınea separadora entre los procedimientos) o bien ac-tivar el boton Ver modulo completo, en la esquina inferiorizquierda de la ventana Editor de codigo.

16

Page 17: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Figure 6: La ventana Editor de codigo.

� Para presentar un unico procedimiento cada vez en la ven-tana Codigo, seleccionar, en el menu Herramientas, Opciones.Posteriormente, en la ficha Editor, del cuadro de dialogo Op-ciones, desactivar la casilla de verificacion o bien activar elboton Ver procedimiento, en la esquina inferior izquierda dela ventana Editor de codigo.

La ventana Codigo incluye los siguientes elementos:

� Cuadro de lista Objeto: Presenta el nombre del objeto selec-cionado. Haga clic en la flecha de la derecha del cuadro delista para presentar una lista de todos los objetos asociadoscon el formulario.

� Cuadro de lista Procedimiento: Enumera los procedimientoso eventos de un objeto. El cuadro presenta el nombre del pro-cedimiento seleccionado, en este caso Click. Elija la flechaque hay a la derecha del cuadro para presentar todos los pro-cedimientos del objeto.

Creacion de procedimientos de evento. El codigo en unaaplicacion de Visual Basic se divide en bloques menores llama-

17

Page 18: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

dos procedimientos. Un procedimiento de evento, como los quese crearan aquı, contiene codigo que se ejecuta cuando se pro-duce un evento (como cuando un usuario hace clic en un botondel raton). Un procedimiento de evento de un control combina elnombre real del control (especificado en la propiedad Name), uncaracter de subrayado y el nombre del evento. Por ejemplo, si sequiere que un boton de comando, llamado Command1, invoque unprocedimiento de evento cuando se haga clic en boton, utilizar elprocedimiento Command1 Click.

Para crear un procedimiento de evento, primero es necesario se-leccionar, en el cuadro de lista Objeto, el nombre de un objeto delformulario activo (el formulario activo es el formulario que ac-tualmente tiene el enfoque), en el ejemplo que se esta realizando,escoger el boton de comando Command1. Despues, en el cuadrode lista Procedimiento, seleccionar el nombre de un evento delobjeto seleccionado (en este caso, el procedimiento Click ya estaseleccionado puesto que es el procedimiento predeterminado paraun boton de comando). Como consecuencia de la accion anterior,se presenta en la ventana Codigo una plantilla para el proced-imiento de evento. Finalmente, y entre las instrucciones Suby End Sub, se escriba el siguiente codigo: Text1.Text = “Hola,mundo”.

El procedimiento de evento deberıa parecerse a este:

Private Sub Command1 Click () Text1.Text = “Hola, mundo” EndSub

Observese que aquı el codigo simplemente cambia la propiedadText del control llamado Text1 para que sea “Hola, mundo”. Lasintaxis de este ejemplo tiene el formato objeto.propiedad, dondeText1 es el objeto y Text la propiedad. Es posible utilizar estasintaxis para cambiar los valores de las propiedades de cualquierformulario o control como respuesta a los eventos que se producenmientras se ejecuta su aplicacion.

Finalmente, veamos como se ejecuta la aplicacion. Para ejecutarla aplicacion, seleccionar la opcion Iniciar en el menu Ejecutar, selec-cionar el boton Iniciar de la barra de herramientas o presionar la tecla

18

Page 19: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

F5. Al presionar el boton de comando que se ha creado en el formulario,debe aparecer el texto “Hola, mundo” en el cuadro de texto.

2.3.4 Sintaxis basica en Visual Basic

1. COMENTARIOS. Los comentarios se pueden poner detras de remo del caracter ’. Por ejemplo: “rem Esto es un comentario” o “ ’ Estotambien”

2. DECLARACION DE VARIABLES. El mnemonico Dim se empleapara declarar variables y les asigna espacio en memoria. Porejemplo: “Dim dir% ’En dir% se guarda una direccion GPIB asig-nada.

3. LLAMADAS A FUNCIONES. “Call funcion(argumentos)”. Los ar-gumentos pueden ser de entrada o salida indistintamente. Laotra forma de hacer llamadas a funciones es “funcion argumen-tos”. Por ejemplo: “Call ibwrt(dir%, “FRO 0, HOR MTB, TSLPOS,”) rem de esta forma se envıa el comando de flanco de subidaal osciloscopio”, o “Call ibwrt(dir%, “FRO 0,HOR MTB, TL POS,”’de esta forma se consigue lo mismo”. En ambos casos hay quetener cuidado con no olvidar la coma antes de cerrar comillas.

4. FINALIZACION. El mnemonico End finaliza el programa en elpunto donde se escriba.

2.4 Esquema de un Controller para PC

En la figura 7 se muestra el esquema de un controller sencillo para PC.Este controller se basa en tres PALes del tipo PLD–22V10.

Figure 7: Esquema de un controller para PC.

3 Material necesario

1. Osciloscopio PM3375 con puerto GPIB.

19

Page 20: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

2. Analizador logico Tektronix 1230.

3. Sonda.

4. PC.

5. Tarjeta IEEE-488 (GPIB) instalada en el PC.

6. Dos cables (uno de ellos de la norma IEEE-488) y tarjeta con tirade pines para conectar las sondas del analizador logico.

7. Visual Basic.

8. Ficheros DLL necesarios para las funciones GPIB.

9. Fichero de Constantes Globales de GPIB: NIGLOBAL.BAS.

10. Fichero de librerıa de funciones GPIB: VBIB32.BAS (ambos enDISQUETE).

4 Realizacion de la practica

La practica se divide en dos partes. La 1a parte tiene como objetivo el

diseno de un osciloscopio “virtual” desde el que se le puedan mandardiferentes ordenes, mediante botones, al osciloscopio. En concreto sedisenara una interface que permita al usuario configurar las siguientesfunciones del osciloscopio:

1. Funciones de tiempo.

� Tiempo:1uS/Div

� Tiempo:10uS/Div

� Tiempo:0.1mS/Div

� Tiempo:1mS/Div

� Trigger por flanco de bajada

� Trigger por flanco de subida

2. Funciones del canal A.

20

Page 21: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

� Canal A con acoplamiento DC

� Canal A con acoplamiento AC

� Canal A con acoplamiento a Tierra

� Canal A OFF

� Canal A: 1V/div

� Canal A: 0.1V/div

� Canal A: 0.01V/div

3. Funciones del canal B.

� Canal B con acoplamiento DC

� Canal B con acoplamiento AC

� Canal B con acoplamiento a Tierra

� Canal B OFF

� Canal B: 1V/div

� Canal B: 0.1V/div

� Canal B: 0.01V/div

4. Funciones especiales.

� Osciloscopio en modo Local

� Autoset

� Modo Analogico

� Modo Digital

� Apagar el osciloscopio virtual dejando el real en modo local.

Posteriormente, se visualizara, utilizando el analizador logico 1230 deTektronix, el protocolo GPIB.

21

Page 22: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

4.1 1a Parte: Control remoto del Osciloscopio

4.1.1 Abrir un Proyecto

Para empezar a crear esta aplicacion, seleccionar Nuevo proyecto en elmenu Archivo. Posteriormente, seleccionar EXE estandar en el cuadrode dialogo Nuevo proyecto (cuando se inicie, por primera vez, VisualBasic aparecera el cuadro de dialogo Nuevo proyecto). Visual Basiccrea un proyecto nuevo y presenta un formulario nuevo.En el explorador de proyectos, hacer click con el boton derecho delraton para agregar ”Modulo”. Agregar los ficheros NIGLOBAL.BASy VBIB32.BAS.

4.1.2 Funciones de inicio y fin del programa

Para empezar el proyecto nos situamos en la hoja de codigo del formu-lario y escribimos la funcion principal del programa:Private Sub Form Load() ’ codigos End SubDentro de ella inicializar la tarjeta GPIB mediante la funcion “Callibfind(”GPIB0”, tarjeta%)”, habiendo definido, previamente, la variabletarjeta% con la palabra clave “Dim (i.e., Dim tarjeta%)”.Es necesario buscar los componentes conectados al bus GPIB que, ennuestro caso, solo debe ser el osciloscopio: “Call ibdev(0, 8, 0, 14, 1, 0,oscilos%)”.Una vez localizado el manejador del osciloscopio (su direccion GPIB),ya es posible comenzar a mandarle comandos. Es necesario:

1. Reinicializar el dispositivo (osciloscopio) GPIB.

2. Ordenar al osciloscopio el funcionamiento en modo Talker y Lis-tener.

3. Poner el osciloscopio en modo local.

De no hacerse la reinicializacion del osciloscopio, el programa generaraerrores de ejecucion.Para terminar, escribir la funcion de terminacion del programa:Private Sub Form Terminate() ’ codigos EndSub

22

Page 23: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

Aquı es necesario, como mınimo, dejar el osciloscopio en modo localpara poder manejarlo, desde su botonera, despues de cerrado el oscilo-scopio virtual (el programa de Visual Basic). Ver las fotocopias parauna descripcion de los parametros de las funciones.

4.1.3 Funciones de tiempo

Para disenar un grupo de OptionButtons, de los que solo se seleccioneuno a la vez (i.e. para distintas escalas de tiempo), se procede de lasiguiente forma:

1. Se dibuja un “FRAME” donde quepan, al menos, cuatro Option-Buttons.

2. Se dibuja, dentro del FRAME, los OptionButtons necesarios.

3. Haciendo doble click en cada OptionButton, automaticamente, semuestra la parte de codigo referente a ese OptionButton. Escribiren la zona de codigo que aparece el comando necesario para fijarla escala de tiempo que se pide.

Disenar otro conjunto de dos OptionButtons para el flanco del trigger(subida o bajada).

4.1.4 Funciones de los canales A y B

Hacer lo mismo que en el apartado anterior pero para todas las fun-ciones, relacionadas con los canales A y B, que se piden.

4.1.5 Funciones Especiales

Para cada una de las funciones especiales crear un CommandButton yescribir el codigo correspondiente para ejecutar los comandos.Para la finalizar la aplicacion debe hacerse una llamada a la funcionForm terminate().

23

Page 24: PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE ...fbarrero/LIE/pract7.pdf · PRACTICA 7. BUS GPIB: CONTROL REMOTO´ DE EQUIPOS DE INSTRUMENTACION´ 1 Objetivo. En esta practica

4.1.6 Prueba

Una vez hecho el programa, conectar la sonda al canal A y medir lasenal de calibracion del osciloscopio. Es preciso probar todas las fun-ciones que se han programado, teniendo en cuenta que al terminar elprograma debe hacerlo dejando al osciloscopio en modo local (de lo con-trario el osciloscopio quedarıa bloqueado).En la memoria debe incluirse el codigo del formulario realizado, deforma ordenada y con los comentarios necesarios.

4.2 2a Parte: Protocolo GPIB.

Concluida la parte de diseno de un osciloscopio virtual basado en PC, elalumno debe analizar el protocolo GPIB. Para ello utilizara el programaque ha disenado y el analizador logico tektronix 1230. El objetivo deesta parte de la practica es analizar las transferencias GPIB:

1. Visualizar una transferencia de datos o comandos en lectura o es-critura por parte del controller. Presentar en la memoria la formade onda de la transferencia, indicando los tiempos del acceso.

2. Analizar las senales que controlan el flujo de informacion por elbus (ATN, IFC, REN, SRQ y EOI).

� Presentar en la memoria diferentes formas de onda de latransferencia, indicando los tiempos del acceso, en los quelas senales ATN, IFC o REN tengan diferentes valores. In-dicar si estas lıneas son de entrada o salida para el controller.Explicar las diferencias entre unas transferencias y las otras.

� Indicar si las lıneas SRQ y EOI son de entrada o salida parael controller. Analizar e indicar las caracterısticas y limita-ciones del controller del que se dispone. Explicar como piensaque habrıa que modificar el controller para que implementetodas las caracterısticas de un controller, segun la normaIEEE–488.

24