Hi everyone!
Labview is presently one of the most popular programming
languages for programming test and measurement equipment. Here at Power and Energy Central, we often
get requests for more Labview programming examples for our products (which is
definitely something on my agenda). We
also get requests for Labview drivers (which do exist for many of our
products). I thought that I would use
this month’s blog posting to demonstrate how to program without using a
driver. There are a few advantages to
this approach. The first and main one is
that it gives you access to the full SCPI command set of the instrument. Anything you can do with the instrument is
available to you. The second advantage
is that you do not need to worry about downloading and setting up drivers.
I am going to work through an example using my Agilent
N6700B on LAN. We are going to use VISA
calls in Labview to communicate with the instrument. The first thing that we are going to need to
do is get the VISA init string from the Agilent IO Libraries (or whatever IO
Library you are using). You can see the
init string from my N6700B below (from the Agilent IO Libraries):
With the VISA address in hand, start up Labview and choose a
blank VI. Go to the Functions Pallette
-> Instrument IO -> VISA ->Advanced and choose Open. This function will open up a VISA session
with your instrument. There are quite a
few inputs to this function but I usually just set up the instrument address
and the VISA Open timeout:
After opening a session, we are ready to send our first
commands. I usually like to send a *RST
and a *IDN? so I know that I am in a
known state and fully communicating with my instrument. To send a command, you are going to go to
the VISA menu and choose Write. There
are a few lines that you will need to connect here. In Labview, you will always connect the “VISA
Resource Name Out” and “error out” lines through your entire program (you will
see that throughout this example). The command is the other input. This will need to be a string.
Since we sent a query, we need to read out the output
buffer. This is done by choosing read in
the VISA menu. You need to do with the read are set the byte
count to be read (I set it to 100 bytes so it is totally out of the way). You also need a string indicator so that you
can read and display the results of the *IDN query.
I am going to finish out my program by setting my supply to
4 V, turning the output on, and measuring the voltage. All of these steps will use the same reads
and writes that we used before. The last
thing I will do is use a VISA Close. Using
a Close will de-allocate all the resources and release the instrument. This is generally good programming practice
and is often overlooked. Here is what
the final program looks like:
After I run the completed program, I get the following
results:
We can see that the results are as we expected and our
program is working.
From this example, you can see that doing simple things is
pretty easy in Labview. If you are interested in downloading the
example, please leave a comment here and I will post it so that you can get
it. As always, if you have any questions
please feel free to post in our comments.
Take care!
Hello, thanks for this tutorial. Can I ask for your vi example. Thanks
ReplyDeleteHello, thanks for this tutorial. Can I ask for your vi example. Thanks
ReplyDelete