LabOne Modules

Besides the device drivers, zhinst-labber also is able to generate the following LabOne modules:

  • Data Acquisition Module (DAQ Module)

  • Sweeper Module

  • SHFQA Sweeper

Modules are software based functionalities that eases the use of the devices and take care of complex mechanisms. For more information take a look at the LabOne Programming manual.

Modules create and operate on an independent session to the server. This enables the module to live in another thread and subscribe to nodes without affecting other modules, the GUI or user based sessions. This, and the fact that the modules are device independent is the reason zhinst-labber does not include the modules directly into the device drivers.

Note

The Labber driver for the modules are automatically generated/updated when a device driver that support the module is generated.

Labber modules require a device to operate on but this does not limit the amount of modules one can create. This mean one can create multiple module Instruments in Labber for the same device or for different devices.

Start A Labber Module Instrument

Similar to the device drivers module driver require that the device id/serial of the used instrument (e.g. DEV1234) is placed in the Address field. The Interface needs to set to Other and the Name is not used by the driver itself and can be chosen freely.

Modules have the same structure than the devices, meaning all nodes available in the driver. The following sections explain the basic usage of the provided modules. An in-depth introduction into the modules can be found in the LabOne Programming manual. the LabOne API Examples provide examples how the modules can be used (Since the node naming is the same as they can be applied to the Labber driver in the same way).

DAQ Module

The Data Acquisition Module corresponds to the Data Acquisition tab of the LabOne User Interface. It enables the user to record and align time and frequency domain data from multiple instrument signal sources at a defined data rate. The data may be recorded either continuously or in bursts based upon trigger criteria analogous to the functionality provided by laboratory oscilloscopes.

The Labber driver defines 16 signal channels. Each channel can be set to a specific signal that should be acquired. Please refer to the user manual to see how the signals are constructed. Alternatively one can use the LabOne UI to see the available signals and use the API Log feature to see what the corresponding node/signal looks like. An example of a valid signal is dev1234/demods/0/sample.x and is equal to demods/0/sample.x (meaning the device ID is not mandatory).

Once the signals have been specified (unused signals can be left empty), the module is enabled and triggered and the result quantities contain the latest data.

Note

Even though the DAQ module has a history feature the result quantities only contain the latest traces. It is however possible to save the results, including older traces by using the save feature in the history section.

Note

The results are only updated if new data is available, but can be cleared manually through the clear node.

Sweeper Module

The Sweeper Module allows the user to perform sweeps as in the Sweeper Tab of the LabOne User Interface. In general, the Sweeper can be used to obtain data when measuring a DUT’s response to varying (or sweeping) instrument setting while other instrument settings are kept constant.

The Labber driver defines 16 signal channels. Each channel can be set to a specific signal. A signal has two parts (path::node_part). The first one (path) is the streaming node itself (e.g. /dev1234/demods/sample), the second part (node_part) is the part of the node that should be displayed (If left empty a default value will be used, if available). Which parts each node has, depends on the node type and can be looked up in the LabOne UI. An example of a valid signal for the sweeper module is for example /dev1234/demods/0/sample::x, which will subscribe to the node /dev1234/demods/0/sample and use the x value of it in the result quantity.

Available node parts (not a complete list):

  • demods
    • auxin0

    • auxin1

    • frequency

    • phase

    • r

    • x

    • y

  • imps
    • abs

    • bias

    • drive

    • frequency

    • imagz

    • param0

    • param1

To enable a sweep the Enable quantity can be set to 1. The same quantity can be used to disable the sweeper module (0) or to check if a sweep is in progress (read the current value). The result quantities contain the specified signal parts (can also be updated during a sweep).

SHFQA Sweeper Module

The SHFQA sweeper is a special case and only works for the SHFQA/SHFQC. The underlying implementation can be found in the zhinst.utils.shf_sweeper. zhinst-toolkit wraps around this and exposes a interface similar to the native LabOne modules. This means the Labber driver for the SHFQA sweeper exposes all parameters. A sweep is executed every time the result vector is read.

View the toolkit example. for a real live example on how the SHFQA sweeper module can be used.