アプリケーションノート 159J
LabVIEW カスタム制御器、表示器および Type Def
始めに
このアプリケーションノートでは、LabVIEW の制御器エディタを使用して、カスタム制御器/表示器および Type Def を作成して使用する方法について説明します。 フロントパネルカスタム制御器/表示器の機能を拡張するには、カスタム制御器と表示器を使用します。 標準の LabVIEW 制御器および表示器とは視覚的に異なるカスタムユーザインタフェースのコンポーネント を、アプリケーションに応じて作成することができます。 たとえば、オフのときに閉じたバルブを表示し、オンのときに開いたバルブを表示するブールスイッチや、 目盛が左ではなく右側にあるスライド制御器を作成することができます。 作成したカスタムオブジェクトは、 VI と同様にディレクトリや VI ライブラリに保存でき、それを他のフ ロントパネルで使用することもできます。また、カスタム制御器 /表示器のアイコンを作成したり、カス タム制御器/表示器を制御器パレットに加えて利用することもできます。Type Def または厳密 Type Def を使用すると、カスタム制御器/表示器のすべてのインスタンス(フロント パネルに実際に配置したカスタム制御器や表示器)をマスタ定義に連結して、マスタを編集したときに、 すべてのインスタンスにそれが反映されるようにすることができます。この機能は、複数の VI で同じカ スタム制御器やカスタム表示器を使用する際に非常に便利です。
目次:
• カ ス タ ム 制 御 器 / 表 示 器 を 作 成 す る • カ ス タ ム 制 御 器 / 表 示 器 を 編 集 す る • カ ス タ ム 制 御 器 / 表 示 器 を 使 用 す る • ア イ コ ン を 作 成 す る • 独 立 カ ス タ ム 制 御 器 と 連 結 カ ス タ ム 制 御 器 の 違 い • カ ス タ マ イ ズ モ ー ド オ プ シ ョ ン • 装 飾 部 品 • グ ラ フ ィ ッ ク を イ ン ポ ー ト す る • T y p e D e fカスタム制御器/表示器を作成する
「制御器エディタ」ウィンドウは、一見フロントパネルのようですが、 1 つの制御器や表示器の編集と 保存にしか使用しません。制御器エディタにはブロックダイアグラムがなく、実行することはできません。 「制御器エディタ」のツールバーには、現在編集モード とカスタマイズモード のどちらであ るかが示されています。制御器エディタは、始め編集モードで開きます。通常のフロントパネルの編集モ ードと同様に、制御器のサイズや色を変更したり、ショートカットメニュー(右クリックポップアップメ ニュー)からオプションを選択することができます。カスタマイズモードでは、制御器の各部品を個々に 変更することが可能です。制御器や表示器により大幅な変更を加える方法についての詳細は、カスタマイ ズ モ ー ド のセクションを参照してください。 カスタム制御器やカスタム表示器を作成するには、以下の手順に従ってください。 1. 「ファイル」→「新規」を選択します。「新規」ダイアログボックスが表示されます。 2. 「新規作成」リストボックスから「制御器」を選択します。 3. OK をクリックします。制御器エディタウィンドウが表示されます。 4. 作成しようとしている制御器や表示器に最も近いものを制御器エディタパネルに配置して、変更を行 います。たとえば、目盛が右側にあるスライドを作成する場合は、まず垂直スライドを制御器エディ タパネルに配置します。 5. 変更を加えた後、「ファイル」→「保存」を選択してカスタム制御器/表示器を保存したら、他のフロ ントパネルで使用できるようになります。制御器や表示器は、ディレクトリや VI ライブラリに VI と まったく同じように保存できます。制御器や表示器に対して行った変更を保存せずに制御器エディタ を閉じると、「変更を保存しますか ?」ダイアログボックスが表示されます。変更、修正の方法は、以 下で詳しく説明します。カスタム制御器/表示器を編集する
制御器エディタを使用して、制御器や表示器のサイズ、色、および相対的位置や、制御器および表示器 内の画像を変更します。以下の手順に従って既にフロントパネルに配置された制御器や表示器を編集しま す。 1. 位置決めツールを使用して、フロントパネル上にある制御器/表示器を選択します。フロントパネル の制御器や表示器は、一度に 1 つずつしか編集することができません。 2. 「編集」→「制御器のカスタマイズ」を選択します。すると制御器エディタウィンドウが表示されま す。「制御器のカスタマイズ」メニュー項目は、1個(のみ)のカスタム制御器/表示器を選択したと3. 制御器エディタウィンドウで、「操作」 → 「カスタマイズ・モードに変更」を選択するか、ツール バーから 編集モードボタン をクリックして、「編集モード」に切り替えます。 4. 制御器 /表示器のコーナー等を選択しドラッグし、その制 御器/表示器の位置やサイズを変更します。 5. 色づけツールで、制御器/表示器の色を変更します。 6. 位置決めツールで制御器 /表示器を右クリックして、ショートカットメニューから「画像項目」を選 択し、画像を選択します。 7. 制御器エディタウィンドウの「ファイル」→「変更を適用する」を選択して、元のフロントパネル制 御器/表示器を新しい制御器に入れ替えます。メニュー項目「変更を適用する」は、元の制御器/表示 器に変更を加えた場合のみ選択可能になります。 8. カスタム制御器/表示器を現在のフロントパネルでのみ使用する場合は、制御器を保 存せずに制御器 エディタを閉じてかまいません。新しい制御器/表示器を他のフロントパネルでも使用したい場合は、 制御器エディタを閉じる前に保存してください。カスタム制御器/表示器が配置された状態で元の VI を保存します。
有効なカスタム制御器
制御器エディタには 1 つのカスタム制御器/表示器しか入れることができません。ただしそのカスタ ム制御器/表示器は複数のカスタム制御器/表示器からなるクラスタでもかまいません。 クラスタや配列からカスタム制御器/表示器を出し入れすると一時的に not-OK ボタン が制御器 エディタのツールバーに表示されます。not-OK ボタンをクリックすると、エラーの説明が表示され ます。カスタム制御器/表示器を使用する
カスタム制御器/表示器をフロントパネルに配置するには、以下の手順に従ってください。 1. カスタム制御器/表示器を他のフロントパネルで使用するには、「制御器」→「制御器を選択」を選択 します。「開くカスタム制御器を選択してください:」ダイアログボックスが表示されます。 2. 制御器/表示器を選択してフロントパネルに配置します。 3. カスタム制御器/表示器を配置した VI を保存します。 カスタム制御器 /表示器と同タイプの定数をブロックダイアグラムに配置することができます。以下の手 順に従って行います。 1. カスタム制御器/表示器をブロックダイアグラムで使用するには、「関数」→「VI を選択」を選択し ます。「開く VI を選択してください:」ダイアログボックスが表示されます。 2. 制御器 /表示器を選択してブロックダイアグラムに配置します。カスタム制御器/表示器と同じデータ タイプの定数が作成されます。3. VI を保存して、ここまで行った作業を保存します。 ダイアログボックスを使用してカスタム制御器にアクセスする代わりに、カスタム制御器を制御器パレッ トや関数パレットに追加することができます。詳細については、『LabVIEW ユーザマニュアル』を参照して ください。 VI にカスタム制御器/表示器を配置すると、元のカスタム制御器/表示器のファイルと、実際にフロントパ ネルに配置されるの制御器または表示機(インスタンス)の間の連結は解除されます。インスタンスが定 義(ファイル)と連結されるのは Type Def のみです。
アイコンを作成する
制御器パレットにカスタム制御器を追加す る場合、あるいはその制御器が Type Def の場合は、保存する 前にその制御器を表すアイコンを作成すると便利です。アイコンは、制御器パレットで、そのカスタム制 御器を表示します。制御器が Type Def の場合は、アイコンは階層ウィンドウ(参照→VI 階層を表示)に 表示されます。 アイコン作成手順は、VI のアイコンの作成方法とほぼ同じです。以下の手順に従ってください。 1. 制御器エディタウィンドウの右上コーナーにあるアイコンのボックスを右クリックします。 2. ショートカットメニューから「アイコンを編集」を選択して、制御器のアイコンを作成します。 3. 「アイコンエディタ」ダイアログボックスの左側にあるツールを使用して、アイコンをデザインしま す。実際のサイズのアイコンは、編集領域の右側にあるボックスの 1 つに表示されます。 4. 使用しているモニタの種類によって、白黒、16 色、および 256 色の各モードで別々にアイコンを作 成してください。そしてそれぞれのバージョンを別々にデザインし保存します。モードを切り替える には、他のカラーオプションのアイコンをクリックします。 5. アイコンを保存するには「 OK」を、保存せずに「アイコンエディタ」ダイアログボックスを終了する には「キャンセル」をクリックします。独立カスタム制御器と連結カスタム制御器の違い
「ファイル」→「開く」を選択して、保存したカスタム制御器/表示器を開いてください。カスタム制御 器/表示器は、常に制御器エディタウィンドウで開きます。 カスタム制御器/表示器を開いたときに変更を行っても、すでにそれを使用している VI は影響を受けませ ん。Type Def でないカスタム制御器や表示器をフロントパネル上で使用した場合、カスタム制御器のその インスタンスと保存されているファイルまたは VI ライブラリの間には連結が生じません。カスタム制御 器の各インスタンスは別の独立したコピーです。インスタンスが定義に連結されているカスタム制御器を、Type Def といいます。カスタム制御器や表示器 を Type Def として保存すると、さまざまな VI のフロントパネルやブロックダイアグラム上にある制御器 のインスタンスと、その制御器のマスタコピーとの間に連結が生まれます。マスタコピーに対してデータ タイプの変更を行った場合、その制御器を使用するすべての VI でのすべてのインスタンスにその変更が 適用されます。カスタム制御器/表示器を厳密 Type Def として保存すると、マスタコピーに対して行った 外観的変更もすべてのインスタンスに適用されます。 Type Def の詳細については、「Type Def」のセクシ ョンを参照してください。
カスタマイズモードオプション
制御器エディタのカスタマイズモードを使用して、制御器への画像のインポートなど、制御器への変更 を行うことができます。制御器に画像をインポートするには、まずクリップボードにコピーして画像を入 れ替え、サイズを合うように拡大または縮小します。編集モードとカスタマイズモードを切り替えるには、 制御器エディタのツールバーにあるモードボタンをクリックするか、制御器エディタで「操作」→「カス タマイズモードに変更」または「編集モードに変更」を選択します。制御器/表示器の部品
すべての制御器 /表示器は、より小さな部品から成っています。たとえばスライド制御器は、次の図に示 すように、目盛、ハウジング、スライダ、増分/減分矢印、デジタル表示、および名前ラベルから構成さ れています。 図 1. スライダ制御器 制御器エディタのカスタマイズモードに切り替え ると、部品を個々に処理できるようになります。1 つの 部品に変更を加えても他の部品には影響を及ぼしません。カスタマイズモードでは、名前ラベルやデジタル表示など、編集モードのときに非表示に設定されているものも含め、すべての部品が表示されます。制 御器の部品はそれぞれ切り離されているため、カスタマイズモードでは実行したり制御器の値を変更した りすることはできません。 制御器/表示器の部品を選択し整列や間隔設定を行うには、以下の手順に従ってください。 1. 位置決めツールで、整列や間隔設定を行いたい制御器/表示器の部品を選択します。 2. ツールバーから「カスタム制御器 /表示器の整列」または「カスタム制御器/表示器の間隔」を選択し て、選択した部品の整列または間隔設定を行います。 3.部品間の前後関係を並べ替えるには、ツールバーの「並べ替え」を選択します。 4. カスタム制御器/表示器を保存します。
制御器エディタの「部品ウィンドウ」
「ウィンドウ」→「部品ウィンドウを表示」を選択すると、制御器部品のサイズ変更や位置決めを正確に 行うことができます。「制御器部品ウィンドウ」が表示されて制御器の部品を識別し、各部品の位置とサ イズをピクセル単位で表示されます。 制御器部品ウィンドウの「編集中の部品」表示には、制御器エディタウィンドウで選択した部品の画像と 名前が含まれます。「編集中の部品」表示内をクリックすると、制御器の全部品が表示されます。「編集中 の部品」表示の上向き /下向き矢印をクリックすると、制御器の部品を 1 つずつスクロールして見ること ができます。 制御器エディタ内で部品を移動したりサイズ変更したりすると、「編集中の部品」表示内での位置とサイ ズも更新されます。また、「制御器部品」ウィンドウで位置とサイズの値を直接入力して、制御器エディ タで部品の移動やサイズ変更を行うこともできます。カスタマイズモードでのさまざまな部品のショートカットメニュー
カスタマイズモードでは、制御器全体のショートカットメニューの代わりに各部品のショートカットメニ ューが表示されます。異なる部品にはそれぞれ異なるショートカットメニューがあり、編集モードとカス タマイズモードでは使用できるメニュー項目も異なります。ショートカットメニューは、次のようなタイ プの部品をカスタマイズする際に使用します。 • スライドのハウジング、スライダ、増分/減分矢印などの装飾部品 • 名前ラベルなどのテキスト部品。 • スライドのデジタル表示に使用される数値制御器など、部品として機能する制御器。 ノブ、メータ、チャートなどでもデジタル表示に数値制御器を使用します。部品制御器の中にはより複雑 なものもあります。たとえばグラフでは、カーソル表示部品にクラスタの配列が使用されていまます。装飾部品
装飾部品は直接ユーザが操作をするものではありません。カスタマイズモードにおいて、装飾部品を右 クリックして、ショートカットメニューからオプション項目を選択します。 次のリストは、装飾部品のショートカットメニューに含まれる項目の説明です。 クリップボードにコピー -- 部品の画像のコピーをクリップボードに入れます。「編集」→「貼り付け」 を選択して、クリップボード内の画像をどのフロントパネルにでも貼り付けることができます。画像を他 の部品にインポートするには、部品を右クリックしてショートカットメニューから「画像をインポート」 を選択します。 他の部品のハウジングの四角形などシンプルな形状を使用したい場合は、ペイントプログラムで最初から 作成するより他の部品からコピーした方がいくつかの点で有利です。まず、既存の部品や装飾体からコピ ーした画像は、ペイントプログラムで作成した画像より処理がしやすくなっています。たとえば、ペイン トプログラムで四角形をサイズ変更すると、すべてを均等に変更するため、面積を拡大すると枠線も太く なります。ただし部品からコピーした四角形をサイズ変更した場合は、枠線の太さはそのままです。 また、組み込み部品はカラーモニタでも白黒モニタでも基本的に同じに表示されます。さらに、カラーツ ールを使えば部品や装飾体からコピーした画像に色を付けることもできます。他のソースからインポート した画像では、色もその画像の一部として定義されているため、インポートした際の色が維持されます。 画像をインポート -- 装飾部品の現在の画像をクリップボードにある画像に置き換えます。たとえば、ブ ールスイッチ用に開いたバルブと閉じたバルブをインポートすることができます。クリップボードに画像 が入っていない場合は、メニュー項目「画像をインポート」はグレー表示になっています。 同次元でインポート -- 現在の画像を入れ替える際、クリップボードにある画像を縮小または拡大して元 の部品のサイズを維持します。クリップボードに画像が入っていない場合 は、メニュー項目「同次元でイ ンポート」はグレー表示になっています。 復元 -- 部品を元の状態に戻します。「復元」によって部品の位置が変わることはありません。フロント パネルで「編集」→「制御器を編集する」を選択して制御器エディタウィンドウを開き、変更を加えた後 「復元」メニュー項目を使用した場合、部品はフロントパネルに表示されている状態に戻ります。「ファ イル」→「開く」を選択して制御器エディタを開いた場合は、「復元」メニューはグレー表示になってい ます。 元のサイズ -- 部品の画像を元のサイズに設定します。他 のアプリケーションから画像をインポートして サイズ変更する場合に、この機能は便利です。サイズ変更すると画像によっては元の画像より画質が落ち る場合があり、元のサイズを維持したい場合もあります。画像をインポートしていない場合は、メニュー 項目「元のサイズ」はグレー表示になっています。グラフィックをインポートする
制御器エディタ編集モードで画像をブール制御器にインポートし、カスタマイズモードで、遷移状態(オ ン→オフ、オフ→オフ)用に別の画像をインポートできます。以下の手順で行います。 1. 編集モードのときに、ブール制御器のショートカットメニューから「画像をインポート」→「 True」 と「画像をインポート」→「False」を選択し、それぞれに別の画像をインポートします。 2. LabVIEW は、画像を通常の状態と遷移状態の両方にインポートします。遷移状態については、以下の 「複数の画像を使用した装飾部品」を参照してください。 3. カズタマイズモードにうつり、ブール制御器を右クリックしてショートカットメニューから「画像項 目」を選択して、3 つめの画像を変更します。 4. クリップボードに、画像をコピーします。 5. クリップボードに画像がある状態で、制御器をもう一度右クリックして「画像をインポート」を選択 します。 6. 4 つめの画像(False→True)についても同じ手順を繰り返します。 画像を同じサイズでインポートするには、以下の手順に従ってください。 1. 編集モードのときに、制御器を右クリックしてショートカットメニューから「同次元でインポート」 を選択します。 2. LabVIEW は、部品の元のサイズを維持しながら画像をインポートします。複数の画像を使用した装飾部品
装飾部品の中には、別の状況で表示するために複数の画像を使用するものがあります。それぞれの画像は すべて色とサイズが同じです。装飾部品の現在の画像を移動したりサイズ変更したりすると、別の画像も 同じ距離移動したり同じ割合でサイズ変更します。たとえば、ブールスイッチには 4 つの画像があります。 最初が False 状態、次に True 状態、3 番目と 4 番目はそれぞれ「放されたらスイッチ」と「放されたらラ ッチ」を示します。ブール制御器の機械的動作の設定についての詳細は、 LabVIEW のヘルプを参照してく ださい。 最後の 2 つの機械的動作では、ブール制御器の値はマウスボタンを放すまで変わりません。マウスボタン をクリックしてから放すまでの間に、ブール制御器は 3 番目と 4 番目の画像を遷移状態として表示します。3 番目の画像は True から False への遷移状態、4 番目の画像は False から True への遷移状態を示します。
「画像項目」は、複数の画像を持つ装飾部品のショートカットメニューに含まれています。「画像項目」 を選択すると、その装飾部品に含まれるすべての画像が表示されます。現在の画像項目は太い枠で囲まれ ています。画像をインポートした場合、変更されるのは現在の画像項目のみです。他の画像項目のいずれ かに画像をインポートするには、まず画像項目を選択してから新しい画像をインポートします。
独立した画像を使用する装飾部品
複数の画像を持つ装飾部品があり、それぞれの画像の色とサイズが異なる場合があります。たとえば複数 値のスライドでは、サイズの異なる 2 つの画像を使用して、どちらのスライドがアクティブになっている かを示します。 この部品のオプション「独自のサイズ」は、異なるサイズの画像を使用できる装飾部品のショートカット メニューに含まれています。装飾部品の他の画像を変更せずに各画像を個別に移動したりサイズ変更した りするには、カスタマイズモードで「独自のサイズ」を選択します。デフォルトでは、メニュー項目「独 自のサイズ」はオフです。テキスト部品
テキスト部品とは、テキストを含む画像のことです。制御器エディタでのテキスト部品のショートカット メニューは、装飾部品のショートカットメニューに似ています。このメニューの他の項目は、フロントパ ネルの編集モードでのテキスト要素のショートカットメニューと同じです。制御器部品ウィンドウには、 テキスト部品の背景画像のみが表示されテキストは表示されません。テキストではなく、背景画像のみを カスタマイズすることができます。部品としての制御器
スライド、ノブ、メータ、チャートなどがデジタル表示器を含むように、制御器は別の制御器を部品とし て含んでいます。数値カスタム制御器 /表示器のデジタル表示は、単独で使用されるデジタル表示とまっ たく同じものです。 デジタル表示も部品からなりたっています。制御器エディタでスライド、ノブなどの数値制御器を編集す る場合、そのデジタル表示は単一の部品として動作するため、その部品を個々に変更したり移動したりす ることはできません。ただし、制御器エディタ上で、さらにデジタル表示自身の制御器エディタを開くこ とができ、そこでカスタマイズすることができます。編集モードで制御器部品を選択できない場合以外は、 カスタマイズモードでなくても、部品制御器の制御器エディタウィンドウを開くことができます。 制御器エディタがカスタマイズモードであるときは、部品の制御器エディタウィンドウをいつでも開くこ とができます。 フロントパネルの編集モードで、メインの制御器から独立して部品を選択できる場合は、その部品の制御 器エディタを元のフロントパネルから直接開くことができます。 別の制御器の部品として使用されている制御器をカスタマイズするには、以下の手順に従ってください。1. 別の制御器の部品として使用されている制御器をカスタマイズするには、その制御器の制御器エディ タを開きます。 2. 制御器エディタでその部品を選択します。たとえば、スライド制御器からデジタル表示のみを選択す ることができます。 3. 「編集」→「制御器をカスタマイズする」を選択します。 図 2.制御器エディタから開いた部品制御器の制御器エディタ 制御器エディタはこのようにして無限に入れ子状に開くことができますが、ほとんどの制御器では他の制 御器がそのまま部品として使用されています。ただし例外として、グラフは、他の制御器を部品として持 つ複雑な制御器を部品として含みます。
カスタム制御器に装飾部品を追加する
制御器エディタでカスタム制御器を作成する際に、装飾部品やテキスト部品を追加することができます。 クリップボードから画像またはテキストを貼り付けるたり、ラベリングツールでラベルを作成したり、「制 御器」→「装飾」から装飾体を選択した場合、それらは制御器の一部となり、フロントパネルに配置した ときに制御器とともに表示されます。新しい部品は、他の部品と同様に移動、サイズ変更、および並べ替 えが可能です。追加したものは、カスタマイズモードの「制御器部品」ウィンドウに、装飾部品として表 示されます。また、制御器エディタで装飾体を削除することもできます。 フロントパネルでカスタム制御器を使用する際、装飾部品のサイズは変更することができますが、移動は できません。カスタム制御器での注意点
カスタム制御器を作成する際は、以下の点に注意してください。 • あるプラットフォームで作成された画像は、別のプラットフォームでロードしたときにわずかに違っ て見えることがあります。たとえば、不規則な形状や背景が透明の画像は、別のプラットフォームでは背 景が白くなることがあります。 • 制御器エディタでは、制御器の外観のみを変更します。制御器の動作まで変更することはできません。 制御器がデータを表示する方法を変えることはできません。 • カスタム制御器は、正しく表示されていてもおかしな動作をすることが時々あります。カスタム制御 器の外観には満足していても編集の際の不規則な動作が気に入らない場合は、厳密 Type Def を使用しま す。編集制限に関する詳細については、以下の「Type Def」のセクションを参照してください。Type Def - タイプ定義
制御器エディタを使用して、制御器のマスタコピーである Type Def を作成します。Type Def は、同じ制 御器を多くの VI で使用する場合に便利です。制御器を Type Def として保存すると、他のすべての VI で その Type Def を使用することができます。その制御器を変更したら、 1 つの Type Def ファイルに含まれ る値を更新するだけでよく、その制御器を使用するすべての VI で制御器を更新する必要はありません。 装飾体のプロパティを制御するには、厳密 Type Def を使用します。
LabVIEW では、 Type Def をどこで使用してもデータタイプが同じになるようになっています。 厳密 Type Def はどのフロントパネルで使ってもまったく同じものになります。
Type Def は、制御器をどこで使用してもデータタイプが同じになるように強制します。いろいろな場所で 同じデータタイプの制御器を使用したいときや、そのデータタイプをすべての場所で自動的に変更したい ときなどに、Type Def を使用します。
たとえば、2 つの整数と 1 つの文字列のクラスタである Type Def を作成し、その Type Def をいくつかの VI で使用するとします。そして後に、その Type Def を 2 つのクラスタと 2 つの文字列のクラスタに変更 するとします。Type Def を変更した場合、その Type Def を使用するすべての VI を自動的に変更すること ができます。また、Type Def のインスタンスを自動的に更新しないよう設定することもできます。Type Def の使用方法についての詳細は、以下の「Type Def を使用する」を参照してください。
データタイプがマスタコピーと一致していれば、Type Def は名前や説明、デフォルト値、サイズ、色、ス ライドやノブなどの制御のスタイルが異なってもかまいません。ただし、厳密 Type Def では以下に説明 するような制約があります。
Type Def は、カスタム制御器の各インスタンスを同じタイプにします。 Type Def のデータタイプが変更 されると、インスタンスも更新されます。ただし、Type Def ではデータタイプしか識別しませので、タイ プの要素である値のみ更新します。 たとえば、数値制御器の場合、データ範囲はタイプに含まれていません。したがって、Type Def は数値制 御器 Type Def のフロントパネル上のインスタンスに対しデータ範囲を定義しません。また、リング制御 器内の項目名もタイプに含まれないため、 Type Def はすべてのインスタンスについて値を定義しません。 そのため、リング制御器の文字列を変更しても、Type Def は更新されません。ただし、列挙タイプでは項 目名がタイプに含まれているため、列挙タイプの Type Def で項目名を変更するとインスタンスも更新さ れます。
厳密 Type Def
厳密 Type Def は、サイズ、色、外観なども含め制御器のほとんどすべてが同じになるよう強制します。 厳密 Type Def は、数値制御器の範囲チェックやリング制御器の項目名など、他の値についても定義しま す。 制御器が厳密 Type Def のマスタコピーと異なってもかまわないのは、名前、説明、およびデフォルト値 のみです。たとえば、赤い枠の倍精度デジタル制御器の厳密 Type Def を作成したとします。一般の Type Def と同様に、厳密 Type Def を整数に変更すると、それを使用しているすべての VI も自動的に変更されます。 一般の Type Def と異なるのは、その他の変更、たとえば枠の色を赤 から青に変更した場合でも、それを 使用するすべての VI が更新されるという点です。厳密 Type Def のインスタンスの自動更新を無効に設定 することはできません。厳密 Type Def で使用可能なプロパティは、Visible、Disabled、Key Focus、Blinking、Position、Bounds など、制御器の外観を操作するもののみです。
ブロックダイアグラムでの Type Def
ブロックダイアグラム上で Type Def を使用すると、制御器や表示器ではなく常に定数として表示されま す。そのため、厳密 Type Def のブロックダイアグラム上でのインスタンスは一般の Type Def のインスタ ンスと同様に動作し、厳密 Type Def のデータタイプが変更した場合のみ自動的に更新されます。
Type Def を作成する
Type Def を作成するには、制御器エディタウィンドウのツールバーにあるリング制御器で設定します。 以下の手順に従って、Type Def を作成してください。 1. 制御器エディタウィンドウのツールバーにあるステータスプルダウンメニューから Type Def を選択 します。 2. 制御器になんらかの設定をします。 3. 制御器エディタウィンドウで「ファイル」→「保存」を選択します。保存した Type Def を開くには、「ファイル」→「開く」を選択します。Type Def は、常に制御器エディタ ウィンドウで開きます。Type Def に対して変更を行うと、それを使用するすべての VI にその変更が適用 されます。
Type Def を使用する
フロントパネルやブロックダイアグラムで一般の Type Def や厳密 Type Def を配置、編集、および操作す る際は、通常のカスタム制御器と同じように処理します。フロントパネル上の厳密 Type Def は、名前、 説明、デフォルト値以外は編集することができません。
制御器が Type Def であるかどうかは、ショートカットメニューに Type Def オプションが含まれているか
どうかによって判別できます。また、「編集」→「検索」から Type Def である制御器を検索することもで
きます。フロントパネルやブロックダイアグラムにある厳密 Type Def は、編集が不可能で、右クリック ショートカットメニューの一部のオプションがないことから識別することができます。
フロントパネルやブロックダイアグラムで使用する各 Type Def について、VI はそれが保存されているフ ァイルや VI ライブラリへの接続を維持します。
VI は各 Type Def への接続を維持する必要があるため、その Type Def を使用する VI を実行するためには、 その Type Def を含むファイルや VI ライブラリが使用可能でなければなりません。VI を開いたときにその VI が必要とする Type Def が見つからない場合、VI 内のその Type Def のインスタンスは無効になり実行 ボタンは壊れて表示されます。正しい Type Def を検索して開くか、無効になっているインスタンスを右 クリックして右クリックメニューから「 Type Def から切断」を選択します。Type Def から切断すること により、そのインスタンスのデータタイプの制約が除かれ、通常の制御器または定数になります。Type Def を見つけて制御器をその Type Def と入れ替えない限り、再び接続することはできません。
クラスタの Type Def または厳密 Type Def を使用する場合は、ブロックダイアグラムで Bundle 関数と Unbundle 関数の代わりに Bundle By Name 関数と Unbundle By Name 関数を使用してクラスタ要素にアクセ スします。Bundle By Name および Unbundle By Name はクラスタ要素をクラスタ順ではなく名前で参照す るため、要素を並べ替えたりクラスタ Type Def に新しい要素を追加しても、関数は影響を受けません。 Bundle by Name または Unbundle By Name で参照した要素を削除した場合は、削除された要素への参照が 無効になるため、ブロックダイアグラムを変更する必要があります。Bundle by Name または Unbundle by Name で無効の名前は黒く表示されます。 Bundle by Name または Unbundle By Name をクリックすると、選 択できる有効な名前のリストが表示されます。
Type Def を更新する
フロントパネル上の一般の Type Def や厳密 Type Def を、フロントパネルで自動的に変更することができ ます。
色やサイズの変更など Type Def のフロントパネル上のインスタンスを大規模に編集する場合は、この自 動更新機能を使いたくないこともあるでしょう。自動更新機能を無効にするには、以下の手順に従ってく ださい。
1. フロントパネル上で Type Def を右クリックして、「Type Def から自動更新」オプションをオフにし ます。それによりこの Type Def の自動更新は行われなくなり、VI の実行ボタンが壊れたように表示 されて、フロントパネルの Type Def が無効になります。厳密 Type Def では常に自動更新が行われる ため、厳密 Type Def のショートカットメニューには「Type Def から自動更新」オプションがありま せん。
2. Type Def を修正したり、Type Def に合うようにデータタイプを 変更したりするには、フロントパネ ルで Type Def を右クリックしてショートカットメニューから「 Type Def から更新」を選択します。 Type Def を修正するまで VI を実行することはできません。
Type Def を使用する際、インスタンスに固有のデフォルト値を割り当てることができます。 Type Def の データタイプを変更した場合は、可能な場合デフォルト値が新しいデータタイプに変換されます。数値制 御器や表示器を文字列制御器や表示器に入れ替えた場合など、データタイプが互換性のないタイプに変更 されると、LabVIEW はインスタンスのデフォルト値を保持できません。そのような場合、インスタンスの デフォルトは 0 や空白の文字列などに設定されます。