LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

High resolution stepper motor. Labview connectivity issues.

Solved!
Go to solution

I'm working in a laboratory and we use LabView for equipment integration and automation. We have a K10CR1/M stepper motor from Thorlabs. I used two different connectivity methodologies.

 

One through the .Net container (recommended by the manufacturer), however, I receive an apparent version error about Thorlabs.motioncontrol.controls.dll, "Expected assembly version 1.14.12.0 but found version 1.14.52.24173" when I try to open the examples provided by the manufacturer. And if I program my own example, I get an error "inserting object, not possible to load the archive or assembly thorlabs.motioncontrol.devicemanagerCLI.dll".

The other methodology was using "call library function" through the same path of the file thorlabs.motioncontrol.controls.dll. However, I get labview error code 15.

 

Anyway, the manufacturer's Kinesis software, the latest version installed, recognizes the stepper motor and can run it without problems. I looked for old versions of the software to downgrade but couldn't find any.

 

I'm stucked, any ideias?

0 Kudos
Message 1 of 7
(254 Views)

You might try creating a blank project, adding the example to the project, and opening it from within the project.

I have not used Kinesis in a few years, but I have seen warning messages when updated dlls were used.  My code was opened from within a project, and I think a dialog appeared warning that the dll version had changed. The dll should appear in the project dependencies list.

0 Kudos
Message 2 of 7
(236 Views)

Your could use a stepper driver, like one from polulu, which just takes a direction digital signal, and a step pulse that can be driven from either a pi or arduino.

0 Kudos
Message 3 of 7
(226 Views)

Hi, thank you for your considerations!

I try to implement, but I received a new error (see attached image).

 

This is really frustrating because the .dll file is in the same local to the VI and blanck project.
It seems really a "version mismatch" problem. I mean, the example VI requires an older version and the .dll is a new one.

 

But it is strange that even in a blanck VI, adding .Net container, I am receiving error message (previously attached image).

I'm thinking in procced to a workaround solution, using an interface between labview and the hardware.

0 Kudos
Message 4 of 7
(188 Views)

Thank you for your attention.


This is not so simple, we are talking about a high resolution stepper motor, with 0.128 µrad resolution. Probably this guy have positioning sensors to ensure that the desrible angle have been reached. I need to check if it is possible to perform a hardware interface. I was thinking about a software interface.

0 Kudos
Message 5 of 7
(179 Views)
Solution
Accepted by topic author ravel.araujo

Hi,

 

I have used Thorlabs Kinesis a fair amount.

 

One of the big problems with it is that it has about 100 .NET DLLs that it uses.  Some you call from LabVIEW directly, some are called by each other, so you do need all of them.

 

The first message, "Expected assembly version 1.14.12.0 but found version 1.14.52.24173", you should not worry too much about.  It just means someone used an older version of Kinesis when they made the code you opened.  By itself, this shouldn't cause problems.  

 

The other message, about not being able to find a DLL, is the one you need to resolve.

 

Did you see this guide:

https://www.thorlabs.com/Software/Motion%20Control/Kinesis/Kinesis-labview.pdf

 

The earlier steps in the guide are about copying all the DLLs and creating a project.  In theory, if you follow those instructions, you shouldn't get errors about missing DLLs.

Message 6 of 7
(122 Views)
The problem is related to LabVIEW. In fact, LabVIEW requires that there be a certain hierarchical logic in the tree of files that are linked to the project. I've checked that all .NET dlls should be subordinate to the project and ideally at the same level as the .VI that will run it. An easy way to do this is to put everything in the same folder and try to keep the names and paths the same as the example project provided on the Thorlabs website.
 
As for the version of the .NET dlls, I used the latest version (copied from the Kinesis installation directory). Within the project, LabVIEW doesn't recognise the Thorlabs.MotionControl.Controls.dll file at first. I had to try running it within the code of the .VI file, save the whole project, close everything and reopen it again.
 
However, after several tests with the project tree and the file paths, it was possible to execute the commands for the stepper motor. So in principle I managed to fix the problem.
0 Kudos
Message 7 of 7
(19 Views)