2.7. Thorlabs Benchtop Piezo#
Summary: |
ThorlabsBP |
Type: |
Actuator |
License: |
Licensed under LGPL. |
Platforms: |
Windows |
Devices: |
One or multi-axis piezo controllers of type Thorlabs Benchtop Piezo |
Author: |
M. Gronle (ITO Uni Stuttgart) |
2.7.1. Overview#
ThorlabsBP is an acutator plugin to control the following integrated devices from Thorlabs:
Benchtop Piezo (1 channel)
Benchtop Piezo (3 channels)
It requires the new Kinesis driver package from Thorlabs and implements the interface Thorlabs.MotionControl.Benchtop.Piezo.
Please install the Kinesis driver package in advance with the same bit-version (32/64bit) than itom.
This plugin has been tested with the Benchtop Piezo with 1 and 3 channels.
The position values are always in mm if the corresponding axis is in closed-loop mode and if a strain gauge feedback is connected. Else the values are always in volts.
ITOM Plugin to be used for interaction with the Thorlabs Benchtop Piezo Driver Series.
2.7.2. Initialization#
The following parameters are mandatory or optional for initializing an instance of this plugin:
- serialNo: str, optional
Serial number of the device to be loaded, if empty, the first device that can be opened will be opened
default: “”
- channels: Sequence[int], optional
list of channels to connect to. If an empty list is given, all connected channels are used. The plugin axis indices are then mapped to the channels.
Allowed number of values: 0 - 3, Value range: [1, 3], Default: [ ]
2.7.3. Parameters#
These parameters are available and can be used to configure the ThorlabsBP instance. Many of them are directly initialized by the parameters of the constructor. During the runtime of an instance, the value of these parameters is obtained by the method getParam, writeable parameters can be changed using setParam.
- async: {int}
asynchronous (1) or synchronous (0) mode
- channel: {seq. of int}, read-only
Channel number of each axis.
- controlMode: {seq. of int}
Open loop (0), closed loop (1)
- deviceName: {str}, read-only
Description of the device
- enabled: {seq. of int}
If 1, the axis is enabled and power is applied to the motor. 0: disabled, the motor can be turned by hand.
- hasFeedback: {seq. of int}, read-only
If 0, the axis is not equipped with a strain gauge feedback, else 1.
- maximumTravelRange: {seq. of float}, read-only
Maximum travel range for each axis in mm. This requires an actuator with built in position sensing. These values might not be correct if the motor is in open loop mode.
- maximumVoltage: {seq. of int}
Maximum output voltage (75, 100 or 150 V).
- name: {str}, read-only
name of plugin
- numaxis: {int}, read-only
number of axes (channels)
- serialNumber: {str}, read-only
Serial number of the device
- slewRateClosedLoop: {seq. of float}
Speed limit (slew rate) of each axis in V/ms. 0 (default) disables the limit and let the controller decide to move with the ideal speed.
- slewRateOpenLoop: {seq. of float}
Speed limit (slew rate) of each axis in V/ms. 0 (default) disables the limit and let the controller decide to move with the ideal speed.
- timeout: {float}
Timeout for positioning in seconds.
- zeroed: {seq. of int}, read-only
If 0, the axis is not zeroed. 1: zeroed. If the axis is not zeroed, it is possible that position values at the edge of the valid range can not be reached.
Note
the ‘maximumTravelRange’ can only be determined if the corresponding axis is in closed loop mode. The closed loop mode can only be set for axis with a position feedback.
Many parameters are sequences. The length of the sequence must always correspond to the number of axes, such that the first value in the sequence determines the parameter for the first connected axis, the second is responsible for the 2nd axis…
2.7.4. Control mode#
Each axis can be set to a closed-loop or open-loop control mode (see parameter controlMode). If the axis is operated in closed-loop (only possible if a feedback line is connected to the controller) the position values are given in ‘mm’. In open-loop, the set-point and hence target position is always given as voltage value (‘V’), such that the commands getPos, setPosAbs and setPosRel all given or except values in ‘V’.
2.7.5. Target position#
The controller itself does not provide information if the set-point position has been reached. Therefore, this decision is taken dependent on the control mode of each axis in the following way:
- Closed loop: The target position is considered to be reached if the difference of the current and the desired target position is below 50nm AND the difference between two
current position values (registered with a delay of approximately 120ms) is below 10nm.
- Open loop: The target position is considered to be reached if the difference of the current and the desired target voltage is below 0.05V AND the difference between two
current voltage values (registered with a delay of approximately 120ms) is below 0.01V.
2.7.6. Compilation#
To compile this plugin, install the Thorlabs KINESIS from https://www.thorlabs.com/software_pages/ViewSoftwarePage.cfm?Code=Motion_Control&viewtab=0 driver package in the same bit-version than itom (32/64bit). It has been implemented using KINESIS version 1.14.32. Then set the CMake variable THORLABS_KINESIS_DIRECTORY or the environment variable THORLABS_KINESIS_ROOT to the base directory of Kinesis (e.g. C:/Program Files/Thorlabs/Kinesis). The required libraries from Kinesis will automatically be copied to the lib folder of itom. Do not use Kinesis 1.6.0 or below for compiling this plugin.
Kinesis 1.7.0 requires the Microsoft C++ Redistributable 2012.
2.7.7. Changelog#
This plugin is part of itom with version > 2.1.0.
itom setup 2.2.0: This plugin has been compiled with Thorlabs Kinesis 1.7.0; it requires the Microsoft C++ Redistributable 2012
itom setup 3.0.0: This plugin has been compiled with Thorlabs Kinesis 1.9.3; it requires the Microsoft C++ Redistributable 2012
itom setup 3.1.0: This plugin has been compiled with Thorlabs Kinesis 1.14.5; it requires the Microsoft C++ Redistributable 2012
itom setup 3.2.1: This plugin has been compiled with Thorlabs Kinesis 1.14.15; it requires the Microsoft C++ Redistributable 2012
itom setup 4.0.0: This plugin has been compiled with Thorlabs Kinesis 1.14.23;
itom setup 4.1.0: This plugin has been compiled with Thorlabs Kinesis 1.14.25.
itom setup 4.2.0: This plugin has been compiled with Thorlabs Kinesis 1.14.28.
itom setup 4.3.0: This plugin has been compiled with Thorlabs Kinesis 1.14.47.