· 

SDS7102からpythonで波形取得(1)

OWON SDS7102からpythonで波形取得...できたらいいなーと思っている。ここの下のほうにある専用のソフトで、できるっちゃ~できるんだけど、波形を解析したりするときに直接pythonで取り込めたほうがひと手間減りますので。

SDS7102とPCをどう接続するかが悩みどころだけど...USBとLANしかないので2択で、そのどちらにするか....LANにするかー。会社とかだと計測器を自由にLANにさせないので、USB-LANのアダプタとクロスケーブルが必要になるけど、今や大して高いものでもない。TektroだとLANでeScope機能が使えて操作もできる。(Proxyには要注意。たまにはまる。)

Tektroのハナシはさておき、SDS7102のLAN設定をします。ここは詳しく書きません。マニュアルに書いてあるし何となくわかるでしょ。しかも、OWONオシロなんてマイナーなので、大概の人には不要。

で、ping

通っています。

で、LANとPythonをどう結び付けるか...やっぱVISAでしょ。で、メジャーどころのNI VISAを入れる。

googleで「NI VISA」と入れると、それらしいのが来る。現時点でのリンクはこちら (まぁいつかリンク切れすると思いますが)。迷わずダウンロードボタンを推す。今日時点ではni-visa_20.0_online_repack3.exeってやつがダウンロードされる。で実行。要らない付属品がいっぱいついてきてクソでかいのであんまり入れたくない...でもTektroもAgilentもそう変わらんからなー。NI VISAだけ入れたいのだけど、結局こうなっちゃう。

で、次はpythonにVISAをお伝えします。

Anacondaだと

conda install -c conda-forge pyvisa

pipだと

pip install pyvisa

なんか知らんがもう入っているぞ、と言われた。何しろ当方、にんちしょうぎみなもんで。

とりあえず、

  1. import pyvisa as visa
  2.  
  3. rm = visa.ResourceManager('@ivi')
  4. print(rm.list_resources())

とする。'@ivi'はNI VISA使うぜってことで、色々なVISAが入っているときは指定したほうがいいんじゃないかなと思う。ちなみに'@ni'でもいいんだけどwarningがでちゃう。

で、実行結果

あ、LANにつながっているSDS7102をVISAに登録するのを忘れてた。で、NI-MAXを起動。

登録した。

で、テストパネルを起動して、*IDN?。...はいダメーorz

*IDN?\nでもだめ。

ではデータを読み出す秘密のコマンド"STARTBIN"

何か返してきます。ではそれはそうと。Pythonから見える?

はいだめーorz。なんなん?

NI-MAXに登録してもVISAには登録されてないってことかな。しょうがないから別の方法を考えよう。ていうかSOCKETでやる。しかし、LANが使える場合はいいけど、USBしか行けない場合はどうすればいいんじゃ?