LabVIEWのタイプ定義制御器の値を変更しても制御器の値が更新されない

更新しました Sep 14, 2023

使用製品

ソフトウェア

  • LabVIEW

問題

タイプ定義ファイル(*.ctl)内の値を変更しましたが、更新された値がタイプ定義ファイルに紐づけられた制御器、表示器に表示されません。

解決策

この挙動はタイプ定義の想定された動作です。タイプ定義の機能はこちらの記事 のタイプ定義の項で確認できます。

タイプ定義はデータタイプのみを指定します。タイプ定義内の制御器の値は、データタイプではありません。制御器で表示される値などを指定する必要がある場合、下記のいずれかの方法でデフォルト値を設定します。

タイプ定義された制御器・表示器に対してもそれらが使用されているVI上においてそれぞれの制御器・表示器に対してデフォルト値の設定を行う事ができます。LabVIEWのツールバーより編集 >> 現在の値をデフォルト設定にするを選択した後、VIを保存します。
 
saveasdefault.png


もしくは、タイプ定義の制御器・表示器のデフォルト値をタイプ定義ファイルで変更し、その変更内容をメインのVI等のタイプ定義された制御器・表示器に反映するには既存の制御器・表示器を一度削除し、更新後のタイプ定義ファイルを再配置する事で置き換えることができます。

複数の制御器のデフォルト値を一括もしくはプログラム的に変更したい場合、グローバル変数iniファイル を使用してデフォルト値を変更します。

追加情報

タイプ定義を使用する場合、プログラム全体で同じタイプの制御器に異なる値を含める必要がある為、上記の仕様にとなります。複数の制御器に対してデフォルト値を設定する必要がある場合、初期化の段階を作成し、手動またはプログラムに設定を行う事が推奨されます。