Kinesis® with LabVIEW


Kinesis® with LabVIEW
  • Use Kinesis with LabVIEW
  • Download Example Virtual Instruments

KDC101 WinForm User Interface in LabVIEW

MAX301 3-Axis Flexure Stage with a Stepper Motor, Thumbscrew, and Differential Actuator Attached to the X, Y, and Z Axes, Respectively

KDC101

DC Servo Motor Controller

MTS50-Z8

50 mm DC Servo Translation Stage



Please Wait

LabVIEW is a graphical programming interface which can be used to communicate with any Thorlabs Kinesis®-compatible controller through the use of component Kinesis .NET controls. These .NET controls are a part of the Kinesis Motion Control software package.

This tutorial contains annotated LabVIEW VI examples for interfacing with Thorlabs’ Kinesis software. These examples make use of the Controls.dll file included with the Kinesis software installation package. This dynamic link library (DLL) assembly includes a collection of WinForms controls that hosts the Kinesis User Interface elements and underlying device functionality. These controls provide a straightforward way to start working with Thorlabs’ Kinesis software in LabVIEW.

Section Tab Contents:

  • LabVIEW: Overview of Basic Information to Consider When Using Kinesis with LabVIEW
  • Getting Started: Instructions on Software Installation Prior to Using the Example VIs
  • Example VIs: Sample Code for a Selection of Thorlabs Controllers
  • DLLs: Information on Loading Additional DLLs for Increased Functionality
  • Other Programs: Tutorial and Sample Code for Interfacing Kinesis with C#

A comprehensive guide to using Kinesis with LabVIEW can be downloaded here or by clicking the button to the right. It provides step-by-step instructions to create a custom Kinesis .NET control VI in LabVIEW.

LabVIEW GUI
Click to Enlarge

Figure 1: A Kinesis Device Panel UI ‘View’ Can Be Hosted in the LabVIEW Front Panel
LabVIEW GUI
Click to Enlarge

Figure 2: A Basic Block Diagram VI for Initializing and Closing Communication with a 
Kinesis Compatible Device
LabVIEW GUI
Click to Enlarge

Figure 3: For Multi-Channel Device Types, the ‘Channel Number’ Property Must Be 
Assigned in the Block Diagram to Correctly Initialize Each Device Channel

LabVIEW

LabVIEW can be used to communicate with any Thorlabs Kinesis® compatible controller via Kinesis .NET dlls. Of the numerous dynamic link libraries (.dlls) included, the ‘Controls.dll’ provides a collection of .NET WinForms User Controls which can host the device user interface (UI) elements and provide access to the device methods and properties.

For example, the Kinesis graphical user interface (GUI) for the KDC101 K-Cube DC Servo controller is shown in Figure 1. This ‘View’ (UI), as seen in the Kinesis.exe application, can be hosted in the LabVIEW front panel, while providing the user access to back-end Kinesis .NET methods and properties in the LabVIEW block diagram.

By inserting the .NET ‘Controls.dll’ into the LabVIEW front panel, the user will be able to load a user interface for any Kinesis compatible device. Considering the example of a KDC101 K-Cube DC Servo controller, this device UI can be initialized by providing the serial number of the device and selecting CreateDevice(), as illustrated in Figure 2. This will create the device connection and display the UI seen in Figure 1.

Controllers that have a multi-channel architecture, such as the BSC202 Benchtop Controller and the MPZ601 Rack Module Controller, must also have the Channel Number specified. In the example shown in Figure 3, two separate UI panels are created (one for each channel) which can be operated independently of one another.

A range of downloadable, annotated example VIs can be found in the Example Vis tab. The examples provided are related to specific controllers and are organized by hardware type (i.e. Motor, Piezo and Piezo Motor, and Strain Gauge Reader). A Simulator VI is also provided which will enable connection to the Kinesis Simulator Application. The examples are saved as LabVIEW 2012 compatible examples.

For tips on building your own VIs with Thorlabs Motion Control Hardware, please see our comprehensive Kinesis LabVIEW Guide.

For any questions or comments about these examples, please contact Tech Support.

 

LabVIEW GUI
Click to Enlarge

Figure 6: The Device ‘View’ Hosted in the Front Panel
LabVIEW GUI
Click to Enlarge

Figure 5: Select the .NET Control Based on the 
Device Type You Are Using
LabVIEW GUI
Click to Enlarge

Figure 4: Insert the
.NET Container into the
LabVIEW Front Panel

Inserting a .NET Control

  1. Right-click on the front panel, then select '.NET container' and place the container on the front panel (Figure 4).
  2. Right-click on the .NET container and select 'Insert .NET control...'.
  3. In the 'Select .NET Control' window, click 'Browse...'.
  4. Browse for and select 'Thorlabs.MotionControl.Controls.dll', located in the user's LabVIEW project folder.
  5. In the 'Controls' list, select the controller that will be used (Figure 5).
  6. The LabVIEW front panel will now display the Kinesis device's user interface (Figure 6). The device methods and properties can now be accessed via the block diagram. Please note that the device UI will appear as ‘Disconnected’ until the VI is running and the control has been initialized.

 

LabVIEW GUI
Click to Enlarge

Figure 9: Insert Properties and
Methods via the Functions Palette

Accessing a Property or Method

The Control reference node provides access to the Control methods and properties, such as CreateDevice() and CloseDevice(). Right-clicking the node will enable you to initialize or close communications with the device. CloseDevice() will close communications, shut down the .NET library, and reset the UI when the session terminates.

The Device methods and properties can be accessed through the Device property reference, as shown in Figure 7. In the case of T-cube and K-cube type devices, this property is 'Device'. In the case of Rack Module and Benchtop type hardware, device properties and methods can be accessed from the device type specific property label, i.e. 'ModularPiezo' or 'BenchtopStepperMotor', as shown in Figure 8.

