02-10-2014 08:06 PM
Hi,
I am currenty using labview to control Agilent E4438C to do a frequecny list sweep but how do I display the current frequecny the signal generator is at? I look through the VI in the instrument driver but I can't seem to find it.
02-10-2014 08:29 PM - edited 02-10-2014 08:34 PM
Hi xsychox,
Have you tried typing 4438 at http://sine.ni.com/idnetwork/?
Here's the search results from there:
http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=410
Do you have a manual or data sheet for the device that has these commands? I did find some command manuals for that device here:
http://cp.literature.agilent.com/litweb/pdf/E4400-90506.pdf
http://cp.literature.agilent.com/litweb/pdf/E4400-90535.pdf
So perhaps you could give a try via NI VISA
You can try the driver from the link I attached though.
Hope that helps
Warmest regards,
Lennard.C
02-10-2014 08:36 PM
Yes I have look through all the examples in the instrument driver there. I can't seem to find any of the VI that is able to view the current frequency the signal generator is at. And I have also read that thread u mention before I asked this question. I have no problem controling the signal generator with all the instrument driver provided it is just that I do not know how to view the current frequency with labview, so I don't think it is a similar problem.
02-10-2014 08:40 PM
Sorry I am new to this commands how do I use this commands? I can type it in labview?
02-10-2014 08:47 PM - edited 02-10-2014 08:49 PM
Hi xsychox,
Yes, I believe you can. As long as you can detect the VISA resource of that Agilent device in LabVIEW (I believe you have already done that using the examples from the drivers).
Refer to figure 12 of the following link: http://sine.ni.com/np/app/main/p/ap/ictrl/lang/en/pg/1/sn/n17:ictrl,n21:25/fmid/6000/
From the example ablve, the code is sending a *IDN command to a VISA device (usually a 3rd party device) once and then read from the device's response from the command once before closing the VISA resource. You'll need to replace that *IDN with the appropriate commands based on the links which I provided in my previous posts.
You need to know the VISA resource name of the Agilent device in order to start communicating with the device.
You can find more examples from NI Example Finder: Open LabVIEW >> Help >> Find Examples... to open NI Example Finder >> Under Search, search keyword "VISA" and it should list down examples related to VISA communications.
Hope that helps
Warmest regards,
Lennard.C
02-10-2014 08:51 PM
05-16-2014 04:19 PM
xsychox and others,
The fundamental problem is that the Agilent SCPI command set doesn't provide a way to get the value of the current step state (frequency or amplitude) in a free-running/triggered list sweep.
I understand the issue because I'm polling the actual injected power (which is not the same as the generator power) using an RF power meter and need to know the corresponding frequency.
(I'm polling the ESG about once every 500ms during an extended, like 20 minutes, BER test - the ESG just happens to be the instrument that I'm using for an impariment source).
The only solution that I have right now is to poll the ESG at the same rate as the dwell time per step and get a coarse approximation of the frequency based on time after the sweep is initiated.
It's not as accurate as I'd like, but without a supported command it's a bit difficult.
The other solution that I've considered is to emulate the list sweep by keeping my sweep list table in LabVIEW and then writing a loop to force each value using standard frequency and amplitude commands.
When you are in the normal CW mode, the ESG driver frequency query works fine.
I haven't implemented this because it's a bit of a change to some legacy code and I haven't had time to experiment with the implementation.
I hope this is helpful.
05-17-2014 04:23 PM
Pete@Intel wrote:
xsychox and others,
The fundamental problem is that the Agilent SCPI command set doesn't provide a way to get the value of the current step state (frequency or amplitude) in a free-running/triggered list sweep.
I understand the issue because I'm polling the actual injected power (which is not the same as the generator power) using an RF power meter and need to know the corresponding frequency.
(I'm polling the ESG about once every 500ms during an extended, like 20 minutes, BER test - the ESG just happens to be the instrument that I'm using for an impariment source).
The only solution that I have right now is to poll the ESG at the same rate as the dwell time per step and get a coarse approximation of the frequency based on time after the sweep is initiated.
It's not as accurate as I'd like, but without a supported command it's a bit difficult.
The other solution that I've considered is to emulate the list sweep by keeping my sweep list table in LabVIEW and then writing a loop to force each value using standard frequency and amplitude commands.
When you are in the normal CW mode, the ESG driver frequency query works fine.
I haven't implemented this because it's a bit of a change to some legacy code and I haven't had time to experiment with the implementation.
I hope this is helpful.
I think the second solution is the best option. I think the reason why you can't get query the instrument during a sweep is because that sweep is a single command. The next command cannot start until the last one completes.