実験は,初期段階は方法が確立していないため,様々な工夫をして,いろんな角度からのアプローチが必要になります.
しかし,方法が確立するとただの繰り返しになってしまいますよね
その際に,すぐに終わるような実験であればよいですが,測定回数が多すぎる,計測器が多すぎるといった場合は大変です
実は,PCと計測器を接続さえできればpythonから制御して,自動で測定することが可能です
本記事はAnacondaへのpyvisaインストールからpyvisaを使った計測器との通信,制御,測定の方法を解説します
Anacondaへのpyvisaの環境構築
anacondaにpyvisaをインストールします
::Anaconda.orgにアクセスして,pyvisaと検索します
上記2つのconda-forge/pyvisaとconda-forge/pyvisa-pyをインストールします
各ページにインストールコマンドが記載されています
Anaconda Promptを起動して下記コマンドを打ち込んで,pyvisaをインストールします
conda install -c conda-forge pyvisa
次にpyvisa-pyもインストールしましょう
conda install -c conda-forge pyvisa-py
最後にインストールされたか確認しましょう
conda list
# pyvisa 1.12.0 py38haa244fe_0 conda-forge
# pyvisa-py 0.5.3 pyh6c4a22f_0 conda-forge
pythonで計測器とのLANケーブルを用いたEthernet通信
LANケーブルを使って,計測器とのEthernet通信を行います
IPアドレスの確認
PCと計測器のIPアドレスを確認します
PCのIPアドレスはwindowsのコマンドプロンプトを起動して確認できます
コマンドプロンプトでipconfigと打つと,IPv4アドレスというのがあります
192.168.1.100というのがIPアドレスです
ipconfig
# Windows IP 構成
# Wireless LAN adapter Wi-Fi:
# IPv4 アドレス . . . . . . . . . . . .: 192.168.1.100
# サブネット マスク . . . . . . . . . .: 255.255.255.0
# デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
計測器のIPアドレスは,計測器のカタログをから設定方法を探してみてください
手順はおおよそ下記のとおりです
- PCと計測器をLANケーブルで接続
- DHCP(Dynamic Host Configuration Protocol)サーバー設定をOFF
- 自動IPアドレス設定をOFF
- 固定IPアドレスを設定
固定IPアドレスはPCのIPアドレスの最後の数字を適当に変更してください
もしPCのIPアドレスが192.168.1.100であれば
計測器のIPアドレスは192.168.1.101のようにします
PCとの通信確認
ここでLANケーブルで接続したPCと計測器が正常に接続されているか確認します
先ほど設定した計測器の固定IPアドレスをPCから計測器に飛ばし,反応を確認します
ping IPアドレスとコマンドプロンプトで打ちます
ping 192.168.1.101
# 192.168.1.101 に ping を送信しています 32 バイトのデータ:
# 192.168.1.100 からの応答: 宛先ホストに到達できません。
# 192.168.1.100 からの応答: 宛先ホストに到達できません。
# 192.168.1.100 からの応答: 宛先ホストに到達できません。
# 192.168.1.100 からの応答: 宛先ホストに到達できません。
上記は失敗例ですが,しっかり計測器から通信が返ってくれば大丈夫です
pythonから計測器と通信する
ここで接続したい機器を指定して通信を行います
rm.open_resourceの中にTCPIP::固定IPアドレス::port番号::SOCKETと文字列を入力してください
うまくいかない場合は,TCPIP::固定IPアドレスだけでも良い場合もあります
import pyvisa
rm = pyvisa.ResourceManager()
rm.list_resources()
inst = rm.open_resource('TCPIP::192.168.1.101::5000::SOCKET')
print(inst.query("*IDN?"))
print(inst.query(“*IDN?”))の*IDN?はSCPI共通コマンドです
SCPIはプログラマブル計測器用標準コマンドで,KIKUSUIのPDFがわかりやすいので参照してください
pythonから計測器を制御する
あとはinst.query(“*IDN?”)を書き換えることでデータを継続的に測定することが可能になります
基本的に,inst.writeで計測器の設定を変更し,測定を行います
測定値はinst.query(“:READ?”)などで読み取り,リストなどに格納して出力します
pyvisaについてより詳しく知りたい方は公式ドキュメントを参照してみてください
お疲れ様でした
コメント