Application Programs 73
10 ! APPLICATION #1: SEQUENCING MULTIPLE MODULES DURING POWER UP
20 ! PROGRAM: APP_1
30 !
40 ASSIGN @Slot0 TO 70500 ! SELECT CODE 7, MAINFRAME ADDRESS 05, SLOT 00
50 ASSIGN @Slot1 TO 70501 ! SELECT CODE 7, MAINFRAME ADDRESS 05, SLOT 01
60 ASSIGN @Slot2 TO 70502 ! SELECT CODE 7, MAINFRAME ADDRESS 05, SLOT 02
70 !
80 ! SET UP MODULE IN SLOT 0 AS +15 V BIAS SUPPLY ---------------------
90 1
100 OUTPUT@Slot0;"*RST;*CLS;STATUS:PRESET" ! RESET AND CLEAR MODULE
110 OUTPUT@Slot0;”VOLT 0” ! START AT 0 V
120 OUTPUT@Slot0;”VOLT:TRIGGERED 15” ! GO TO 15 V ON TRIGGER
130 OUTPUT@Stot0;”TRIGGER:SOURCE BUS” ! TRIGGER SOURCE IS Agilent -18 'BUS'
140 OUTPUT@Stot0;”OUTPUT:TTLTRG:SOURCE BUS" ! GENERATE BACKPLANE TTL TRIGGER WHEN GPIB 'BUS' TRIGGER IS
RECEIVED
150 OUTPUT@Slot0;”OUTPUT:TTLTRG:STATE ON" I ENABLE BACKPLANE TTL TRIGGER DRIVE
160 OUTPUT@Slot0;”OUTPUT ON" ! ENABLE OUTPUT
170 OUTPUT@Slot0;”INITIATE" ! ENABLE RESPONSE TO TRIGGER
180 !
190 ! SET UP MODULE IN SLOT 1 AS -15 V BIAS SUPPLY ---------------------
200 1
210 OUTPUT@Slot1;"*RST;*CLS;STATUS:PRESET" ! RESET AND CLEAR MODULE
220 OUTPUT@Slot1;"VOLT 0” ! START AT 0 V
230 OUTPUT@Slot1;"VOLT:TRIGGERED 15” ! GO TO 15 V ON TRIGGER
240 OUTPUT@Slot1;"TRIGGER:SOURCE TTLTRG" ! TRIGGER SOURCE IS BACKPLANE TTL TRIGGER
250 OUTPUT @Slot1;"OUTPUT ON" ! ENABLE OUTPUT
260 OUTPUT @Slot1;"INITIATE" ! ENABLE RESPONSE TO TRIGGER
270 !
280 ! SET UP MODULE IN SLOT 2 AS +5 V BIAS SUPPLY ---------------------
290 !
300 OUTPUT @Slot2;"*RST;*CLS;STATUS:PRESET" ! RESET AND CLEAR MODULE
310 OUTPUT @Slot2;"VOLT 0” ! START AT 0 V
320 OUTPUT @Slot2;"VOLT:TRIGGERED 5” ! GO TO 5 V ON TRIGGER
330 OUTPUT @Slot2;"TRIGGER:SOURCE TTLTRG" ! TRIGGER SOURCE IS BACKPLANE TTL TRIGGER
340 OUTPUT @Slot2;"TRIGGER:DELAY 0.050” ! 50 ms TRIGGER DELAY
350 OUTPUT @Slot2;"OUTPUT ON" ! ENABLE OUTPUT
360 OUTPUT @Slot2;"INITIATE" ! ENABLE RESPONSE TO TRIGGER
370 !
380 ! BEFORE TRIGGERING THE MODULES, DETERMINE IF THE MODULES ARE READY BY CHECKING FOR
390 ! 'WAITING FOR TRIGGER' (BIT 5 OF THE OPERATION STATUS REGISTER). IF THE LAST MODULE PROGRAMMED
400 ! IS READY THEN SO ARE THE OTHERS, SO JUST CHECK SLOT 2.
410 !
420 ! YOU COULD ELIMINATE THIS STEP BY SIMPLY INSERTING A PAUSE IN THE PROGRAM. HOWEVER, BY
430 ! CHECKING THE INSTRUMENT STATUS, YOU CAN AVOID TIMING PROBLEMS. ALSO, ANY OTHER OPERATIONS
440 ! THAT TAKE TIME WILL GIVE THE MODULES A CHANCE TO COMPLETE PROCESSING.
450 !
460 REPEAT
470 OUTPUT @Slot2;"STATUS:OPERATION:CONDITION?"
480 ENTER @Slot2;Condition_data
490 UNTIL BIT(Condition_data,5) ! TEST FOR BIT 5 = TRUE
500 !
510 ! TRIGGER MODULE IN SLOT 0 TO BEGIN SEQUENCING THE 3 MODULES TO POWER UP
520 !
530 OUTPUT @Slot0;"*TRG” ! SEND Agilent -1B 'BUS' TRIGGER
540 !
550 END
Figure B1-3. Agilent BASIC Program Listing for Application #1