LabVIEWで使用される参照番号(Refnum)のメモリ上の構造は何ですか?

更新しました Sep 14, 2023

使用製品

ソフトウェア

  • LabVIEW

問題

LabVIEWでは、メモリでリファレンス番号(Refnum)に対するタイプデスクリプタをどのように保持していますか?キュー、ノーティフィケーションRefnumとは何ですか?

解決策

リファレンス番号(Refnum)とは、LabVIEW内部で実行されたある操作を特定、復元するための構造です。
一般的なRefnumは、以下のとおりです。

[長さ] [タイプコード] [専用Refnum用のタイプコード] [専用タイプコード情報] [ラベルの文字数] [ラベル文字]

数字(16進数形式)の説明は、以下のとおりです。
  1. [長さ] 
    データタイプに存在するバイト数
     
  2. [タイプコード]
    7030 - Refnum用コード
     
  3. [専用Refnum用のタイプコード]
    01 - データログファイル、もしくはGOOP(グラフィカルオブジェクト指向プログラミング)Refnum
    02 - バイトストリームファイル
    04 - オカーレンス
    05 - TCP/IPネットワーク通信
    07 - Activexオートメーション
    08 01 00- アプリケーションVI
    08 02 04 00 - VI Refnum 
    08 06 04 00 - 制御器
    09 - メニュー
    0E - VISAリソース名
    0F - IVI論理名
    10 - UDPネットワーク通信
    11 - ノーティフィケーション*
    12 - キュー *
     
  4. [Refnumに関連する専用の情報]
    この領域のコードは、各Refnumの詳細です。詳しい情報については、関連リンクを参照してください。
     
  5. [ラベルの文字数とラベル文字]


* : ノーティフィケーションおよびキュー用のRefnumは、LabVIEW 6.1に実装されたRefnumです。古いバージョンでは、タイプコード 01(GOOP Refnum)として現れます。

Refnumに関する詳細は、次の手順をおこないます。
 

LabVIEW 7.x以前

  1. VIのフロントパネルにある制御器Refnumを作成します。
     
  2. プロパティノードを作成してタイプデスクリプタを選択します。
     
  3. プロパティノードに対して表示器を作成してプログラムを実行し、結果を確認します。 TypeDescで取得した配列でタイプデスクリプタを確認することができます。
     

LabVIEW 8.x以降

LabVIEW 8.x以降ではタイプデスクリプタプロパティがサポートされなくなりましたので、新規にタイプデスクリプタのプロパティノードを作成することはできません。しかし、LabVIEW 7.x以前で作成したプロパティノードを含むプログラムを実行することは可能です。