先日、手持ちのオシロスコープEDUX1052GでHislipモードを見つけたが、接続の仕方がわからなかった。
試してみるうちに、Pyvisaのリソースマネージャに表示されないが無理やりHislipモードのVISA機器名でOpenしてみると、それでも動作することが分かった。
ちょっと目にはわからなかったが、100kポイントの2Byteデータを100回取り込んで、SAVEさせてみた。
通常のVISA機器名の場合、45秒かかったが、HislipモードのVISA機器名を指定すると、35秒だった。約2割程度高速になっただけだった。
転送レートは、200kB/0.35=571kB/Sec程度だった。
これが実力だとするとちょっと期待外れだった。
インターフェースの帯域ギリギリまで使えるかと期待したが、ちょっと違うようだ。
使用した評価プログラム
import pyvisa
import datetime
import time
import csv
rm = pyvisa.ResourceManager()
print(rm.list_resources())
#inst=rm.open_resource('TCPIP::192.168.1.3::INSTR')
inst=rm.open_resource('TCPIP::192.168.1.3::hislip0::INSTR')
#inst = rm.open_resource('USB0::0x2A8D::0x039B::CN60011000::0::INSTR')
inst.timeout=10000
print(inst.query("*IDN?"))
inst.write('*rst')
time.sleep(1)
inst.write('ACQuire:TYPE HRES')
inst.write('CHANnel1:SCALe 0.5')
inst.write('TIMebase:MODE main')
inst.write('TIMebase:SCALe 0.0002')
inst.write('WGEN:FUNCtion sin')
inst.write('WGEN:FREQuency 1000')
inst.write('WGEN:VOLTage 0.5')
inst.write('WGEN:OUTPut 1')
#inst.write('HARDcopy:INKSaver 0')
inst.write('WAVeform:FORMat WORD')
inst.write('WAVeform:POINts:MODE MAX')
inst.write('WAVeform:POINts 200000')
#inst.write('WAVeform:PREamble?')
#pre_dat=inst.read()
time.sleep(1)
inst.write('STOP')
iteration=100
start=time.time()
wfm_dat=
for i in range(iteration):
values=
TRGstate=0
inst.write('single')
while (TRGstate<1):
TRGstate=int(inst.query('TER?'))
values=inst.query_binary_values('waveform:DATA?', datatype='h', is_big_endian=True)
# data type
#'b': byte (1 bytes)
#'B': unsigned int (1 bytes)
#'h': short (2 bytes)
#'H': unsgined short (2 bytes)
#'i': int (4 bytes)
#'I': unsigned int (4 bytes)
#'f': int (8 bytes)
#'F': unsigned int (8 bytes)
#
wfm_dat.append(values)
print(time.time()-start)
now = datetime.datetime.now()
flname = 'image_' + now.strftime('%Y%m%d_%H%M%S%f') + '.csv'# Save display data values to file.
#print(wfm_dat)
#print(inst.query('WAVEFORM:PREAMBLE?'))
with open(flname, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(wfm_dat)
file.close()