Alternatively, LabVIEW .NET connectivity functions allow you to create and interact with the Kinesis .NET SDK. Through the Functions Palette, select "Connectivity > .NET" to access all functions used to interact with .NET objects (Figure 9).

For more information on LabVIEW .NET connectivity, please refer to the Kinesis LabVIEW guide.

LabVIEW GUI
Click to Enlarge

Figure 7: Access Properties and Methods via the Device Property
Reference
LabVIEW GUI
Click to Enlarge

Figure 8: Accessing Properties and Methods from K-Cube,
Modular Rack and Benchtop Device Formats

 

LabVIEW GUI
Figure 10: Register Events Such as MotorStateUpdate in the Front Panel

Working with Events

An Event Callback VI is created using the Register Event Callback Function in LabVIEW. This will cause a VI to be called under specified conditions. Some basic events include Motor Status Updates (Figure 10), Connection Change Events, Settings Update Events, or Error Update Events. These events are detailed further in the Kinesis .NET API. An example of this is provided in the KDC101 Motor Status Changed tutorial where a programmed response appears when the Motor State changes.

LabVIEW GUI
The Kinesis DLLs (such as those contained in the partial list above) must be copied into your LabVIEW project folder.

Getting Started

Complete the following steps before using the example virtual instruments in the Example VIs tab:

  1. Install the Kinesis software. Ensure that the version of Kinesis/component DLLs is of the correct bit type, depending on the version of LabVIEW and the operating system. The included examples were built using Thorlabs' Motion Control Software v1.14.12.
  2. For the example VIs to run successfully, manually copy the component DLLs from the Kinesis install folder to the “Kinesis LabVIEW Examples” folder. The Controls.dll will typically require all Kinesis DLLs to be copied into the project folder.
  3. Open the VI through the 'LabVIEW Project Explorer' to correctly load the User Interface from the Thorlabs.MotionControl.Controls.dll.

 

Example VIs - Front Panel Overview

A LabVIEW VI contains two windows for building applications; a Front Panel and Block Diagram. The LabVIEW Front Panel contains the front end User Interface components of the VI. The Front Panel of each Example VI has been formatted to contain instructions and features which make these VIs easy-to-use. An overview of these features along with some of the key interface features of the LabVIEW Front Panel are outlined below.

Legend:

  1. LabVIEW Toolbar, Where the VI is Run
  2. Name of Device the Example Utilizes, Along with Webpage Link
  3. Introduction and Step-by-Step Instructions for the Example VI
  4. Functioning Front Panel Controls and Indicators (Please note that the device UI will appear as ‘Disconnected’ until the your VI is running and the control has been initialized.)
  5. Tips to Consider When Running the Example VI

LabVIEW GUI

LabVIEW Sample VIs


Click here or on the button to the left to download the Kinesis LabVIEW example VIs. The examples are saved as LabVIEW 2012 compatible VIs.

Please note: The Kinesis LabVIEW VI examples are intended to be used to rapidly connect and control key Thorlabs devices. They are not intended to be a demonstration of good programming practices. Many programming techniques are omitted for the sake of simplicity, such as setting directories and error handling.

