初心者向けプログラミング講座 
第5回: 計測器とPythonの接続

講座の概要については以下からご覧ください。

目的

この回では、いよいよPythonを使って計測器(GP-IBやUSB接続)を制御し、実際にデータを取得します。計測器とPythonを接続する方法について手順を追って確認し、pyvisaライブラリを使った計測器制御の基本スクリプトを作成します。また、VISAリソースの管理と、SCPIコマンドを使った計測器の操作方法を詳しく学びます。

学習内容

  • 計測器の接続手順
  • pyvisaを使用したPythonと計測器の接続
  • 計測器の基本コマンド(SCPI)の送受信
  • コマンドを実践するPythonコード
  • エラー処理とデバッグの基本
  • 演習問題

1. 計測器の接続手順

計測器をPythonから制御するには、以下の手順で作業を行います。

(1) ハードウェアの接続

必要なケーブルを接続する
計測器とPCを、USBまたはGP-IBケーブルで接続します。

デバイスドライバのインストール
必要な場合は、計測器メーカーが提供しているデバイスドライバをインストールします。
多くの場合、メーカーの公式サイトからダウンロード可能です。

合わせて読みたい

(2) 計測ソフトウェアの確認

計測機器メーカーのソフトを確認
通常、メーカーが提供する制御・設定用ソフトウェアが付属していることがあります。(例:Keysight IO Libraries Suite)
Python以外のソフトで計測器が正常に認識されているか確認しましょう。

VISAライブラリのインストール
NI-VISAやその他VISAライブラリを先にインストールしておく必要があります。
NI-VISA(National Instruments):NI-VISA公式サイト

VISAライブラリが正常にインストールされていないと、pyvisaで通信が行えません。

(3) PyVISAをインストールする

プログラムリストから Anaconda Navigatorを起動し、右上の選択メニューから New → Terminalを開きます。
Terminalから以下のコマンドで、pyvisaをインストールします。

2. PyVISAを使用したPythonと計測器の接続

次に、PyVISAを使ってPythonから計測器と通信する基本的な操作を学びます。さきほどの Anaconda Navigatorから Jupyter Notebook を起動してください。

(1) リソースマネージャの作成

PyVISAでは、ResourceManagerを使って接続可能な計測器(リソース)のリストを取得できます。

 (2) 計測器に接続する

計測器に接続するには、rm.open_resource() を使用します。レスポンスとして計測器のコントロールオブジェクトが返されます。

コマンドの意味
*IDN?: 計測器のデバイス識別情報(型式、バージョンなど)を返すSCPIコマンドです。これはSCPIに対応された多くの計測器で標準的に利用できます。

合わせて読みたい

3. 計測器の基本コマンド(SCPI)の送受信

Pythonでは、計測器にコマンドを送信して動作させたり、応答を受け取ることができます。以下のようなメソッドを使います。

(1) コマンドの送信

write()を使用します。

 (2) 応答の取得

query()を使用することで、コマンド送信と応答取得を一度に行えます。

 (3) 設定値の取得

read()で応答を「受け取る」のみ行う場合もあります。query()を使わないケースで利用します。

4. コマンドを実践するPythonコード

以下は、実際に計測器から測定値を取得するコード例です。ここでは簡易的に*IDN?(計測器情報)とMEAS:VOLT?(電圧測定)を使用します。

プログラム例:計測器にコマンドを送る

5. エラー処理とデバッグ方法

計測器制御では、通信エラーや予期しない値が返ってくる場合があります。これを適切に処理するため、例外処理(try/except)を活用します。

エラー処理の例

6. 演習問題

演習問題 1: 計測器リストの取得

以下を実行するプログラムを作成してください。
接続されている計測器のリストを取得し表示する。
最初の計測器に接続し、*IDN?コマンドで計測器情報を表示する。

解答例を表示

演習問題 2: SCPIコマンドの送受信

以下を実行するプログラムを作成してください。
計測器に任意のSCPIコマンド(例:MEAS:CURR?)を送信。
測定値を取得して画面に出力する。

解答例を表示

次回予告

次回は、「測定データの取得と基本的な処理」について学びます。計測器からデータを取り込み、Pythonで加工や保存を行う方法を詳しく解説します!