検索された製品ページを表示しています その他の検索結果:

 

お問い合わせ窓口

[プログラミング]InfiniiVisionから波形データをバイナリとして取得したいと考えています。どのようにすれば良いでしょうか?

■フォーマットについて

InfiniiVisionからのバイナリデータの返り値は、IEEE488.2で規定されているバイナリブロックデータ転送の確定長フォーマット形式となります。そのため、IEEE488.2とは、測定器の一般的な規格であり、APIによっては、このデータ形式をそのまま取り込める関数を用意しています。例えば、VISA-COMであれば、ReadIEEEBlockメソッドを用いることで、そのまま取り込むことが出来ます。お使い頂いているAPIのマニュアルをご参照ください。

-----------------
確定長フォーマット
-----------------
確定長フォーマットは、#キャラクタで始まり、この後に以下の情報が続きます。

- 1桁のASCII数値。これに続くASCII数値文字の桁数を与える
- ASCIIの数値文字(桁数は上記の1バイトで与えられたもの)。これに続くデータバイトのバイト数を与える
- データバイトストリーム。その長さは、上記にて与えられたもの。

例:#899999999...

#:データブロックの開始
8:後続する桁数(00000200の桁数)
00000200:後続するバイナリデータの数
DAB:データ・バイト
データの最後には、LFが付いています。


■Byte/Wordについて

また、InfiniiVisionシリーズでは、WAVEFORM:FORMAT コマンドで、Byte(1バイトデータ)とWord(2バイトデータ)の2つを選択することが出来ます。

通常、オシロスコープは8bit AD変換器を用いていますので、事前に、WAVEFORM:FORMAT BYTEを送り、Byteで取得します。この場合、値が1-255までの符号なし実数で1バイト分のデータが返ります。ただし、アベレージングモード/高分解能モードの場合には、データが8bit以上になりますので、この場合は、WAVEFORM:FORMAT WORDで、Word指定にしてください。この場合、データは、1-65535までの符号なし実数で、2バイト分のデータとして返ります。なお、InfiniiVisionでのWordバイナリ転送は、デフォルトはLSBファーストとなります。


■プリアンブルでのデータ変換

バイナリデータ転送で取得した値は、生のAD変換器での値になります。そのため、取得後は、PCのプログラム上で電圧値に変換する必要があります。変換する場合には、

(データ - Yref)* Yin + Yor

の式を用います。Yref、Yin、Yorの値は、:WAVeform:YREFerence、:WAVeform:YINCrement、:WAVeform:YORiginの各コマンドで取得できます。また、時間軸データが必要な場合は、XINCrement (ポイントとポイントの間の時間)から算出します。なお、プリアンブルは、トリガが掛かった後に取得して下さい。設定前に取り出すと、異なったプリアンブル値となる場合があり、また、トリガが掛かる前に取り出すと測定器の動作が遅くなる場合があります。


バイナリでの取得の詳細に関しましては、InfiniiVisionシリーズのプログラマーズガイドをご参照くださいませ。


■VISA-COMサンプル

Dim ydata() As Byte
Dim i As Integer
With scope
.WriteString "Waveform:points 250; Source Channel1"
.WriteString "Waveform:Format byte"
.WriteString "Waveform:data?"
ydata = .ReadIEEEBlock(VisaComLib.IEEEBinaryType.BinaryType_UI1)
End With

ReadIEEEBlock メソッドは、データをバイト配列ydata()に入力します。ReadIEEEBlock は、読み取り中のデータに対応するIEEEバイナリ型を渡します。この場合、バイト配列を読み取るため1バイトの符号なし整数を使用しています。

 

 

 

-------

Excel VBA、Visual Basic、Visual C#などのプログラム言語を使ったオシロスコープのリモート制御に関して、入門ガイドとサンプルプログラムをご用意させて頂きました。

http://www.agilent.co.jp/find/sample_program
※ 上記ページより、InfiniiVisionの項目を選択してください。

この入門ガイドでは、制御プログラムを、これらから作り始める方のために、一般的なプログラムの作成方法から、更に、実際のオシロスコープ(Agilent InfiniiVisionシリーズ)のサンプルプログラムを通して、実践的な部分まで、ご案内させて頂いています。一般的なプログラム作成方法の部分は、オシロスコープに限らず、一般的な測定器を制御する際にも、お役立ていただけるものと思います。