サンプルコードとドキュメント

How to control motor using 9512 in FPGA mode

製品と環境

このセクションは、サンプルの作成に使用された製品およびOSを反映します。

以下に示された製品を含め、NIのソフトウェアをダウンロードするには、ni.com/downloadsをご覧ください。

    ハードウェア

  • NI-9512

コードとドキュメント

添付

Description

概要

NI 9512を用いたモーター制御を、Softmotionを使用せずFPGA上で行います。

サンプルは下記パスにあります。

C:\Program Files\National Instruments\LabVIEW 2012\examples\CompactRIO\Module Specific\NI 9512\NI 9512 Basic Move

(LabVIEW 2014では上記サンプルがありませんのでご注意ください)

 

9512をFPGAモードで使う際に必要なソフトウェアについては下記をご覧ください。

 

 

詳細

9512をFPGAインタフェースで使用する場合、Softmotionは必要ありません。

下記の手順に従ってプログラムを構築していきます。

==============================================================================

1. 9512モジュールのファームウェアを更新する

下記手順をご参考下さい。

Downloading Firmware to an NI 951x Module (FPGA Interface)

 

2. 新規プロジェクトに、使用するcRIO/chassis/moduleを追加する

FPGAインタフェースを選択し、Cシリーズモジュールを自動検出するようにします。

 

3. 添付ファイルより

"NI 9512 Basic Move(Host).vi"をcRIO直下に、

"NI 9512 Basic Move(FPGA).vi"をFPGAターゲット下に配置します。

 

4. FPGA FIFOを以下の設定で作成します

名前:Setpoint FIFO

タイプ:ホストからターゲット(DMA)

要求する要素数:2046

データタイプ:I32

 

5. 9512のモジュール名を「9512 Stepper Drive Interface」と変更します

これにより、"NI 9512 Basic Move(FPGA).vi"で使用されている

"FPGA I/O メソッドノード"での配線破損が回復されます。

 

6. FPGAをコンパイルします

7. コンパイル完了後、"NI 9512 Basic Move(Host).vi"を立ち上げます

8. 各種設定を行った後、VIを実行します

9. モーターが回転します。

 

このアプリケーションで一番起こりうる問題は、

「VIを実行してもモーターが動かない」

というものです。

モーターが動かないという場合、VI上の設定項目が正しくない可能性が高いです。

今一度、お使いのモーターに対する設定を見直してください。

 

例えば当方で検証したセットアップでの設定は下記の通りです。

DANAHER STEPPER MOTOR : CTP12ELF10MAA00

DANAHER Motor Driver : P70360

 

setup.JPG

 

motor.png

==============================================================================

 

モーターのコントロールは"setpoint"に値を入力することにより行われます。

"setpoint"に指定した値は、「何パルス信号を出力するか」を意味します。

1パルスあたり何度モーターが回転するかはモーターの仕様によるため、仕様書等ご確認ください。

 

 

!!注意!!

 

951xシリーズのFPGA上での動作は、処理スピードとしてあまり早くはありません。

NI 9512 (FPGA Interface)

951xシリーズのプログラムの基本としては、

Write (FPGAバッファにデータを書き込み) >> Scan (FPGAバッファとモジュール間のデータ通信)

>> Read (FPGAバッファからデータを読み込み)

となります。

 

Scan MethodはNI 9512とFPGA間でデータのやり取りを行うためのメソッドで、FPGA VI上に必須です。

このときの通信方式はSPI通信で、その実行に最大40usecかかります。

NI 951x Scan Method (FPGA Interface)

"there is no timeout input on the Scan method because it is guaranteed to return within 40 µs. "

 

ベンチマークを取ると下記のようになりました。

各メソッドで、何tick実行にかかるかのベンチマーク結果です。

 

Method Tick (40MHz ベースクロック使用時)
Write 10
Scan 1250
Read 10

 

上記結果から、FPGA VIを使ったとしても高速処理が難しいことが分かります。

Softmotionも内部ではFPGAが使われております。

FPGA VIにはmotion用の関数が多くないため、プログラムの作成が複雑になりがちです。

特別な理由のない限り、Softmotionをお使いになられることをお勧めします。

 

==============================================================================

 

 

必要なもの

ソフトウェア

・LabVIEW 2014

・RIOドライバ

・Real-Time Module

・FPGA-Module

 

検証に試用したハードウェア

・cRIO-9024

・cRIO-9118

・DANAHER STEPPER MOTOR : CTP12ELF10MAA00

・DANAHER Motor Driver : P70360

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。