Kinesis®とLabVIEW
![Kinesis®とLabVIEW](https://www.thorlabs.co.jp/Images/GuideImages/12675_KinesisLabview_2.jpg)
- 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
![](../../images/loading-red.gif)
Please Wait
LabVIEWはグラフィカルプログラミングインターフェイスであり、Kinesis .NETコントロールのコンポーネントを使用することで当社のあらゆるKinesis®対応のコントローラと通信することができます。これらの.NETコントロールは、Kinesisモーションコントロールソフトウェアパッケージに含まれています。
このチュートリアルでは、KinesisソフトウェアとのインターフェースになるLabVIEW VIの例について解説します。これらの例ではKinesisソフトウェアインストールパッケージに含まれるControls.dllファイルを利用しています。ダイナミックリンクライブラリ(DLL)形式のアセンブリには、Kinesisユーザーインターフェイスの要素や基本的なデバイス機能を含むWinFormsのコントロールが含まれます。これらのコントロールを使用することで、当社のKinesisソフトウェアをLabVIEWで簡単に使い始めることができます。
各タブの説明:
- LabVIEW:KinesisをLabVIEWで使用するときの基本情報
- 準備:サンプルVIを使用するために必要なソフトウェアのインストール方法
- サンプルVI:当社の様々なコントローラのためのサンプルコード
- DLL:機能向上のためにDLLを追加する方法に関する情報
- その他のプログラム:KinesisとC#のインターフェースについてのチュートリアルおよびサンプルコード
KinesisをLabVIEWで使用するための総合的なガイドは、こちらまたは右側にあるボタンをクリックしてダウンロードできます。このガイドでは、LabVIEWにKinesis .NETコントロールによるカスタム仕様のVIを作成するための手順を段階的に説明しています。
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D1-400.png)
Click to Enlarge
図1:KinesisデバイスパネルUIの「View」画面はLabVIEWのフロントパネルに表示されます。
LabVIEW
LabVIEWは、Kinesis .NET dllを介して当社のあらゆるKinesis®対応のコントローラとの通信に使用できます。付属する多くのダイナミックリンクライブラリ(.dlls)のうち「Controls.dll」は.NET WinFormsユーザーコントロールを提供しており、これらはデバイスのユーザーインターフェイス(UI)要素をサポートし、デバイスのメソッドやプロパティへのアクセスを可能にします。
その一例として、K-Cube DCサーボコントローラKDC101のKinesisグラフィカルユーザーインターフェイス(GUI)を図1に示しています。この「View」(UI)は、Kinesis.exeのアプリケーションで見るのと同様にLabVIEWのフロントパネルに表示され、またユーザはLabVIEWのブロックダイアグラムに示されるバックエンドで動くKinesis .NETのメソッドやプロパティにもアクセスできます。
.NETの「Controls.dll」をLabVIEWのフロントパネルに挿入すると、すべてのKinesis対応デバイスのユーザーインターフェイスを読み込めるようになります。K-Cube DCサーボコントローラKDC101の場合、デバイスのシリアル番号を入力して「CreateDevice()」を選択すると、このデバイスのUIは初期化されます(図2参照)。それによりデバイスは接続され、図1のようなUIが表示されます。
ベンチトップ型コントローラBSC202やラックモジュール型コントローラMPZ601のようなマルチチャンネル構造のコントローラは、チャンネル番号も指定する必要があります。図3の例のように、2つの独立したUIパネル(各チャンネルごとに1つ)が作成され、それぞれ独立に操作することができます。
ダウンロード可能なVIのサンプルについては、「サンプルVI」タブに注釈つきで記載されています。ご提供しているサンプルVIは特定のコントローラに関係しており、ハードウェアのタイプ(モータ、ピエゾおよびピエゾモータ、歪みゲージリーダなど)によって分類されています。Kinesisシミュレーターアプリケーションに接続可能なシミュレータVIもございます。これらのサンプルはLabVIEW 2012互換形式で保存されています。
当社のモーションコントロールハードウェアを用いて自作のVIを構築するヒントについてはKinesis LabVIEWガイドをご覧ください。
これらのサンプルに関する質問やご意見がございましたら、当社までご連絡ください。
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D4c-269.png)
Click to Enlarge
図6:フロントパネルに表示されたデバイスの「View」
.NETコントロールの挿入方法
- フロントパネル上で右クリックして「.NET container」を選択し、フロントパネル上に置きます(図4)。
- .NET containerを右クリックして「Insert .NET control...」を選択します。
- 「Select .NET Control」ウィンドウの「Browse...」をクリックします。
- LabVIEWプロジェクトホルダにある「Thorlabs.MotionControl.Controls.dll」を選択します。
- 「Controls」のリスト内から使用するコントローラを選択します(図5)。
- LabVIEWのフロントパネルにKinesisデバイスのユーザーインターフェイスが表示されます(図6)。これで、ブロックダイアグラムを介してデバイスのメソッドとプロパティにアクセス可能になります。なおデバイスのUIには、VIが動作してコントロールが初期化されるまで「Disconnected」と表示されます。
プロパティとメソッドへのアクセス
コントロールのリファレンスノードから、CreateDevice()やCloseDevice()のようなコントロールのメソッドとプロパティにアクセスできます。ノードを右クリックするとデバイスとの通信を初期化または終了することができます。CloseDevice()はセッション終了時に通信を終了し、.NETライブラリをシャットダウンしてUIをリセットします。
デバイスのメソッドとプロパティはデバイスのプロパティリファレンスからアクセスできます(図7参照)。T-cubeまたはK-cube型のデバイスの場合は、このプロパティは「Device」と表示されます。ラックモジュール型およびベンチトップ型のハードウェアの場合は、デバイスのプロパティとメソッドはデバイスの種類ごとのプロパティラベル(「ModularPiezo」または「BenchtopStepperMotor」)からアクセスできます(図8参照)。
また、LabVIEW .NETの接続機能を利用してKinesis .NET SDKを作成して通信することができます。ファンクションパレット内で「Connectivity > .NET」を選択すると.NETオブジェクトと通信するためのすべての機能にアクセスできます(図9参照)。
LabVIEW .NETの接続機能の詳細についてはKinesis LabVIEW ガイドをご覧ください。
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D6-345.png)
図10:MotorStateUpdateのようなイベントをフロントパネルに登録
イベントに伴う動作
LabVIEWのレジスタイベントコールバックを使用してEvent Callback VIを作成できます。これにより、VIは特定の条件下で呼び出されることになります。モータのステータス更新(図10参照)、接続の変更、設定の更新、エラーの更新など、基本的なイベントがそれにあたります。これらのイベントについての詳細はKinesis .NET APIをご覧ください。この例はKDC101のモータのステータスの変更に関するチュートリアルでご提供しており、モータのステータスが変わった時にプログラミングされた通りに動作します。
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D9-318.png)
Kinesis DLLファイル(上にリストアップされているようなファイル)はお客様のLabVIEWプロジェクトフォルダにコピーしておいてください。
準備
「サンプルVI」タブ内のサンプル仮想計測器(VI)を使用する前に以下の手順に従って準備を行ってください。
- Kinesisソフトウェアをインストールします。Kinesis/コンポーネントDLLファイルのバージョン(32ビット版 or 64ビット版)がLabVIEWおよびOSのバージョンに適合しているかどうか確認してください。付属するサンプルは当社のモーションコントロールソフトウェアのバージョン1.14.12を使用して構築されています。
- サンプルVIを動作させるために、コンポーネントDLLファイルをKinesisインストールフォルダから「Kinesis LabVIEW Examples」フォルダにマニュアルでコピーしてください。Controls.dllは、一般にはすべてのKinesis DLLファイルがプロジェクトフォルダにコピーされていることを必要とします。
- Thorlabs.MotionControl.Controls.dllからユーザーインターフェイスを正しく読み込むために、「LabVIEW Project Explorer」を用いてVIを開きます。
サンプルVI - フロントパネルの概要
LabVIEW VIにはアプリケーションを構築するためのウィンドウとして、フロントパネルとブロックダイアグラムの2つがあります。LabVIEWのフロントパネルにはVIのフロントエンドユーザーインターフェイスのコンポーネントが表示されます。各サンプルVIのフロントパネルは、VIを簡単に使用できるように手順や機能が表示されるようにフォーマットされています。これらの機能の概要とLabVIEWのフロントパネルの主要なインターフェイス機能について以下で説明しています。
説明:
- LabVIEWのツールバー。VIはここで起動します。
- このサンプルVIを使用するデバイス名、およびWebページへのリンク
- サンプルVIの概要と操作手順の説明
- フロントパネルで機能するコントロールおよびインジケータ(なお、デバイスのUIにはVIが動作してコントロールが初期化されるまで「Disconnected」と表示されます。)
- サンプルVIを動作させる際のヒント
Kinesis LabVIEWのサンプルVIをダウンロードするには、こちらまたは左側のボタンをクリックしてください。 これらのサンプルはLabVIEW 2012互換形式で保存されています。
注:Kinesis LabVIEWのサンプルVIは、当社の主要なデバイスに素早く接続して制御することを目的として作られています。プログラミングの練習を目的としたものではございません。シンプルにするために、ディレクトリの設定やエラー処理のような多くのプログラミング技術が省略されています。
サンプルVI | ||
---|---|---|
Item #, Type | サンプル名 | 説明 |
Motor Controllers | ||
KDC101 K-Cube, Brushed DC Servo | Build Device List | このサンプルVIは、お使いのデバイスのシリアル番号をマニュアルで入力することを要求します。ただし、このVIは接続されているデバイスのリストを作成し、ユーザが制御するデバイスのシリアル番号を選択するまで待機します。 |
Connect | ブラシ付きDCサーボモータ駆動のステージやアクチュエータを制御するために必要な、KDC101との通信の初期化や切断の方法についてデモンストレーションします。 | |
Get Position | Get Positionは、ステージの位置をデバイスの単位で出力するGetPositionCounter()メソッドを用いて、デバイスの位置をポーリングします。この位置情報はデバイスの単位(エンコーダーのカウント数)から実空間の単位(ミリメートル)に変換されますが、そこではモータ1回転あたりのエンコーダーのカウント数、変速機の減速比、送りネジのピッチなどが考慮されます。 | |
Motor Status Changed | このVIはモータのイベントを利用できるようにします。イベントにはモーターステータスのアップデート、接続の変更、設定の更新、エラーの更新などが含まれます。このVIはモーターステータスのアップデートを利用します。LabVIEWのレジスタイベントコールバックを用いて、イベントコールバックサブVIを作成できます。 | |
Move Absolute | デバイスをホーム位置に戻し、また任意の場所に移動させることができます。 | |
No Front Panel | Thorlabs.MotionControl.Controls.dllファイル内のWinFormsUIコントロールに含まれない当社のモーションコントロールデバイスとの通信方法を示します。このVIは、Kinesisをインストールした際に含まれるより範囲の広い一般的なDLLコンポーネントとデバイス固有のDLLコンポーネントに焦点を当てています。 | |
KBD101 K-Cube, Brushless DC Servo | Get Status Bits | GetStatusBitsメソッドによってステータスビットをポーリングします。 |
Set Trigger Parameters | 当社のあらゆるK-Cubeデバイスで利用可能なトリガーパラメータの検索を可能にします。 | |
Set Velocity Parameters | 接続されているデバイスの速度パラメータのモニタおよび設定を行います。 | |
BBD202 Benchtop, Brushless DC Servo | Two-Axis Scan | ユーザが定義した開始位置から2次元正方形のラスタ走査を行います。ユーザはステップ数、ステップサイズ、および走査位置でのステージの停止時間を設定できます。 |
KST101a K-Cube, Stepper | Move Relative | デバイスのホーミングをはじめとして、ホーム位置から前方(時計回り)または後方(反時計回り)に向けて、有効範囲内の任意の位置(距離)に移動させることができます。 |
Piezo / Piezo Motor Controllers | ||
KPZ101b K-Cube, Piezo Controller | Connect | ピエゾコントローラKPZ101との接続方法および切断方法のデモンストレーションを行います。 |
Waveform LUT | Controls.dllに含まれていないピエゾデバイスに利用可能なLUTWave機能が使用できるようになります。LabVIEWに組み込まれているSine Waveform.VIを利用して、振幅調整可能な正弦波を出力することができます。この機能の詳細については、.NET APIのLUTWaveParams()ストラクチャで説明されています。 | |
KPZ101b w/ KSG101c K-Cube, Piezo Controller and Strain Gauge Reader | Set Position | ピエゾコントローラKPZ101を歪みゲージコントローラKSG101と組み合わせて使用した時の、開ループおよび閉ループでの操作についてデモンストレーションします。開ループモードの時はピエゾアクチュエータの電圧を調整できます。閉ループモードの時はSetPercentageTravel()関数を用いて位置調整ができます。 |
BPC301 Benchtop, 1 Channel Piezo Controller | Connect | コントローラBPC301との接続方法および切断方法についてデモンストレーションします。 |
Waveform LUT | Controls.dllに含まれていないピエゾデバイスに利用可能なLUTWave機能が使用できるようになります。LabVIEWに組み込まれているSine Waveform.VIを利用して、振幅調整可能な正弦波を出力することができます。この機能の詳細については、.NET APIのLUTWaveParams()ストラクチャで説明されています。 | |
BPC303 Benchtop, 3 Channel Piezo Controller | Two-Axis Scan | BPC303のあらかじめ選択したチャンネルを用いて2次元正方形のラスタ走査を行います。このVIにはエラー処理用のクラスタがあり、エラーメッセージや対応するコードをプリントアウトします。 |
MPZ601 Rack, Modular 2 Channel Piezo Controller | Connect | コントローラMPZ601との接続方法および安全な切断方法についてデモンストレーションします。 |
PPC001, PPC102d Benchtop, Precision Piezo Controller | Continuous Scan | デバイスとの接続を可能にし、ユーザが指定した遅延およびステップ幅でピエゾの位置を直線的にインクリメントします。ステージを前方に5000ステップ移動し、その後、後方に5000ステップ移動します。このサンプルVIはPFM450E、PGM1SE、LPS710Eaに対応しています。 |
KIM101 K-Cube, Inertial Piezo Controller | Set Jog | ジョグパラメータの設定とジョグモードの切換えを行うことができます。またコントローラKIM101の特定のチャンネルに対する制御をアサートすることができます。 |
Strain Gauge Reader | ||
KSG101c K-Cube, Strain Gauge Reader | Get Max Travel Range | 接続された歪みゲージコントローラの最大移動量を取得できます。 |
Get Reading | 表示モードを、位置、力、電圧のどれかに設定し、選択したモードに基づいて読み取りを行います。 | |
Nanotrak Auto-Alignment Controllers | ||
KNA-VIS, KNA-IR K-Cube, Nanotrak Controller | Latch Trak | 操作モードをトラックモードまたはラッチモードに設定できます。 |
Set Circle Diameter | 走査するサークル径を0~10 NTの範囲で設定できます。 | |
Set Loop Gain | ループ利得の設定と読取りを行います。ループ利得は0~32767の間で設定できます。 | |
Set Phase Component | HおよびV成分の位相補償または走査サークルの角度の設定ができます。 | |
BNT001/IR Benchtop, Nanotrak Controller | Connect | デバイスBNT001との接続および安全な切断についてデモンストレーションします。 |
Set Circle Home Position | GetCircleHomePosition()メソッドを用いて走査サークルのホーム位置を設定できます。 | |
MNA601 w/ MST602 Rack, Nanotrak Controller with Stepper Motor Controller | Two-Axis Scan | 自動ファイバーアライメントシステムのためにコントローラMNA601およびMST602と接続する方法をデモンストレーションします。MAX381のようなステッピングモータ付きフレクシャーステージと組み合わせて使用すると、ファイバーアライメントの自動調整ができます。このVIでMPZ601のピエゾ出力によるシンプルな2次元ラスタ走査が開始されます。その走査はMNA601が十分な光電流を検知すると停止します。 |
Two-Axis Revector | 自動ファイバーアライメントシステムのためにコントローラMNA601およびMST602と接続する方法をデモンストレーションします。MAX381のようなステッピングモータ付きフレクシャーステージと組み合わせて使用すると、ファイバーアライメントの自動調整ができます。このVIでMPZ601のピエゾ出力によるシンプルな2次元ラスタ走査が開始されます。その走査はMNA601が十分な光電流を検知すると停止します。 | |
MNA601 w/ MPZ601 Rack, Nanotrak Controller | Two-Axis Scan | 自動ファイバーアライメントシステムのためにコントローラMNA601およびMST602と接続する方法をデモンストレーションします。MAX381のようなステッピングモータ付きフレクシャーステージと組み合わせて使用すると、ファイバーアライメントの自動調整ができます。このVIでMPZ601のピエゾ出力によるシンプルな2次元ラスタ走査が開始されます。その走査はMNA601が十分な光電流を検知すると停止します。 |
Solenoid Controller | ||
KSC101 K-Cube, Solenoid Controller | Set Operating Mode | このVIはデバイスを「Auto」モードに設定します。このモードでは、上面パネルのホイールを上げるとソレノイドが連続的に開閉します。設定されたモードは「Set Operating Mode」ボタンで変更することができます。プログラムはブロックダイアグラムのケースストラクチャを制御する「Set Operating Mode」ボタンの更新をポーリングします。これを行うと、コントロールの下に入力された「Auto」モードのパラメータによりデバイス設定が更新されます。 |
Laser Sources | ||
KLS635, KLS1550 K-Cube, Laser Sources | Set Power | レーザ出力のOn/Off設定やレーザ光源の出力パワーの設定ができます。 |
Simulator | ||
Simulated Hardware | - | このシミュレーションでは、Kinesis simulator applicationを使用してVIを挿入し、シミュレートされたハードウェアを利用することができます。 |
このチュートリアルでは、UIパネルをロードしてKinesisハードウェアを利用するための直接的な方法として主にWinForms User Controls library (Controls.dll)を使用していますが、Kinesisソフトウェアのインストール時に含まれている他の.NET DLLによるより高度な機能にアクセスすることも可能です。この機能の詳細はKinesis .NET APIのヘルプファイルに記載されています。
「サンプルVI」タブの以下のサンプルはControls.dllライブラリ以外の機能を利用しています。
- KDC101 - No Front Panel
- BPC301 - Waveform LUT
- KPZ101 - Waveform LUT
- KPZ101 w/ KSG101 - Set Position
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D10b-316.png)
BuildDeviceListメソッドはDeviceManagerCLIコンストラクタノードにドロップすることでアクセスできます。
![LabVIEW GUI](https://www.thorlabs.co.jp/images/tabimages/Kinesis_LabVIEW_D10c-230_2.png)
「KCube.DCServo.dll」内のメソッドに直接アクセスできます。
当社のKinesis®ソフトウェアでは.NETコントロールが使用できるため、C#、Visual Basic、LabVIEW™、その他の.NET対応言語を使用できる開発者はカスタムプログラムを作成することができます。このソフトウェアは当社の新しいラインナップであるKinesisシリーズのデバイスだけでなく、APT™シリーズ製品にも対応しています。すべてのKinesisコントローラは、統一されたグラフィカルユーザーインターフェイス(GUI)とプログラミングAPIがサポートされており、カスタムプログラムの作成が可能です。USB接続によるプラグ&プレイでPC制御の操作を簡単に行うことができ、複数のユニットを接続した多軸モーションコントロールの構築も容易です。
C#を利用してKinesisソフトウェアと通信するサンプルは下記にございます。
Posted Comments: | |
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.) 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. |