Chapter 5 Digitizing 145
the multimeter to take 1000 samples (Num_samples variable) with a 2µs
effective_interval (Eff_int variable). The measurement uses the default level
triggering for the sync source event (trigger from input signal, 0%.
AC-coupling, positive slope). Line 110 generates a SYN event and transfers
the samples directly to the computer. Lines 230 through 400 sort the
sub-sampled data to produce the composite waveform. The composite
waveform is stored in the Wave_form array.
10OPTION BASE 1 !COMPUTER ARRAY NUMBERING STARTS AT 1
20INTEGER Num_samples,Inc,I,J,K,L !DECLARE VARIABLES
30Num_samples=1000 !DESIGNATE NUMBER OF SAMPLES
40Eff_int=2.0E-6 !DESIGNATE EFFECTIVE INTERVAL
50INTEGER Int_samp(1:1000) BUFFER !CREATE INTEGER BUFFER
60ALLOCATE REAL Wave_form(l:Num_samples) !CREATE ARRAY FOR SORTED DATA
70ALLOCATE REAL Samp(l:Num_samples) !CREATE ARRAY FOR SAMPLES
80ASSIGN @Dvm TO 722 !ASSIGN MULTIMETER ADDRESS
90ASSIGN @Int_samp TO BUFFER Int_samp(*) !ASSIGN BUFFER I/O PATH NAME
100OUTPUT @Dvm;"PRESET FAST;LEVEL;SLOPE;SSDC 10;SWEEP ";Eff_int,Num_samples
101!FAST OPERATION, TARM SYN, DEFAULT LEVEL & SLOPE, SUB-SAMPLING (SINT
105!OUTPUT FORMAT), 10V RANGE, 2ms EFFECTIVE INTERVAL, 1000 SAMPLES
110TRANSFER @Dvm TO @Int_samp;WAIT !SYN EVENT, TRANSFER READINGS INTO
111!INTEGER ARRAY; SINCE THE COMPUTER’S INTEGER FORMAT IS THE SAME AS
115! SINT, NO DATA CONVERSION IS NECESSARY HERE (INTEGER ARRAY REQUIRED)
120OUTPUT @Dvm; "I SCALE?" !QUERY SCALE FACTOR FOR SINT FORMAT
130ENTER @Dvm;S !ENTER SCALE FACTOR
140OUTPUT @Dvm; "SSPARM?" !QUERY SUB-SAMPLING PARAMETERS
150ENTER @Dvm;Nl,N2,N3 !ENTER SUB-SAMPLING PARAMETERS
160FOR I=1 TO Num_samples
170 Samp(I)=Int_samp(I) !CONVERT EACH INTEGER READING TO REAL
175 !FORMAT (NECESSARY TO PREVENT POSSIBLE INTEGER OVERFLOW ON NEXT LINE)
180 R=ABS(Samp(I)) !USE ABSOLUTE VALUE TO CHECK FOR OVLD
190 IF R>=32767 THEN PRINT "OVLD" ! IF OVLD, PRINT OVERLOAD MESSAGE
200 Samp(I)=Samp(I)*S !MULTIPLY READING TIMES SCALE FACTOR
210 Samp(I)=DROUND(Samp(I),4) !ROUND TO 4 DIGITS
220NEXT I
225 !-------------------SORT SAMPLES----------------------
230Inc=Nl+N2 !TOTAL NUMBER OF BURSTS
240K=l
250FOR I=1 TO N1
260 L=I
270 FOR J=l TO N3
280 Wave_form(L)=Samp(K)
290 K=K+1
300 L=L+Inc
310 NEXT J
320NEXT I
330FOR I=Nl+l TO Nl+N2
340 L=I
350 FOR J=1 TO N3-1
360 Wave_form(L)=Samp(K)
370 K=K+1
380 L=L+Inc
390 NEXT J
400NEXT I
410END