キュー取得関数
- 更新日2025-07-30
- 6分で読める
キューへのリファレンスを返します。
他の「キュー操作」関数を呼び出す際このリファレンスを使用します。

入力/出力
最大キューサイズ (-1, 無制限)
—
最大キューサイズは、キューに入れる要素の最大数です。 デフォルト値は-1で、キューは無制限の要素数を保持できます。 キューが最大キューサイズに達した場合、「要素をエンキュー」関数または「先頭に要素をエンキュー」関数は、「要素をデキュー」関数または「キュー排出」関数がキューから要素を削除するまで待機します。 同じ名前のキューが存在する場合、LabVIEWはこの入力を無視し、既存のキューからのサイズを使用します。 メモ (Real-Time Module) max queue size preallocates the specified number of elements in the queue of scalar data types when running on an RT target.
メモ 最大キューサイズは、RTターゲットで実行されていない場合はキューの要素の数を制限するのみで、キューの事前割り当てを行いません。キューにメモリを前もって割り当てるには、要素数をキューに追加した後にキューを排出します。この領域はキューの使用に割り当てられます。キューのメモリの割り当てについては、詳細のセクションを参照してください。
名前 (名前なし)
—
名前には、取得または作成するキューの名前が含まれます。 デフォルト値は、名前なしのキューを作成するための空の文字列です。
要素データタイプ
—
要素データタイプは、キューに含めるデータのタイプです。 この入力には任意のデータタイプを配線できます。
見つからなければ作成? (T)
—
見つからなければ作成?は、名前と同じ名前のキューがない場合、新規のキューを作成するかどうかを指定します。 TRUE (デフォルト) の場合、関数は同じ名前のキューがない場合はキューを作成します。
エラー入力 (エラーなし)
—
エラー入力は、このノードを実行する前に発生したエラーの状態を示します。この入力は、標準エラー入力として機能します。
キュー出力
—
キュー出力は、既存のキューまたはこの関数で作成された新規のキューへのリファレンスです。
新規作成?
—
新規作成?は、関数が新規のキューを作成するとTRUEになります。
エラー出力
—
エラー出力には、エラー情報が含まれます。この出力は、標準エラー出力として機能します。 |
サイズ変更可能なデータタイプ (パス、文字列、配列など) をキューに追加したりキューから削除する場合、キューが使用するメモリには影響しません。キューはデータを転送しますが、データのコピーを生成することはありません。確定的ループで、キューが一杯になったときに新しい要素を待機することでジッタが発生しないようにするためには、「要素をエンキュー (ロッシー)」関数を使用します。
名前付きのキューを使用して、ブロックダイアグラムの2つのセクション間または同じアプリケーションインスタンスの2つのVI間でデータを受け渡します。名前を配線しない場合、関数は新規の名前なしのキューリファレンスを作成します。名前を配線する場合、関数は指定された名前の既存のキューを検索して、既存のキューへの新規リファレンスを返します。同じ名前のキューが存在せず、見つからなければ作成?がTRUEの場合、関数は新規の名前付きのキューリファレンスを作成します。
ループで「キュー取得」関数を使用して名前付きのキューへのリファレンスを返す場合、LabVIEWはループの反復ごとに名前付きのキューへの新規リファレンスを作成します。「キュー取得」関数をタイトループで使用する場合、各新規リファレンスによって追加的に4バイトが使用されるため、LabVIEWはメモリ使用量を徐々に増加します。これらのバイトは、VIの実行が停止する際自動的に解放されます。ただし、実行時間がかかるアプリケーションでは、メモリ使用量が増加し続けるため、LabVIEWでメモリリークが発生しているように見える可能性があります。このような意図的でないメモリの割り当てを防止するために、ループで「キュー解放」関数を使用して、各反復でキューリファレンスを解放します。
この関数が返すエラーコードは1、2、1094、1100、1491、1548です。
キューまたは名前付きキューを使用して、アプリケーションインスタンス間で通信は行えません。別のアプリケーションインスタンス内にある名前付キューとの通信を試みると、LabVIEWはエラーを返しませんが、予期せぬ結果を受信する場合があります。
1つのアプリケーションインスタンスでキューリファレンスを取得した場合、別のアプリケーションインスタンスでそのキューリファレンスは使用できません。別のアプリケーションインスタンスでキューリファレンスを使用しようとすると、エラー1491になります。
サンプルプログラム
LabVIEWに含まれている以下のサンプルファイルを参照してください。
- labview\examples\Synchronization\Queue\Queue Overflow and Underflow.vi
最大キューサイズ (-1, 無制限)
—
名前 (名前なし)
—
要素データタイプ
—
見つからなければ作成? (T)
—
エラー入力 (エラーなし)
—
キュー出力
—
新規作成?
—
エラー出力
—