Source code for pyrolab.drivers.motion.z8xx
# Copyright © PyroLab Project Contributors
# Licensed under the terms of the GNU GPLv3+ License
# (see pyrolab/__init__.py for details)
"""
DC Servo Motor Actuator
=======================
Submodule containing drivers for the ThorLabs Z8xxx linear stage, driven
by the KDC101 motor controller.
.. attention::
Windows only.
Requires ThorLabs Kinesis software. Download it at `thorlabs.com`_.
.. _thorlabs.com: https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=10285
.. admonition:: Dependencies
:class: note
thorlabs_kinesis (:ref:`installation instructions <Thorlabs Kinesis Package>`)
.. tip::
If you are using the remote functionalities of PyroLab, you may see the
error ``RuntimeError: FT_DeviceNotFound`` when calling functions on objects
inheriting from KDC101. This sometimes occus when you forget to call
``autoconnect()`` before trying to use the device.
"""
from pyrolab.api import behavior, expose
from pyrolab.drivers.motion.kinesis.kdc101 import KDC101, HomingMixin
[docs]
@behavior(instance_mode="single")
@expose
class Z806(KDC101, HomingMixin):
"""
A Z806 motorized linear actuator controlled by a KCube DC Servo motor.
This stage has a travel range of 6 mm, submicron resolution, and a maximum
velocity of 2.3 mm/s.
Parameters
----------
serialno : int
The serial number of the device to connect to.
polling : int
The polling rate in milliseconds.
Notes
-----
See the `ThorLabs Z806 Product Page`_ for more details.
.. _ThorLabs Z806 Product Page: https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=1881
"""
pass
[docs]
@behavior(instance_mode="single")
@expose
class Z812(KDC101, HomingMixin):
"""
A Z812 and Z812B motorized linear actuator controlled by a KCube DC Servo motor.
This stage has a travel range of 12 mm, submicron resolution, and a maximum
velocity of 2.3 mm/s.
Parameters
----------
serialno : int
The serial number of the device to connect to.
polling : int
The polling rate in milliseconds.
Notes
-----
See the `ThorLabs Z812 Product Page`_ for more details.
.. _ThorLabs Z812 Product Page: https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=1882
"""
pass
[docs]
@behavior(instance_mode="single")
@expose
class Z825B(KDC101, HomingMixin):
"""
A Z825B motorized linear actuator controlled by a KCube DC Servo motor.
This stage has a travel range of 25 mm, submicron resolution, and a maximum
velocity of 2.3 mm/s.
Attributes
----------
serialno : str
The serial number as a string.
homed : bool
True if the device has been homed since being opened.
backlash : float
The backlash setting (used to control hysteresis) in real units
homing_velocity : float
The homing velocity in mm/s. It is always a positive number.
jog_mode : str
The jog mode can be either ``stepped`` (fixed distance, single step) or
``continuous`` (move continuously until stopped).
jog_step_size : float
The distance to move in millimeters when jogging.
stop_mode : str
The stop mode, either ``immediate`` (stops immediately) or ``profiled``
(stops, using the current velocity profile).
max_pos : float
The stage axis maximum position limit in millimeters.
min_pos : float
The stage axis minimum position limit in millimeters.
soft_limits_mode : str
The software limits mode
``disallow``: Disable any move outside of the current travel range of
the stage.
``partial``: Truncate moves to within the current travel range of the
stage.
``all``: Allow all moves, regardless of whether they are within the
current travel range of the stage.
move_velocity : float
The move velocity in mm/s. It is always a positive number.
move_acceleration: float
The move acceleration in real units. It is always a positive number.
jog_velocity : float
The jog velocity in mm/s. It is always a positive number.
jog_acceleration : float
The jog acceleration in real units. It is always a positive number.
Notes
-----
See the `ThorLabs Z825B Product Page`_ for more details.
.. _ThorLabs Z825B Product Page: https://www.thorlabs.com/newgrouppage9.cfm?objectgroup_id=1883
"""
pass