Example VIs
Item #, Type Example Name Description
Motor Controllers
KDC101
K-Cube, Brushed DC Servo
Build Device List The example VIs require you to enter the serial number of your device manually. This VI, however, will build a list of connected devices and wait until the user has selected the serialized device to control.
Connect Demonstrates how to initialize communication with and then disconnect from the KDC101 in order to control DC brushed stages and actuators.
Get Position Get Position will poll the device position through the GetPositionCounter() method which will output the stage position in device units. This can be converted from device units (encoder counts) to real world units (mm) by considering encoder counts per revolution of the motor, gearbox ratios and leadscrew pitch.
Motor Status Changed This VI enables you to make use of motor events. These events include motor status updates, connection change events, settings update events, and error update events. This VI utilizes the motor status update. An event callback sub-VI is built using the register event callback function in LabVIEW.
Move Absolute This VI will allow you to home the device and move it to a chosen position.
No Front Panel This VI shows how to communicate with Thorlabs Motion Control devices outside of the provided WinForms UI controls contained in the Thorlabs.MotionControl.Controls.dll. This VI focuses on the wider range of generic and device-specific component DLLs included with your Kinesis installation.
KBD101
K-Cube, Brushless DC Servo
Get Status Bits This VI will poll status bits through use of the GetStatusBits method.
Set Trigger Parameters Enables exploration of the trigger parameters available to all Thorlabs K-Cube devices.
Set Velocity Parameters This VI monitors and sets the current velocity parameters of the connected device.
BBD202
Benchtop, Brushless DC Servo
Two-Axis Scan This VI will perform a 2D square raster scan, moving in a forward direction from a user defined start position. The user can set the number of steps and step size, as well as how long the stage rests at a scanned position.
KST101a
K-Cube, Stepper
Move Relative This VI allows homing of the device and moving forward (clockwise) or backward (counterclockwise) at any valid distance from the homing position.
Piezo / Piezo Motor Controllers
KPZ101b
K-Cube, Piezo Controller
Connect Demonstrates how to connect with and disconnect from the KPZ101 Piezo Controller.
Waveform LUT Enables use of the LUTWave functionality available to piezo-actuated devices not included within the Controls.dll. Taking advantage of the built-in Sine Waveform.VI of LabVIEW, the device can output a sine waveform with a scalable amplitude. Details of this functionality are outlined in the LUTWaveParams() structure within the .NET API.
KPZ101b w/ KSG101c
K-Cube, Piezo Controller and Strain Gauge Reader
Set Position Demonstrates open- and closed-loop operation of the KPZ101 Piezo controller when used with the KSG101 Strain Gauge controller. When in open-loop mode, the user can adjust the voltage of the piezo stack. When in closed-loop mode, the position can be set by using the SetPercentageTravel() function.
BPC301
Benchtop, 1 Channel Piezo Controller
Connect Demonstrates how to connect with and then disconnect from the BPC301 controller.
Waveform LUT Enables use of the LUTWave functionality available to piezo-actuated devices not included within the Controls.dll. Taking advantage of the built-in Sine Waveform.VI of LabVIEW, the device can output a sine waveform with a scalable amplitude. Details of this functionality are outlined in the LUTWaveParams() structure within the .NET API.
BPC303
Benchtop, 3 Channel Piezo Controller
Two-Axis Scan Perform a 2D square raster scan for pre-selected channels on a BPC303 unit. This VI also includes the error handling cluster, which prints error messages and their corresponding codes.
MPZ601
Rack, Modular 2 Channel Piezo Controller
Connect Demonstrates how to connect to and safely disconnect from the MPZ601 controller.
PPC001, PPC102d
Benchtop, Precision Piezo Controller
Continuous Scan This VI will enable you to connect to devices and linearly increment the piezo position at a user specified delay and step size. This VI will step the stage forward 5000 steps, and then backward 5000 steps. This example applies to the PFM450E, and LPS710Ea.
KIM101
K-Cube, Inertial Piezo Controller
Set Jog Set Jog enables the user to set Jog parameters and toggle the Jog mode, as well as assert control over a particular channel of the KIM101 controller.
Strain Gauge Reader
KSG101c
K-Cube, Strain Gauge Reader
Get Max Travel Range This VI enables the user to retrieve the maximum travel for the connected strain gauge controller.
Get Reading Get Reading sets the current display mode to either position, force, or voltage mode, and acquires a reading based on the selected mode.
Nanotrak® Auto-Alignment Controllers
KNA-VIS, KNA-IR
K-Cube, Nanotrak Controller
Latch Trak This VI enables the user to set the operating mode to track or latch.
Set Circle Diameter This VI enables the user to set the scan circle diameter in the range of 0 to 10 NT units.
Set Loop Gain This VI enables the user to set and get the loop gain. This can be set between 0 and 32767.
Set Phase Component This VI enables the user to set the H- and V-components of the phase compensation or angle of the circle path.
BNT001/IR
Benchtop, Nanotrak Controller
Connect Demonstrates connecting to and safely disconnecting from a BNT001 device.
Set Circle Home Position This VI enables the user to set the scanning circle home position, through the GetCircleHomePosition() method.
MNA601 w/ MST602
Rack, Nanotrak Controller with Stepper Motor Controller
Two-Axis Scan Demonstrates connecting to an MNA601 and an MST602 conroller for an automated fiber alignment setup. When paired with a stepper actuated flexure stage, such as the MAX381, this system provides users with automated fiber alignment control. This VI will initiate a simple 2D raster scan of the MPZ601 piezo outputs. This will stop once the MNA601 has detected a sufficient photocurrent.
Two-Axis Revector Demonstrates connecting to an MNA601 and an MST602 conroller for an automated fiber alignment setup. When paired with a stepper actuated flexure stage, such as the MAX381, this system provides users with automated fiber alignment control. This VI will initiate a simple 2D raster scan of the MPZ601 piezo outputs. This will stop once the MNA601 has detected a sufficient photocurrent.
MNA601 w/ MPZ601
Rack, Nanotrak Controller
Two-Axis Scan Demonstrates connecting to an MNA601 and an MST602 conroller for an automated fiber alignment setup. When paired with a stepper actuated flexure stage, such as the MAX381, this system provides users with automated fiber alignment control. This VI will initiate a simple 2D raster scan of the MPZ601 piezo outputs. This will stop once the MNA601 has detected a sufficient photocurrent.
Solenoid Controller
KSC101
K-Cube, Solenoid Controller
Set Operating Mode This VI will set the device to 'Auto' mode. In this mode, the solenoid will open and close continuously after the top panel wheel is moved up (primed). You are able to alter the settings of this mode by using the 'Set Operating Mode' button. The progam will poll for updates to the 'Set Operating Mode' button controlling a case structure in the block diagram. If initiated, the parameters of 'Auto' mode entered into the below controls will cause the device settings to be updated accordingly.
Laser Sources
KLS635KLS1550
K-Cube, Laser Sources
Set Power Demonstrates setting the laser output On/Off, as well as setting the output power of the laser source.
Simulator
Simulated Hardware
- This simulation enables you to insert a VI and make use of simulated hardware via the Kinesis simulator application.
  • The KST101 is a previous-generation stepper motor controller.
  • The KPZ101 is a previous-generation piezo controller.
  • The KSG101 is a previous-generation strain gauge reader.
  • These controllers are included with our PFM450E Objective Scanner and LPS710E(/M) Z-Axis Translation Stage.

While the focus of this tutorial is using the WinForms User Controls library (Controls.dll) as a straightforward way to load a UI panel and utilize Thorlabs' Kinesis hardware, it is possible to access the more advanced functionality contained within other .NET DLLs included with the Kinesis software installation. This functionality is outlined in detail within the Kinesis .NET API help file.

The following examples from the Example Vis tab make use of functionality outside of the Controls.dll library:

  • KDC101 - No Front Panel
  • BPC301 - Waveform LUT
  • KPZ101 - Waveform LUT*
  • KPZ101 w/ KSG101 - Set Position*

*These examples support previous-generation products that are no longer available for purchase.

LabVIEW GUI
The BuildDeviceList method can be accessed by dropping in a DeviceManagerCLI Constructor Node.
LabVIEW GUI
Accessing Methods within the "KCube.DCServo.dll" Directly

