 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
mgrm2 Neznanec

Pridružen-a: Sre 24 Dec 2008 12:46 Prispevkov: 6 Aktiv.: 0.03 Kraj: Kaplja vas
|
Objavljeno: Sob Sep 11, 2010 2:42 pm Naslov sporočila: Labview in serijska komunikacija |
|
|
Pozdravljeni,
S programom Labview želim narediti grafični vmesnik in krmilno logiko. Namreč v mislih imam, da bo Labview master, uC pa slave. Mikrokontoler bo po serijskem neprestano pošiljal stanje senzorjev (temperature, vrednosti adcjev..), nakar mu bo labview po izračunih pošiljal nastavitve parametrov (duty cycle 30, prižgi to, ugasni ono,...).
Z mikrokrmilnikom ne bom imel težav ustavi pa se mi pri razvojnem orodju Labview in sicer že pri upravljanu s serijskim portom. Namreč zamislil sem si, da po serijskem prihajajo podatki tipa string prim.:temperature (T1:12,6 T2:70,5 T3:-5,2 ....) nakar jih labview selektira in prikaže. A po testiranjih sem ugotovil, da sprejemanje ni stabilno oz. prihaja do napak pri branju (bvte counter ne sporoča število bytov na vodilu). Zdaj nvm ali grem v pravo smer ali bi se mogel lotiti drugače.
Ker sem z Labview začetnik, bi prosil za kakšne primere in mogoče za boljšo zamisel komunikacijskega protokola.
Hvala
Opis: |
|
 Download |
Ime datoteke: |
Serijska.rar |
Velikost datoteke: |
16.04 KB |
Downloadano: |
27 krat |
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.67 Kraj: Kranj - struževo
|
|
Nazaj na vrh |
|
 |
mgrm2 Neznanec

Pridružen-a: Sre 24 Dec 2008 12:46 Prispevkov: 6 Aktiv.: 0.03 Kraj: Kaplja vas
|
Objavljeno: Sob Sep 11, 2010 11:54 pm Naslov sporočila: |
|
|
Aly tvoj program sem že pregledal. Je kar kompleksen in se ne znajdem najbolje. Najbolje sem se poglobil v sprejemanje na serijskem. Recimo ko prejme temperaturo kje določi katera je katera? Ker ne vem točnega načina komunikacije in le predvidevam iz primera, da se na serijskega ne pošlje nobena zahteva uC za "branje senzorja" oz.oddaja podatka na serijskega. Vsaj toliko kot gledam smeri puščic za serijski port. Zato lahko, da se motim.
L.P.
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.67 Kraj: Kranj - struževo
|
Objavljeno: Ned Sep 12, 2010 12:11 am Naslov sporočila: |
|
|
Kaj PC pošilja, lahko vidiš na tej spletni strani spodaj:
Tole boš lažje našel v programu.
Koliko se spomnim, pošlje ukaz in čaka na povratno informacijo.
ukazi PC -> mikrokontroler so sledeči: (preko RS-232)
Citiram: |
--LOW-LEVEL:
Z = reset mikrokontrolerja
R = reset One-Wire protokola (vrne 1 =ok ali 0, če se noben ne javi - ascii)
X = pošlji podatek (1 byte) na OW [X + vpiši 1 byte, vrne OK] = samo ukaz za pisanje na OW
Y = preberi podatek (1 byte) z OW [Y + preberi 1 byte] = samo ukaz za branje z OW
--MEDIUM-LEVEL:
M = match ROM (pokliče en sam čip v verigi) [M + vpiši 8 bytov, vrne OK]
S = skip ROM (pokliče vse čipe v verigi) [S]
V = convert T (začetek pretvorbe temp. in drži močan pull-up na liniji in čaka na zaključek) [T]
--HIGH LEVEL:
P = read Scratchpad (branje iz registrov - RAM) [P + preberi 9 bytov] Z resetom zaključi.
D = read ROM (prebere ROM enega samega čipa) [D + preberi 8 bytov]
d = read ROM in izpis v ASCII.
Q = reset, skip-ROM, convertT, čakaj, reset, 2x read byte, pretvorba in izpis v ASCII.
--Generalni IO:
a,b,c = izbrani pin (a,b,c) je izhod in ničla.
A,B,C = izbrani pin (a,b,c) je izhod in enka.
1,2,3 = izbrani pin (a,b,c) je vhod in vrne stanje na vhodu (0 ali 1 ascii).
|
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
compaq Član


Pridružen-a: Tor 10 Mar 2009 12:53 Prispevkov: 100 Aktiv.: 0.50 Kraj: Maribor
|
Objavljeno: Sre Maj 04, 2011 1:32 pm Naslov sporočila: |
|
|
Imam podobno zamisel glede Labview-a, v mojem primeru pa bi samo sprejemal podatke (narisal graf) preko USB-ja, ki jih pošilja 18f4550...
Se pravi samo v eno smer.
lp
_________________ Za vsakega drifterja raste robnik!! |
|
Nazaj na vrh |
|
 |
dkone Član

Pridružen-a: Sre 07 Mar 2007 18:53 Prispevkov: 2116 Aktiv.: 9.50 Kraj: Krško
|
Objavljeno: Sre Maj 04, 2011 1:38 pm Naslov sporočila: |
|
|
V priponki ti pošiljam primere LabViewa za RS232.
Opis: |
|
 Download |
