You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Matts lower-level way of programming a burst with 1 slow andor rate:

export EPICS_PVA_ADDR_LIST=172.21.152.78 (allows rix-daq to talk to the XPM, e.g. to program sequences)

source /cds/group/pcds/dist/pds/rix/scripts/setup_env.sh
traingenerator -s 14000 -b 28 -n 32001 -r 2 -d "burst" -t 910000 >& /tmp/beam.py
periodicgenerator -p 91 91000 -s 0 0 -d '10kHz' '10Hz' --repeat 3 --notify >& /tmp/codes.py 
seqprogram --seq 0:/tmp/codes.py 3:/tmp/beam.py --pv DAQ:NEH:XPM:3

Command to view the status of the sequence:

rix-daq:~> pvget DAQ:NEH:XPM:3:SEQCODES
DAQ:NEH:XPM:3:SEQCODES 2023-05-22 17:26:52.369    
EventCode Description  Rate Enabled
      272                 1       1
      273               102       1
      274                 0       1
      275                 0       1
      276                 0       0
      277                 0       0
      278                 0       0
      279                 0       0
      280                 0       0
      281                 0       0
      282                 0       0
      283                 0       0
      284             10206       1
      285                 0       1
      286                 0       1
      287                 0       1
rix-daq:~> 

Command to start a sequence that has ended (note that 9=(8<<3) | (1<<0) so sequence engines 3 and 0 are restarted):

pvput DAQ:NEH:XPM:3:SeqReset 9

Matt's higher level way of programming a burst with 2 slow andor rates.  Note that this generates an infinite sequence.  To generate a finite "burst" sequence one needs to use periodicgenerator.py and traingenerator.py above.  The only way to stop a running infinite sequence is to program another sequence.

python ~weaver/lcls2-new/psdaq/psdaq/seq/rixgeneratory.py --periods 1.0 0.01  (units in seconds. generates two files beam.py and codes.py in the current directory which should be programmed with "seqprogram")

Running a standalone daq step-scan (no hutch-python).  The number "9" corresponds to two bits: 9=8+1, or 9=(1<<3) | (1<<0), where 3 and 0 are the two sequence engines that have been programmed with seqprogram above.  The "-g" argument is for the readout groups in the partition (2,5): 36=(1<<5) | (1<<2).

python ~weaver/lcls2-new/psdaq/psdaq/control/rix_bluesky_scan.py -p 2 -C drp-srcf-cmp004 -g 36 --detname andor_vls_0 --seqctl DAQ:NEH:XPM:3:SeqReset 9 DAQ:NEH:XPM:3:SeqDone

A hutch-python scan in "burst mode" (need to use finite sequences generated by traingenerator.py/burstgenerator.py):

In [4]: daq.configure(motors=[sim.fast_motor1],group_mask=36, events=0, detname='andor_dir_0', seq_ctl=['DAQ:NEH:XPM:3:SeqReset',9,'DAQ:NEH:XPM:3:SeqDone'])
INFO     configure - configure: 1 motors
INFO     configure - Found readout group 5 for andor_dir_0.
Out[4]: ({}, {})
In [5]: RE(bp.scan([daq], sim.fast_motor1, -10, 10, 5))

matt's new way of setting up bursts (generates beam.py and codes.py)

A hutch-python scan where the sequence runs continuously, recording 1 slow-andor event per step.  In this case the start of the DAQ acquisition in each step is asynchronous to the running sequence.

In [8]: daq.configure(motors=[sim.fast_motor1],group_mask=36, events=1, detname='andor_norm_0', record=True)
INFO     configure - configure: 1 motors
INFO     configure - Found readout group 5 for andor_norm_0.
Out[8]: ({}, {})

In [9]: RE(bp.scan([daq], sim.fast_motor1, -10, 10, 5))

  • No labels