趣味で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 となってしまいます。
ただしこのとき SCPI Console には、コマンドとレスポンスが表示されているので、コマンドは届いているものの VISA でレスポンスをリードすることができないようです。
#それではどうやって?
OWONのexample(C++)と
これが参考になりました。
#pythonプログラム例
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'
次回に続く