NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

VB2005と Measurement Studio から DAQmx を使う

Visual Basic をメイン言語として、 Meaurement Studio を使い、
DAQmxにて、グラフ上に波形を表示させています。
(外部トリガーによる同期)

ノイズが多いため、波形データを取得して平均加算を
したいのですが、実際の値をどのように取り出したら
よいのか、教えていただけないでしょうか。

環境は、WindowsXP SP2、 LabVIEW 8.2、 
Measurement Studio エンタープライズ版 8.0.1
DAQCard 6062E、 BNC-2120 です。

よろしくお願い致します。
0 件の賞賛
メッセージ1/4
3,819件の閲覧回数
ご投稿ありがとうございます。
日本ナショナルインスツルメンツ技術部の成瀬と申します。

Visual Basicで使用されるNI-DAQのデータ集録のための関数やパラメタはCとほぼ同じでございます。
そのためVisual BasicでもNI-DAQ C Reference Helpに記載されておりますNI-DAQのファンクションをVB環境でもご使用ください。

NI-DAQ C Reference Helpは、スタート→すべてのプログラム→National Instruments→NI-DAQの中にございます。
Readに関するFunctionも記載されておりますのでご参照ください。

またNI-DAQmxを使用したVBによるプログラムのサンプルや資料が下記リンクにございましたのでご確認ください。
NI-DAQmx Examples for Visual Basic 6.0

何かご不明な点やご質問等ございましたら再度ご投稿頂ければと思います。
よろしくお願いいたします。

日本ナショナルインスツルメンツ
技術部
成瀬

0 件の賞賛
メッセージ2/4
3,794件の閲覧回数
日本ナショナルインスツルメンツ
技術部
成瀬様


ご返信、ありがとうございます。

教えていただいたHelpやsample file 等を見たのですが、
私の望んでいるような記述を見つけることができませんでした。

現在使用しているプログラムは、以下のようなのですが、
グラフ上にプロットされたデータの実際の値を potential() などの配列に格納するには
どこの部分にどのように、記述したらよいのでしょうか。

お手数かけますが、よろしくお願い致します。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim acquiredData() As NationalInstruments.AnalogWaveform(Of Double) = DaqTaskComponent1.Read
        WaveformGraph1.PlotWaveforms(acquiredData)
    End Sub

    Private Sub DaqTaskComponent1_Error(ByVal sender As System.Object, ByVal e As NationalInstruments.DAQmx.ComponentModel.ErrorEventArgs)
        'TODO: Handle DAQ errors.
        Dim message As String = e.Exception.Message
        MessageBox.Show(message, "DAQ Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        DaqTaskComponent1.StopTask()
    End Sub

    Private Sub DaqTaskComponent1_ReadCompleted(ByVal sender As System.Object, ByVal e As DaqApplication1.DaqTaskComponentReadCompletedEventArgs) Handles DaqTaskComponent1.ReadCompleted

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim acquiredData() As NationalInstruments.AnalogWaveform(Of Double) = DaqTaskComponent1.Read
        WaveformGraph2.PlotWaveforms(acquiredData)
    End Sub

    Private Sub DaqTaskComponent1_Error0(ByVal sender As System.Object, ByVal e As NationalInstruments.DAQmx.ComponentModel.ErrorEventArgs) Handles DaqTaskComponent1.Error
        'TODO: Handle DAQ errors.
        Dim message As String = e.Exception.Message
        MessageBox.Show(message, "DAQ Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        DaqTaskComponent1.StopTask()
    End Sub

    Private Sub WaveformGraph1_PlotDataChanged(ByVal sender As System.Object, ByVal e As NationalInstruments.UI.XYPlotDataChangedEventArgs) Handles WaveformGraph1.PlotDataChanged

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class
0 件の賞賛
メッセージ3/4
3,763件の閲覧回数
ご連絡ありがとうございます。
日本ナショナルインスツルメンツ技術部成瀬でございます。

大変申し訳ないのですが、お客様のほうが私よりもVisual Basicによるプログラミングについてお詳しいと思いますので、私の方で具体的にプログラムについて回答することができないのですがMeasurement StudioでVBをつかったデータ集録のサンプルプログラムを含む資料がございましたのでご紹介させて頂きたいと思います。

こちらの資料に含まれるサンプルには"AcquiredData"を"ScaledData"に変換し平均値(Mean)を求めるコードが含まれておりますのでご参照頂ければと思います。

具体的には資料の3-14ページから始まる”Acquiring Analog Data”の中のステップ6より後から説明が始まり3-16ページにありますステップ9で平均値を求めるコードが記載されております。

Getting Started with Measurement Studio for Visual Basic 6.0

是非お試し頂ければと思います。

日本ナショナルインスツルメンツ
技術部
成瀬

0 件の賞賛
メッセージ4/4
3,731件の閲覧回数