【計測器】Pythonでコントロールしたりデータ取得するのは?pyVISA ? SCPI? 【もうGPIBじゃないのね】

スポンサーリンク
広告

測定機器のコントロール

この歳で、また公的研究費を頂いて、研究をしているのですが、連続で同じようなことを何回もしたいということがあり、測定機器のコントロールをしようかと。。 で。。そんなの昔は、GPIBというHPが作ったプロトコルで、マニュアル片手に、Visual Basicで一個づつ作っていたんですが。。 まぁ、潤沢に予算も昔はあったので、測定機器もHPに統一されてたり、自分で作った測定器だったりしたので、すぐに作れたのですが(笑) ちょっとお勉強しなおさないと、パパっと作れないことが(笑) 昔より頭の回転遅いし。。体力ないし。。 なので、自動で効率的にできるようにしておくこと。。大事だし(笑)

今回は、寄せ集めで。。KeySight(HP→Agilentとかいろいろな会社がここに集約されている?)や、Rohde &Shwarz、Anritsu、などなどいろんなメーカの測定機器があり。。それぞれ調べてみたら。。 なんとなく共通のプロトコルっぽいのがあってそれみないと。。って感じ

VISA? SCPI?

通信層は、VISA(Virtual Instrument Software Architecture)というものが。。そして、コマンド層にはSCPI(Standard Commands for Programmable Instruments)ってのがあるみたい。 NI(National Instruments)が作ってきたものが。。VISAで、KeySightやGPIBの流れをくむのがSCPIって感じなんでしょうかね?

VISAは、NIのHPに概要が載ってて

NI-VISAの概要
このドキュメントには、一般的にNI-VISAとも呼ばれる、National Instrumentsが実装したVISA(Virtual Instrument Software Architecture)APIの概要について、記載されています。NI-VISAを使用すると、GPIB、USB、シリアル、イーサネットなどのさまざ...

KeySightも、奨めています。

自動計測における制御ライブラリの選択(VISA、VISA-COM)
プログラムから測定器と通信を行う際には、「ライブラリの参照」で追加し、必要に応じて、関数を呼び出して、通信を行う必要があります。

GPIBやRS232C,USB,Ethernetなどの物理通信層を共通的に扱えるようにしているライブラリっぽいですね。

SCPIはKeysightに記述が載ってて、

測定器を制御する測定器コマンド(共通コマンド、SCPIコマンド)
一定の動作をさせるコマンドを複数組わせて送る事で、リモート制御が実現できます。

やっぱり共通コマンドみたいですね。

Rohde & Schwarz も、VISA対応のアプリが出ていますね。

GitHub - Rohde-Schwarz/RsInstrument: RsInstrument is a Python remote-control communication module for Rohde & Schwarz SCPI-based Test and Measurement Instruments.
RsInstrument is a Python remote-control communication module for Rohde & Schwarz SCPI-based Test and Measurement Instruments. - GitHub - Rohde-Schwarz/RsIns...

このRohdeのやつみていると、

RsInstrumentやRsCommaderというPythonのライブラリを読み込むと、pyVISAがインストールされるので、これの上に構築されているっぽい。

pyVISA

Pythonで、VISAをコントロールするPyVISA: Control your instruments with Pythonの詳しい説明は、こちら

Communicating with your instrument — PyVISA 1.13.1.dev31+g071fa6d documentation

で、入れてみて、

pyvisa-info.exe

を動かしてみると、pyvisaの情報が出てきます。バックエンドは、どうやら。。最新版のWindows用のdllは、Rohde Schwarz製のようです

pyvisa-shell.exe

これで、Shellのようにしてとりあえず動かしてみることができるんですね。

とりあえず。。まずはここまで。。実際につなげて動かさないとわかんないですね。

Rohde Schwarz

RsCommander

RSCommander

ネットワークのない場所でのInstallや開発

ネットワークアクセスのないコンピューターでRsInstrumentをPycharmに手動でインストールする方法
ネットワークアクセスのないコンピューターでRsInstrumentをPycharmに手動でインストールする方法

KeySight

自動計測全般

自動計測Webサイト
この講座では、電子計測器ユーザーの皆様に、計測器の自動制御プログラムに関する基礎知識をご提供します。

C#での例

【C#】【VISA】計測機器をPCから制御するVISA入門 | Extra-Lab (extralab.org)

pyVISA RSinstruments でやってみた。

PCと、機器のIPアドレスを同一セグメントのIPにセットしてあげると。。一応、やり取りはOK。

RSinstruments は R&S は応答。。 当たり前か?w

pyVISAもほとんど同じ。Keysightも反応してくれる。

ただ。。 ResourceManagerからは反応なさそう。。

あと、GPIB-USB変換(National Instruments製)のドライバがうまく動かなかったのか?ZadigでUSBドライバーをいろいろ入れ替えてみたけど。。うまくいかずUSBはまだ検討中  

各測定器のコマンド集みたいなのって、Githubに落ちてないかな?w

探そっと!

SCIP 共通コマンド IEEE488共通コマンド

探せば何か出てくる幸せな世の中。先人の方ありがとう。

SCPIコマンドと問合せのアルファベット順リスト (keysight.com)

なるほど。。 これが共通になってるのか。。

Python用には、easy SCIPなるものもある。

easy-scpi · PyPI

ソースを読むと、pyVISAで通信してます。。 これ使おう。

共通化されていないコマンドは当然あるので、それらはそれぞれのマニュアルで補強だな。。なるほど。。

Python lab automation landscape Catalog

Github探していたら。。 こんなの見つけた。これがPythonでラボ用機器の自動化をするカタログ。。ライブラリー類の一覧ですね。

https://pymeasure.github.io/python-lab-automation-landscape/catalog/

コメントを残していただけるとありがたいです

Loading Facebook Comments ...
%d人のブロガーが「いいね」をつけました。