プロパティノードを使用してクラスタ内の制御器にアクセスする

更新しました Feb 5, 2019

使用製品

Software

  • LabVIEW

問題

クラスタ内に埋め込まれた一連の制御器があり、制御器の1つのプロパティにアクセスしたいと思っています。制御器のいずれかに対する特定のプロパティ(文字列制御器の背景色など)にアクセスできますか?

解決策

クラスタ内にある制御器のプロパティにアクセスするには、3つの方法があります。

A) 暗示的プロパティノードを使用する:

フロントパネルにある埋め込まれた/ネストされた制御器(クラスタ自体ではなく)を右クリックし、作成>>プロパティノードを選択し、プロパティノードをブロックダイアグラムに配置します。プロパティーノードを読み取りまたは書き込みとして設定し、プロパティにアクセスまたは変更します。

また、先にクラスタ外で関連するプロパティノードを持つ制御器を作成し、制御器をクラスタに移動することもできます。制御器は、制御器がクラスタに移動された後でもプロパティノードに関連付けられます。


 

B) 明示的プロパティノードを使用する:

  1. フロントパネルの制御器を右クリックし、作成>>リファレンスを選択します。これにより、ブロックダイアグラム上に参照が作成されます。
  2. ブロックダイアグラムで、リファレンスの出力端子を右クリックし、作成>>プロパティメニューオプションから目的のプロパティを選択します。下図は、このメソッドを使用してリング制御器のプロパティを編集する方法を示しています。

 

C) クラスタ参照と明示的プロパティノードを使用する:

  1. フロントパネルの制御器を右クリックし、作成>>リファレンスを選択します。これにより、ブロックダイアグラム上にリファレンスが作成されます。
  2. ブロックダイアグラムで、プロパティノードを使用して、クラスタリファレンスをそのノードに配線します。 制御器[]プロパティを選択して、含まれているすべての制御器へのリファレンスを取得します。
  3. 指標配列関数を使用して、変更したいクラスタ内の項目を選択します。
  4. 変更する特定の制御器タイプのプロパティとメソッドを使用できるようにするには、より特定のクラスに変換関数を使用します。 制御器のリファレンスを指標関数からより特定のクラスに変換関数の入力に配線します。ターゲットクラスの上にある入力の定数を作成します。 定数をクリックして一般>>Gオブジェクト>>制御器>>使用する制御器タイプを選択し、リファレンスをこのクラスに強制してその特定のプロパティにアクセスします。
     
  5. ブロックダイアグラムに別のプロパティノードを配置し、より特定のクラスに変換関数から出てくるリファレンスを配線します。 これで、前の手順で定数で選択した特定の制御器タイプのプロパティを選択できるようになりました。
  6. プロパティノードを右クリックして、すべてを書き込みに変更を選択します。 変更するプロパティを選択して、目的のデータを配線します。

追加情報

これらのメソッドはLabVIEWのVIサーバを使用します。VIサーバは、プラットフォームに依存しないオブジェクト指向アーキテクチャを備えています。VIサーバの一部である各オブジェクトは、クラスの一部です。オブジェクトが属するクラスは、利用可能なプロパティとメソッドを決定します。たとえば、ブールタイプの制御器は、制御器クラスのメンバーであるブールクラスのメンバーです。制御器クラスは、一般クラスのメンバーであるGオブジェクトクラスのメンバーです。ブールクラスなどの下位レベルのクラスは、独自のプロパティとメソッドを持ち、一般クラスなどの上位クラスのプロパティとメソッドを継承します。詳細については、What Is the VI Server?を参照してください。

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

いいえ