Data acquisition

Overview

The Data acquisition system is EPICS based and can be controlled by computers inside the instrument firewall. The main computer is the opi computer. The computers inside the firewall are for operating the instrument, therefore there is very limited access outside of the firewall. Do not plan on using these computers for routine tasks like checking email, general web browsing, etc. The most common interface to the

Startup

Usually the Data acquisition is already up and running on the opi computer. If it is not,

  • Open a Terminal
  • In the terminal type CSS

Under the file menu there is a top resources sub menu which contains Main and User These are shown in Figure 1.

top resources menu Figure 1 screen showing the Top Resources menu

User

Usually you want to select the User option which brings up the screen in figure 2. The screen shot in this figure shows the system is stopped (not acquiring data.) Note the IPTS box contains the IPTS number, the Run box contains the last run number that was saved.

To acquire data:

  1. Configure the instrument.

  2. Enter a run title in the Title box

  3. Press the Start Run button.

User control window in stopped condition Figure 2 User Control window in the stopped position

Note that for a run title to be correct it must be entered before the run is started.

Then the user window will now look like Figure 3 which shows it in the running condition.

User control window in the running condition Figure 3 User control window in the running condition

Configuring the Instrument for a measurement

The instrument can be configured manually or by a python script provided by your local contact.
It can also be configured using the table scan interface, but we rarely use this on ARCS.

Energy setup

The Incident Energies that ARCS can use are generally between 8-1000 meV. There is one configuration that can be used at 4 meV. To decide more broadly on incident energies use the Resolution Tool

From the User tab click the Energy button. Then you will see Figure 4.

The Energy window in Auto Mode Figure 4. The Incident Energy tab in automatic mode.

The first thing to notice is the Mode selector in the Incident Energy porition of the window. The various modes will be discussed below. The Chopper Translation Table box tells which Fermi chopper is in the beam. The Chopper Status Box tells the speed Energy and Phase for each chopper. It also has a light to describe if the chopper is Phase locked or not.

Usually you will run in Automatic mode (shown in Figure4.) and then you will type in the incident Energy in the Energy box and select Resolution or high flux from the pull down. This will translate the appropriate Fermi chopper into the beam, spin it to the correct speed and phase it to the desired incident Energy. It will also change the frequency and phase of the T0 chopper appropriately.

Manual mode is for if you want to run a special configuration.

The Energy window in Manual Mode Figure 5

T0 Only mode has no Fermi chopper in the beam it is a way to do a narrow Bandwidth white beam measurement.

The Energy window in T0 Mode Figure 6.

The White Beam configuration runs the chopper at a frequency slightly off a multiple of 30 Hz so the results are like a true white beam. The user will have to filter out the prompt pulse.

The Energy window in White Beam Mode Figure 7.

Main

If the Main is selected from Figure 1, the tab shown in figure 9 opens.

Phoebus ARCS main page Figure 9 The Phoebus main screen.

Lakeshore temperature controllers

There are two buttons for Lake shore temperature controllers on the Main panel.
Usually your instrument staff will set most of the parameters on this screen. Do not set anything you do not understand.
To configure the Lakeshore for the desired sample, click on the appropriate button. You will see something like the screen in Figure 10.

lakeshore Figure 10

To change the set point, enter the desired value in the Setpoint box for the input you would like to control and then press enter. Once you press enter the temperature will begin to change. To configure an output, click on the desired Output button. You will see the screen in Figure 11. Lakeshore Output Figure 11. A Lakeshore output screen.

looking at the screen you will see at the top the Output channel. Below it is a Setpoint box where you can change the setpoint. Next is the Range where you can set the full power output of the heater. Next it the Ramp Rate If you want to ramp temeperature at a certain rate, set the Ramp Rate here in K/min. Then to perform that ramping change Ramp Status to On.

Alignment (scan)

The alignment tab is for watching intensity as a function of a scanned variable (PV). When clicking this button the screen in Figure 12 opens. This tool is used for scanning slits, samples, etc.

CSS alignment tool

  • Enter the title for the scan in the Title box.
  • Enter the PV to scan by selecting from the pull down list. If the desired PV is not in the drop down list, You can enter any other available PV in the Box next to it
  • Enter the lower, upper limit, and step size of the
  • The step condition is what is counted to before going to the next step. This is usually set to Proton charge.
  • The increment by box is how long to let the step condition accumulate before going onto the next step.
  • The Detector box selects weather to count to the sum of the whole detector or the region of interest selected on the screen.

When the properties are set hit the Align to start the scan. As the points are acquired, they are plotted in the graph in the center of the window. A curve is automatically fitted to the data. To change the fit function, select the Fit Method pull down box.

Python scripts Scan

Using Python scripts to put scans on the instrument is the preferred method. The local contact will copy the scripts to an acquisition directory in the IPTS shared directory, specifically /SNS/ARCS/IPTS-<XXXXX>/shared/acquisition

