From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



Cambiar en Forma Programática el Adaptador de LabVIEW que Se Utiliza en TestStand



Software Primario:
Versión de Software Primario: 3.5
Versión de Software Primario Corregido: N/A
Software Secundario: N/A

Problema:
Me gustaría cambiar en forma programática el adaptador de LabVIEW de TestStand a utilizar el Run-Time Engine. También me gustaría cambiar que versión del Run Time se está utilizado. ¿Cómo puedo hacer esto desde TestStand?.


Solución:
Para cambiar en forma programática el Adaptador de LabVIEW a Run-Time Engine, necesita comunicartse con el TestStand Adapter Api a atreves de ActiveX/Com como se muestra en los siguientes pasos:
  1. Abra el editor de secuencias de TestStand y genere una nueva secuencia.
  2. Cree una nueva variable local llamada LV_Reference de tipo Objec en el cual va a grabar la referencia al adaptador de LabVIEW
  3. Agregue un paso en la secuencia que este configurado con el adaptador ActiveX/COM. Después seleccione Specify Module desde el menú de Connect, lo cual va a lanzar el diálogo para la edición de ActiveX/COM.
  4. En este diálogo, vamos a obtener la referencia a el adaptador de LabVIEW. Llena los campos del cuadro de dialogo con la información que se probé a continuación.  Puedes ver la imagen en “GetAdapterByKeyName.jpg"

    • Object Reference: RunState.Engine
    • Automation Server: NI TestStand API 3.5 (Ver 1.0)
    • Object Class: Engine (IEngine)
    • Action: Call Method
    • Method: GetAdapterByKeyName
    • Param (Return Value): Locals.LV_Reference
    • Param (AdapterKeyName): "G Flexible VI Adapter"

  5. Agrega otro paso en la secuencia que este configurado con el adaptador ActiveX/COM. Después selecciona Specify Module desde el menú de conecto, lo cual va a lanzar el dialogo para la edición de ActiveX/COM.
  6. En este dialogo, vamos a llamar el método SetServerInfo, El cual especifica en que servidor corren los módulos de LabVIEW . Llena los campos del cuadro de dialogo con la información que se probé a continuación.  Puedes ver la imagen en “GetAdapterByKeyName.jpg"

    • Object Reference: Locals.LV_Reference
    • Automation Server: NI TestStand Adapter API 3.5 (Ver 1.0)
    • Object Class: LabVIEWAdapter (IEngine)
    • Action: Call Method
    • Method: SetServerInfo
    • Param (serverType): LabVIEWServer_RTEServer
    • Param (serverInfo): string path to the LabVIEW Run-Time Engine (for example, C:\\Program Files\\National Instruments\\Shared\\LabVIEW Run-Time\\7.1\\lvrt.dll)

En TestStand 4.0 and later es posible utilizar expresiones para accesar al API de TestStand y cambiar de manera programática en la configuración del adaptador de LabVIEW.

  1. Abre el editor de secuencias de TestStand y crea una nueva secuencia.
  2. Agrega un paso de Statement en la secuencia.
  3. Para obtener el adaptador de LabVIEW utiliza el método RunState.Engine.GetAdapterByKeyName() y utiliza de parámetro de entrada G Flexible VI Adapter.  Los otros AdapterKeyNames pueden ser encontrados en la ayuda de TestStand Help.
  4. Usa el método AsLabVIEWAdapter para permitir el uso de propiedades específicas de LabVIEW.
  5. LLama el método SetServerInfo() .  En el primer parámetro selecciona el servidor de LabVIEW (LabVIEWServer_RTEServer o LabVIEWServer_ExecServer).  En el segundo parámetro establece información del servidor.
El string final se verá aproximadamente (en una expresi&oacte;n):
RunState.Engine.GetAdapterByKeyName("G Flexible VI Adapter").AsLabVIEWAdapter.SetServerInfo(LabVIEWServer_RTEServer, "C:\\Program Files\\National Instruments\\Shared\\LabVIEW Run-Time\\7.1\\lvrt.dll" )

Para mas información revisa el TestStand API Reference Help » API Class, Properties, and Methods » Adapter API Classes, Properties, and Methods » LabVIEWAdapter topic in the TestStand Help



Ligas Relacionadas: KnowledgeBase 39DB54O6: How Can I Access Properties and Methods of either a Derived Class or the Base Class of the Object Reference I Have?
KnowledgeBase 39D9AHO6: How Can I Programmatically Access Information about a Code Module that a Step Executes (e.g. Name, Path)?
KnowledgeBase 2K4BT5IJ: How Do I Programmatically Determine Which LabVIEW ActiveX Server I Am Using?

Archivos Adjuntos:


SetServerInfo.jpg - SetServerInfo.jpgGetAdapterByKeyName.jpg - GetAdapterByKeyName.jpg


Día del Reporte: 01/10/2007
Última Actualización: 11/18/2011
Identificación del Documento: 459FLB9K