
Programming Some Power supply Functions (continued)
| 1130 | ’Enable Status Byte OPER summary bit | 
 | ||
| 1135 | CODES$ = "*SRE 128" | :GOSUB 2000 | ||
| 1140 | ‘ | 
 | 
 | 
 | 
| 1146 | 'Arm trigger circuit and send trigger to power supply | 
 | ||
| 1150 | CODES$ = "INITIATE;TRIGGER" :GOSUB 2000 | 
 | ||
| 1160 | 'Wait for unit 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%=O | 
 | 
 | 
 | 
| 1186 | 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% <0 THEN GOTO 21OO | 
 | ||
| 1215 | OEVENT=VAL(OEVENT$) | 
 | ||
| 1220 | IF (OEVENT AND 1024) = 1024 THEN PRINT "Unit switched to CC mode." | 
 | ||
| 1225 | ‘ | 
 | 
 | 
 | 
| 1230 | 'Clear status circuit | 
 | ||
| 1235 | CODES$="*CLS" | :GOSUB 2000 | 
 | |
| 1240 | FOR I=1 TO 50 | :NEXT I | 'Wait for unit to clear | |
| 1245 | ‘ | 
 | 
 | 
 | 
| 1250 | 'Disable output and save present state to location 2 | 
 | ||
| 1255 | CODES$ = "OUTPUT OFF;*SAV 2" :GOSUB 2000 | 
 | ||
| 1260 | END | 
 | 
 | 
 | 
| 1265 | ‘ | 
 | 
 | 
 | 
| 2000 | 'Send command to power supply | 
 | ||
| 2005 | CALL IBWRT(PS%,CODES$) | 
 | ||
| 2010 | IF IBSTAT% < 0 THEN GOTO 2100 | 'Error detected | ||
| 2015 | RETURN | 
 | 
 | 
 | 
| 1250 | 'Disable output and save present state to location 2 | 
 | ||
| 1255 | CODES$ = "OUTPUT OFF;*SAV 2" :GOSUB 2000 | 
 | ||
| 1260 | END | 
 | 
 | 
 | 
| 1265 | ‘ | 
 | 
 | 
 | 
| 2000 | 'Send command to power supply | 
 | ||
| 2005 | CALL IBWRT(PS%,CODES$) | 
 | ||
| 2010 | IF IBSTAT% < 0 THEN GOTO 2100 | 'Error detected | ||
| 2015 | RETURN | 
 | 
 | 
 | 
| 2020 | ‘ | 
 | 
 | 
 | 
| 2100 | 'Error detection routine | 
 | ||
| 2105 | PRINT "GPIB error. IBSTAT%. = &H";HEX$(IBSTAT%) | 
 | ||
| 2110 | PRINT “ | 
 | IBERR% = ";IBERR%" in line ";ERL | 
 | 
| 2115 | STOP | 
 | 
 | 
 | 
| 2120 | ‘ | 
 | 
 | 
 | 
| 3000 | 'Get data from power supply | 
 | ||
| 3005 | CALL IBRD(PS%,OUTPUT$) | 
 | ||
| 3010 | IF IBSTA% < 0 THEN GOTO 2100 | 
 | ||
| 3015 | I=1 | ' | 
 | 'Parse data string | 
| 3020 | X=1 | 
 | 
 | 
 | 
| 3025 | C=INSTR(I,OUTPUT$,";") | 
 | ||
60 Remote Programming
