DMC_grat_scan_nochop
At each grating position, data is taken with chopper at position P#11 (P#5 ramps), and then on BB1 and BB2 (P#9 ramps at positions P#7 and P#8)
DMC sequence pseudo code:
WAIT 1 ; have a defined start LABEL 0 ; set Label to 0 LOOP P#1 ; main loop measurement LOOP P#2 ; grating loop up WAIT 1 ; sync. for grating MOVE_GRATING_RELATIVE P#3 ; increment grating position LABEL 3 ; first chopper pos. WAIT P#5 ; take P#5 ramps LOOP P#6 ; calibration loop WAIT 1 ; sync. for chopper MOVE_CHOPPER_ABSOLUTE P#7 ; chop to BB1 LABEL 65 ; BB1 WAIT P#9 ; take P#9 ramps WAIT 1 ; sync. for chopper MOVE_CHOPPER_ABSOLUTE P#8 ; chop to BB2 LABEL 129 ; BB2 WAIT P#9 ; take P#9 ramps END_LOOP ; calibration done MOVE_CHOPPER_ABSOLUTE P#11 ; chopper to default END_LOOP ; grating scan up done LOOP P#10 ; grating loop down WAIT 1 ; sync. for grating MOVE_GRATING_RELATIVE P#4 ; decrement grating position LABEL 19 ; first chopper pos. WAIT P#5 ; take P#5 ramps LOOP P#6 ; calibration loop WAIT 1 ; sync. for chopper MOVE_CHOPPER_ABSOLUTE P#7 ; chop to BB1 LABEL 81 ; BB1 WAIT P#9 ; take P#9 ramps WAIT 1 ; sync. for chopper MOVE_CHOPPER_ABSOLUTE P#8 ; chop to BB2 LABEL 145 ; BB2 WAIT P#9 ; take P#9 ramps END_LOOP ; calibration done MOVE_CHOPPER_ABSOLUTE P#11 ; chopper to default END_LOOP ; grating scan down done END_LOOP ; main loop done WAIT 1 ; complete last plateau LABEL 0 ; reset LABEL to 0
Input variabke(s):
int[] procedure DMC_grat_scan_nochop { int nb_up_dn = 1; // Seq P#1 Nb of sequences: up down up ... int nb_grat_steps_up = 10; // Seq P#2 Nb of grating up steps int nb_ramps_grat_pos = 2; // Seq P#5 Nb of ramps per grating position int nb_CS1_CS2 = 0; // Seq P#6 Nb of cycles on CS, per grat position int nb_ramps_cs = 2; // Seq P#9 Nb of ramps per plateau on the CS int nb_grat_steps_dn = 10; // Seq P#10 Nb of grating down steps }{
The only role of PACS' DMC scripts is the computation of the duration of DEC/MEC sequences, needed as input variable when starting the associated OBCP.