LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Run remote application with ActiveX

Hi,

 

Can any of you help with a problem i am having using labview 8.6 and VSA 89600 V11 via DCOM.

 

I have several functions that used to work when the VSA software was on the test PC but since installing the latest VSA software on the MXA and using DCOM to remotely operate the software they no longer work as expected.

 

The problem is that each function uses an Automation open and now over DCOM this causes a new instance of the VSA software to launch, so very quickly you end up with multiple instances and the MXA running out of memory.

 

I have attached a document showing a screen shot of the block diagram for 2 sample functions.

 

So far Agilent have not been able to help with this and are suggesting it is a problem with Labview.

 

Thanks in advance for your help

 

Darren

0 Kudos
Message 11 of 16
(874 Views)
Your problem is the multiple Application Open calls at the low level. You have to code the Application Open once at a higher level and pass the Application handle to the sub test modules and then have the application close at the top as well as the clean up so you don't leave any open hook to the VSA DCOM, which will interfere with further calls to the VSA thru DCOM. Once the VSA sees multiple intances it stop responding properly. Also if the security settings are not correct, you may notice VSA not opening the VSA properly and will call and run as background object that you can not control.
0 Kudos
Message 12 of 16
(867 Views)

But this means that you have to have one high level Vi to do everything which i was trying to avoid.

Ideally i want to use teststand to sequence a series of measurements after starting and configuring the VSA software, but if i code it as you have suggested then i would have to start, configure, measure and stop the VSA software for each measurement.

So DCOM does not allow the automation open to use an instance that is already there as COM does?

Message Edited by Daz37 on 09-18-2009 10:37 AM
0 Kudos
Message 13 of 16
(865 Views)
You missed my point, just the Open and Close VSA DCOM vi's need to be at the high level. So you Open the DCOM at the high level, pass the handle to use in the lower level VI's imbedded in the test stand calls, then when the sequence is complete then you call the high level vi to close the DCOM. The other reason to do this is you only have the one time time hit to open the DCOM, which is significant, and you are not imposing this time hit for every test call.
0 Kudos
Message 14 of 16
(851 Views)

I have tried creating a global after the first automation open and then using the global to pass the reference but for some reason this does not work. Using probes i can see that the input and output of the global has the same value but when i wire the global output to a property node i get an error.

The global is just an Automation refnum. Could you advise if this is correct or should i be creating the global differently?

0 Kudos
Message 15 of 16
(836 Views)
I recommend coding in Labview without Test Stand using a simple menu for the test selection to get it working and then port to test Stand. BTW I also open the Measurement handle and pass both the application and measurement handle when I open the VSA application. Of course when testing is done both handles have to be closed or it hangs the VSA application.
0 Kudos
Message 16 of 16
(789 Views)