

10 '  **************************************************************
20 '  *  Program example EXAM6.BAS                                 *
30 '  *  Readout of FFT values                                     *
40 '  *  1-channel FFT with limit check of values                  *
50 '  *  Setup for this example: EXAM6.SAC (Actual Setup Mode)     *
60 '  **************************************************************
70 '
80 Upl=20: '                           Bus-Address
90 IEC TERM 10: IEC TIME 10000: '      Terminator and timeout
100 IEC OUT Upl,"MMEM:LOAD:STAT 0,'C:\UPL\IEC_EXAM\EXAM6.SAC'"
110 IEC OUT Upl,"init:cont off;*WAI": '     single sweep
120 '                                   Trigger of FFT and wait for termination
125 IEC OUT Upl,"SYST:BEEP:STAT ON": '    Dummycommand waits for WAI
130 IEC OUT Upl,"calc:lim:upp:stat on": 'switch limit check on
140 IEC OUT Upl,"calc:lim:on trac1": '   for channel 1
150 IEC OUT Upl,"calc:lim:upp:val -60 dbv": 'select values > -60dBV
160 ' only FFT-values above limit are stored in the trace buffer
170 ' so the amount of values can be reduced
180 ' (max 1023 values can be read out via bus!)
190 IEC OUT Upl,"trac:poin? trac1": '  ask for number of values
200 IEC IN Upl,W$: Poin=VAL(W$): '     Poin = number of measured values
210 PRINT "Number of measured values: ";Poin
220 DIM Lev(Poin),Freq(Poin): '        Dimension of results
230 IEC OUT Upl,"trac:data? trac1": '  ask for trace data channel 1
235 IEC TERM 44: 'Stringterminator ','
240 FOR Ix=0 TO Poin-2
250  IEC IN Upl,S$: Lev(Ix)=VAL(S$)
260 NEXT Ix
270 IEC TERM 10: IEC IN Upl,S$: Lev(Poin-1)=VAL(S$): ' last value
300 '
310 IEC OUT Upl,"trac:data? list1": '  ask for frequency data channel 1
315 IEC TERM 44
316 FOR Ix=0 TO Poin-2
320  IEC IN Upl,S$: Freq(Ix)=VAL(S$)
325 NEXT Ix
340 IEC TERM 10: IEC IN Upl,S$: Freq(Poin-1)=VAL(S$)
390 '    the results are now available in Lev(0) to Lev(Poin-1)
400 '    and the frequency values in Freq(1) to Freq(Poin)
410 '    all values are stored in basic units Volt or Hz
420 '    calculations of values have to consider this
430 '    the grafical display in the UPL is independend !
440 '
450 '  Example for printout all values
455 IEC LAD Upl: IEC GTL 
460 N=0
470 FOR I=0 TO Poin-1
480 PRINT USING "###";I+1;
490 PRINT TAB(10);USING "######.##";"Freq ";Freq(I);" Hz";
500 PRINT TAB(35);USING "####.#####";"Level ";Lev(I)*1000;" mV"
510 N=N+1: IF N=19 THEN INPUT "Press RETURN for more data!";X$: N=0
520 NEXT 
530 '    with following line you can ask UPL for syntax errors (wo REM)
540 REM IEC OUT Upl,"syst:err?": IEC IN Upl,W$: PRINT W$
550 END 