These scripts are a series of commands that are them submitted to the scan server to be executed at a later time.
THe user has full use of Python in writing these scripts so very complex behavior can be scripted. The recommendation is to create simple straightforward scripts that are simpler to debug.

Executing a script

To simulate a script from the commandline type: controls3python <scriptname>

To send the script to the scanserver type: controls3python <scriptname> submit

Writing or modifying the script

The preferred method is to start from scripts that are provided by your local contact. That way the appropriate libraries are loaded and the above execution commands work.

For single crystal scans be sure to set the BL18:AR:Sequence:Name to be the same for all runs that you want to group. This makes them easier to find when using OnCat to find runs to combine.

Common Commands:

Run(<Title>) Generates a Run with a title <Title>

Scan(<Pv_name>,<minvalue>,<maxvalue>,<step>,title=<Title>,wait_pcharge_C=<pcval>, iteration_pvs=[(<Pv_name2>,<pv_value2>),...]) Generates a series of Runs that steps <Pv_name> from <minvalue> to <maxvalue> in steps of <step> giving each run the title <Title>. Each run will wait for a pcharge value of <pcval> in C to accumulate. For PVs that should be set toa a given value for each run, make a list of tuples, where each tuple contrains a <PV_name> and a <pv_vlaue> and assign this value to the optional input interation_pvs. If it is desired that the title should change with the change in the scanned pv, use the `` construct in <Title>

Set(<PV_name>,<pv_value>,tolerance=<tolerance_val>,) Sets <PV_name> to <pv_value> with an optional tolerance of <tolerance_val>.

Start() Starts a Run

Stop() Stops a Run

Submit(simulate=<Simulate_bool>) Submits the commands above it to the queue, if simulate is True it will simulate rather than run. (The local contact should be consulted before adding this line to a script)

For a series of runs one can also use the Tab. Scan button to get to setup a table scan

Table Scan

The “Table Scan” tool has been designed to create multi-variable scans in an easy way. This tool reads a spreadsheet file (a csv file is our choice of input file) whose rows and columns consist of PVs and parameters that users can choose to perform their experiments. This provides a great deal of flexibility. The logic of the algorithm is to execute a given command row after row; the scan will run until each command has been completed, then it will start collecting and saving data until the amount of proton charge is reached.

writing a table for a table scan

Usually your instrument staff will provide you with a sample file that you can edit.

An example from CNCS is shown in Figure. 8.

Example table scan from CNCS Figure 8: The “Table Scan” spreadsheet.

In this example we want to perform a measurement in the Orange Cryostat at 12 meV HIGH FLUX, at 295 K, rotating the crystal from 178 to 180 degree in step of 2 degree and for 0.1 Coulomb per run. We also added a delay between each rotation of 20 s. Pay attention to the order of the columns in the table. For example if the delay column is set after the rotation column, the software will apply that delay at each rotation. Whereas if the delay column appears before the rotation one, the software will apply that command only once. Since the order of the commands matters, the correct logic to add PVs to the table is the following:

  • Comment: Here BL-5 staff will write what kind of parameter are required for the scan in the first row.

  • Title: Here users can select a title for their scan that will be recorded in their logbook.

  • Chopper Mode:

  • Energy: Set the value of the incident energy in meV.

  •  Magnetic Field Request:

  • Temperature Request: Set the value of the temperature of the experiment  tolerance.

  • Delay: Set a delay in seconds that can be used e.g. to thermalize the system or, in general, it delays the starting of the next command.

  • Angular Range: Set the angular range of the measurement. Users can specify a range using the command “loop(start, end, step)”

  • Counting Time: Set how long the instrument has to count i.e. set the proton charge in Coulomb of the measurement.

If one or more of the above PVs are not used in the measurement, they can either be left empty or can be removed from the spreadsheet.

A more complete description of the table is provided on the pyscanclient web page.

The tables are kept in /home/controls/var/tmp/IPTS-XXXX/daq These files can be copied into the shared directory of the IPTS on the analysis machines.

submitting a table scan

Once a table has been created and saved, users can load it by clicking onto the “folder icon” at the top-right of the table, select the scan, and then click the green button “Submit” to start it as shown in Figure 8.

Figure showing the table scan submission Figure 8: The “Table Scan” submission process.

In order to start a scan first click onto the “folder icon” at the top-right of the table, select your scan, and then start it by clicking the green button Submit. For more information about how to create and/or modify a table scan, users can refer to the “Help” guide by clicking on the same button, or asking instrument staff. If a shutter is closed, the software will pop up an error message asking if we want to proceed with the submission. Please alert instrument staff of this problem before proceeding further. Please contact your local contact during the planning stages of your experiment to explore what functionality the table scan can provide for your experiment.

Related Links