039 PyVISAを使ってBinaryデータを送受信する

2022/04/15

紹介/PyVISA

t f B! P L

今回の投稿は,PyVISAパッケージBinaryデータの送受信に関係する関数を紹介する前に,Binaryデータの送受信そのものに関する一般的な決まりごとを紹介します.

決まりごとは,大きく分けて2つあります.

  1. データの先頭に,Binaryデータの種類を表すヘッダー情報が挿入されます
  2. エンディアンビッグリトル)を指定します

まず最初の,「Binaryデータの種類を表すヘッダー情報が挿入されます」について説明します.
これは,測定機器の技術資料の中で,Binaryデータの送受信の箇所を見れば,
    #<digit><byte><data[0]>...<data[n-1]>
    #          : Binaryデータの開始
    <digit> : 後続する<byte>の桁数を示す0以外の数字
    <byte> : 後続するデータのバイト数を示す数字列
    以下はBinaryデータが続く(測定機器やデータの種類によって異なる)
と送受信するBinaryデータのフォーマットに関する説明があると思います.

上記のうち,最初の #<digit><byte>まではBinaryデータではなく,この部分こそが,「Binaryデータの種類を表すヘッダー情報」にほかなりません.

この, #<digit><byte>で表されるヘッダー情報は,いわゆるIEEEタイプのヘッダーで,これはPyVISAパッケージでBinaryデータを送受信する関数のデフォルトとなっています.従って,ヘッダー情報の種類を,header_fmtキーワード引数で指定しなければ,このIEEEタイプのヘッダーが,実際に送信するBinaryデータの先頭に自動で挿入され,受信するBinaryデータから自動で読み飛ばされます(ので,PyVISAパッケージを使う場合は,このヘッダー情報の部分は考慮しなくて良い).

IEEEタイプ以外のヘッダー情報もありますが(PyVISAでは,"hp"と"empty"が指定可能),IEEEタイプ以外のヘッダー情報を採用した測定機器の例をメジャーメントラボは知りません(絶対に無いとは言い切れません).

結論をまとめると,
    PyVISAパッケージを使う場合,Binaryデータの先頭に挿入するヘッダー部分は無視してよい(PyVISAパッケージが自動で挿入および読み飛ばししてくれる)が,万が一,IEEEタイプ以外のヘッダーの場合は,別途対処が必要
となります.

長くなってきたので,
 2. エンディアンビッグリトル)の指定
に関しては,次の投稿で紹介します.

このブログを検索

アーカイブ

自己紹介

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

QooQ