Calibration Programs
B-12
IF I <> 1 AND I <> 15 AND I <> 16 AND I <> 27 AND I <> 29 THEN GOSUB Settle
PRINT #1, "OUTPUT 16;"; C$; Cmd$; ";*OPC" ' Send cal command to 2002.
GOSUB CalEnd ' Wait until cal step ends.
GOSUB ErrCheck ' Check for cal error.
NEXT I
'
LINE INPUT "Enter calibration date (yyyy,mm,dd): "; D$
PRINT #1, "OUTPUT 16;:CAL:PROT:DATE "; D$
GOSUB ErrCheck
LINE INPUT "Enter calibration due date (yyyy,mm,dd): "; D$
PRINT #1, "OUTPUT 16;:CAL:PROT:NDUE "; D$
GOSUB ErrCheck
PRINT #1, "OUTPUT 16;:CAL:PROT:SAVE" ' Save calibration constants.
GOSUB ErrCheck
PRINT #1, "OUTPUT 16;:CAL:PROT:LOCK" ' Lock out calibration.
PRINT #1, "OUTPUT 16;:SYST:PRES" ' Restore bench defaults.
PRINT "Calibration completed."
END
'
KeyCheck: ' Check for key press routine.
WHILE INKEY$ <> "": WEND ' Flush keyboard buffer.
PRINT : PRINT "Press any key to continue (ESC to abort program)."
DO: I$ = INKEY$: LOOP WHILE I$ = ""
IF I$ = CHR$(27) THEN GOTO EndProg ' Abort if ESC is pressed.
RETURN
'
CalEnd: ' Check for cal step completion.
PRINT "Performing calibration step #"; I
DO: PRINT #1, "SRQ?" ' Request SRQ status.
INPUT #2, S ' Input SRQ status byte.
LOOP UNTIL S ' Loop until operation complete.
PRINT #1, "OUTPUT 16;*ESR?" ' Clear OPC.
PRINT #1, "ENTER 16"
INPUT #2, S
PRINT #1, "SPOLL 16" ' Clear SRQ.
INPUT #2, S
RETURN
'
ErrCheck: ' Error check routine.
PRINT #1, "OUTPUT 16;:SYST:ERR?" ' Query error queue.
PRINT #1, "ENTER 16"
INPUT #2, E, Err$
IF E <> 0 THEN BEEP: PRINT : PRINT Err$ ' Display error.
RETURN
'
CheckSwitch: ' Check CAL switch status.
PRINT #1, "OUTPUT 16;:CAL:PROT:LLEV:SWIT?"
PRINT #1, "ENTER 16"
INPUT #2, S
IF S = 1 THEN RETURN
PRINT "Calibration is locked. To unlock calibration, hold in CAL"
PRINT "switch while turning on power, then restart program."
END
'
Settle: ' Calibrator settling routine.
DO: PRINT #1, "OUTPUT 4;ISR?" ' Query status register.
PRINT #1, "ENTER 4"
INPUT #2, S
LOOP UNTIL (S AND &H1000) ' Test settle bit.
RETURN
'
EndProg:
BEEP: PRINT "Calibration aborted."
PRINT #1, "OUTPUT 4;STBY"
PRINT #1, "OUTPUT 16;:SYST:PRES"
PRINT #1, "LOCAL 4 16"
CLOSE
END