041 PyVISAを使ってBinaryデータを送受信する(その3)

2022/04/17

紹介/PyVISA

t f B! P L

PyVISAパッケージで,Binaryデータの受信は,query_binary_values関数を使います.
基本的な使い方は,送信するコマンドが"CURV?"の時,datatypeキーワード引数を使って受信するBinaryデータの型を指定し,is_big_endianキーワード引数を使ってエンディアンの指定を行います.
    vals = inst.query_binary_values("CURV?", datatype='h', is_big_endian=True)

ASCIIデータの受信関数query_ascii_value関数と同様に,
    containarキーワード引数
も使えます.

Binaryデータに関しては,こちらをご覧下さい.
測定機器からBinaryデータを送受信する際によく用いられるのは,
    'h': short               (2 bytes)
    'H': unsgined short (2 bytes)
    'i':   int                  (4 bytes)
    'I':  unsigned int     (4 bytes)
でしょうか.

逆に,Binaryデータの送信は,write_binary_values関数を使います.
基本的な使い方は,受信のケースと同じく,
    inst.write_binary_values("WLIST:WAVeform:DATA somename,", vals, datatype='h', is_big_endian=True)
となります.

ここで,送信するBinaryデータが,バイト列の場合は,エンディアンは関係なく,また,datatypeキーワード引数には's'を設定すれば良いです.
    inst.write_binary_values("WLIST:WAVeform:DATA somename,", byte_array, datatype='s')

以上で,PyVISAパッケージのBinaryデータの送受信に関する関数の紹介は終わりです.
しかしながら,PyVISAパッケージを使ってBinaryデータを送受信する紹介は,まだ続きます.
なぜなら,PyVISAパッケージの技術資料の中で,
    「The methods described above work fine for 99% of the cases but there is always a particular device that ...」
と紹介してあるように,世の中には,一連の数列データを,read_binary_valuesおよびwrite_binary_values関数に,そのまま適用できないケースがあります.次の投稿では,それらのケースに,どうやって対処していくかを紹介します.



このブログを検索

アーカイブ

自己紹介

C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.

QooQ