AnsweredAssumed Answered

Agilent 34970A Programming 4 wire resistance

Question asked by redgum on Aug 27, 2013
Latest reply on Aug 29, 2013 by tomc
I have written a program using National Windows CVI to read voltages from a 34970A Multimeter and it works ok.
See code below

void HpVolts(void)
{
double readings[4];

viPrintf (DataAcqu, "INIT;*OPC\n");  // Start reading channels   
viPrintf (DataAcqu,"FETCH?\n");
viScanf(DataAcqu,"%,4lf\n",&readings);         // Put readings into an array 

volts1        = readings[1];                    // Machine Output
volts2        = readings[0];                    // LoadCell  Output
}




void GpibCard(int OpenClose)
{
// Open communication with DataAcqu using HP-IB address "9" 
if(OpenClose == 1)                 // Open the GPIB port
  {
   viOpenDefaultRM (&defaultRM);
   viOpen (defaultRM,"GPIB0::9::INSTR",VI_NULL,VI_NULL, &DataAcqu);  
   viPrintf(DataAcqu,"*RST;*CLS\n"); 
   viPrintf (DataAcqu, "CONF:VOLT:DC 10,(@101,104)\n");  
   viPrintf (DataAcqu,"ROUT:CHAN:DEL 0,(@101,104)\n");
   viPrintf (DataAcqu,"CONF:DC 10,0.001,(@101,104)\n");
   viPrintf (DataAcqu,"ZERO:AUTO ONCE,(@101,104)\n"); 
   viPrintf (DataAcqu,"ZERO:AUTO OFF,(@101,104)\n"); 
  }
else
  {
   viClose (DataAcqu);        // Close the GPIB port 
   viClose (defaultRM);   
  }



My problem is I now need to read in resistive values from decade boxes in  the range 1R to 16M
I have used similar code to above but the examaple for the CONFigure in the User Guide on 4 wire resistance is a bit confusing
I need the meter to Auto range and have a resolution of 1 ohm, that reading up to 16M
I would appreciate help from anyone who has written code to read 4 wire resistance from a Agilent 34970A  

Outcomes