LabVIEW MathScriptからユーザ定義関数を呼び出す(MathScript RTモジュール)

LabVIEW 2012 MathScript RTモジュールヘルプ

発行日時: June 2012

製品番号: 373123C-0112

»製品情報を参照
ヘルプをダウンロード(Windowsのみ)

関数の定義保存を行うと、LabVIEW MathScriptウィンドウまたはMathScriptノードから定義した関数を呼び出すことができます。ユーザ定義の関数を呼び出すには、関数のファイル名は関数名と同じで、小文字の.m拡張子が必要です。たとえば、foo関数のファイル名はfoo.mでなくてはなりません。また、関数はMathScript RTモジュールの検索パスリストにあるディレクトリに保存する必要があります。ユーザ定義関数の以下のサンプルは、2つの入力値を足し算して合計を返します。

function return_value = add2(a, b)

%Add a and b

return_value = a + b;

ファイルを検索パスリストのディレクトリにadd2.mとして保存した後は、以下の構文でこの関数を呼び出すことができます。

c = add2(5, 9)

メモ   Linuxではユーザ定義関数の呼び出しにおいて大文字と小文字が区別されますが、WindowsおよびMac OS Xでは区別されません。

ロード時にユーザ定義関数を呼び出す

ユーザ定義関数はファイル名により認識されます。 LabVIEW MathScriptウィンドウからユーザ定義の関数を呼び出す場合、LabVIEWでは指定した名前で.mファイルについて上から下へ順番に、MathScript検索パスリストを検索します。ユーザ定義関数を呼び出すMathScriptノード含むVIをロードすると、以下の3つの場所で特定の名前を持つ.mファイルが検索されます。

  • 最初に、指定した名前で.mファイルが現在メモリに常駐しているかどうかを検索します。
  • 次に、LabVIEWはMathScriptノードを含むVIを最後に保存した場所に配置された.mファイルのあるディレクトリを検索します。最後にVIを保存した時に.mファイルがあったディレクトリを検索するため、別のコンピュータでこのVIを開く場合には、MathScript RTモジュール検索パスリストを再構成する必要はありません。ただし、VIおよび.mファイル間の同じ相対パスを維持する必要があります。
  • さらに、LabVIEWはMathScript RTモジュール検索リストを上から下の順序で検索します。VIを異なるコンピュータで開く場合、LabVIEWはそのコンピュータで構成された検索パスリストを検索するため、検索パスが変更される場合があります。
メモ   MathScriptノードに警告グリフが表示された場合、LabVIEWは.mファイルが最後に検出されたディレクトリを検索し、MathScript検索パスリストを検索し、最後に.mファイルのメモリ内を検索します。

編集時および実行時にユーザ定義関数を呼び出す

ユーザ定義関数を呼び出すスクリプトを新しく作成したり、既存のMathScriptノードでユーザ定義関数の呼び出しを追加または編集すると、指定された名前の.mファイルを、メモリ内で検索し、さらにMathScript RTモジュールパスリストの場所を上から順に検索します。つまり、既存のVIをロードしてMathScriptノードで関数呼び出しを編集すると、.mファイルはVIで最後に保存されたディレクトリでは検索されません。

メモ メモ  MathScriptノードに警告グリフが表示されている場合は、まずMathScript検索パスで検索され、その後メモリ内で検索されます。

ユーザ定義関数へのリンク

指定した名前の.mファイルが現在メモリにある場合、関数呼び出しが実行時にその.mファイルにリンクされます。関数呼び出しと.mファイルの間のリンクは、VIとサブVIの間のリンクと同様に動作します。サブVIを参照する際に、そのサブVIと名前が同じVIが既にメモリにあると、LabVIEWは選択したサブVIではなく、すでにメモリにあるVIを参照します。同様に、同じアプリケーションインスタンスから同じ名前が付いている2つの異なる.mファイルをロードして参照しようとすると、1つの.mファイルのみメモリにロードされます。.mファイルの両方のリファレンスが同じファイルを指すため、クロスリンクの問題が発生します。

クロスリンクを回避するには、LabVIEWプロジェクトを使用します。プロジェクトの一部であるVIから.mファイルを参照する場合、.mファイルはターゲットの依存項目に追加されます。これにより、.mファイル用の固有の検索パスを構成できます。たとえば、project1.lvprojが所有するfooという名前のユーザ定義関数を呼び出すMathScriptノードを持つVIを作成できます。また、project2.lvprojが所有するfooという名前のユーザ定義関数を呼び出すMathScriptノードを含むVIを作成することもできます。プロジェクトのターゲットを右クリックしてショートカットメニューからプロパティを選択してカテゴリリストからMathScript:検索パスページを開き、各プロジェクトの固有の検索パスを構成してから、VIを保存します。次回プロジェクトの外でこれらのVIの1つを開くと、LabVIEWはfoo関数への呼び出しを適切な.mファイルファイルにリンクします(VIが1つだけ開いている場合に限り)。



この記事は役に立ちましたか。

役に立たなかった