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

FPGA/RT上のVIをホスト側から実行する

製品と環境

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

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

    ソフトウェア

  • LabVIEW FPGA Module
  • LabVIEW Real-Time Module

コードとドキュメント

添付

すべてをダウンロード

Description

概要

このサンプルでは、ホストVIからRT VIを実行し、RT VIからFPGA VIを実行する手順をご紹介します。

Windows VI >> RT VI呼び出し >> RT VI >> FPGA VI呼び出し >> FPGA VI

というフローです。

これにより、

・Windowsホストから指定したRT VIを実行するためには

・ホストからFPGA VIを実行するには

を学んでいただけます。

 

詳細

下位側から順に作成していきます。

 

◎ FPGA

まずFPGA VIでは、FIFOを使用してデータをホストへ転送しています。

それ以外のことは特に行っていません。

通常と同じようにFPGAをコンパイルします。

FPGA.png

 

◎ RTホスト

続いてRTホスト側では、FPGA VIをFPGA VIリファレンスを開く関数を用いて実行します。

FPGA FIFOから読み取ったデータを、ネットワーク共有型のシェア変数に渡しています。

 

aa.png

 

このVIをRTターゲットにデプロイして実行します。

ビルドの際はリアルタイムアプリケーションを作成するのではなく、下記資料を参考にしてソース配布を作成してください。

How Can I Programmatically Launch an Executable or VI on a Real-Time Controller?

また、RTターゲット側でVIサーバーの設定が必要となる場合があります。

この作業を行わないと、Windows VI実行時にエラー63が発生しますので注意してください。

Why Am I Getting Error 63 When I'm Using VI Server to Launch a VI on a Remote Machine?

Windows VI実行時に「VIが壊れている」という旨のエラーが発生するようでしたら、

ソース配布プロパティの「その他の除外項目」から、

・vi.lib

・instr.lib

・user.lib

からのファイルを除外チェック、をはずしてビルドしてください。

(上記資料に詳細は記載があります。)

 

◎ Windowsホスト

Windowsホスト側ではRTターゲットで使用されているシェア変数に、Windows上で作成したシェア変数をバインドし、

RTターゲットからのシェア変数データを受け取れるようになっています。

 

ホスト.png

 

実装・実行方法

1. 添付ファイルをダウンロードします

2. プロジェクトを開き、ターゲットを正しく構成します

3. FPGA VIをコンパイルします

4. RT VIでFPGA VIの指定を正しく構成します。

5. RT VIのソース配布を作成し、デプロイを行います

6. Windows VIを実行し、値が正しく取得されることを確認します。

7. 必要に応じて、Windows VIもビルドしてEXEとして動作させます。

 

EXEでの実行.png

 

必要なもの

ソフトウェア

・LabVIEW 2012以降

・Real Timeモジュール

・FPGAモジュール

 

ハードウェア

・cRIO

・FPGAターゲット

 

 

※2015/11/2 追記

Linux RT搭載のRIOデバイスを使用している場合、Windows側で指定するRTターゲット内のVIパスにはご注意ください。

例えば下記のように"home:\lvuser\natinst\bin\Real_Time_VI.vi"と記載いただく必要があります。

 

AA.png

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