Question:
Do you have an example program that collects data direct to disk from a 3852A?

Answer:
The following program configures the high-speed DVM to make measurements as fast as possible. The readings are sent to an external LIF formatted disk drive via the 44788A card. Using a Agilent 7912A, a data rate of 8 KHZ was maintained for 10 minutes.



30 ! The following program configures the high speed DVM

40 ! to make measurements as fast as possible. The readings

50 ! are sent to a external LIF FORMATTED disk drive via

60 ! a 44788A card. The disk drive I used was a model 7912.

70 ! The program is written in a CDA format. I achieved a

80 ! rate of 8 KHz for > 600 seconds

90 !

100 ! The 3852S was configured as follows:

110 !

120 ! slot module

130 ! 200 44788A HP-IB card

140 ! 500 44711A High speed fet mux

150 ! 600-700 44702B High speed DVM

160 !

190 ! YOU CAN CHANGE THE NUMBER OF BYTES THAT ARE TRANSFERRED

200 ! IN A GROUP OF READINGS AND INPROVE THE RESULTS. FOR MY

210 ! DISK DRIVE, 5000 RDGS (OR 10000 BYTES) PER BLOCK WORKED WELL.

240 !

250 ! **************************************************

260 ! FASTEST RATE >25 kHZ

270 ! **************************************************

280 !

290 OPTION BASE 1

300 !

310 ASSIGN @Dac TO 709

320 ASSIGN @Bin TO 709;FORMAT OFF

330 ASSIGN @Prn TO 701

340 !

350 DIM A$[50]

360 INTEGER Int_d

370 !

380 ! SET FREQ OF SCAN below

390 !

400 Samp_rt=25000

410 Numcycls=950

420 Rec_size=5000 ! NUMBER OF READINGS TRANSFERRED PER CYCLE

430 File_size=(Numcycls*Rec_size*2) ! IN BYTES

440 Num_rec=40000 ! NUMBER OF REC IN FILE

450 Rec_siz=256 ! RECORD SIZE IN FILE

460 Req_rec=File_size/Rec_siz

470 !

480 ! REPORT FILE SPECS

490 !

500 OUTPUT @Prn

510 OUTPUT @Prn;"ATTEMPTED DATA ACQUISITION SPEED";Samp_rt

520 OUTPUT @Prn

530 OUTPUT @Prn;"NUMBER OF READINGS TRANSFERRED PER CYCLE";Rec_size

540 OUTPUT @Prn;"ATTEMPTED NUMBER OF CYCLES";Numcycls

550 OUTPUT @Prn;"ATTEMPTED NUMBER OF BYTES WRITTEN TO FILE";File_size

560 OUTPUT @Prn

570 OUTPUT @Prn;"FILE -- RECORD SIZE";Rec_siz

580 OUTPUT @Prn;"FILE -- NUMBER OF RECORDS";Num_rec

590 OUTPUT @Prn;"REQUIRED RECORDS TO STORE";Numcycls;"CYCLES IN THE DATA FILE";Req_rec

600 OUTPUT @Prn

640 !

650 !

660 CLEAR @Dac

670 OUTPUT @Dac;"RESET"

680 WAIT 1

690 !

700 ! CAT DISK AND CREATE FILE

710 !

720 OUTPUT @Dac;"CAT ':,203'"

730 REPEAT

740 IF BIT(SPOLL(@Dac),0) THEN

750 ENTER @Dac;A$

760 PRINT A$

770 END IF

780 UNTIL BINAND(SPOLL(@Dac),17)=16

790 PRINT

800 !

810 INPUT "PURGE DATA FILE ",Ddf$

820 IF NOT (Ddf$="" OR Ddf$="NO") THEN OUTPUT @Dac;"PURGE 'DVM_DATA:,203'"

830 !

840 INPUT "CREATE DATA FILE ",Ddf$

850 IF NOT (Ddf$="" OR Ddf$="NO") THEN OUTPUT @Dac;"CREATE BDAT 'DVM_DATA:,203'";Num_rec;",";Rec_siz