Ime datoteke: |
RS232.rar |
Velikost datoteke: |
195.07 KB |
Downloadano: |
16 krat |
_________________ Denis |
|
Nazaj na vrh |
|
 |
opa177 Neznanec

Pridružen-a: Ned 17 Jun 2012 23:18 Prispevkov: 5 Aktiv.: 0.03
|
Objavljeno: Ned Jan 20, 2013 6:07 pm Naslov sporočila: Labview+Arduino problem |
|
|
Glede Labviewa sem bolj začetnik. Na internetu sem pobral nek program in ga malo predelal. Z Arduino Nano berem vrednosti 2 senzorjev in nato podatke pošiljam prek usbja do Labviewa, kjer nato izrisujem grafa. Problem se pojavi pri read bufferju. Po določenem času mi začne vrednost bytes at port rasti dokler ne preseže 4096(max. velikost bufferja) in nato mi vrne sledeči error:
VISA: (Hex 0xBFFF006C) An overrun error occurred during transfer. A character was not read from the hardware before the next character arrived.
Poskušal sem že svašta ampak še vedno se mi pojavla ta error. Spreminjal sem delay pri while zanki, dodal delay pri kodi v arduinu, poskusil sem .vi iz examplov...pač kar so mi svetovali na NI forumu..
Ne vem ali je problem v Labviewu ali v Arduinotu. Do tega naj bi prišlo ker naj Labview ne bi uspel dovolj hitro brati kar Arduino pošilja. Če se komu da pogledati sledečo kodo in program v Labviewu bi bil hvaležen.
Koda na Arduino Nano:
int a0=0;
int a1=0;
void setup() {
Serial.begin(9600);
}
void loop() {
a0 = analogRead(A0);
delay(1);
a1=analogRead(A1);
delay(1);
Serial.print('H');
Serial.print(',');
Serial.print(a0);
Serial.print(',');
Serial.print(a2);
Serial.print(',');
Serial.println();
}
Opis: |
|
 Download |
Ime datoteke: |
SerialReadLabview.rar |
Velikost datoteke: |
24.54 KB |
Downloadano: |
10 krat |
|
|
Nazaj na vrh |
|
 |
noname Član

Pridružen-a: Tor 28 Nov 2006 19:10 Prispevkov: 222 Aktiv.: 0.98 Kraj: Maribor
|
Objavljeno: Ned Jan 20, 2013 9:34 pm Naslov sporočila: |
|
|
V kodi vidim da imaš a2 namesto a1 . Glede tvojega problema pa prosim objavi VI od labviewa v verziji 2010 ker verzije 2012 nimam. Pa popravi si kraj v profilu ..
Lp, Uroš
|
|
Nazaj na vrh |
|
 |
rbogomir Član

Pridružen-a: Tor 13 Apr 2004 13:58 Prispevkov: 40 Aktiv.: 0.17 Kraj: Cerkno
|
Objavljeno: Pon Jan 21, 2013 8:56 am Naslov sporočila: |
|
|
Če število znakov v vmesniku narašča, potem ti Arduino očitno pošilja več znakov, kot jih ti bereš. Priponke ne morem pogledati, ker nisem dovolj aktiven. Če lahko, objavi sliko diagrama.
Preveri ali imaš pravilno nastavljen zaključni znak, če ga uporabljaš, oz. ali pravilno določiš število znakov, ki bi jih rad prebral.
lp, Mirko
|
|
Nazaj na vrh |
|
 |
opa177 Neznanec

Pridružen-a: Ned 17 Jun 2012 23:18 Prispevkov: 5 Aktiv.: 0.03
|
Objavljeno: Pon Jan 21, 2013 11:45 am Naslov sporočila: |
|
|
Pošiljam printscreen programa..
Opis: |
|
Velikost datoteke: |
179.67 KB |
Pogledana: |
22 krat |

|
Opis: |
|
Velikost datoteke: |
174.33 KB |
Pogledana: |
6 krat |

|
|
|
Nazaj na vrh |
|
 |
domeniku Neznanec

Pridružen-a: Tor 13 Sep 2011 20:45 Prispevkov: 6 Aktiv.: 0.04 Kraj: Novo mesto
|
Objavljeno: Tor Jan 22, 2013 3:48 pm Naslov sporočila: |
|
|
Načeloma je seriska komunikacija zelo stabilna. Kako hitro dobivaš podatke na serijski port lahko preveriš v terminalu (npr. Hyperterminal), samo najprej pravino nastavi paramete komunikacije. Dvomim da LV ne bi utegnil dovolj hitro brati iz bufferja. Je mogoče, da si znotraj stringa spregledel kakšne kontrolne znake, ki jih vidiš če string indikator preklopiš v "\ Codes Display" ali v "Hex Diplay". Desni klik na STRING indikator in nato izbereš željeni način prikaza.
|
|
Nazaj na vrh |
|
 |
opa177 Neznanec

Pridružen-a: Ned 17 Jun 2012 23:18 Prispevkov: 5 Aktiv.: 0.03
|
Objavljeno: Čet Jan 24, 2013 9:52 am Naslov sporočila: |
|
|
Sem malo spremenil program tako, da mi zdaj načeloma dela. Vendar če dodam filter za glajenje pred grafa se mi pojavi enaka napaka. Ali je možno da filter v zanki toliko vpliva na delovanje? Da nekako upočasni sistem..?
Opis: |
|
Velikost datoteke: |
129.79 KB |
Pogledana: |
4 krat |

|
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 500 dni
Powered by phpBB © 2001, 2005 phpBB Group
|