Diskuze: Odchytávání sériové komunikace multimetru

Volná diskuze Odchytávání sériové komunikace multimetru

Avatar
Ondrej Telka
Člen
Avatar
Ondrej Telka:

Ahoj,
Nedávno jsem si pořídil multimetr EM6000 značky all-sun, který má možnost připojit se přes USB k počítači a odesílat do něj naměřená data. Je k němu dodávaná i aplikace. Napadlo mě, že si naprogramuji vlastní aplikaci pro komunikaci s tímto multimetrem v C#, jenomže, po prozkoumávání komunikace pomocí serial monitoru používaném v arduino IDE přicházely z multimetru jenom zvláštnosti (f~†~řž~žţžţž€ a jiné). Potřeboval bych tedy nějaký program nebo nějaký způsob, jak tuto komunikaci rozluštit.

 
Odpovědět 30. července 16:05
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Ondrej Telka
Martin Dráb:

Ten multimetr zřejmě používá binární protokol, což je rozumné, pokud přenáší velké množství dat (resp. umožňuje to). Takže se spíš poohlédni po serial monitoru, který umí zobrazovat data binárně (např. jednotlivé bajty). Nevím, zda toto serial monitor v adruinu umí.

EDIT: RealTerm by mohl být to pravé.

Editováno 30. července 18:18
Nahoru Odpovědět 30. července 18:17
2 + 2 = 5 for extremely large values of 2
Avatar
Ondrej Telka
Člen
Avatar
Odpovídá na Martin Dráb
Ondrej Telka:

RealTerm je super, ale jaksi nemůžu přijít na to, jak z toho dostat ty naměřený hodnoty.

Ukázka:
00011110 01111110 10000000 00000000 00000000 00011110 01100110 01111110
10000110 01111110 11111000 10011110 01111110 10011110 11111110 00011110
01111110 10000000 00000000 00000000 00011110 01100110 01111110 10000110
01111110 11111000 10011110 01111110 10011110 11111110 00011110 01111110
10000000 00000000 00000000 00011110 01100110 01111110 10000110 01111110
11111000 10011110 01111110 10011110 11111110 00011110 01111110 10000000
00000000 00000000 00011110 01100110 01111110 10000110 01111110 11111000
10011110 01111110 10011110 11111110 00011110 01111110 10000000 00000000
00000000 00011110 01100110 01111110 10000110 01111110 11111000 10011110
01111110 10011110 11111110 00011110 01111110 10000000 00000000 00000000
00011110 01100110 01111110 10000110 01111110 11111000 10011110 01111110
10011110 11111110 00011110 01111110 10000000 00000000 00000000 00011110
01100110 01111110 10000110 01111110 11111000 10011110 01111110 10011110
11111110 00011110 01111110 10000000 00000000 00000000 00011110 01100110
01111110 10000110 01111110 11111000 10011110 01111110 10011110 11111110
00011110 01111110 10000000 00000000 00000000 00011110 01100110 01111110

 
Nahoru Odpovědět 31. července 12:01
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Převedeno na text to je

~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~†~øž~žþ~€f~

Nějak z toho tuším formát dat, ale dokud nebudu vědět, co si měřil a co bylo na displayi, tak z toho nic moc nezjistim.

Nahoru Odpovědět  +1 31. července 12:12
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Ondrej Telka
Člen
Avatar
Ondrej Telka:

To už nevím ani já, tak znova: měřil jsem odpor, na displayi byla hodnota 46.49, automatické nastavování rozsahu na kΩ, a tady jsou data:

01100110 01111110 10000110 01111110 01100000 01111110 00011110 01111110
11100110 10011110 00011000 00000000 00000000 01100110 01111110 10000110
01111110 01100000 01111110 00011110 01111110 11100110 10011110 10011000
00011000 00000000 00000000 01100110 01111110 10000110 01111110 01100000
01111110 00011110 01111110 11100110 10011110 10011000 00011000 00000000
00000000 01100110 01111110 10000110 01111110 01100000 01111110 00011110
01111110 11100110 10011110 10011000 00011000 00000000 00000000 01100110
01111110 10000110 01111110 01100000 01111110 00011110 01111110 11100110
10011110 10011000 00011000 00000000 00000000 01100110 01111110 10000110
01111110 01100000 01111110 00011110 01111110 11100110 10011110 10011000
00011000 00000000 00000000 01100110 01111110 10000110 01111110

Převedeno na "text" by to mohlo být:
f~†~~~&#230;&#382;f~&#8224;~~~枘f~†~~~&#230;&#382;&#732;f~&#8224;~~~枘f~†~~~&#230;&#382;&#732;f~&#8224;~~~枘f~†~

jo radši si to převeď sám, já jsem použil nějaký náhodný online převodník

Editováno 31. července 12:54
 
Nahoru Odpovědět 31. července 12:53
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Můj převod mi vychází

