Running Scans

Scans can be run using any of of the HXRSnD motors, including the virtual, motors using the DAQ. To perform the scans, the bluesky module is used meaning scans must be defined as plans that return messages to the bluesky run engine, indicating the next step in the scan.

For a comprehensive tutorial on how to write bluesky plans, see their documentation on Basic Usage & Intro to Plans.

Defining Plans

Scans are defined in the hxrsnd.plans script and are imported into the the main IPython shell for HXRSnD. Using linear_scan as an example, define the plan as follows:

In [1]: plan = linear_scan(snd.E2, 9000, 10000, 5, return_to_start=False, verify_move=False)

The variable plan now contains the sequence of steps that will be carried out to perform the scan using the E2 macromotor.

Running Plans

To actually run the scan, it must be passed to a bluesky RunEngine object. In the SnD IPython shell, there is a RunEngine object defined as RE. So to run the aforementioned scan:

In [2]: RE(plan)