Commands for instruments

###Agilent 34401A (DMM)
// digital multimeter (DMM) Agilent 34401A
// *IDN? -> HEWLETT-PACKARD,34401A,0,10-5-2

// reset
*RST

// switch to DC current measurement
CONF:CURR:DC

// switch to DC voltage measurement (10V range, 0.001V resolution)
CONF:VOLT:DC 10,0.001

// no trigger source
TRIG:SOUR IMM

// set itegration time to 100*20ms (= maximum)
VOLT:DC:NPLC 100

// read measurement value
INIT;FETC?

###Agilent E3646A (dual DC supply)
// dual power supply Agilent E3646A
// *IDN? -> Agilent Technologies,E3646A,0,1.7-5.0-1.0

// the following commands program source 1
INST:SEL OUT1
VOLT 2.33
CURR 0.09
MEAS:CURR?

// the following commands program source 2
INST:SEL OUT2
VOLT 2.66
CURR 0.11
MEAS:CURR?

INST P6V
OUTP ON
VOLT 3
CURR 0.5
MEAS:VOLT?
MEAS:CURR?

###Agilent E8257D (RF source)
// RF signal generator Agilent E8257D
// *IDN? -> Agilent Technologies, E8257D, SG53400307, C.06.23

:OUTP ON
:FREQ 12GHZ
:POW 0DBM

###Agilent 86100B (sampling scope)
// sampling oscilloscope Agilent Infiniium 86100 B
// *IDN? -> Agilent Technologies,86100B,US41388281,A.05.00

// reset measurement values on screen
:CDISPLAY

// read screenshot as binary GIF file
DISPLAY:DATA? GIF,SCR,NORM

// get measured properties of signal
:MEASURE:VPP? CHANNEL1
:MEASURE:VMIN? CHANNEL1
:MEASURE:VMAX? CHANNEL1
:MEASURE:VRMS? DISPLAY,AC,CHANNEL1
:MEASURE:VAVERAGE? DISPLAY,CHANNEL1
:MEASURE:DUTYCYCLE? CHANNEL1
:MEASURE:CGRADE:JITTER? RMS,CHANNEL1

###HP33120A (waveform generator)
// set sweep for waveform generator HP33120A
TRIGGER:SOURCE IMMEDIATE
SOURCE:FREQUENCY:START 1E+3
SOURCE:FREQUENCY:STOP 1E+6
SWEEP:SPACING LINEAR
SWEEP:TIME 60
SWEEP:STATE ON

// set to sinusoidal waveform
FUNC:SHAP SIN

// set frequency
FREQ 1e+3

// set output unit
VOLT:UNIT VPP

// set output offset
VOLT:OFF 0

// set output amplitude
VOLT 1

###Keithley 2400 (SMU)
// source measurement unit (SMU) Keithley 2400
// *IDN? -> KEITHLEY INSTRUMENTS INC.,MODEL 2400,0892838,C23   Jan  2 2002 14:54:07/A02  /J/H

:SOUR:VOLT 5
:CURR:PROT 0.01
:OUTP ON
:READ?
// result: -4.000000E-01,-5.252672E-12,+9.910000E+37,+4.149443E+02,+2.150800E+04
// means:   voltage     ,  current    , resistance  ,  time       , status
//                                     9.91e37 = NaN
:FORMAT:DATA ASCII
:FORMAT:ELEMENTS CURRENT

:ROUTE:TERMINALS REAR

// back to local, i.e. user can use buttons again
:SYSTEM:KEY 23

###Keithley 2500 (TEC)
// temperature controller (TEC) Keithley 2500
// *IDN? -> KEITHLEY INSTRUMENTS INC.,MODEL 2510-AT,1332041,A11   Mar 06 2003 09:44:38/A02  /F

*RST

// max 5.25A for Peltier
:sens:curr:prot:lev 5.25
:sens:temp:tran iss
:sens:temp:iss:offs 29.46
:sens:temp:iss:gain 1.1049e-6

// PID values for temperature controlling
:sour:temp:lcon:gain 300
:sour:temp:lcon:int 1
:sour:temp:lcon:der 1

// temperature protection: max/min values
:sour:temp:prot:high:lev 80
:sour:temp:prot:low:lev -10
:sour:temp:prot:stat on

// set temperature and switch on
:sour:temp:spo 75
:outp:stat on

// read actual temperature
:meas:temp?

###Keithley 2602 (SMU)
// source measurement unit (SMU) Keithley 2602
// two channels -> smua & smub
// *IDN? -> Keithley Instruments Inc., Model 2602A, 1330999, 2.1.6

smua.source.levelv = 5
smua.source.limiti = 0.1
smua.source.output = smua.OUTPUT_ON
print(smua.measure.i())

###Rohde&Schwarz FSW (ESA)
// electrical spectrum analyzer (ESA) Rohde&Schwarz FSW

FREQ:CENT 100MHz  // set center frequency
FREQ:SPAN 100MHz  // set frequency span

BAND:AUTO OFF
BAND 1MHz         // set resolution bandwidth
BAND:VID 500kHz   // set video bandwidth (decouples VBW from RBW)

CALC:MARK:MAX     // set marker to maximum value
CALC:MARK:Y?      // read power value at marker position

FORMAT ASCII
TRAC:DATA? TRACE1  // read all power values of trace 1
TRAC:DATA:X?       // read all frequency values of traces

###Rohde&Schwarz SMR40 (RF source)
// RF signal generator Rohde&Schwarz SMR40
// *IDN? -> ROHDE%SCHWARZ,SMR40,100056/040,1.21

// power in dBm
:SOUR:FREQ:CW 10GHz
OUTP:STAT ON
:POW -15

###Modem AT commands
// AT commands for RS-232 modems

// Identification: Name, Vendor, Version; Software; Chipset; Profile
ATI1
ATI2
ATI3
ATI4

// set local echo on/off
ATE1
ATE0

// hang up/goes online
ATH0
ATH1

// dial the number 2345 (tone dialing)
ATDT2345

###Batch File Example
// example of a batch file for controlling a power supply

// use GPIB address 4, set voltage to 5V, switch on, wait 1.6 sec
##4
:SOUR:VOLT 5
:OUTP ON
$$1.6

// perform voltage sweep from 0V to 5V with 0.5V steps
##6
!! voltage (V), current (A)
@@for Vx 0 to 5 step 0.5
  :SOUR:VOLT @@Vx@@
  :READ?
@@end

// finally, save results that were printed out
>>filename.txt
