2023年1月27日金曜日

Ubuntu20.04上でPyVISAをつかって測定器と通信

 環境はUbuntu 20 04.5

Python: 3.8.10

pip: 20.0.2

pip install pyvisaで実行しようとするも上手く動かない。

"Value Error: Could not locate a VISA implementation. Install either the IVI binary or pyvisa-py."

と言われる。どうやらpyvisa-pyを使わないといけない様子。

そこで言われた通り, pip install pyvisa-pyを実行してみる。

しかし,またimportまではできるものの,ResourceManagerを開こうとすると今度は

"NotImplementedError: Service discovery requires the zeroconf package to be installed."

と怒られる。

そこで素直にpip install zeroconf をして実行すると,今度は実行できるものの,以下のようにlist_resources()で大量の"libgpib: invalid descriptor"というエラーが。。。


しかし,サポートページによると,


とのことだったので,気にせず実行してみたところ大丈夫でした。



2023年1月16日月曜日

Ubuntu20.04(正確にはxubuntu)でGPIB通信

 何度もやっているのでさらっとできると思い込んでいましたが,なんだかんだで5時間くらいかかってしまいました。


環境: Ubuntu 20.0405 LTS

GPIBアダプタ: NI USB HS+

まず,linux-gpibパッケージをインストール。

現時点でのバージョンはlinux-gpib-4.3.5。

ダウンロードして解凍すると,いままでと様子がちがう。。。。

新たにlinux-gpib-kernel−4.3.5.tar.gzとlinux-gpib-user-4.3.5.tar.gzという二つのファイルが現れた。


なんじゃこれと思いながら,まずは両方解凍。

READMEやらなにやら読むこと数分。

どうやらkernel関係のモジュールをmakeしたあとでuser以下の設定ファイル類をインストールするという手順らしい。

まずはkernel。

こちらは単にmakeしてsudo make installでオッケー。

次にuser。

linux-gpib-user-4.3.5ディレクトリに移動し,


    $ ./configure --sysconfdir=/etc

    $ make

    $sudo make install


で完了。

次に,設定ファイル/etc/gpib.confを編集。

変えたのは一箇所だけ。

minor=0の次の行をboard_type = "ni_usb_b"になおすだけ。

ここにどんなtypeを入れればいいかは公式サイトに書いてある。


つづいて,groupの設定。

$ sudo groupadd gpib

でグループを作り,/etc/groupの最後の行に追加されたgpibの部分に以下のように自分のuser名を入れるだけ。

gpib:x:1001:<ユーザー名>

ここまでできたらシステムを再起動。

再起動後に,

$ sudo /usr/local/sbin/gpib_config

を実行する。

これはどうやら私の環境では毎回やらないとダメかもしれない。

udevの設定がうまくできればやらなくていいはず。

これで完成。


2023/03/15追記

上の手順の最後,

$ sudo /sbin/ldconfig

を忘れると,

error while loading shared libraries: libgpib.so.0: cannot open shared object file: No such file or directory

とか言われます。