User`s manual

Using a PC, C Language, and the
HP 82335 HP-IB Interface Card
The following benchmark program scans 50 channels, 40 times, and
compares each reading to upper and lower limits. The benchmarks varied
from 1.5 to 1.75 sec. The variation is caused by the time function in the
computer reporting back time with only 1 second increments.
The loop is repeated four times, thus: 6/4=1.5 and 7/4=1.75.
The line:
IOOUTPUTS(ADDR, "FORMAT REAL,32",14 );
programs the E1326B to output its data in a 32-bit real format.
The line:
IOENTERAB(ADDR, rdgs, &bytes, swap);
/* enter readings and remove block header */
enters the 32-bit numbers sent out by the DMM directly into a "float" type
C variable which is also 32-bits. Doing binary transfers this way is the
fastest method of moving data.
The program was Compiled in Borland TurboC, and was run on an
HP Vectra 25 MHz, 386 PC with an HP 82335 HP-IB card connected
to an HP E1301A mainframe with an HP E1326B multimeter and four
HP E1351A FET multiplexers.
/* BENCHMK.C - This is a benchmark program for the E1326B. The program */
/* scans 50 FET multiplexer channels 40 times, and repeats the sequence */
/* 4 times. The readings are compared to a set of limits after each scan. */
/* Results: 1.5000 to 1.75000 seconds for 40 scans of 50 channels */
/* Include the following header files */
#include <studio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
#define ADDR 70903L
/* I/O path from PC to the E1326 scanning multimeter */
/* Function Prototypes */
void rst_clr(void);
void scan_mult(void);
void check_error(char *func_tion);
/******************************************************************/
Continued on Next Page
60 Using the HP E1326B/E1411B Multimeter Chapter 3