LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic call of Agilent Driver VIs

The bellow attached figure shows the snap shot of the Agilent DMM initialize VI.

 

19027iA19DB4DAEAD6F8DD

 

 

This vi use labview functional global (highlighted in red circle) vi. The same functional global VI is used in Measure or Configure VI of 34401 driver. The application is architectured in such a way that the the driver VI are executed dynamically. The process is like we will initialise the instrument by executing initialise Agilent driver VI and then go for configure / Measure.

The functional global VI will return an error in the read state of Measure or configure methods of the agilent drivers VI. Since drivers are called dynamically the functional global VI will detect the call as the first call so it wont be able to re collect the the data set in initialise routine.

 

Is there a solution to call the drivers dynamically?

 

Note: NI DMM uses dll based drivers while Agilent use VISA based, so we are not able call the drivers dynamically as the user datas will be handles inside the dll. In VISA General Setting the "userdata property”  is available in U32 Format. If it was of variant data type the local data of the drivers can be stored in the VISA reference itself. This will enable dynamic calling of driver VI's

 

 

19029iF934E3B84590CEFE

 

 

0 Kudos
Message 1 of 3
(3,153 Views)

binoy,

 

1. the pic you posted is too small to make anything out.

2. what exactly is the problem you need solved? In what kind of application are you using these drivers?

 

you only need to call drivers dynamically and use functional globals if you are calling the same driver twice at the same time. If you are only using one DMM at a time, you can just get rid of all dynamic calls and use "normal", linear vi structure (first initialize, then set the settings, etc.).

 

 

0 Kudos
Message 2 of 3
(3,070 Views)

The attached snap shot is the " Initialisation VI" of agilent driver which can be downloaded from http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=978  . Since my application is too big it is not a good practice to load all the VIs in memory as it may crash the application. Also the DMM used will be different for different test system, which is configurable through file. Because of these reason i wont be able to avoid calling VI dynamically.

 

The issue which i am facing is due to the limitations of the Agilent Driver given in the above link. Since the driver uses LabVIEW 2 Style Functional global(red circle), it doesnt support dynamic call. Is there any other way which i can call the same drivers dynamically.

 

0 Kudos
Message 3 of 3
(3,005 Views)