024 PyVISAを使った測定機器のコントロールで重要なこと

2022/03/31

その他/雑談

t f B! P L

今回の投稿は,メジャーメントラボの経験則に基づく雑談です.特に読む必要はありませんが,本気で自動測定システムを構築しようと思う人には,何かしら役に立つかもしれませんので投稿します.

本ブログは,PyVISAパッケージを使って,Pythonで複数の測定機器をコントロールするシステムを構築していくのを紹介するのが最終的な目的です.
PyVISAパッケージを使えば,USB接続,GPIB接続,Ether接続の違いを意識すること無く,測定機器にSCPIコマンドを送信して,測定機器をコントロールできます.

但し,いずれの接続においても,通信を通して測定機器とコマンドを送受信していることに変わりはありません.
何が言いたいかというと,Pythonで構築したシステムは,測定機器にコマンドを送信して,応答を問合せるのですが,必ずしも,このコマンドの送受信が(意図したことに対して)成功するとは限らないということです.

測定機器へのコマンドの送受信が成功しない原因は幾つもあります.例えば,

  • 間違ったコマンドを送信している
  • 測定機器側が対処できない(処理が間に合わない,バッファが足りない ,etc.)
  • 測定機器が誤動作した,通信にノイズが乗った

などです.

「間違ったコマンドを送信する」のは論外ですが,その他の原因は,滅多に起こらない/特定の条件でしか発生しないケースですが,決して起こらないことではありません.

もう少し話を広げて,自動測定システムを構築する上で注意しないといけないことの一つに,「意図したことに対して成功しなかった時の処理」が挙げられます.
人が測定機器を手作業で操作して測定を行うケースでは,意図したことにならなくなった時点で,人は測定を中断します(必要に応じて設定項目を再設定して,測定を再開します).

それと同じことを,自動測定システムでも行わなければならないのです.

流石に,設定項目を再設定して測定を再開することを,自動測定システムの機能として実装するのは現実的ではありませんが,「意図したことに対して成功しなかった」ことを検出する機能は,最低限,自動測定システムでも実装しておかないと,せっかく苦労して自動測定システムを構築しても,残念な(使えない)自動測定システムになってしまう危険があります.

意図したことに対して成功しなかった」ことを全て検出するのは無理ですが,できる範囲で検出するようなPythonスクリプトを作成することは,(使える自動測定システムを構築する上で)非常に重要なことです.

このブログを検索

自己紹介

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

QooQ