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

機能的グローバル変数サンプル

コードとドキュメント

添付

概要

機能的グローバル変数(Functional Global Variable; FGV)のサンプルです。

 

詳細

LabVIEWの中で使用する変数(ローカル、グローバル、シェア)は、複数個所で書き込むと競合問題を引き起こし、不正なデータになる恐れがあります。

サブVIの中のシフトレジスタをメモリとして使い、モジュール間でデータを受け渡す「機能的グローバル変数」を使用することで、この競合問題を防ぐことができます。

さらに値としてファイルリファレンス、VISAリソース、DAQのタスクリファレンスなどを保持することで、VIの中で便利に使用することができます。これは「Action Engine」という使い方になり、厳密にはFGVとは異なりますが、動作原理は同じものとなります。

 

FGVは問題点としてパフォーマンスが低い傾向があります。(再入実行不可の設定で使用するため、複数個所に配置した場合シリアルに処理されるため)

 

大規模アプリケーション作成ではさらに上位の設計思想が重要ですが、小~中規模のアプリケーションには使いやすいかと思います。

 

 

実装・実行方法

添付プロジェクト内の各仮想フォルダの中の「~ Example.vi」を開き、中身を確認してください。

 

必要なもの

ソフトウェア

  • LabVIEW 2012 以降
  • NI-DAQmx (オプション)

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

寄稿者