Thorlabs' Kinesis® software features .NET controls which can be used by 3rd party developers working in the C#, Visual Basic, LabVIEW™, or .NET compatible languages to create custom applications. In addition to Thorlabs' line of Kinesis devices, the software can be used to drive our wide range of other motion control products. All Kinesis controllers are supported by unified graphical user interfaces (GUIs) and programming APIs that enable the creation of custom applications. The included USB connectivity provides easy 'Plug-and-Play' PC-controlled operation, making it easy to link multiple units together to realize a multi-axis motion control solution.

Examples that utilize C# to communicate with Thorlabs' Kinesis software are found below.

Tutorials

C#
This programming language is designed to allow multiple programming paradigms, or languages, to be used, thus allowing for complex problems to be solved in a simple or efficient manner. It encompasses typing, imperative, declarative, functional, generic, object-oriented, and component-oriented programming. By providing functionality with this common software platform, Thorlabs has ensured that users can easily mix and match any of the Kinesis controllers in a single application, while only requiring knowledge of a single set of software tools. In this way, it is feasible to combine any of the controllers from the low-powered, single-axis to the high-powered, multi-axis systems and control all from a single, PC-based unified software interface.

The Kinesis System Software allows two methods of usage: graphical user interface (GUI) utilities for direct interaction and control of the controllers 'out of the box', and a set of programming interfaces that allow custom-integrated positioning and alignment solutions to be easily programmed in the development language of choice.

For a collection of example projects that can be compiled and run to demonstrate the different ways in which developers can build on the Kinesis motion control libraries, click on the links below. Please note that a separate integrated development environment (IDE) (e.g., Microsoft Visual Studio) is required to execute the Quick Start examples. The C# example projects can be executed using the included .NET controls in the Kinesis software package (see the Kinesis Software tab for details).

C Sharp Icon Click Here for C# Example Projects
Click Here for Quick Start Device Control Examples
C Sharp Icon

