上に添付されているのは、デバイスから周波数データを読み取るために過去に使用した 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。範囲