アプリケーションとVIの設定を操作する



LabVIEW 2018ヘルプ


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

ダウンロード (Windowsのみ)


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

プロパティとは、VI、オブジェクト、またはアプリケーションの属性です。メソッドは、VI、オブジェクト、またはアプリケーションで動作を実行します。プロパティノードおよびインボークノードを使用して、ローカルまたはリモートのアプリケーションインスタンス、VI、およびオブジェクトでプロパティおよびメソッドを取得または設定することができます。プロパティおよびメソッドを介してのみ、多くのアプリケーション、VI、オブジェクトの取得や設定を行うことができます。

アプリケーションおよびVIクラスのプロパティとメソッドを使用するサンプルについては、labview\examples\viserverディレクトリを参照してください。

プロパティノード

アプリケーションやVIのさまざまなプロパティを取得または設定するには、プロパティノードを使用します。プロパティノードからプロパティを選択するには、操作ツールでプロパティ端子をクリックするか、そのノードの白い領域を右クリックし、ショートカットメニューからプロパティを選択します。

以下は、プロパティがアプリケーションまたはVIで使いやすさを向上していることを示す例です。

  • テキストフォーカスを、最もよく使用される主要な制御器に設定します。
  • 当面使用していない制御器や無効な制御器は、無効にするか非表示にします。
  • 制御器をハイライトして手順をユーザに示します。
  • エラー状態の色を注意を引く色に変更します。

1つのノードを使用して複数のプロパティの読み書きができます。ただし、一部のプロパティは読み取りまたは書き込みができません。プロパティノードをサイズ変更して新しい端子を追加するには、位置決めツールを使用します。小さな矢印がプロパティの右側にあるものは読み取りプロパティを表します。小さな矢印がプロパティの左側にあるものは書き込みプロパティを表します。プロパティの動作を変更するには、そのプロパティを右クリックし、ショートカットメニューから読み取りに変更または書き込みに変更を選択します。

ノードは上から下の順に実行されます。プロパティノードは実行前にエラーが発生すると実行されません。エラーが発生したかどうかを常に確認してください。プロパティでエラーが発生すると、残りのプロパティを無視し、エラーを返します。プロパティノードを右クリックしてノード内でエラーを無視を選択した場合、プロパティノードの残りのプロパティが実行されます。最初のエラーのみがプロパティノードによって返されます。エラー出力クラスタには、どのプロパティによってエラーが発生したのかを示す情報が含まれています。

プロパティノードを開いてオブジェクトのリファレンスを返す場合は、「リファレンスを閉じる」関数を使用してリファレンスを閉じます。

プロパティノードの自動リンク

オブジェクトを右クリックしてショートカットメニューから作成→プロパティノードを選択し、ショートカットメニューからプロパティを選択して、フロントパネルオブジェクトからプロパティノードを作成すると、フロントパネルオブジェクトと内部的にリンクされたプロパティノードがブロックダイアグラム上に作成されます。プロパティノードは暗示的に作成元のオブジェクトにリンクされるので、このプロパティノードにRefnum入力はありません。また、プロパティノードをフロントパネルオブジェクトまたは制御器リファレンスの端子に配線する必要はありません。フロントパネルオブジェクトのリンクを削除するには、ブロックダイアグラムでプロパティノードを右クリックし、ショートカットメニューで制御器から切断を選択します。

インボークノード

アプリケーションやVIに対して動作(メソッド)を実行するにはインボークノードを使用します。プロパティノードとは異なり、1つのインボークノードではアプリケーションやVIに対して1つのメソッドしか実行できません。メソッドを選択するには、操作ツールでメソッド端子をクリックするか、そのノードの白い領域を右クリックしてショートカットメニューからメソッドを選択します。また、オブジェクトを右クリックして作成→インボークノードを選択し、ショートカットメニューからメソッドを選択してインボークノードを作成することもできます。

メソッド名は常にインボークノードのパラメータリストの最初の端子名になります。メソッドによって値が返される場合は、メソッド端子には返される値が表示されます。それ以外の場合、メソッド端子に値はありません。