Posted Comments:
chevy du  (posted 2024-11-06 21:42:32.03)
Hello. I'm using PRM1Z8 and when I try to use this with labview 2023, but I keep on getting this error: "Error 1172 occurred at Invoke Node Error calling method Thorlabs.MotionControl.KCube.DCServoCLI.KCubeDCServo.SetMoveAbsolutePosition, (Thorlabs.MotionControl.DeviceManagerCLI.DeviceNotReadyException: Device is not connected) ." Do you have any suggestions of how I can fix this problem? Thank you in advance.
cstroud  (posted 2024-11-12 09:15:38.0)
Thanks for reaching out. I have contacted you directly to help troubleshoot this issue.
Dan Orop  (posted 2024-05-23 13:46:09.297)
Is there an equivalent example VI for BBDx for setting trigger parameters? I see there is one for KBD101 but I'm unable to find the same method or selection to set a trigger parameter for my BBD302. Thanks!
Rayan Syed  (posted 2024-05-22 11:23:54.62)
I'm struggling to get Labview working, every time I run the program it says "No Suitable Devices Found." LabView and Kinesis has the same x64, the serial number is correct, and it shows up on Kinesis. Do you have any idea what else could be wrong?
cstroud  (posted 2024-05-30 11:52:54.0)
Thanks for reaching out. I'm sorry that you're having issues with Kinesis and Labview, I will contact you directly to help troubleshoot this.
Hyungchul Park  (posted 2024-05-06 14:14:48.87)
Oh and I am using the Labview 2015 32-bit version.
Hyungchul Park  (posted 2024-05-06 14:01:01.76)
I am using Labview 2015 with KSG101 and KPZ101, and it seems that .Net control interface .dll file cannot be loaded. I believe many people who are using newer version of Labview experienced the same issue. May I get help to resolve the issue?
cwright  (posted 2024-05-10 09:39:34.0)
Response from Charles at Thorlabs: Thank you for your comments. The cause for a .NET control not loading is that the incorrect bit version is being used or the .NET assemblies have not been copied over to the same directory as where the LabVIEW project is saved. For example, if you are using 32 bit LabVIEW for 64 Bit Windows you will need to use the corresponding 32 for 64 bit DLLS from the Kinesis software.
William Keller  (posted 2024-04-30 10:30:33.137)
Was super easy to get 3 motor controllers going in LabVIEW 2019 using Kinesis, and has a good number of functions all packaged neatly into the .NET container, making it fast and easy to get up and running. But it seems like the .dll methods are designed to only run one command at a time - so rather than being able to move the stages diagonally (2+ axes at once), it has to finish moving one axis before moving the next one, so it wastes a significant amount of time when you have a large number of positions that the stages need to move to.
cstroud  (posted 2024-05-21 06:49:56.0)
Thanks for reaching out. While most of the DLL's aren't designed for synchronous movement, simultaneous movement should be possible. I will contact you directly to send over some examples and discuss this further.
Cheolhee Han  (posted 2024-01-26 18:35:10.183)
Hello, I have the same problem raised by Tomas Popelar in the comments posted below. My Labview version is LV 2016 32 bit.
cstroud  (posted 2024-01-30 07:13:04.0)
Thanks for reaching out. Unfortunately we do not have any 32-bit versions of our Labview examples. I'll contact you directly to help guide you through creating 32-bit VIs.
ISHAN PANDEY  (posted 2024-01-21 22:26:13.11)
We bought MPC220 , motorized polarization controller. We are able to detect and control using kenesis software but not able to detetct by labview program. We have made the program in the same way given in the instruction. Please help how to do it ?
cstroud  (posted 2024-01-29 03:23:35.0)
Thanks for reaching out. I'll contact you directly to assist with your Labview program.
Tomas Popelar  (posted 2024-01-17 14:25:12.2)
Hello, I would like to have a version of "Kinesis with LabVIEW Examples.lvproj" that is compatible with my LabVIEW 2016 64-bit installation. I get the error message that it is newer than my installation. The VIs itself can be opened outside the Labview project, but cannot be accessed properly without opening the .lvproj. Thank you very much for your help in advance. Kind regards.
cstroud  (posted 2024-01-19 04:35:41.0)
Thanks for reaching out. I will contact you directly to send over a compatible version of the project.
Jia-Jung Ho  (posted 2023-08-29 15:12:56.66)
Hi, I was trying to use the Kinesis simulator example of LabView. However, I have trouble to wire the reference output of the simulated device to another example code (ex: Kinesis - KDC101 - Get Position) even if I have properly setup the Kinesis simulator. Could you please guide me through it?
do'neill  (posted 2023-08-31 04:17:28.0)
Response from Daniel at Thorlabs. I will reach out to you directly to help you with this and talk you through this.
Ganjaboy Boltaev  (posted 2023-07-03 19:45:42.8)
Hello, I am from American University of Sharjah, I would like to ask about LabVIEW driver (for LabVIEW 2020 version) for BSC201 motion controller. These item we recently bought from Thorlabs. here is model number (S/N 40358474) and for stage number is (S/N 168422), thank you in advance Ganjaboy
do'neill  (posted 2023-07-06 07:19:54.0)
Response from Daniel at Thorlabs. I will reach out to you directly to discuss this for you and help you with your application.
user  (posted 2023-05-24 15:03:41.453)
Hi Thorlabs, I am using Labview 2014. I downloaded Kenesis with Labview Examples LV12-v3. When I opened the main project, it displayed "File version is later than the current Labview version." And when I tried to insert the .NET control, I encountered the Error: "Error creating an instance of TCubeDCServoControl in assembly Thorlabs.MotionControl.Controls, Version=1.14.37.21486..... I am using TDC001 and successfully connected by using Kenesis. Please help. Thank you.
do'neill  (posted 2023-06-05 07:44:50.0)
Response from Daniel at Thorlabs. I will reach out to you directly with a backwards compatible example for the TDC001 and to further help with your application.
user  (posted 2023-05-13 11:01:44.52)
Howdy, I use the labjack MLJ150 for controlling vertical movement. However, I do not think there is correct labview VI in the example file to use that tool. Please send me propriate controlling file. I submitted this request two weeks ago, while still not figured out.
do'neill  (posted 2023-05-15 05:49:12.0)
Response from Daniel at Thorlabs. I will reach out to you directly to provide an example and discuss your particular application to try and get this resolved for you.
Bruno Ramirez  (posted 2023-01-19 10:24:54.69)
Hi! I am having trouble controlling a KCube DC Motor (KDC101) via LabVIEW (2022 Q3) with the Kinesis .NET container. I have followed the instructions in the "Kinesis with LabVIEW" guide and constructed the virtual instrument just as presented. However, when I run the program the .NET object doesn't start up and the message "No Suitable Devices Found" pops out. The Kinesis (1.14.36) program does recognize the KCube, but the LabVIEW .NET container never does. Any idea what might be happening?
JReeder  (posted 2023-01-19 10:34:52.0)
Thank you for your enquiry. I have reached out to you directly to help troubleshoot the issues you are having. Common troubleshooting questions are as follows: Have you used the correct serial number? Are the bit versions of LabVIEW and Kinesis the same? Have you saved the LabVIEW project and is the VI being written as part of that project? Have you copied across all the DLLs using the DLL Utility to the folder where the project is saved?
Richard Hainzl  (posted 2022-09-07 13:48:24.08)
I think it would good to have more complete examples for how to use the Kinesis motor controls from LabVIEW. I would have been very happy if there would be examples for all ways of moving the motor and maybe some special cases where you want to interrupt the motion and what to do when there have been hickups.
DJayasuriya  (posted 2022-09-08 04:46:21.0)
Thank you for your feedback. We do have some example but we would be happy to help with if you do have any issues. May we ask if you can get in touch with your local tech support team if you do have any issues.
Matthew Engstrom  (posted 2022-07-21 15:23:41.82)
Hello! My group is interested in using a Thorlabs piezo controller for a project, however the computer we plan on interfacing the controllers to is running Ubuntu (we won't be able to use DLLs) - is there any info available to help me get started with using Kinesis/APT devices in Linux? Thanks in advance!
cwright  (posted 2022-07-22 06:13:40.0)
Response from Charles at Thorlabs: Thank you for your query. Currently the only option for programming these devices in Linux is to use the serial command protocol found at the following link: https://www.thorlabs.com/Software/Motion%20Control/APT_Communications_Protocol.pdf
Zahra Navabi  (posted 2022-06-02 18:15:05.133)
Hi, I'm using kinesis with lab view and I'm trying to change the velocity profile of our stages (a KcubeDCservo and a BenchtopDCservo). But I can't find the method for changing the velocity profile. I can set up the max velocity and acceleration but acceleration is not changing as fast as expected (I think there is a jerk limit). I would be thankful if you could help me with that.
cwright  (posted 2022-06-22 05:53:37.0)
Response from Charles at Thorlabs: Thank you for your query. Unfortunately it is not possible to change the velocity profile on these controllers. We will reach out to you to help you work around this.
Pawel Aleszkiewicz  (posted 2022-04-26 13:54:50.377)
When I try insert .NET control to my program I have error: Error creating instance of KCubeDCServoControl in assembly Thorlabs.MotionControl.Controls.KCubeDCServoControl, Thorlabs.MotionControl.Controls, Version 1.12.24.17290
DJayasuriya  (posted 2022-04-29 09:43:16.0)
Thank you for your inquiry. we will get in touch with you directly for a bit more information to resolve your issue
Ism Z  (posted 2021-12-07 08:57:06.93)
We are controlling two traverses simultaneously in LabView with Kinesis. However, It doesnt seem to be possible to Move/Home two devices at the same time. Only one after another. The VI locks up during one of these commands until the move is completed. Is it possible to move both simultaneously?
YLohia  (posted 2021-12-23 12:25:46.0)
Thank you for your feedback. This should be possible if you are using two controllers/channels. We have reached out to you directly to troubleshoot this further.
Andreas Hutter  (posted 2021-11-15 02:18:01.553)
Dear Support, In LabVIEW I'm not able to connect device (TLD001), LabVIEW crashes and I have to restart again. I'm able to get device list from DeviceManagerCLI and am able to write SerialNumber to TCubeLaserDiodeController. But as soon as I want to create/connect the device LabVIEW needs to close (crash). info from crash report: #OSName: Windows 10 Enterprise #OSVers: 10.0 #OSBuild: 18363 #AppName: LabVIEW #Version: 20.0f1 64-bit I'm using x64 dll, version 1.14.30. I'm able to run and operate with Kynesis App directly.
cwright  (posted 2021-11-15 06:46:31.0)
Response from Charles at Thorlabs: Thank you for your query. I will reach out to you directly to help troubleshoot this issue.
Wei Wang  (posted 2021-11-09 15:12:40.96)
Dear engineer Here I meet a problem when I tried to control KDC101 by Labview. I want to add .NET control to the front panel following the "Kinesis LabView Guide". When I try to insert "Thorlabs.MotionControl.Controls.dll", the LabVIEW 2012 shows errors tip "System. BadImageFormateException " Hope can get some help from you. Thank you!
Minh Pham  (posted 2021-10-13 14:13:37.11)
Hi, I am working on the LabVIEW for the K10CR1 rotator. I faced the same problem with one of the users reported here. I follow the guideline "Kinesis LabView Guide". Initially everything is fine, but after the VIs is restarted, it shows the error "Error 1172 occurred at Property Node (Arg :1) Error accessing property Thorlabs.MotionControl.Controls.CageRotatorControl.SerialNumber, (System.ArgumentNullException: Key cannot be null. Parameter name: key) Possible reason(s): LabVIEW: (Hex 0x494) A .NET exception occurred in an external assembly. For information about correcting this error, copy the following exception (in bold), and search the Microsoft Developer Network (MSDN) Web site or the Web for a possible explanation. System.ArgumentNullException in rotation2.vi" May you assist me to solve it?
cwright  (posted 2021-10-14 11:39:20.0)
Response from Charles at Thorlabs: Thank you for your query. In cases like this it is best to reach out to your local technical support directly with a copy of your VI so we can investigate. I will reach out to you to help troubleshoot.
Lukasz Ambrozinski  (posted 2021-10-13 12:54:45.52)
Hello, I would like to use the .Net C# code for controlling Kinesis-based hardware. I would like to work with the Kinesis simulator at the beginning. I was able to run Kinesis simulator and Kinesis control software and control the simulated device. I was trying to do a similar thing with the C# examples, but I was not able to connect to the simulated device. Are there any step-by-step examples of how to compile the C# example and control a simulated hardware? Regards, Lukasz
cwright  (posted 2021-10-14 11:25:12.0)
Resopnse from Charles at Thorlabs: Hello and thank you for your query. Usually an inability to connect to a simulation is due to not having the simulation currently initialised in the Kinesis simulator or by having the Kinesis GUI, or other software, already accessing the simulation. I have reached out to you to help troubleshoot.
shangqing shi  (posted 2021-09-17 10:55:01.263)
Hi. I purchased the Optical Delay ODL220(/M) and BBD301 Benchtop Controller from Thorlabs several weeks ago. I need to read the phase-locked amplifier(SR830)'s data while the delay line is moving.Now,I know how to control the ODL by Kinesis® with LabVIEW and I can read the phase-locked amplifier(SR830)'s data by labview. However,I can not read the phase-locked amplifier(SR830)'s data while the delay line is moving.Once the ODl starts running by Kinesis® with LabVIEW, the process reading the data is interrupted. I need your help!Thank you!
DJayasuriya  (posted 2021-09-17 10:44:28.0)
Thank you for your inquiry. We will get in touch with you directly to resolve this issue.
Baojia Wang  (posted 2021-08-30 18:04:41.753)
你好! 我目前正在进行对TSC系列的控制器使用LabVIEW进行二次开发。虽然使用例程中.net的方式能够很快在LabVIEW中实现控制界面。 但目前我期望可以通过LabVIEW中单独的布尔输入控制电磁阀的开闭,而不是.net界面。请问对于TSC系列的控制器可否实现此功能,若可以不知能否告知。若不可以,还希望能推荐一款可以实现该功能的控制器。谢谢! 祝好 王宝嘉
cwright  (posted 2021-08-31 08:08:08.0)
Response from Charles at Thorlabs: Thanks you for your query. Your local team will reach out to you with an example for controlling the TSC.
user  (posted 2021-08-09 19:27:08.707)
I'm trying to transfer my labview project to another computer and when I load my VI I keep on getting the error message: "LabVIEW: File not found. The file might have been moved or deleted, or the file path might be incorrectly formatted for the operating system. For example, use \ as path separators on Windows, : on Ma OS X, and / on Linux. Verify that the path is correct using the command prompt or file explorer. The file 'Thorlabs.MotionControl.Controls.dll' could not be loaded." I tried reinstalling the Kinesis software from the Thorlabs page, but that didn't help. I'm pretty sure I installed the correct software for my computer and labview. How can I fix this problem?
cwright  (posted 2021-08-12 06:27:11.0)
Response from Charles at Thorlabs: Thank you for your query. This is not related to Kinesis but is LabVIEW telling you a file is not where it is supposed to be. The project will be expecting the VI to be in a specific location. If the path address is different to the old PC then this will occur. The project file does not contain the VIs themselves, only references to them, so if you only moved the project file then you must copy all the files across to the expected locations.
R  (posted 2021-08-09 19:12:18.803)
Hello. I'm using KDC101 and when I try to run my file I keep on getting this error: "Error 1172 occurred at Invoke Node Error calling method Thorlabs.MotionControl.KCube.DCServoCLI.KCubeDCServo.Home, (System.ArgumentNullException: Key cannot be null. Parameter name: key) LabVIEW: (Hex 0x494) A .NET exception occurred in an external assembly. For information about correcting this error, copy the following exception (in bold), and search the Microsoft Developer Network (MSDN) Web site or the Web for a possible explanation." Do you have any suggestions of how I can fix this problem? Thank you in advance.
cwright  (posted 2021-08-12 06:42:04.0)
Response from Charles at Thorlabs: Thank you for your query. I would expect the controller not being recognised. Please make sure you have put in the correct serial number of the K-cube rather than the stage. When requesting software support it is always best to contact technical support directly with a copy of the VI so we can view what you are doing. That will usually save a lot of time. I will reach out to you to check this fixes your issue and to request the VI.
Ashish Vasil  (posted 2021-05-21 13:33:24.98)
Trying to use Kinesis with Labview. Is there a documentation anywhere that captures all the errors that might be thrown by the hardware and the associated possible causes and resolutions? I can be reached at 330-418-1763
jcater  (posted 2021-05-24 12:02:19.0)
Response from Jack at Thorlabs: Thank you for your feedback, we will reach out to you directly to help further.
Vishal Bajaj  (posted 2021-05-03 18:52:45.18)
I am using Labview 2019 64 bit to control 2 NanoMax 600 stages, but everytime I stop the program or the program finishes running Labview crashes and I need to recover my files. This is really annoying, I initially thought it was because of not closing the devices but even if the devices are closed properly I face this issue.
cwright  (posted 2021-05-05 10:53:16.0)
Response from Charles at Thorlabs: Thank you for contacting us. Technical support will reach out to you for details of your VI and help troubleshoot this. Technical support can also be contacted directly using the details on this page: https://www.thorlabs.com/supportcontact.cfm
user  (posted 2021-02-09 15:32:43.013)
Hello, I've faced a similar issue as some people below. Are there updated .dll files for the 32 bit version of Kinesis for 64 bit windows? There's a discrepancy between the 64 and 32 bit assemblies. For instance, while there is a 64 bit version of Thorlabs.MotionControl.Controls.dll, there is not a 32 bit version, and it's causing the same "An error occurred trying to load the assembly" message to appear while I attempt to follow the guide and create a .NET control in the 32 bit version of LabVIEW 2020.
cwright  (posted 2021-02-10 09:38:31.0)
Response from Charles at Thorlabs: Thank you for your query. There is a 32-bit Controls.dll in the newest install from the web. If the Thorlabs.MotionControl.Controls.dll or other dll's have not been installed this may be a result of having an old version already installed. Please completely uninstall and reinstall Kinesis. When copying the dll's over to the LabVIEW project folder, you can either do this manually or using the Kinesis DLL Copy Tool.
WEN-RUEY Hwang  (posted 2021-01-22 15:20:13.367)
Hi, I have the same error message when I insert "Thorlabs.MotiomControl.Cotrols(1.4.1.0)" I am running on the Labview 2020 and I downloaded "Kinesis 32-bit for 64-bit Windows" because my computer is 64-bit and the Labview 2020 is 32-bit. Can you explain why I still have the same error message. Do you have new .dll files for labview 2020 32-bit? Thanks, Wen-Ruey
cwright  (posted 2021-01-25 09:19:49.0)
Response from Charles at Thorlabs: Thank you for your query. There are a few reasons as to why this error can occur, most commonly is that the incorrect bit version is being used. Another common reason for this error is that the .NET assemblies have not been copied over to the same directory as where the LabVIEW project is saved. We will reach out to you directly to help troubleshoot further.
Sophie ROUGELOT  (posted 2021-01-11 11:59:48.59)
Hello, I followed the Kinesis LabView Guide and I get an error message at step 5 saying that "Une erreur a eu lieu au chargement de l'assembly" in the Controls window of the "Select .NET Control" dialog window. I use Labview 2017 (32 bits). Version of 'Thorlabs.MotionControl.Controls.dll' is 1.14.24.17290. What do you think? What could be the root cause? Thank you. Best regards, Sophie Rougelot
cwright  (posted 2021-01-12 04:46:08.0)
Response from Charles at Thorlabs: Hello Sophie and thank you for your query. Receiving the error message 'An error occurred while loading the assembly' whilst trying to load a control into a .NET container is usually the result of trying to load a 64-bit .NET dll into a 32-bit version of LabVIEW or vice-versa. In your case please ensure you are using either Kinesis 32-bit for 32-bit Windows or Kinesis 32-bit for 64-bit Windows depending on the bit version of your OS.
user  (posted 2020-11-12 23:55:17.17)
Hello, I would like to have a version of "Kinesis with LabVIEW Examples.lvproj" that is compatible with my LabVIEW 2016 64-bit installation. I get the error message that it is newer than my installation. Thank you very much for your help in advance. Kind regards.
DJayasuriya  (posted 2020-11-13 08:18:42.0)
Thank you for your inquiry. The files on here are LabView 2012 version but should work with LabView 2016 version. I will get in touch with you directly with a LabView 2016 version.
Paul Konings  (posted 2020-08-31 05:13:19.067)
Hi, I'm trying to control a LTS from LabVIEW. I'm experiencing an "system.I0.FileNotFoundException" when I try to load the code from another project than the original one. I've created a project that contains the LV code that contains the .Net calls so that these can be used by other projects. It appears that the .Net dll's need to be besides the project before all dll's are loaded. If I inspect the loaded .net assemblies in LV then the expected ones are loaded (the ones that I actually use). It also appears that some dll try's to load another DLL and does that relative to th e project file and not the already loaded Dll's. To be clear, I can get the code to run if all the DLL's are located besides the project file. This however limits the re-use possibilities of the code. How can I have only 1 set of DLL's and use the code in multiple LV projects?
cwright  (posted 2020-09-02 10:12:28.0)
Response from Charles at Thorlabs: Hello and thank you for your query. Unfortunately our .dll files do require that they be copied into the same folder as the project calling them, as described in the Kinesis LabVIEW Guide which can be found on our site at the following link. https://www.thorlabs.com/Software/Motion%20Control/Kinesis/Kinesis-labview.pdf
Tianyi Guo  (posted 2020-07-27 14:44:31.61)
We have two kinds of controller, kcube and tcube. I also installed the correct versions of the APT and Kinesis software. However, for tcube, I have error of loading dll (kinesis) using LabView. For kcube, we have problem of connecting to LabView using APT. We would like to control both cubes using the same program by controlling the velocity, acceleration, and stepping distance/rotation.
cwright  (posted 2020-07-28 11:22:12.0)
Response from Charles at Thorlabs: Thank you for your query. We will contact you directly to help diagnose the issue, however a common reason for receiving an error when loading dll's is due to using incompatible bit versions of Kinesis and LabVIEW. The Kinesis bit version should match that of your LabVIEW bit version. We provide 32-bit and 64-bit versions of Kinesis as well as a 32-bit for 64-bit Windows version for those running 32-bit LabVIEW on 64-bit Windows.
user  (posted 2020-07-20 07:20:58.43)
Examples using callback are version over 2012. So I cannot see that VI and example project file provided.
DJayasuriya  (posted 2020-07-24 06:56:00.0)
Thank you for your inquiry. I will get in touch with you directly to resolve your issue.
DJayasuriya  (posted 2020-07-24 06:56:00.0)
Thank you for your inquiry. I will get in touch with you directly to resolve your issue.
Joanna Oracz  (posted 2020-06-09 12:42:13.36)
Dear Labview Team, I am trying to program yours Cage Rotator K10CR1/M with Labview 2014. I started with Kinesis software & NET programing. However, I cannot load the dlls (Step 6 of your Kinesis Lsbview Guide). I also cannot load any of your examples as they are not compatible with my Labview version... Do you have maybe some dlls compatible with labview 14? Sincerely, Joanna
cwright  (posted 2020-06-11 08:08:15.0)
Response from Charles at Thorlabs: Hello Joanna and thank you for your query. The Dll’s should be compatible with your version as long as the bit type is correct so I will reach out to you directly to diagnose your issue.
Jakob Weber  (posted 2020-03-09 06:24:57.53)
Our K-Cube Laser Diode Controller does work with the Thorlabs.MotionControl.Kinesis.exe very well. But if i try to start a own labview.vi (like your "getting started") Labview crashes at method: "CreateDevice".
cwright  (posted 2020-03-11 10:09:00.0)
Response from Charles at Thorlabs: Hello Jakob, thank you for letting us know you are having this issue. We will look into this and reach out to you directly with further troubleshooting and support.
Chris Purves  (posted 2019-12-13 13:32:40.68)
I was able to determine that the problem was I had the .dlls 2 subdirectories below the LabVIEW project file. Moving the directory containing the dlls to the same directory as the project file allowed LabVIEW to find the dependencies.
DJayasuriya  (posted 2019-12-16 08:08:17.0)
Response from Dinuka at Thorlabs: Thanks for your query I'm happy you were able to resolve the issue. If you have any further questions feel free to contact us directly on techsupport@thorlabs.com
Chris Purves  (posted 2019-12-13 10:57:04.18)
Having trouble getting Kinesis driver to work with LabVIEW. After copying .dlls to project subdirectory and creating .NET container, when I try to insert .NET control to container I get the following error: Error inserting ActiveX or .NET object: Error creating instance of BenchtopPiezoControl in assembly Thorlabs.MotionControl.Controls.BenchtopPiezoControl, Thorlabs.MotionControl.Controls, Version=1.14.19.16340, Culture= neutral, PublicKeyToken=c7ec6d6d6e243Se7, (System.Windows.Markup.XamlParseException: Set property 'System.Windows.ResourceDictionary.Source' threw an exception. Inner Exception: System.lO.FileNotFoundException: Could not load file or assembly 'Thorlabs.MotionControl.Tools.WPF.UI, Culture= neutral' or one of its dependencies. The system cannot find the file specified.) System.I0.FileNotFoundExceptionOf course, the WPF.UI is present in the directory containing all the .dlls.
DJayasuriya  (posted 2020-01-27 11:11:35.0)
Response from Dinuka at Thorlabs: Thanks for your query. I will contact you directly to have a look at your VI to see if we can replicate the issue and solve it.
user 0  (posted 2019-09-26 15:57:17.603)
Good afternoon. I make a diagram in the lab clearly according to the instructions. But when the device is connected to the computer via yusb in the lab, it is not visible. That is, a window pops up without buttons for adjusting the speed and position of the slide and others. At this time, everything works in the kinesis program itself. What could be the problem?
AManickavasagam  (posted 2019-09-27 11:30:09.0)
Response from Arunthathi at Thorlabs: Thanks for your query. I have contacted you directly for further details.