LabVIEWでプログラム的にVIをスクリプト化する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

VIスクリプトVIおよび関数と関連するプロパティおよびメソッドを使用して、VIをプログラム的に作成、編集、実行することができます。VIスクリプトによって、以下のようなVI編集タスクの繰り返しに費やす時間を削減することができます。

  • 類似したVIを複数作成する
  • 制御器と表示器を揃える、または均等配置する
  • 制御器と表示器のラベルの表示/非表示を切り替える
  • ブロックダイアグラムオブジェクトを配線する
メモ  VIスクリプトVIと関数を使用するには、VIスクリプトを有効にする必要があります。

VIスクリプトによってタスクを実行する前に、以下のリソースを確認してください。

  • VIをプログラム的に制御する―VIのスクリプト化では、オブジェクトのリファレンス取得、メソッドの呼び出し、プロパティの取得と設定を行う必要があります。『LabVIEWヘルプ』の「VIをプログラム的に制御する」ブックでは、VIスクリプトに関する情報の他に、VIサーバとリファレンス番号の使用方法が説明されています。
  • LabVIEWのサンプル―VIスクリプトを使用すると、必要に応じて無数のタスクを実行できます。LabVIEWで用意されているVIスクリプトの各サンプルは、一般的なVIスクリプトタスクの具体的な例を示しています。これらのサンプルを参考にして、VIスクリプトの便利さを探ることができます。

VIスクリプトの利点

VIスクリプトによって、制御器ラベルの表示/非表示の切り替えからプログラム的なVI作成まで、単純または複雑なタスクを実行することができます。たとえば、開発中にブロックダイアグラムのラベルを表示することに決定した場合、アプリケーション全体で1つ1つのブロックダイアグラムオブジェクトを右クリックしてショートカットメニューから表示項目→ラベルを選択するのではなく、このタスクをプログラム的に実行するためのVIスクリプトVIを作成して処理を自動化することができます。

以下のブロックダイアグラムは、特定のVIのブロックダイアグラムオブジェクトのラベルを表示するためのVIスクリプトアプリケーションの例を示しています。

より複雑なVIスクリプトタスクの例には、VI全体のプログラム的な作成が挙げられます。VIは、通常以下のような手順によって作成します。

  1. ファイル→新規VIを選択します。
  2. 制御器パレットでフロントパネル制御器および表示器を選択し、フロントパネルに追加することで、ユーザインタフェースを作成します。追加したフロントパネルオブジェクトの配置を、ユーザが簡単に使用できるように整えます。
  3. 関数パレットでユーザインタフェースを制御するためのストラクチャ、関数などを選択してブロックダイアグラムに追加します。ブロックダイアグラム端子を、ダイアグラムが判読しやすいように適切なノードに配線します。
  4. 最後に、VIがサブVIとして使用される場合は、フロントパネル制御器と表示器をコネクタペーンの端子に割り当てます。

類似したVIを複数作成する必要がある場合は、上記の手順を繰り返して各VIを作成するのではなく、必要な変更を加えながら新規VIを作成できるVIスクリプトアプリケーションを作成することができます。

VIスクリプトアプリケーションを作成する

VIスクリプトを有効にすると、VIスクリプトパレットのVIと関数、およびアプリケーション制御パレットの関数とノードを使用してVIスクリプトアプリケーションを作成できます。

メモ  VIスクリプトVI、関数、プロパティ、メソッドは、ブロックダイアグラム上で以下に示すように青く表示されます。

各VIスクリプトアプリケーションでは、作成または変更する1つまたは複数のオブジェクトのリファレンスを取得する必要があります。オブジェクトのリファレンスを取得する最も一般的な方法では、まず変更するオブジェクトを含むVIのリファレンス取得から開始します。新しいVIを作成してそのVIのリファレンスを取得するには、「新規VI」関数を使用します。または、「VIリファレンスを開く」関数を使用して既存のVIのリファレンスを取得することができます。VIリファレンスを取得すると、VIスクリプトパレットのVIと関数、およびアプリケーション制御パレットの関数とノードを使用して、VIオブジェクトのリファレンスを取得することができます。

複雑なVIオブジェクトと対話する場合は、それらのオブジェクトの特定の要素のリファレンスを取得する必要があります。たとえば、Forループに入る新規ワイヤを作成するには、ループそのもの、新規のループトンネル、およびループトンネルの内部端子と外部端子のリファレンスを取得する必要があります。VIスクリプトを使って作成および編集するオブジェクトの特定の要素を識別する方法については、「VIと一般的なVIオブジェクトの構造」というトピックを参照してください。他のVIオブジェクトに含まれるVIオブジェクトのリファレンスを取得する場合は、コンテナオブジェクト内のすべてのリファレンスが閉じられるまで、コンテナオブジェクトのリファレンスを維持する必要があります。

以下の図は、VIリファレンスを取得し、さらにリファレンスされるVIのブロックダイアグラムオブジェクトのリファレンスを取得する方法の例を示しています。

VI内のオブジェクトは、クラス名、データタイプ、ラベル、タグ、配列指標によって識別できます。以下の関数とノードは、VIスクリプトアプリケーション内でオブジェクトの識別とオブジェクトリファレンスの取得に一般的に使用されます。

メモ  ブロックダイアグラムオブジェクトには、デフォルトではラベルが表示されていません。「VIオブジェクトリファレンスを開く」関数を使用してオブジェクトのリファレンスを取得するには、まずラベルを表示する必要があります。オブジェクトラベルによってリファレンスを取得する場合は、正しいオブジェクトが参照されるように、識別可能な固有のラベルを作成する必要があります。
  • 制御器プロパティと端子プロパティ
  • Gオブジェクトを走査」VI
  • SetTag メソッドとGetTagメソッド
  • 発信順序プロパティ
  • すべてのオブジェクト[]プロパティ
    メモ  すべてのオブジェクト[]プロパティはコンテナオブジェクトを再帰的に検索しません。VIのすべてのオブジェクトを検索するには、フロントパネル、ブロックダイアグラム、ストラクチャ、配列などの各コンテナオブジェクトに対してすべてのオブジェクト[]プロパティを使用する必要があります。

VIスクリプトアプリケーションで実行する一般的なタスクの例には、以下が挙げられます。

これらのタスクを説明したサンプルについては、labview\examples\Application Control\VI Scriptingフォルダのサンプルを参照してください。



この記事は役に立ちましたか。

役に立たなかった