Läsa Rigol DS1054Z i python.
- Repaterion
- Inlägg: 551
- Blev medlem: 4 februari 2011, 00:57:32
- Ort: Gustavsfors (Lite till vänster om världens utkant)
Läsa Rigol DS1054Z i python.
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..
Någon som har en teori?
//Rep
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..
Någon som har en teori?
//Rep
Re: Läsa Rigol DS1054Z i python.
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.
Kanske litet debugprint av råådata vore på sin plats.
- Repaterion
- Inlägg: 551
- 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.
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.
Utkast:
[Running] python -u "c:\temp\privat\python\DSO_test.py"
24
17
[Done] exited with code=0 in 0.523 seconds
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)
[Running] python -u "c:\temp\privat\python\DSO_test.py"
24
17
[Done] exited with code=0 in 0.523 seconds
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Läsa Rigol DS1054Z i python.
Du ska köra dso.query, inte dso.write. Write är för kommandon du inte vill ha tillbaka data ifrån.
Re: Läsa Rigol DS1054Z i python.
Eller följa .write() med .read()
Men med .query så får man automatiskt en write och en read så det är smidigare.
Kod: Markera allt
dso.write(':MEAS:ITEM? VPP, CHAN1')
volt = dso.read()
print(volt)
- Repaterion
- Inlägg: 551
- 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.
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.
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.
Re: Läsa Rigol DS1054Z i python.
Du verkar köra med 10x på proben eller så har du inte 50Ohms-terminering i DS1054-änden.
- Repaterion
- Inlägg: 551
- 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.
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.
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
- Repaterion
- Inlägg: 551
- Blev medlem: 4 februari 2011, 00:57:32
- Ort: Gustavsfors (Lite till vänster om världens utkant)