Visual Basic6からLabVIEWで作成したアナログ入力の配列データを呼び出したい。



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
複数チャンネルの波形データを読み取るアナログ集録VIを作成した場合、波形データは2D配列となります。
そして、LabVIEWでDLLを作成するとC言語から呼び出す際に下のように必要なヘッダーファイルが
DLLと同じフォルダに生成されます。

typedef struct {
    long dimSizes[2];
    double Waveform[1];
    } TD1;
typedef TD1 **TD1Hdl;

void __stdcall LVdllsample(LStrHandle *physicalChannels, double rate,
long samplesPerChannel, TD1Hdl *data, LVBoolean *ANZX);


LabVIEWの2D配列が、ポインタのポインタでの構造体構造の中の配列となってしまい、
Visual Basic6での読み取り方が分かりません。
何か簡単な方法はないでしょうか。

解決策:
LabVIEWからデータを受け渡す際に、2D配列のデータを複数の1D配列へ変更することにより
Visual Basic6から1D配列データとして簡単にデータの受け渡しを行なうことができます。
詳細はwaveform.zipのサンプルをご覧ください。

または、LabVIEWからデータを受け渡す際に、2D配列のデータを一旦Variant型とすることにより
Visual Basic6から2D配列データとして読み取る方法もあります。
詳細はVB.NETになりますが、関連リンクからサンプルがダウンロードできます。


関連リンク:
Developer Zone Example: Using VB.NET to Call LabVIEW DLLs That Use 2D Numeric Arrays

添付:


waveform.zip - waveform.zip



報告日時: 03/25/2005
最終更新日: 12/20/2007
ドキュメントID: 3JO1B9QZ