6146/6156 DC Voltage/Current Generators Operation Manual
5.9.4 Program Example 3-Sweep Operation and Voltage/Current Measurement
5-63
Call ibconfig(intDMMDes, IbcUnAddr, 1)
' Clears the devices and initializes parameters.
Call gpibwrt(intVIGDes, "C,*RST")
Call gpibwrt(intDMMDes, "C,*RST")
' VIG setting
Call gpibwrt(intVIGDes, "VF") ' Voltage source function
Call gpibwrt(intVIGDes, "MD2") ' Sweep source mode
Call gpibwrt(intVIGDes, "SCM1") ' Single sweep
Call gpibwrt(intVIGDes, "SP0.5") ' Sets the sweep step time to 0.5 s.
Call gpibwrt(intVIGDes, "SN0,3,0.01") ' Start: 0 V, stop: 3 V, step: 10 mv
Call gpibwrt(intVIGDes, "SB0") ' Sets the bias value to 0 V.
Call gpibwrt(intVIGDes, "LMI 0.01") ' Sets the current limit to 10 mA.
Call gpibwrt(intVIGDes, "ROD0") ' Sets the READY signal delay time to 10 ms.
Call gpibwrt(intVIGDes, "*CLS") ' Status clear
' DMM setting
Call gpibwrt(intDMMDes, "F1") ' DC voltage measurement function
Call gpibwrt(intDMMDes, "PR2") ' Sets the sampling rate to Middle.
Call gpibwrt(intDMMDes, "TRS3") ' Sets the trigger to BUS.
Call gpibwrt(intDMMDes, "H0") ' Header OFF
Call gpibwrt(intDMMDes, "*CLS") ' Status clear
Call gpibwrt(intVIGDes, "OPR") ' Sets the VIG output to ON.
' Waits until the VIG operation is complete.
Do
Call gpibwrt(intVIGDes, "DSR?") ' DSR query
Call gpibrd(intVIGDes, strRecvStr) ' Data reception
lngVIGDSR = CLng(strRecvStr) ' DSR value storing
lngVIGDSR = lngVIGDSR And 1024 ' AND operation on the READY OUT bit
Loop Until lngVIGDSR = 1024 ' Repeats until the READY OUT bit is set.
Call gpibwrt(intVIGDes, "*TRG") ' Sweep start
Do
Call gpibwrt(intVIGDes, "DSR?") ' DSR query
Call gpibrd(intVIGDes, strRecvStr) ' Data reception
lngVIGDSR = CLng(strRecvStr) ' DSR value storing
' AND operation on each function bit of DSR
blnRDYb = lngVIGDSR And 1024 ' READY Out bit
blnSWEb = lngVIGDSR And 8192 ' Sweep End bit
blnLMHb = lngVIGDSR And 128 ' Limiter High bit
blnLMLb = lngVIGDSR And 64 ' Limiter Low bit
If blnLMHb = True Then ' Checks for the HI limiter.
strSrcLimit = "LMH"
End If
If blnLMLb = True Then ' Checks for the LO limiter.
strSrcLimit = strSrcLimit & "LML"
End If
If blnRDYb = True Then
lngMeasCnt = lngMeasCnt + 1 ' Increments the number of measurement
Call gpibwrt(intDMMDes, "*TRG") ' Sends the trigger and starts measurement.
Do
Call gpibwrt(intDMMDes, "*STB?") ' STB query
Call gpibrd(intDMMDes, strRecvStr) ' Data reception
lngDMMSTB = CLng(strRecvStr) ' STB value storing