0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OWON VDS3104 をpythonで制御 (その1)

Last updated at Posted at 2021-08-22

趣味でUSBオシロスコープのOWON VDS3104(LAN無しモデル)を使っています。このオシロ、ハードウェア性能は 4ch 100MHz 1GS/s となかなか気に入っていますが、アプリがイマイチなので、ptyhonで制御して少しでも便利に使いたいと思います。

#環境
OS : Windows 10
対象機器 : VDS3104
アプリ : OWON VDS 2.0.17
言語 : python 3.7

#使用方法
PCにVDS3104をUSB接続しアプリ(VDS)を起動すると、オシロスコープの画面が現れます。外部のプログラムから制御する場合もVDSを立ち上げておく必要があります。VDSで Function menu->Utility->SCPI Console を起動すると、受け取ったSCPIコマンドとそのレスポンスを確認することができます。なお、この画面にキーボードから書き込むこともできますが、何も起きないので、直接書いてもコマンドとして認識してくれるわけではないようです。

#VISAじゃない
測定器の制御といえば VISA と思っていたのですが、VDS3104 は VISA では通信できないようです。Keysight Connection Expert で Verify Connection しても VI_ERROR_TMO となってしまいます。
image.png
ただしこのとき SCPI Console には、コマンドとレスポンスが表示されているので、コマンドは届いているものの VISA でレスポンスをリードすることができないようです。
image.png

#それではどうやって?
OWONのexample(C++)と

これが参考になりました。

#pythonプログラム例

vds01.py
from socket import AF_INET, socket, SOCK_STREAM, setdefaulttimeout

class LanSource:
    def __init__(self, address):
        #param address: (ip, port) -> (str, int)
        super(LanSource, self).__init__()
        setdefaulttimeout(5)
        client = socket(AF_INET, SOCK_STREAM)
        client.connect(address)
        client.settimeout(5)
        self.address = address
        self.client = client
    def close(self):
        self.client.close()

if __name__ == '__main__':
    ls = LanSource(('localhost', 5188))
    ls.client.send(b'*IDN?')
    res = ls.client.recv(1024)
    print(res)
    ls.close()

これで ID character string を読みだすことができました。

b'OWON,VDS3104,VDS31041506121,V4.0'

次回に続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?