ブロックダイアグラムオブジェクト
- 更新日2025-08-27
- 18分で読める
ブロックダイアグラム上のオブジェクトには、端子、関数などがあります。ブロックダイアグラムは、ワイヤでオブジェクトを接続して作成します。各端子の色と記号は、対応する制御器や表示器のデータタイプを示します。定数は、ブロックダイアグラムに固定データ値を提供するブロックダイアグラム上の端子です。
ブロックダイアグラム端子
フロントパネルオブジェクトは、ブロックダイアグラム上では端子として表示されます。ブロックダイアグラム端子をダブルクリックして、フロントパネル上の対応する制御器または表示器をハイライトします。
端子は、フロントパネルとブロックダイアグラム間で情報を交換する入出力ポートです。フロントパネルの制御器に入力したデータ値は、制御器端子を介してブロックダイアグラムに入力されます。実行中に、出力データ値は表示器端子に流れます。この出力データはブロックダイアグラムから出力され、再度フロントパネルに入力され、フロントパネル表示器に表示されます。
LabVIEWでは、制御器および表示器の端子、ノード端子、定数、ストラクチャ専用端子が使用されます。ワイヤによって端子を接続し、データを他の端子に渡します。端子を表示するには、ブロックダイアグラム上のオブジェクトを右クリックし、ショートカットメニューから表示項目»端子を選択します。端子を非表示にするには、オブジェクトを右クリックし、再度表示項目»端子を選択します。このショートカットメニュー項目は、拡張可能VIおよび関数では使用できません。
フロントパネルの制御器または表示器を構成して、アイコンまたはデータタイプ端子としてブロックダイアグラムに表示できます。デフォルトでは、フロントパネルオブジェクトはアイコン端子として表示されます。たとえば、以下に示すノブアイコン端子はフロントパネルのノブ制御器を表します。
端子の下にあるDBLは、倍精度浮動小数点数のデータタイプを表します。以下に示すDBL端子は、倍精度浮動小数点数の制御器を表します。
端子のデータタイプを表示するには、端子を右クリックし、アイコンとして表示ショートカットメニューの横にあるチェックマークを外します。アイコン端子を使用して、フロントパネルオブジェクトのデータタイプの他にフロントパネルオブジェクトのタイプをブロックダイアグラムで表示します。データタイプ端子を使用して、ブロックダイアグラムのスペースを節約します。
制御器端子の枠は表示器端子より太く表示されます。また、端子が制御器か表示器かを矢印によって判別できます。矢印は、端子が制御器の場合は右側、端子が表示器の場合は左側に表示されます。
制御器および表示器のデータタイプ
以下の表は、さまざまなタイプの制御器端子および表示器端子の記号および用途を示します。
各端子の色と記号は、対応する制御器や表示器のデータタイプを示します。多くのデータタイプには、文字列データタイプに対応する文字列パレットの文字列関数などのデータを処理することが可能な対応する一連の関数があります。
数値データタイプの使用の詳細については、数値データタイプを参照してください。
| 制御器 | 表示器 | データタイプ | 用途 | デフォルト値 |
|---|---|---|---|---|
| | 単精度浮動小数点数 | メモリを保存し、数値範囲をオーバーフローしません。 | 0.0 |
| | 倍精度浮動小数点数 | 数値オブジェクトのデフォルト形式です。 | 0.0 |
| | 拡張精度浮動小数点数 | プラットフォームにより実行が異なります。必要な場合にのみ使用してください。 | 0.0 |
| | 複素単精度浮動小数点数 | 実部と虚部のある点以外は、単精度浮動小数と同じです。 | 0.0 + 0.0i |
| | 複素倍精度浮動小数点数 | 実部と虚部のある点以外は、倍精度浮動小数と同じです。 | 0.0 + 0.0i |
| | 複素拡張精度浮動小数点数 | 実部と虚部のある点以外は、拡張精度浮動小数と同じです。 | 0.0 + 0.0i |
| | | 固定小数点数 | ユーザに定義された範囲内にある値を格納します。このデータタイプは、浮動小数点表記のような動的な表現を必要としない場合、またはFPGAターゲットのようにFPGAリソース使用の面で浮動小数点演算が高コストとなるターゲットでリソースを節約したい場合に便利です。 | 0.0 |
| | 8ビット符号付き整数 | 自然数を表し、正または負として使用することができます。 | 0 |
| | 16ビット符号付き整数 | 同上。 | 0 |
| | 32ビット符号付き整数 | 同上。 | 0 |
| | 64ビット符号付き整数 | 同上。 | 0 |
| | 8ビット符号なし整数 | 負でない整数のみを表し、符号付き整数よりも広い範囲の正の数を含みます。これは、どちらの表記法でもビット数が同じであるためです。 | 0 |
| | 16ビット符号なし整数 | 同上。 | 0 |
| | 32ビット符号なし整数 | 同上。 | 0 |
| | 64ビット符号なし整数 | 同上。 | 0 |
| | <64.64>ビットタイムスタンプ | 高精度な絶対時間を保存します。 | 12:00:00.000 AM 1/1/1904 (グリニッジ標準時) |
| | 列挙体 | ユーザに選択項目のリストを提供します。 | — |
| | ブール | ブール (TRUE/FALSE) 値を保存します。 | FALSE |
| | 文字列 | 単純なテキストメッセージの作成、データの伝送と保存など、プラットフォームに依存しない情報およびデータの形式を提供します。 | 空の文字列 |
| | 配列 | 要素のデータタイプを角括弧で囲み、該当するデータタイプの色を表示します。配列に次元を追加すると、括弧は太い線で表示されます。 | — |
| | | 複素数の要素の行列 | ワイヤのパターンは、同じデータタイプの配列のワイヤのパターンとは異なります。 | — |
| | | 実数の要素の行列 | ワイヤのパターンは、同じデータタイプの配列のワイヤのパターンとは異なります。 | — |
| | クラスタ | 複数のデータタイプを囲みます。クラスタデータタイプは、クラスタのすべての要素が数値の場合は茶色、クラスタのすべての要素が数値ではない場合はピンクで表示されます。デフォルトでLabVIEWクラスクラスタは深紅色、レポート生成VIは青緑色、エラーコードクラスタは暗い黄色で表示されます。 | — |
| | パス | 使用しているプラットフォームの標準構文を使用するファイルまたはディレクトリの場所を保存します。 | 空パス |
| | ダイナミック | (Express VI) 信号に関連するデータの他に、信号名またはデータが集録された日付と時間など、信号に関する情報を提供する属性が含まれます。 | — |
| | 波形 | 波形のデータ、開始時間、および tを渡します。 | — |
| | デジタル波形 | デジタル波形の開始時間、 x、デジタルデータ、および属性を渡します。 | — |
| | デジタル | デジタル信号に関連するデータを囲みます。 | — |
| | リファレンス番号 (Refnum) | ファイル、デバイス、ネットワーク接続などのオブジェクト固有の識別子として動作します。 | — |
| | バリアント | 制御器名または表示器名、データタイプ情報、およびデータを含みます。 | — |
| | I/O名 | 構成するリソースをI/O VIに渡し、計測器または測定デバイスと通信します。 | — |
| | ピクチャ | 線、円、テキスト、その他の種類のグラフィック形状など、ピクチャを表示するための一連の描画手順を含みます。 | — |
メモリ使用を最適化するには、一貫性のある簡単なデータタイプを選択します。
浮動小数点データの記号数値混合値
不定および予想外のデータは、後に続くすべての操作を無効にします。浮動小数点演算では以下の2種類の記号値が返されます。これらは計算エラーまたは結果に意味がないことを示します。
- NaN (数字でない) は、負の数の平方根を求めるなど、無効な演算によって生成される浮動小数点値を表します。
- Inf (無限大) はそのデータタイプの範囲外の浮動小数点の値を表します。たとえば、1を0で除算するとInfになります。LabVIEWは+Infまたは-Infを返すことが可能です。
整数値では、LabVIEWによるオーバーフローやアンダーフローの確認は行われません。
浮動小数点数のオーバーフローおよびアンダーフローについては、IEEE754の『Standard for Floating-Point Arithmetic』に準拠します。
浮動小数点演算は、NaNおよびInfを忠実に伝達します。ただし、整数と固定小数点数は、記号数値混合値をサポートしません。+Infを明示的または暗示的に整数に変換すると、値はそのデータタイプの最大値となります。たとえば、+Infを符号付き16ビット整数に変換すると、16ビット符号付き整数の最大値の32,767となります。LabVIEWは、–Infをそのデータタイプの最小値に変換します。
NaNを明示的または暗示的に整数または固定小数点数に変換すると、結果の値はそのデータタイプの最大値となります。
データを整数または固定小数点データタイプに変換する前に、プローブツールを使用して中間値の浮動小数点値の有効性をチェックします。「非数/無効パス/非Refnum?」比較関数を無効である可能性がある値に配線することで、プログラム的にNaNをチェックします。また、「範囲内と強制」関数を使用し、指定範囲内で値を維持することもできます。
| メモ (FPGAモジュール) FPGAでのNaN出力のビットパターンは、開発コンピュータでの出力と異なる場合があります。 |
定数
定数は、ブロックダイアグラムに固定データ値を提供するブロックダイアグラム上の端子です。ユニバーサル定数は、pi (π)や無限 (∞)などの固定値を持つ定数です。ユーザ定義定数は、VIの実行前にユーザが定義し、編集する定数です。
定数にラベルを付けるには、定数を右クリックし、ショートカットメニューから表示項目»ラベルを選択します。ユニバーサル定数はあらかじめ決まったラベルが付けられていますが、操作ツールまたはラベリングツールを使用して編集できます。
ほとんどの定数はパレットの上辺または下辺にあります。
ユニバーサル定数
ユニバーサル定数は、数値計算や、文字列またはパスのフォーマットに使用します。LabVIEWには以下のタイプのユニバーサル定数があります。
ユーザ定義定数
関数パレットには、ブール値、数値、リング、列挙体、カラーボックス、文字列、配列、クラスタ、パス定数などのタイプによって構成された定数があります。
VI または関数の入力端子を右クリックしてショートカットメニューか ら作成»定数を選択し、ユーザ定義定数を作成します。
VIの実行時には、ユーザ定義定数の値の変更はできません。
また、定数は、フロントパネル制御器をブロックダイアグラムにドラッグして作成することもできます。作成された定数には、フロントパネル制御器をブロックダイアグラムにドラッグしたときの制御器の値が含まれています。フロントパネル制御器はフロントパネル上に残ります。制御器の値を変更しても、定数の値には影響しません。逆に、定数の値を変更しても制御器の値には影響がありません。
操作ツールまたはラベリングツールを使用して定数をクリックし、値を編集します。自動ツール選択機能が有効に設定されている場合は、定数をダブルクリックし、ラベリングツールに切り替えて、値を編集してください。
定数の畳み込みおよびループ不変量
LabVIEWでは、定数の畳み込みとループ不変を使用して、VIのパフォーマンスを最適化します。
- 定数の畳み込みを使用すると、定数値は、実行するたびに計算されるのではなく、VIの初回実行時に計算されます。Forループなどのようにすべての入力が定数であるストラクチャで定数の畳み込みを使用した場合、LabVIEWは、VIの初回実行時にストラクチャを実行してストラクチャの出力を計算し、毎回の実行で出力の計算を行いません。

