Sequencer: Difference between revisions

From SweepMe! Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 40: Line 40:
As for any tree, there exist branches. If you have a single branch, all items are nested into each other. This is the most simple and basic configuration you can realize.
As for any tree, there exist branches. If you have a single branch, all items are nested into each other. This is the most simple and basic configuration you can realize.
During the measurement, all items are looped for the number of [[Sweep value|Sweep values]] of the above item. Thus, the correct order of the items and their Sweep values directly infuences the measurement procedure.
During the measurement, all items are looped for the number of [[Sweep value|Sweep values]] of the above item. Thus, the correct order of the items and their Sweep values directly infuences the measurement procedure.
Each combination of the Sweep values of all items will be applied. Whenever all devices in one branch are configured to their Sweep value, the readout of a measurement point begins and all device in the branch are read out.
Each combination of the Sweep values of all items will be applied. Whenever all devices in one branch are configured to their Sweep value, the readout of a measurement point begins and all devices in the branch are read out.
 
If you put items on the same level of hierarchy, you will automatically create a second branch of the tree. Now, SweepMe! will run through the first branch, followed by the second branch. Only the modules of the current branch are used to apply the Sweep values and readout the measurement values. Of course, these two branches might have a common parent item, so that the measurement will switch between the two branches for each Sweep value of the common parent item. Please see the examples below.
 
== Tree terminology ==
 
=== Root ===
The root of the sequencer is always an invisible module called "Time". It is part of any measurement and is part of any branch that you add to the sequencer. Thus, you will always have a timestamp in your measurement data.
 
=== Child ===
 
A child module is the module that is inserted to a certain module.
 
=== Parent ===
 
The parent module is the module into which a module is inserted in.
 
=== Leaf ===
A leaf of the sequencer is always a module that has no child items, i.e. no module is inserted to it.
 
=== Branches ===
Each module that is a leaf defines a new branch. A branch is therefore given by all modules that are between the invisible root module [[Time]] and the leaf module. Modules can be part of several branches simultaneously. Modules that are part in multiple branches perform the measurements that are defined in each branch. The number of leaf modules is always the number of branches.
 
=== Siblings ===
Modules that have exactly the same parent module are siblings. If you have siblings in your sequencer, you automatically have multiple branches.


If you put items on the same level of hierarchy, you will automatically create a second branch of the tree. Now, SweepMe! will run through the first branch, followed by the second branch. Only the moduled of the current branch are used to apply the Sweep values and readout the measurement values. Of course, these two branches might have a common parent item, so that the measurement will switch between the two branches for each Sweep value of the common parent item. Please see the following example.


==Example==
==Example==

Revision as of 23:05, 11 February 2020

The sequencer is the heart of SweepMe!. Use it to create tree-like measurement sequences. Items can be placed by drag&drop from a list of all available Modules. There exists basic examples (Settings -> Load Example) that demonstrate the creation of measurement procedures.

Module categories

The invisible 'Time' module

The sequencer has an invisible root item called 'Time' being part of any procedure. It measures the elapsed time and generates a time stamp. You will find it for example in your saved data as well as if your configure a Plot.

Basic modules

There are basic modules that are used almost any type of measurement: Loop, Hold, Stop, or MakeFile. Have a look

Device modules

Some modules can be used to implement measurement equipment via a Device Class. These modules have field 'Device' that allows to select the Device Class.

SMU, Signal, Spectrometer, Scope, LCRmeter, LockIn, Monochromator

Add-on modules

SweepMe! can be extended into any direction to implement individual setups, devices and tasks. Contact us to discuss your specific needs.


Handling

Adding items

Items are added by drag&drop from the right sided list of all available Modules. Some modules generate a new tab, other modules have a hidden dialog. In both cases, the module can be configured, by double-clicking on it.

Moving items

Just drag&drop an item including all child items to a new position in the sequencer. If you like to insert the item between two other items at the same hierarchy, a thin black line must appear between the two items.

Removing items

You can remove an item from the sequencer by selecting it and pressing 'Del(ete)'. An alternativ would be to right-click on the item and click 'Delete selected item(s)'


Arrangements

The sequencer presents all measurements in a tree-like hierarchy. The more they are shifted to the right side, the lower is the level of hierarchy. As for any tree, there exist branches. If you have a single branch, all items are nested into each other. This is the most simple and basic configuration you can realize. During the measurement, all items are looped for the number of Sweep values of the above item. Thus, the correct order of the items and their Sweep values directly infuences the measurement procedure. Each combination of the Sweep values of all items will be applied. Whenever all devices in one branch are configured to their Sweep value, the readout of a measurement point begins and all devices in the branch are read out.

If you put items on the same level of hierarchy, you will automatically create a second branch of the tree. Now, SweepMe! will run through the first branch, followed by the second branch. Only the modules of the current branch are used to apply the Sweep values and readout the measurement values. Of course, these two branches might have a common parent item, so that the measurement will switch between the two branches for each Sweep value of the common parent item. Please see the examples below.

Tree terminology

Root

The root of the sequencer is always an invisible module called "Time". It is part of any measurement and is part of any branch that you add to the sequencer. Thus, you will always have a timestamp in your measurement data.

Child

A child module is the module that is inserted to a certain module.

Parent

The parent module is the module into which a module is inserted in.

Leaf

A leaf of the sequencer is always a module that has no child items, i.e. no module is inserted to it.

Branches

Each module that is a leaf defines a new branch. A branch is therefore given by all modules that are between the invisible root module Time and the leaf module. Modules can be part of several branches simultaneously. Modules that are part in multiple branches perform the measurements that are defined in each branch. The number of leaf modules is always the number of branches.

Siblings

Modules that have exactly the same parent module are siblings. If you have siblings in your sequencer, you automatically have multiple branches.


Example

Visualization of the traversing of the sequencer which has a device with two consecutive children.

Let's consider a sequencer arrangement with three SMUs where SMU 1 has two direct subelements, SMU 2 and SMU 3. SMU 2 and SMU 3 shall be at the same hierachy of the sequencer tree, i.e. they will be swept consecutively.

The measurement will then have the following sequence:

  1. SMU 1 applies the first Sweep value of the sweep
  2. SMU 2 will run its full sweep, while SMU 3 is still off
  3. SMU 2 is switched off and now SMU 3 runs its full sweep
  4. SMU 3 is switched off
  5. SMU 1 applies the next Sweep value of its sweep (or the measurement is finished, if no further values shall be swept)
  6. Repeat the process starting with 2.

This measurement process is shown schematically in the animation on the right.

Setting and reading values

All items have at least one Sweep value which will be used to indicate their presence in the tree, and to make them participating in the read out of the sequence. Some items, however, have multiple set values, e.g. a Source-Measure-Unit SMU typically has several values in order realize a current-voltage curve.

When reading out the sequencer, the Sweep values of each item are iterated, and for each Sweep value of one item, the prior procedure is again done for the children items which are below in the hierarchy of the tree.

There is a crucial difference between setting a Sweep value and reading a Measurement value!

Setting a Sweep value: Whenever set values of an item are iterated, they are forwarded to their Modules to be applied. As a consequence, the sequence of items, has a crucial impact on the measurement procedure, i.e. in which order parameters are applied to your devices.

Reading a Measurement value: Whenever the end of a branch of the tree is reached, reading of the device parameters is started. Standardized SweepMe! functions are called in order to apply, measure, and call the parameters of all items of the current branch of the tree. Thus, independent of the arrangement of the items in the current branch, all items are read out. The major difference is the order in which the devices are called, the order in which the data is saved into the file, and the order in which items appear in various combo boxes.