CIN y Call Library Functions bloquean otros VIs



Software Primario: LabVIEW Development Systems
Versión de Software Primario: 5.0
Versión de Software Primario Corregido: N/A
Software Secundario:

Problema: CIN y Call Library Functions bloquean otros VIs

Solución: La base de todo VI es un CIN o una llamada a una librería externa (Call Library Function). Funciones tan primitivas como "Add" o "GPIB Read" llaman a CINs. LabVIEW se para cuando ejecuta un CIN o librería externa hasta que el CIN o librería regresa. A este comportamiento se le conoce como ‘bloqueo’. Cuando Labview se encuentra en este estado, el usuario no puede mover ventanas de LabVIEW, actualizar controles o accesar los menús en LabVIEW, por un momento parece como que LabVIEW se hubiera bloqueado. Esto es porque LabVIEW ejecuta los CINs de forma síncrona.

LabVIEW ejecuta CINs uno a la vez y no hace nada más hasta que estos regresan. Para prevenir que los VI’s parezcan bloqueados, es importante minimizar el tiempo de llamadas a CINs individuales. La mayoría de los VI’s en LabVIEW duran poco tiempo ejecutando CINs o llamando a librerías externas, por esto el ‘bloqueo’ es raramente un problema.

De los VIs dentro de LabVIEW, el ‘bloqueo’ puede ocurrir con los VI’s de la Librería Avanzada o AI Read (o AI Buffer Read). Muy poco se puede hacer para minimizar este problema con los VIs de la librería avanzada.

Algunas medidas se pueden tomar para prevenir el bloqueo con AI Read. AI Read se va a bloquear solamente si tiene que esperar para adquirir los datos. Cuando se corre la función AI Read espera hasta que adquiere la cantidad de datos pedidos. Si los datos fueron adquiridos antes de llamar AI Read, entonces la función regresa de inmediato. AI Read se puede usar para determinar cuantos datos han sido adquiridos. Esto se hace conectando un ‘0’ en la entrada de ‘number of scans to read’. El número de scans adquiridos se obtiene de la salida ‘scan backlog’. Comúnmente los programadores de LabVIEW monitorean ‘scan backlog’ llamando AI Read en un lazo (loop). Una vez que la cantidad de datos requiridos es disponible, el lazo se termina y AI Read es llamado otra vez, esta vez para regresar los datos.

Ligas Relacionadas:

Archivos Adjuntos:





Día del Reporte: 04/18/2000
Última Actualización: 06/14/2001
Identificación del Documento: 1WH7IT7T