Läsa Rigol DS1054Z i python.

Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Läsa Rigol DS1054Z i python.

Inlägg av Repaterion »

Tjosan!

Försöker prata python med ett rigol skop.
När jag läser via Keysight commander så får jag ut rätt värde, men via pythonscriptet får jag helt vansinniga värdet. Tex 5v ger 18, scale 5v =25.
Men HP E3647 läses rätt på båda ställena.

Skopet svara på kommandon men inte avläsning.. :roll:

Någon som har en teori?
//Rep
Användarvisningsbild
rvl
Inlägg: 5721
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Läsa Rigol DS1054Z i python.

Inlägg av rvl »

Har inget Rigolskop, men förstod ja rätt att du fick 18 när du förväntade dig 25? I såfall kanske det var 0x18 = 24.

Kanske litet debugprint av råådata vore på sin plats.
Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Re: Läsa Rigol DS1054Z i python.

Inlägg av Repaterion »

Nej det är missuppfattat.
Samma sak hemma nu med mitt eget Rigol DS1054Z skop.

Skickar in 4Vpp 1kHz.
Keysight läser av datan som 4,08Vpp.
Nat Instru: Läser samma som Keysight.
pyvisa läser av Vpp som 24 och FREQ som 17 vilket borde 1kHz vilket de andra två säger.

Det är precis som att pyvisa inte läser av rätt "minnesadress" fast skickar jag tex *IDN? då kommer hela harrangen tillbaka med serienummer, model etc men inga mätningar.
Skickar jag AUT så ställer skopet in sig, :RUN/STOP så startar/stoppar skopet.

Skall testa med en Textronix TD220 vis RS232 i morgon och se vad som händer.
Kodsnutten ser ut så här. i alla fall.

Kod: Markera allt

import pyvisa

rm = pyvisa.ResourceManager()

signal = rm.open_resource('USB0::0xF4EC::0x1103::SDG1XCBC5R0563::0::INSTR')
dso = rm.open_resource('USB0::0x1AB1::0x04CE::DS1ZA192712413::0::INSTR')

volt = dso.write(':MEAS:ITEM? VPP, CHAN1')
print(volt)
freq = dso.write(':MEAS:COUN:VAL?')
print(freq)
Utkast:
[Running] python -u "c:\temp\privat\python\DSO_test.py"
24
17

[Done] exited with code=0 in 0.523 seconds
20221116_211058.jpg
20221116_211104.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Läsa Rigol DS1054Z i python.

Inlägg av mankan »

Du ska köra dso.query, inte dso.write. Write är för kommandon du inte vill ha tillbaka data ifrån.
H.O
Inlägg: 5685
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Läsa Rigol DS1054Z i python.

Inlägg av H.O »

Eller följa .write() med .read()

Kod: Markera allt

dso.write(':MEAS:ITEM? VPP, CHAN1')
volt = dso.read()
print(volt)
Men med .query så får man automatiskt en write och en read så det är smidigare.
Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Re: Läsa Rigol DS1054Z i python.

Inlägg av Repaterion »

Jo query är praktiskt på så vis men det känns så relativt med rigol att nu tar vi QUERY nästa gång är det ? sedan write, "ready" bitarna "finns" men inte aktiva etc etc.

Men jag fick ut riktiga svar i dag, dock lite tungvindiga att hantera men det är ett steg i rätt riktning.
4,00000000000e1 är svaren.

SÅ volt t.ex skulle skrivas :CHAN1:MEAS VXXX om jag minns rätt nu.

Får läsa på om SCPI mer helt enkelt.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Läsa Rigol DS1054Z i python.

Inlägg av mankan »

Du verkar köra med 10x på proben eller så har du inte 50Ohms-terminering i DS1054-änden.
Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Re: Läsa Rigol DS1054Z i python.

Inlägg av Repaterion »

Nu har jag fått snurr på de problemen, men nu sitter jag med ett annat.
Till spänningsaggregatet så vill jag via input("bla bla bla") sätta spänning och ström via prompten tex.
men SCPI/PyVISA vill inte veta av input med de olika försöken jag testat hittills, så som konvertera till sträng, int, sätte ihop en sträng och kicka den etc.
Mitt HP piper bara irriterat på mig.

Någon som pysslat med detta?
I supply.write så har jag bara skickat med APPL nu föt att få det att fungera för stunden. Så ta inte koden allt för ordagrant.

Kod: Markera allt

def supply_measure():
    supply = rm.open_resource('ASRL10::INSTR')
    #### SÄTTER KANAL 1 TILL UTGÅNG
    chan = input('Which chanal will be used? ')
    chan = int(chan)
    if chan == 1:
        supply.write('INST:SEL OUT1')
        vlt = int(input('Volt? '))
        vlt_set = 'APPLy+{vlt}, 0.05'
        print(vlt_set)
        supply.write('APPLy 4, 0.05')
        sleep(0.05)
        supply.write('OUTPut ON')
    else :
        supply.write('INST:SEL OUT2')
        #vlt = int(input('Volt? '))
        supply.write('APPLy 15, 0.5')
        sleep(0.05)
        supply.write('OUTPut ON')

    #supply = instrument_setup(supply.write("input('Specify voltage: )"))
    pass
Användarvisningsbild
Repaterion
Inlägg: 538
Blev medlem: 4 februari 2011, 00:57:32
Ort: Gustavsfors (Lite till vänster om världens utkant)

Re: Läsa Rigol DS1054Z i python.

Inlägg av Repaterion »

Löste det med detta tillägg -> ('APPLy %f, 0.05' %vlt)
Skriv svar