Agilent Technologies 66311B Portable Generator User Manual


 
D – Example Programs
166
Error Handling
If there is no error-handling code in your program, undetected errors can cause unpredictable results.
This includes "hanging up" the controller and forcing you to reset the system. National Instruments
drivers have routines for detecting program execution errors. Error detection should be used after every
call to a subroutine.
Example 1. National Instruments Interface Example
990 ’---------------------- Merge DECL.BAS here ------------------------
1000 ’DC Source Variable = PS% ; Stand-Alone Address = 706
1005 CODES$=SPACE$(50):MODE$=SPACE$(5):OEVENT$=SPACE$(20)
1010 D$=SPACE$(60):OUTPUT$=SPACE$(40):BDNAME$="PS%"
1015 DIM OUTPUT(2)
1020 ’
1025 ’Set up dc source interface for DOS driver
1030 CALL IBFIND(BDNAME$,PS%)
1035 IF PS%
1040 CALL IBCLR(PS%)
1045 ’
1050 ’Program dc source to CV mode with following voltage and current
1055 CODES$ = "VOLTAGE MAX;CURRENT MAX" :GOSUB 2000
1060 ’
1065 ’Query dc source outputs and print to screen
1070 CODES$ = "MEASURE:VOLTAGE?;CURRENT?" :GOSUB 2000 :GOSUB 3000
1075 VOUT = OUTPUT(1)
1080 IOUT = OUTPUT(2)
1085 PRINT"The programmed levels are "VOUT" Volts and "IOUT" Amps"
1090 ’
1095 ’Program triggered current level to value insufficient to maintain
1100 ’supply within its CV operating characteristic
1105 CODES$ = "CURR:TRIG MIN" :GOSUB 2000
1110 ’
1115 ’Set operation status mask to detect mode change from CV to CC
1120 CODES$ = "STAT:OPER:ENAB 1024;PTR 1024" :GOSUB 2000
1125 ’
1130 ’Enable Status Byte OPER summary bit
1135 CODES$ = "*SRE 128" :GOSUB 2000
1140 ’
1145 ’Arm trigger circuit and send trigger to dc source
1150 CODES$ = "INITIATE:SEQUENCE1;TRIGGER" :GOSUB 2000
1160 ’Wait for supply to respond to trigger
1165 FOR I= 1 to 100 :NEXT I
1170 ’
1175 ’Poll for interrupt caused by change to CC mode and print to screen
1180 SPOL%=0
1185 CALL IBRSP(PS%,SPOL%)
1190 IF (SPOL% AND 128) = 128 THEN POLL = 1 ’Set interrupt flag on OPER bit
1195 IF POLL <> 1 THEN GOTO 1230 ’No interrupt to service
1200 "CODES$ = "STAT:OPER:EVEN?" :GOSUB 2000 ’Query status oper register
1205 CALL IBRD(PS%,OEVENT$) ’Read back event bit
1210 IF IBSTA%
1215 OEVENT=VAL(OEVENT$)
1220 IF (OEVENT AND 1024) = 1024 THEN PRINT "Supply switched to CC mode."