860 OUTPUT @Dac;"ASSIGN @D TO 'DVM_DATA:,203' FORMAT OFF"

870 !

880 ! MAINFRAME COMMANDS

890 !

900 OUTPUT @Dac;"OUTBUF ON; INBUF ON"

910 OUTPUT @Dac;"DISABLE LABELS; DISP OFF"

920 OUTPUT @Dac;"PACKED A(";Rec_size*2-1;")"

930 OUTPUT @Dac;"INTEGER I,N"

940 OUTPUT @Dac;"N=0"

950 !

960 ! Configure the voltmeter in slot 600:

970 !

980 OUTPUT @Dac;"USE 600"

990 OUTPUT @Dac;"SCANMODE ON"

1000 OUTPUT @Dac;"SCTRIG HOLD"

1010 OUTPUT @Dac;"FUNC DCV"

1020 OUTPUT @Dac;"RANGE 10"

1030 OUTPUT @Dac;"TERM RIBBON"

1040 OUTPUT @Dac;"RDGSMODE BURST"

1050 OUTPUT @Dac;"NRDGS 1"

1060 OUTPUT @Dac;"SPER";1/Samp_rt ! Vary the scanning rate here

1070 OUTPUT @Dac;"SCDELAY 0,";1/Samp_rt

1080 OUTPUT @Dac;"ASCAN ON"

1090 OUTPUT @Dac;"TRIGOUT ON"

1100 OUTPUT @Dac;"CLWRITE SENSE 500-507"

1110 OUTPUT @Dac;"POSTSCAN 0"

1120 OUTPUT @Dac;"STTRIG HOLD"

1130 !

1140 DISP "INTERRUPT SETUP"

1150 !

1190 OUTPUT @Dac;"SUB MOVER2"

1200 OUTPUT @Dac;" WHILE N<";Numcycls

1210 OUTPUT @Dac;" XRDGS 600";Rec_size-1;"INTO A"

1220 OUTPUT @Dac;" OUTPUT @D A(*)"

1230 OUTPUT @Dac;" N=N+1"

1240 OUTPUT @Dac;" VREAD N PACK"

1250 OUTPUT @Dac;" INDEX A 0"

1260 OUTPUT @Dac;" END WHILE"

1270 OUTPUT @Dac;"SUBEND"

1280 !

1290 OUTPUT @Dac;"ON INTR USE 600 CALL MOVER2"

1300 OUTPUT @Dac;"ENABLE INTR USE 600"

1310 OUTPUT @Dac;"ENABLE INTR SYS"

1320 !

1330 DISP "TRIGGER DVM"

1340 !

1350 OUTPUT @Dac;"SCTRIG SGL USE 600" ! Trigger voltmeter to

1360 ! begin taking readings

1370 !

1380 ! GOTO Query_n

1390 ON TIMEOUT 7,25 GOTO Dead

1400 FOR N=1 TO Numcycls

1410 ENTER @Bin;Int_d

1420 OUTPUT 1;Int_d,N

1430 NEXT N

1440 OUTPUT @Prn;"TEST COMPLETED SUCCESSFULLY"

1450 OUTPUT @Prn;"NUMBER OF LOOPS COMPLETED";N

1460 OUTPUT @Prn;"TOTAL BYTES WRITTEN TO DISK :";N*Rec_size*2

1470 STOP

1480 !

1490 !

1500 Dead: !

1510 OUTPUT @Prn;"44702A BUFFER FILLED -- DATA ACQUISITION STOPPED"

1520 OUTPUT @Prn;"NUMBER OF LOOPS COMPLETED";N

1530 OUTPUT @Prn;"TOTAL BYTES WRITTEN TO DISK :";N*Rec_size*2

1540 STOP

1550 Query_n: !

1560 PAUSE

1570 CLEAR @Dac

1580 OUTPUT @Dac;"VREAD N"

1590 ENTER @Dac;N

1600 PRINT N

1610 STOP

1620 END