f~&#8224;~`~~&#230;&#382;f~&#8224;~`~~&#230;&#382;&#732;f~&#8224;~`~~&#230;&#382;&#732;f~&#8224;~`~~&#230;&#382;&#732;f~&#8224;~`~~&#230;&#382;&#732;f~&#8224;~`~~&#230;&#382;&#732;f~&#8224;~

Asi to jeden z nás dělá blbě, du si to po sobě ještě zkontrolovat.
Asi je jasné, že se používá ; na oddělení, teď jde o to, jak vyluštit hodnoty. Čekal bych, že se v tom bude posílat co se měří a naměřená hodnota. Jenže 46.49 mi tu nikde nesedí.
Zkus ještě hodit ukázku z měření napětí a proudu + i jaké rozsah to vybralo.

Nahoru Odpovědět 31. července 13:01
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Ondrej Telka
Člen
Avatar
Ondrej Telka:

Napětí, obyč. volt, hodnota: 4.913

11100000 11111110 10000000 00000000 01100000 00000000 01100110 01111110
10000110 01111110 00011000 01111110 01111110 10000000 01100110 11100000
11111110 10000000 00000000 01100000 00000000 01100110 01111110 10000110
01111110 00011000 01111110 01111110 10000000 01100110 11100000 11111110
10000000 00000000 01100000 00000000 01100110 01111110 10000110 01111110
00011000 01111110 01111110 10000000 01100110 11100000 11111110 10000000
00000000 01100000 00000000 01100110 01111110 10000110 01111110 00011000
01111110 01111110 10000000 01100110 11100000 11111110 10000000 00000000
01100000 00000000 01100110 01111110 10000110 01111110 00011000 01111110
01111110 10000000 01100110 11100000 11111110 10000000 00000000 01100000

Proud, ampér, hodnota: 1.663 nebo 1.664 (no nebo tak nějak přibližně)

01100110 11111000 00011110 00011110 10000000 00000000 10000000 10000000
00000000 01100110 01111110 10000110 01111110 00000000 01100110 11111000
00011110 00011110 10000000 00000000 10000000 10000000 00000000 01100110
01111110 10000110 01111110 00000000 01100110 11111000 00011110 01111000
10000000 00000000 10000000 10000000 00000000 01100110 01111110 10000110
01111110 00000000 01100110 11111000 00011110 01111000 10000000 00000000
10000000 10000000 00000000 01100110 01111110 10000110 01111110 00000000
01100110 11111000 00011110 01111000 10000000 00000000 10000000 10000000
00000000 01100110 01111110 10000110 01111110 00000000 01100110 11111000
00011110 01111000 10000000 00000000 10000000 10000000 00000000 01100110
01111110 10000110 01111110 00000000 01100110 11111000 00011110 01111000

jo a jaký nástroj používáš k tomu převodu?

 
Nahoru Odpovědět 31. července 13:12
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Ondrej Telka
Adam Ježek:

Hodin jsem do googlu binary to text a použil první výsledek.
Teď jsem zkusil to zkopírovat, rozsekat v pythonu na pole a převést podle tohoto:

for i in vstup:
        print(i, end="\t")
        print(int(i,2), end="\t")
        print(chr(int(i,2)), end="\t")
        print(i[::-1], end="\t") #kdyby byl binární zápis pozpátku, tak to otočíme a uděláme to samý
        print(int(i[::-1],2), end="\t")
        print(chr(int(i[::-1],2)))

Vychází to ještě divnějc, jen kvůli nějakým znakům se to nedá ani zkopírovat :D
V první řadě se pořádně podívam na ten převod, možná to zkusim ručně, a pak zkusim vyluštit i ty měření napětí a proudu

Nahoru Odpovědět 31. července 13:54
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Ondrej Telka
Člen
Avatar
 
Nahoru Odpovědět 31. července 14:20
Avatar
David Oczka
Redaktor
Avatar
Odpovídá na Ondrej Telka
David Oczka:

Přijde mi velice zvláštní ten Tvůj přístup k měření...

Co takhle zkusit nastavit rozsah 6 V (rozlišení by mělo být podle dokumentace 1 mV), změřit minimální hodnotu 0 V, zapsat si ten výsledek (tu binární zprávu), pak naměřit maximální hodnotu, tedy 6 V, a pracovat s tímhle?

Vzhledem k tomu, že výrobce dodává vlastní aplikaci, ve které ty výsledky zobrazuješ, tak je možné, že přepočet je realizován až v té aplikaci, a tak data mohou být poslána pouze jako reference z A/D převodníku...

Doporučil bych tedy změřit minimum, maximum a pár hodnot někde mezi tím. A jako kontrolu bych také zkontroloval, zdali se hodnoty na multimetru neliší s těmi hodnotami v té jejich aplikaci (To by mohl být důkaz dvojího výpočtu).

Ovšem možná je to špatná rada, protože nevím, jestli máš přístup ke stabilnímu zdroji pro ta daná napětí...

 
Nahoru Odpovědět  +1 1. srpna 13:41
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.