Las siguientes funciones se incluyen en la subpaleta LabVIEW GPIB 488 y son esenciales para realizar sondeos en serie en LabVIEW:
GPIB Serial Poll (ibrsp en NI-488) realiza un sondeo en serie y devuelve el valor del byte de estado desde un solo dispositivo. El programa debe verificar manualmente el bit RQS en el valor de Status Byte para determinar si ese dispositivo solicitó servicio.
GPIB Wait (ibwait en NI-488) espera el estado indicado por una máscara de Status Word especificada en un bus GPIB particular. La palabra Status Word es una variable global (16 bits) que contiene, entre otra información GPIB, el estado de la línea SRQ (bit 12, SRQI), y si un dispositivo ha solicitado servicio (bit 11, RQS). Si el vector que se pasa en es igual a 0, no espera ningún caso especificado y actualizará ibsta o la Palabra de estado. Sin embargo, si la máscara está configurada para verificar el bit 12 (SRQI), la función esperará hasta que esa línea en particular se afirme para una placa GPIB en particular, cuya dirección se especifica en GPIB Wait.
Wait for GPIB RQS (ibwait en NI-488, con máscara para el bit 11) es similar a usar la función GPIB Wait con máscara para el bit 11, pero usando la dirección GPIB de la dirección del dispositivo en particular en lugar de la dirección de la placa GPIB (cuando se espera para el bit 12). Esta función espera a que un dispositivo en particular solicite servicio y no a que una placa (a la que se podrían conectar varios dispositivos) reciba una solicitud de servicio. Esta función esperará hasta que se confirme el bit RQS o se supere el tiempo de espera.
Los siguientes ejemplos muestran cómo dar servicio a las SRQ y sondear en serie los dispositivos mediante las funciones LabVIEW GPIB.
En LabVIEW Ejemplo 1 (Figura 3), se escribe un comando en un simulador de instrumentos NI. El comando incluye instrucciones para que el instrumento genere una solicitud de servicio (SRQ) si un evento de Operación completada está registrado en el Registro de estado de eventos (ESR). Los dos primeros comandos escriben estas instrucciones en el Registro de habilitación de solicitud de servicio y en el Registro de habilitación de estado de evento (especificación IEEE-488.2). El tercer comando pide al simulador de instrumentos que genere una onda sinusoidal; el último comando genera un evento Operación completada. La siguiente sección del código espera a que se genere el SRQ comprobando el bit 12 de la Palabra de estado. Una vez que se ha generado, se realiza un sondeo en serie en el simulador de dispositivos para leer el Byte de estado y conocer la razón por la que generó un SRQ. Si el bit 5 está establecido (desde el Registro de estado de eventos que tiene el bit de Operación completada establecido) y el bit 6 está establecido (RQS, el dispositivo ha solicitado servicio), entonces el controlador sigue adelante y lee los datos desde el simulador de dispositivo. Observe que el registro ESR debe ser borrado. Esto evita que el instrumento genere solicitudes de servicio no deseadas.
Figura 3. Ejemplo 1
LabVIEW Ejemplo 2 (Figura 4) muestra otra forma de esperar a que el dispositivo solicite servicio. Sin embargo, en este último ejemplo, el procesador se detiene y espera sin realizar ninguna otra operación. En el primer ejemplo, otras operaciones podrían haberse ejecutado en paralelo mientras esperaba que el dispositivo solicitara servicio.
Figura 4. Ejemplo 2