メモ デバッグを有効にすると、LabVIEWはストラクチャの定数の畳み込みを使用しません。 - ループ不変量は、ForループまたはWhileループが計算する値のうち、ループの反復ごとに変化しない非定数値です。たとえば、Forループ内で非指標付けトンネルのみに接続されている「和」関数は、ループが反復しても出力値が変化しないため、ループ不変量です。LabVIEWでは、ループ不変量の値は、ループの実行前に計算され、ループの各反復時には計算されません。
ツール»オプション»ブロックダイアグラムを選択し、ブロックダイアグラムページのハッシュマークオプションを構成すると、ブロックダイアグラムで定数の畳み込みとループ不変量のハッシュマークを表示できます。
ブロックダイアグラムのノード
ノードとは、入力端子や出力端子を持ち、VIの実行時に演算を実行するブロックダイアグラム上のオブジェクトです。テキストベースのプログラミング言語におけるステートメント、演算子、関数、およびサブルーチンに似ています。LabVIEWには以下のタイプのノードがあります。
- 関数―ビルトイン実行要素、演算子、関数、またはステートメントです。
- サブVI―サブルーチンに相当する他のVIのブロックダイアグラムで使用されるVIです。
- Express VI―一般的な測定タスクを簡素化するために設計されたサブVIです。Express VIは、構成ダイアログボックスを使用して構成します。
- ストラクチャ―Forループ、Whileループ、ケースストラクチャ、フラットおよびスタックシーケンスストラクチャ、タイミングストラクチャ、イベントストラクチャなどの実行制御要素です。
- フォーミュラノードおよび数式ノード―フォーミュラノードはブロックダイアグラムに等式を直接入力するためのサイズの変更が可能なストラクチャです。数式ノードは変数を1つ含む数式を計算するストラクチャです。
- プロパティノードおよびインボークノード―プロパティノードはクラスのプロパティを設定または検出するストラクチャです。インボークノードはクラスのメソッドを実行するストラクチャです。
- リファレンス呼び出しノード―動的にロードされたVIを呼び出すストラクチャ。
- ライブラリ関数呼び出しノード―最も標準的な共有ライブラリまたはDLLを呼び出すストラクチャです。
多態性VIおよび関数
多態性VIおよび関数は、異なるデータタイプの入力データに適応します。ほとんどのLabVIEWストラクチャが多態性であるように、VIおよび関数の中にも多態性のものがあります。
入力の一部またはすべてが多態性、または多態性の入力がないなど、関数の多態性はさまざまです。関数の入力には、数値またはブール値を受け入れるものがあります。数値や文字列を受け入れるものもあります。スカラ数値だけでなく、数値配列、数値クラスタ、数値クラスタ配列などを受け入れるものもあります。また、1次元配列しか受け入れないものもありますが、配列要素はどのタイプでもかまいません。複素数値を含むすべてのタイプのデータを受け入れる関数もあります。
