20.09.2011, 09:00
Beitrag #2
|
M Nussbaumer
Zarathustra
Beiträge: 654
Registriert seit: Sep 2009
2009 SP1
2009
EN
6300
Schweiz
|
RE: Aktueller Wert Schieberegister
(20.09.2011 08:56 )HIMI schrieb: Guten Morgen liebe LabVIEW-Freunde,
ich habe ein kleines Problem, welches für euch bestimmt leicht zu lösen ist, mich aber langsam zum verzweifeln bringt.
Ich erhalte über eine serielle Schnittstelle gewisse Informationen, je nach dem welches Steuer signal ich geschickt habe. Ich versuche die empfangenen Daten nun auszuwerten, bzw. den String aufzulösen. Alles funktioniert wunderbar bis auf eines.
Bsp: Ich schicke eine 1 und erhalte vom Gerät Spannungswerte, dann schicke ich eine 2 und erhalte Temperaturwert. Das Gerät schickt alle 500ms einen Datensatz an den PC. Über ein Schieberegister liegen mir die Datensätze in der Form vor in der ich sie auch brauche.
Jetzt zum Problem: Ich schicke die 1 und kann mit meiner Auswerteeinheit die Spannungswerte auslesen. Bin ich damit fertig sende ich die 2 und will die Tempwerte auslesen, lese ich immer ncoh Spanungswerte, da ich immer die am Anfang des Schieberegisters stehenden Daten empfange - is Mist.
Wie ist es möglich ausschließlich den aktuellen Wert des Schieberegisters anzeigen zu lassen?
Danke
HIMI
Du könntest das Schieberegister nach dem auslesen zurücksetzen (einfach leere Konstante anschliessen), oder brauchst du die Spannungswerte später noch?
Hoffe das hilft dir weiter
Gruss Marc
|
|
|
20.09.2011, 09:48
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2011 09:49 von Lucki.)
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Aktueller Wert Schieberegister
Das Schieberegister ist ja für die "Vergangenheitsbewältigung" da, also um Werte aus vorangegangenen Schleifendurchläufen noch zur Verfügung zu halten. Wenn Du dich immer nur für den aktuellen Wert interessierst, muß man sich doch fragen: warum überhaupt Schieberegister?
|
|
|
20.09.2011, 10:09
Beitrag #5
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Aktueller Wert Schieberegister
Hallo HIMI,
ich glaube, es wird Zeit, mal ein VI anzuhängen... (Oder wenigstens ein Bild des BD.)
|
|
|
20.09.2011, 10:51
Beitrag #6
|
|
|
20.09.2011, 10:54
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2011 10:55 von GerdW.)
Beitrag #7
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Aktueller Wert Schieberegister
Hallo HIMI,
einfachste Lösung: Lass das uninitialisierte SR einfach weg... (Momentan führt es bei langen Messungen zu Speicherproblemen!)
- Die nur einmal ausgeführte Schleife ist auch unnötig!
- Und dann bitte mal Links-nach-Rechts-Verdrahtung einführen!
|
|
|
20.09.2011, 13:34
Beitrag #8
|
HIMI
LVF-Padawan
Beiträge: 40
Registriert seit: Apr 2011
2016
2010
EN
09385
Deutschland
|
RE: Aktueller Wert Schieberegister
Ihr habt schon gedacht ihr seid mich los, aber HAHA, hier bin ich wieder.
@Gerd: Deinen Vorschlag hatte ich auch schon mal probiert, aber da tritt mein Problem nur später auf. Ich muss aus dem empfangenen String bestimmte Werte anzeigen je nach dem welches Steuersignal gesendet wurde. Jetzt habe ich wieder das Problem, dass die Werte je nach Ankunft lustig flackern und das soll nicht sein. Ich muss sie also puffern. Demzufolge muss der alte Wert direkt mit dem neuen überschrieben werden. Das hätte ich nun wieder mir einem SR gemacht, aber das habe ich ja schon erfolglos mit dem ganzen Stringblock versucht.
Ich komme mir schon etwas blöd vor, dass ich so ein scheinbar einfaches Problem nicht lösen kann. Hab schon ganz andere Sachen mit LV umgesetzt.
|
|
|
20.09.2011, 13:38
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2011 13:40 von GerdW.)
Beitrag #9
|
GerdW
______________
Beiträge: 17.465
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Aktueller Wert Schieberegister
Hallo HIMI,
du musst dein SR auch wieder leeren:
Immer wenn eine Meldung komplett erhalten wurde (und ausgewertet ist), musst du sie auch wieder aus dem SR "wegschmeißen...
Anmerkung:
Hast du ein ordentliches Endezeichen bei deiner RS232-Kommunikation? Dann verwende dieses und verzichte auf BytesAtPort...
|
|
|
| |