****************************************************************** * this file contains only the subs needed for the thermionic lab * ****************************************************************** c subroutine IEopen(iunit,device_inet_name) c allows integer iunit to act as a short-hand name for the domain name of a gpib-enet c iunit: an integer short-hand for the internet domain name of the device c device_inet_name: string containing the internet address ['gpib0', 'gpib1'] c subroutine egstatus(ibsta,iberr,iegerr,ibcntrl) c reports the status of a gpib-enet...should be zero c ibsta: c iberr: c iegerr: c ibcntrl: count of bytes transferred c subroutine IEk192init(iunit,iadd,ifunct,irange) c for controlling keithley model 192 DMM c c iunit: unit number for connection established with IEopen c iadd: primary address of device [20,21] c ifunct: 0:DCV, 1:ACV, 2:OHM c irange: 0:auto, 1:.2, 2:2, 3:20, 4:200, 5:2000, 6:20M c c subroutine IEk192read(iunit,iadd,xx,xerror,over) c for controlling keithley 192 DMM c takes multiple readings and reports stable result or enlarges error accordingly c c iunit: unit number for connection established with IEopen c iadd: primary address of device [20,21] c xx: reading c xerror: calibration error from manual c over: flags errors, including overflow c NOTE: function and range set bu IEk192init c subroutine IEk192status(iunit,iadd,out) c for controlling keithley model 192 DMM c c iunit: unit number for connection established with IEopen c iadd: primary address of device [20,21] c out: string in which output is placed [18 bytes expected] c c status report default 0050020:01000000\c\n c TFRKQSMYZW000000 c subroutine IEk2400init(iunit,iadd,Vmax,Amax) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c Vmax: maximum expected voltage c Amax: maximum expected current c subroutine IEk2400status(iunit,iadd,out) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c out: string containing decimal value of status byte [4 bytes max] c subroutine IEk2400V(iunit,iadd,Vs,volts,amps,time,istat) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c Vs: sourced voltage c volts: measured voltage c amps: measured current c time: in sec since reboot c istat: status integer c c see p 18-52; typical istat: 23556=101110000000100=bits:14,12,11,10,2 c b14-> V-source, b12->I-measure, b11->V-measure, b10->auto-ohms, b2->front inputs c common errors: bit3=compliance problem c subroutine IEk2400sweepV(iunit,iadd,imode,V0,V1,n,v,a) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c imode: 0:linear, 1:log c V0: starting value sourced voltage c V1: ending sourced voltage c n: number of steps (119 max) c v(n): measured voltage array c a(n): measured current array c c subroutine IEk2400A(iunit,iadd,As,volts,amps,time,istat) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c As: sourced amps c volts: measured voltage c amps: measured current c time: in sec since reboot c istat: status integer c c c see p 18-52; typical istat: 39940=1001110000000100=bits:15,12,11,10,2 c b15-> I-source, b12->I-measure, b11->V-measure, b10->auto-ohms, b2->front inputs c common errors: bit3=compliance problem c function eAk2400(amps,irange) c for estimating errors for keithley 2420 sourcemeter- AMPS c based on value (if autorange: irange=0) or value and irange c c amps: measured current c irange: scale range 0:auto, 1:10uA, 2:100uA, etc c returned modified if irange=0 on call c c see appendix A c subroutine IEk2400on(iunit,iadd) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11] c subroutine IEk2400off(iunit,iadd) c for controlling keithley 2400 sourcemeter c c iunit: unit number for connection established with IEopen c iadd: primary address of device [10,11]