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!