-1

LabVIEWコードの作業

上に添付されているのは、デバイスから周波数データを読み取るために過去に使用した LabVIEW コードです。また、通常、プロパティ ノードと while ループの間で Start Task VI を使用します。

これをC#でコーディングしようとしています。これまでのところ、デバイス USB-6363 でアナログ出力とアナログ入力を正常にコーディングできました (したがって、C# を使用してデバイスからデータを正常に読み書きできることがわかっています)。

また、マルチメーター (投稿の下部にある Grainger リンク) を使用して、周波数データ (写真でデバイスが設定されているオレンジ色の Hz モード) を読み取りました。

ただし、私の C# コードでは、周波数データの読み取りに問題があるようです。私のC#コードが添付されています。このプログラムを実行しようとすると、次のエラーが発生します。これは、「MeasDigFreqBuffCont_ExtClk_ArmStart.2013」というサンプル プログラムを使用したときに発生するエラーと同じです。私が示しているコードはタスクを作成しているだけです。プログラムの後半で別のセクションでコードを呼び出しているため、エラーが発生しています。

- - - - - - - - - - - - - - - - - - - - - - - - - 始めるエラーコード - - - - - - - - - - - - - - - - - - - - - - - - -

{Error=-200077 Message="要求された値は、このプロパティでサポートされている値ではありません。別のプロパティと競合するため、プロパティ値が無効である可能性があります。\n\nプロパティ: NationalInstruments.DAQmx.CIChannel.FrequencyDivisor\n要求された値: 1\ n有効な値: 4 ~ 4294967295\nチャンネル名: デジタル周波数\n\nタスク名: _unnamedTask<0>\n\nステータス コード: -200077"}

- - - - - - - - - - - - - - - - - - - - - - - - - 終わりエラーコード - - - - - - - - - - - - - - - - - - - - - - - - --

サンプル プログラムでは、サンプル クロック ソース (デバイスからの PFI チャネル) を要求します。ただし、LabVIEW コードではこれを要求しません。この例は、私がやろうとしていることよりも詳細ですか?

Task frequencyInput = new Task();

frequencyInput.CIChannels.CreateFrequencyChannel(
                "Dev1/ctr0",
                "Digital Frequency",
                200,
                15000,
                CIFrequencyStartingEdge.Rising,
                CIFrequencyMeasurementMethod.DynamicAveraging,
                0.001,
                1,
                CIFrequencyUnits.Hertz
                );


frequencyInput.CIChannels["Digital Frequency"].FrequencyTerminal = "/Dev1/PFI0";

CounterSingleChannelReader counterFreq = new CounterSingleChannelReader(frequencyInput.Stream);


double counterFreqData = counterFreq.ReadSingleSampleDouble();

txtPFI0.Text = Convert.ToString(counterFreqData);

Fluke (R) Fluke-115 Compact - 基本機能 デジタル マルチメーター、温度 14° ~ 122°F。範囲

4

1 に答える 1

2

エラー メッセージのフォーマット:

要求された値は、このプロパティでサポートされている値ではありません。別のプロパティと競合するため、プロパティ値が無効である可能性があります。

プロパティ: NationalInstruments.DAQmx.CIChannel. FrequencyDivisor
要求された値: 1
可能な値: 4 ~ 4294967295

タスク名: _unnamedTask<0>
ステータス コード: -200077

ドキュメントによると、無効な除数を使用するようにデバイスに要求しています。を次のように変更14ます。

frequencyInput.CIChannels.CreateFrequencyChannel(
                "Dev1/ctr0",
                "Digital Frequency",
                200,
                15000,
                CIFrequencyStartingEdge.Rising,
                CIFrequencyMeasurementMethod.DynamicAveraging,
                0.001,
   /* here */   4,
                CIFrequencyUnits.Hertz
                );

NIは DAQmx 用の C# サンプルをインストールします。これには、周波数を測定するためのサンプルが含まれています。

C:\Users\Public\Documents\National Instruments\NI-DAQ\Examples\DotNET4.0\Counter\Measure Digital Frequency\MeasDigFrequency_LowFreq1Ctr\CS

于 2016-11-10T18:04:20.570 に答える