Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

cambiar el controlador (master) del bus GPIB si el control del mismo lo tiene otra aplicación programada en otro lenguaje

Hola, tengo un programa realizado en un lenguaje de programación diferente a Labview, que no puedo controlar (ya que es ajeno a mi), y que tiene el control de un bus GPIB. Mi pregunta es si podría colocar otro ordenador conectado a este bus GPIB, con un software hecho en LabVIEW, hacer de controlador de bus. Para ello, supongo que tendría que deshabilitar al otro usuario (realizado con otro lenguaje), ya que no puedo tener dos controladores en el mismo bus. He estado mirando las librerias de IEEE 488.2 de LabVIEW, y parece que puedo utiliar la función "PassControl" para ello. Sin embargo, con esto, no estoy seguro si se le quitaría el control al dispositivo que estaba controlando el bus y me lo daría a mi.

 

Muchas gracias por adelantado

0 kudos
Mensaje 1 de 5
3.095 Vistas

Hola jspc, disculpa la tardanza de la respuesta.

En primer lugar, quisiera hablarte de los dos tipos de controladores que existen en GPIB: 

1. System Controller (SC): Este es el controlador "maestro" del bus GPIB. Como tu lo mencionas, solo puede existir uno de estos por bus y no puede ser cambiado de manera dinámica en ningún programa.

2. Controller in Charge (CIC): Este controlador es el que tiene el poder actual del bus GPIB. De igual manera, solo puebe haber uno por bus, con la diferencia de que este si puede ser programado dinámicamente por software.

 

Generalmente, una sola interfaz física es la que mantiene el estatus de SC y CIC simultaneamente, ya que es maestra y al mismo tiempo tiene control del bus en ese momento.

Por lo tanto y contestando a tus preguntas: sí tendrás que desactivar alguna de las 2 interfaces como SC, ya que no puede haber dos en un mismo bus. Con el "PassControl" de la paleta de 488.2 puedes mover el CIC de un controlador a otro, siempre y cuando sean compatibles con 488.2. Finalmente, existe tambien otro VI llamado "SendIFC", el cual limpia el bus, quita el estatus de CIC a quien lo tenga, y lo regresa al SC.

 

Si tu programa externo no es compatible con 488.2, puedes buscar información sobre el funcionamiento de los comandos "ibsic" e "ibpst" para 488 sencillo, los cuales tienen la función del SendIFC y PassControl respectivamente. Aqui hay un KB que dice un poco mas detallado lo que te comenté anteriormente:

 

http://digital.ni.com/public.nsf/allkb/873BE8238AD6B0BA86256B1B004DC203?OpenDocument

 

Cualquier duda estamos en contacto.

 

Carlos A. de los Santos

Ingenieria de Aplicaciones

www.ni.com/soporte

 

 

________________________________________________________
Carlos A. de los Santos
Ingeniero de Aplicaciones,
NI México.

www.ni.com/soporte
0 kudos
Mensaje 2 de 5
3.071 Vistas

Muchas gracias. De todos modos, la existencia de SC y del CIC, ya los conocía. El problema es que si una vez que el programa realizado en JAVA (cuyo control no tengo, y no puedo tocar) tenga el SC y CIC, como lo tiene, puedo cambiarlo a otro dispositivo con un programa hecho en LabVIEW, mandando un "PassControl" (como digo desde un ordenador con LabVIEW).

 

Muchas gracias

0 kudos
Mensaje 3 de 5
3.061 Vistas

Hola nuevamente jscp!

El VI "PassControl" te permite ceder el control de un dispositivo conectado a un bus GPIB, siempre y cuando este dispositivo sea propietario del CIC en ese momento. Recuerda que el SC es el único dispositivo que puede hacer una petición del CIC cuando la necesite. Si tu PC con LabVIEW, ejecuta el PassControl y tu otra PC mantiene estatus de SC y CIC, no habrá ningún cambio, ya que la PC con LabVIEW no tiene ningún control que ceder.

La misma estructura del standard 488 es la que permite lo anterior, ya que mantiene al SC como el "control máximo" de todo el bus, y él es el único que puede arrebatar el CIC de cualquier dispositivo del bus; la otra opción es que tu otra PC suelte el control del CIC y se lo pase a LabVIEW, pero como mencionas que no puedes editar el otro programa, veo complicado que sea una opción.

 

Te mando un link con una descripción breve sobre el controlador de GPIB y las funciones que realiza.

http://zone.ni.com/devzone/cda/tut/p/id/3387

 

Cualquier otra duda, por acá estamos.

Saludos.

 

 

 

________________________________________________________
Carlos A. de los Santos
Ingeniero de Aplicaciones,
NI México.

www.ni.com/soporte
0 kudos
Mensaje 4 de 5
3.050 Vistas

OK, es lo que me temía. Sólo quería confirmarlo.

 

Muchas gracias por todo y disculpa las molestias.

 

Un saludo

0 kudos
Mensaje 5 de 5
3.034 Vistas