2-44 Agilent 4155C/4156C VXIplug&play Driver User’s Guide, Edition 4
Driver Function Reference
hp4156b_sweepMiv
Syntax ViStatus _VI_FUNC hp4156b_sweepMiv(ViSession vi, ViInt32 channel[ ],
ViInt32 mode[ ], ViReal64 range[ ], ViPInt32 point, ViReal64 source[ ],
ViReal64 value[ ], ViInt32 status[ ]);
Parameters vi Instrument handle returned from hp4156b_init( ).
channel[ ] Channel number of the measurement unit. 1 to 6 (SMU1 to
SMU6), 23 (VMU1), or 24 (VMU2).
Enter 0 to the last element of channel[ ]. For example, if you use
two channels, set the array size to 3, specify the channels to the
first and second elements, and enter 0 to the third element.
mode[ ] Measurement mode. 1 (current, only for SMU) or 2 (voltage).
range[ ] Measurement ranging mode. 0 (auto), positive value (limited
auto), or negative value (fixed range). For the available values,
see Table 2-2 and Table 2-5 or Table 2-7.
point Number of measurement steps. Returned data.
source[ ] Sweep source setup data. Returned data.
value[ ] Measurement data. Returned data.
status[ ] Measurement status. Returned data. For the status value, see
“Status Code” on page 2-12.
Example
ViSession vi;
ViStatus ret;
ViInt32 mch[3]; /* measurement channels */
mch[0] = 1;
mch[1] = 2;
mch[2] = 0;
ret = hp4156b_setSwitch(vi, mch[0], 1);
ret = hp4156b_setSwitch(vi, mch[1], 1);
ViInt32 om = 2; /* output mode: voltage */
ViInt32 sm = 1; /* sweep mode: voltage-single-linear mode */
ViReal64 or = 0; /* output range: auto */
ViReal64 v1 = 0; /* start voltage */
ViReal64 v2 = 1.5; /* stop voltage */
ViInt32 pts = 11; /* point */
ViReal64 th = 0.01; /* hold time */
ViReal64 td = 0.001; /* delay time */
ViReal64 ts = 0.001; /* step delay time */
ViReal64 icomp = 0.1; /* current compliance */
ViReal64 pcomp = 0.2; /* power compliance */
ret = hp4156b_force(vi, mch[0], om, or, v1, icomp, 0);
ret = hp4156b_setIv(vi, mch[1], sm, or, v1, v2, pts, th, td, ts,
icomp, pcomp);
ViInt32 mm[2]; /* measurement mode */
ViReal64 mr[2]; /* measurement range */