Hi,
I am currently using Python to remote control my DSO6104A either via USB or LAN.
Yes, you need PyVisa. You obviously need the Agilent connection expert also.
Example 01 (directly with PyVisa):import visa
import pylab
# Get instrument VISAname
visaInstrList = visa.get_instruments_list()
myScope = visaInstrList[0]+'::INSTR'
scope = visa.instrument(myScope)
# CONFIGURATION ----------------------------------------------------------------
scope.write("*RST")
scope.write("*CLS")
IDN = scope.ask("*IDN?")
scope.write(":AUToscale")
scope.write(":CHANnel1:PROBe 10")
scope.write(":CHANnel1:RANGe 8")
scope.write(":CHANnel1:SCALe 250mV")
scope.write(":TIMebase:RANGe 5e-6")
scope.write(":ACQuire:MODE RTIMe")
scope.write(":TIMebase:REFerence CENTer")
scope.write(":TRIGger:TV:SOURCe CHANnel1")
scope.write(":TRIGger:MODE EDGE")
Because Visa is based on ambiguous strings (to my opinion...) writing a high level wrapper for the PyVisa module will help you getting rid of the strings. It makes life easier.
To do so, the GUIDE (6000_series_prog_guide.pdf) has been very helpfull. It lists all the functions you can use with Visa and how to use them. Of course, you will have to clean up things to make it work perfectly under Python but the wrapper is used in that purpose.
Hope this helps.