08-30-2010 05:18 AM
Hola,
estoy desarrollando una aplicación que corre sobre un cRIO, y tengo un problema:
- Hasta ahora he conseguido crear una "Real-Time Application" para que se lance el VI principal que he comenzado a desarrollar sin problemas.
- El problema surge porque este VI debería crear y eliminar clones de cierto subVI en respuesta a ciertos eventos: dicho subVI lo tengo desarrollado, pero no se exactamente le procedimiento a realizar para crear y destruir los clones. Empleando el VI "Open VI Reference.vi" creo que debo introducirle como "vi path" un path del tipo "URL de la aplicación+nombre del subVI", pero no se si tengo que hacer una nueva aplicación, o en la aplicación que tengo creada tengo que incluir de alguna manera este subVI, o la forma de hacer esto es otra.
Espero que haya quedado clara la duda, es mi primera intervención en este foro y todavía no tengo demasiado dominio en estas cosas,
Un saludo, y gracias por adelantado
09-29-2010 09:44 AM
Hola, Víctor,
lo cierto es que no sé bien qué pretendes. De acuerdo con la terminología de NI, un clon se refiere a una instancia de memoria en un concepto más amplio que es el de los Reentrant VIs. Te copio los siguientes enlaces para que veas a qué me refiero:
http://digital.ni.com/public.nsf/allkb/98847B4E4C715E6D86256C59006B57CC?OpenDocument
http://zone.ni.com/devzone/cda/epd/p/id/5401
http://decibel.ni.com/content/docs/DOC-2232
Creo que no te refieres a esto. ¿Podrías especificar un poco más para saber qué pretendes hacer en la aplicación?+
Saludos.
Jesús.
10-07-2010 04:19 AM
Gracias por la información, espero ahora plantear mejor mi problema:
Actualmente tengo un VI corriendo en el cRIO (que llamaremos Principal.vi) encargado de interactuar con un VI que corre en un PC (que llamaremos cliente.vi) y hasta aquí de momento no he tenido ningún problema.
Ahora lo que necesito es que el Principal.vi (el que corre en el cRIO) sea capaz de abrir una referencia de otro VI alojado en el cRIO (denominado Servidor.vi) para que se cree un clon de éste. Cada referencia se abrirá en respuesta a una petición de cliente.vi, y la idea es que varias instancias de Servidor.vi (varios clones) puedan estar corriendo simultáneamente en el cRIO.
Con la documentación que me ha proporcionado, el VI Servidor.vi debería configurarlo como Reentrant VIs (Preallocate) para que los clones puedan correr simultáneamente y tenga una aplicación en tiempo real. El problema surge en cómo podría, desde Principal.vi y haciendo uso de "Open VI Reference.vi", hacer una instancia de Servidor.vi cada vez que sea necesario (a diferencia de los ejemplos que aparecen en los enlaces que me ha proporcionado, en los que en lugar de correr los clones abriendo una referencia se introduce un subVI en el código).
Por lo tanto mi duda creo que no es tanto el concepto de clon (puede que el problema sea que me exprese mal, lo siento), sino cómo puedo de manera programática crear clones de un VI de mi CompactRIO.