LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

3008 Error with DCOM and Agilent 89601A

All,
 
I'm running Agilent's 89601A software on an MXA spectrum analyzer, and accessing the 89601 functions using DCOM.  Almost everything works - I'm able to see all the objects, I'm able to use some of them.  When I try to use the Measurement object however, I get the following error:
 
Error 3008 occurred at Automation Interface for the specified class cannot be obtained.  Check if the automation refnum type is the correct class for this operation in Untitled 4.vi
This error code is undefined. No one has provided a description for this code, or you might have wired a number that is not an error code to the error code input.
 
This error occurs if I use DCOM from my laptop to access the MXA remotely.  It also happens if I build a test application and install it on the MXA itself.  When running on the MXA, i get the same error if I supply Automation Open with the computer name or leave it blank.  Oh, and by the way - the same code works FINE in Agilent Vee!!!
 
I've been poking at this for a couple of days now.  Agilent hasn't come up with a solution. NI Helpdesk was pretty lost - not surprising since they don't have Agilent's hardware/software in front of them.  I'm pretty much at a loss myself.  Anybody have ideas????
 
Thanks in advance,
Doug
Download All
0 Kudos
Message 1 of 18
(5,983 Views)
I'm not sure if this will solve your problem, but I have one recommendation for your code.  Wire up your error wires through all the close reference functions.  Wire them up in order so that the last reference opened is the first reference closed.  Because the close reference functions could happen in any order in that last sequence, it is possible that you could close a higher level reference and would orphan a lower level reference preventing it from being closed.
Message 2 of 18
(5,975 Views)

Good point, I never thought of that.  Your suggestion didn't fix the original problem but it may have prevented future ones.  Thanks.

 

Doug

0 Kudos
Message 3 of 18
(5,939 Views)

Found it!

The versions of the 89601 software didn't match.  I had V7.01 on my pc and 6.31 on the test equipment.  I Up'd everything to V7.20 and it now seems to work.

Doug

0 Kudos
Message 4 of 18
(5,913 Views)


@doug wrote:

Found it!

The versions of the 89601 software didn't match.  I had V7.01 on my pc and 6.31 on the test equipment.  I Up'd everything to V7.20 and it now seems to work.

Doug




That's great.  And thanks for replying back.  That kind of information could help someone else in the future with a similar problem
0 Kudos
Message 5 of 18
(5,900 Views)
Doug,

I am trying to make a similar DCOM vi and communicate with the 89601A.
On your DCOM_Test.vi block diagram, you tied in the DCOM interface with the labview objects labeled AgVsaVector._Application, COM/DCOM, etc.
What labview objects did you use?

thanks,
Wayner07
0 Kudos
Message 6 of 18
(5,748 Views)

Hi Wayne07,

I think what you're looking for are the AgtVsaVector properties and methods.  The first thing you have to do is install the Agilent 89601 VSA software on your local pc and on the spectrum analyzer.  I used version 7.20.  As noted earlier, 6.x didn't play well.  When you install the 89601 software on your pc, DO NOT install the Agilent IO libraries.  Doing so will trash your GPIB setup because Agilent an NI used the same filename for one of the .dll's.  The control I used to get to the application is just an Automation Refnum control.  On the front panel: Modern/Ref Num/Automation Refnum, then rightclick on it and choose "Select Activex Class... Browse...  Select "Agilent 89600 Vector Signal Analyzer Version 7.20...." in the drop down box, then select "_Application" in the table.  Connect this to an Automation Open vi.  You can leave the machine name unwired.  Dcom will pick up the computer name to connect to through Component Services.

In the folder where the VSA software installed on your pc, there is a subfolder named "dcom".  On my pc, the path is "C:\Program Files\Agilent\89600 VSA\dcom".  In that folder, there is a Readme.txt file.  Follow the instructions in there to set up dcom communications.  The analyzer name is the computer name of the spectrum analyzer.  If its an MXA, then its probably A-N9020A-(last 5 digits of serial number).  You can also find this under "Show", "System" on the spectrum analyzer. 

Once you've run setup.bat, you can then run testconnect.bat anytime to test the connection.  All setup.bat does is set default settings in Component Services.  You can do this manually through Component Services.  Once that's done, it tries to launch the VSA software.  Play around with the permissions until testconnect.bat is able to launch the vsa software.  I gave the users I created on the vsa Full Access and things worked fine.

Couple of notes:

  • My pc's are in a domain.  I had to add the spectrum analyzer to the domain and log in with the same user as was logged into the pc.  Create users on the spetrum analyzer and make them "admin of the box". 
  • If you want to see the vsa actually running on the spectrum analyzer, you must set "Interactive User" in dcom config on both the pc and the analyzer.  If you don't do this, the software will still run, but all you'll see is a splash screen. 
  • The software takes about 20 seconds to start.  The only way you can tell its launching is to watch the spectrum analyzer sweep - it will stop sweeping intermittently as the software launches.
  • The default port for the license handler is "12345".  Our virus scanner software used the same port.  This created all kinds of wierd behavior - vsa AND spectrum analyzer software wouldn't launch, vsa would launch with "Simulated Hardware" to name a few.  To fix - on the spectrum analyzer, look in "C:\Program Files\Agilent\SignalAnalysis\Infrastructure" for a file named "Agilent.SA.xSA.exe.config".  Open this file with a text editor and look for a line containing "<add key="LicenseHandlerPort" value="12345"/>".  Change the value to something else (11111 doesn't work either - be more creative).  Save and reboot the analyzer.

Let me know if this helps.

 

Good Luck,

Doug

0 Kudos
Message 7 of 18
(5,725 Views)
Doug, Thanks.
What did you used to get the Automation Open inputs; automation open (AgtVsaVector._Application), DCOM/COM "icons"  onto the block diagram.
From what I see from the help menu, you use the connectivity menu and select the Invoke Node.
then change the properties to match the ActiveX.
What am I missing here?

thanks,
Wayne


0 Kudos
Message 8 of 18
(5,712 Views)
Hi Wayne,
Sorry I didn't get back to you sooner - time off.
I used the Automation Refnum on the front panel (rightclick on front panel "Modern_, "Refnum", "Automation Refnum"), then rightclick on the control you just placed and "Select Activex Class", "browse....").  Select "Agilent 89600 Vector Signal Analyzer 7.20 Version 1.10" from the drop down box.  Doubleclick on  "+Application" under "Objects" to expand it.  Select "_Application" and click "OK".  That should do it for you.
 
I stripped out all the extra stuff from my DCOM Test vi.  If DCOM is set up properly on your pc, it should run without modifications.  It will launch the 89601 software, read back the start freq, and end the 89601 software.
 
Take a look at http://forums.ni.com/ni/board/message?board.id=170&thread.id=167201&view=by_date_ascending&page=3.  Sparky was kind enough to upload his vi's.  They were a big help to me getting started.
 
Doug
0 Kudos
Message 9 of 18
(5,680 Views)
Hi Doug,
I seems like you know your way around working with the VSA. I also work with it and have some automatic tests written for it in CVI. There is one thing I didn't manage to do that you might have. I open a new application and close it on each of my tests since they are running on different instances. I would like to only open it once for all tests and use a function that will check if there is an active application running and return a handle to it. On the function panel  under "_Application" there is a function called "AgtVsaVector_Active_Application" that should do the work but it doesn't work. Maybe I am not using it right. If you have any idea or did something like that it will help me a lot.
Thanks in advance,
Moshik
0 Kudos
Message 10 of 18
(5,586 Views)