インボークノードによって上から下にパラメータがリストされ、メソッド名が上に、オプションのパラメータが下に淡色表示されます。

アプリケーションクラスのプロパティとメソッドを操作する

ローカルまたはリモートのアプリケーションインスタンス上でプロパティを取得または設定したり、LabVIEWでメソッドを実行したり、またはその両方を行うことができます。以下のブロックダイアグラムは、ローカルコンピュータ上のメモリに常駐するすべてのVIをフロントパネル上の文字列配列に表示する方法を示しています。

Refnumをリファレンス入力に配線しないと、プロパティノードやインボークノードは現在のアプリケーションインスタンスに対するリファレンスを使用します。他のアプリケーションインスタンスのプロパティまたはメソッドを操作する場合、アプリケーションリファレンスをリファレンス入力に配線する必要があります。同時に複数のアプリケーションインスタンスが開かれている場合、アプリケーションリファレンスをリファレンス入力に配線しているかどうかを確認してください。たとえば、LabVIEWプロジェクトまたはLabVIEWプロジェクトのターゲットを作成するたびに、LabVIEWは新規アプリケーションインスタンスを開きます。また、LabVIEWはプロジェクトの一部でなく開かれているVI、およびプロジェクトから開かれていないVIを含むメインアプリケーションインスタンスを作成します。

リモートコンピュータ上のメモリにあるVIを検索するには、以下のブロックダイアグラムのように「アプリケーションリファレンスを開く」関数のマシン名入力に文字列制御器を配線し、IPアドレスまたはドメイン名を入力します。また、上記のブロックダイアグラムで使用したメモリ内のすべてのVIプロパティはローカルのアプリケーションインスタンスのみに適用されるので、メモリ内のエクスポートされたVIプロパティを選択する必要があります。

また、デフォルト:アプリケーション:プロパティを使用して、プログラム的にデフォルトアプリケーションリファレンスを返すこともできます。アプリケーションプロパティは、プログラム的にターゲットアプリケーションインスタンスを開きます。

VIクラスのプロパティとメソッドを操作する

VIのプロパティの取得や設定、VI上でのメソッドの実行、またはその両方を実行できます。「VIリファレンスを開く」関数を使用して、VIリファレンスを返し、アプリケーションクラスのプロパティとメソッドを操作するように、プロパティノードおよびインボークノードを使用します。

Refnumをリファレンス入力に配線しない場合、プロパティノードまたはインボークノードは、プロパティノードまたはインボークノードを含むVIのリファレンスを使用します。他のVIのプロパティまたはメソッドを操作する場合、VI Refnumをリファレンス入力に配線する必要があります。

プロパティノードはインボークノードと同様に動作します。プロパティノードにVI Refnumを配線すると、すべてのVIクラスプロパティにアクセスできます。

アプリケーションクラスとVIクラスのプロパティおよびメソッドを操作する

VIによっては、アプリケーションクラスとVIクラスの両方のプロパティまたはメソッドにアクセスする必要があります。以下のブロックダイアグラムのように、アプリケーションクラスとVIクラスのRefnumを別々に開いたり、閉じたりする必要があります。

メモ  このブロックダイアグラム上のアプリケーションリファレンスは内部的リファレンスであるため、閉じる必要はありません。LabVIEWでリファレンスを閉じるタイミングについては、Closing References in LabVIEWチュートリアルを参照してください。

以下のブロックダイアグラムは、ローカルコンピュータ上のメモリに常駐するエクスポートされたVIを判断する方法、およびフロントパネルに各VIへのパスを表示する方法を示しています。メモリ内のエクスポートされたVIを検索するには、アプリケーションクラスプロパティにアクセスする必要があります。これらの各VIへのパスを調べるには、VIクラスのプロパティにアクセスする必要があります。Forループの実行回数はメモリ内のエクスポートされたVI数によって決まります。メモリ内の各VIに対してVI Refnumが必要であるため、「VIリファレンスを開く」関数および「リファレンスを閉じる」関数をForループ内に入れる必要があります。



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

役に立たなかった