INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

lesen von der seriellen schnittstelle



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

12.09.2005, 14:54
Beitrag #1

roman_bock Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2005



kA



lesen von der seriellen schnittstelle
hi!
ich hab da ein spezielles problem!

meine aufgabenstellung umfasste das sekündliche einlesen von der seriellen schnittstelle.
ich hab das ganze folgendermaßen realisiert:
es wird in einer while schleife abgefragt wieviele bytes am seriellen eingang(bei mir immer 19) liegen und anschließend immer ein byte von der seriellen gelesen
die schleife läuft solange,bis ein zähler den stand 19 erreicht;der string wird dann zerlegt und weiterverarbeitet
das ganze funktioniert auch tadellos

folgendes:
will ich nun eine zweite abbrechbedingung für die schleife hinzufügen (z.b sollte dreimal beim einlesen eine null an der seriellen liegen,daß heißt es befindet sich kein string an der seriellen,so soll die schleife abgebrochen werden und nicht endlos weiterlaufen,weil der zählstand 19 nicht erreicht wird)
ich hab das dies ebenfalls realiesiert.man braucht ja nur auf null abfragen und ein oder gleid dazugeben.

mein problem:
im highlight modus funktioniert das programm
befinde ich mich im normalen modus,so erhalte ich ständig null als ausgangsstring

wär echt totall nett,wenn mir da jemand weiterhelfen könnte.

ich denke an meinen abbruchbedingungen für die schleife liegt es nicht.
hab schon mehrere bedingungen dafür entwickelt und alle haben im highlight modus funktioniert.

gruss
roman
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.09.2005, 15:03
Beitrag #2

Buhrz Offline
LVF-Stammgast
***


Beiträge: 407
Registriert seit: Oct 2004

1.2 - 2015
1987
EN

22844
Deutschland
lesen von der seriellen schnittstelle
Hi Roman

Ich glaube das du ein zeit problem hast. Im hight light modus läuft dein programm sehr langsam und du hast immer was an der schnittstelle. läuft nun dein programm normal so hast du wahrscheinlich nicht immer daten an der schnittstelle.

gruß

jürgen

A old LabVIEW User
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 06:42
Beitrag #3

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
lesen von der seriellen schnittstelle
na buhrz, das kanns doch auch net sein, wenn er mit dem property node arbeitet und den puffer staendig abfraegt!

ich wuerde drauf tippen, dass deine "logik" zur eruierung der 3 aufeinander folgenden "0" falsch ist...
-> die frage ist jetzt nur noch, warum fkt. es im highlight modus +gruebel gruebel+ :roll: :roll:

hmmm, hmmmmmmmmmmm weilst da niemals 3nullen hintereinander bekommst bzw. bekommen hast?! Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 07:24
Beitrag #4

roman_bock Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2005



kA



lesen von der seriellen schnittstelle
hi!

kann mir nicht vorstellen,dass es ein problem mit der zeit gibt.

die drei nullen bekomm ich auch.

ich versteh es nur nicht,warum es im highlight modus tadellos funktioniert und im normalbetrieb nicht.

ich werd euch mal das programm mitschicken.

wenn ihr zeit habt,könnt ihr ja einen blick drauf werfen.

würd mich über jede antwort freuen.

gruss
roman


Angehängte Datei(en)
Sonstige .vi  Sunmaster130S_v7.vi (Größe: 202,52 KB / Downloads: 225)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 07:40
Beitrag #5

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
lesen von der seriellen schnittstelle
generell ist mal zu sagen:
1. zieh die serial init unbedingt vor die schleife!
2. so wie ich die logik in deiner "read schleife" verstehe, kann das gar net fkt, weil du immer nach 3mal false abbrichst - sprich, sobald einmal eine zahl kommt, wird der zaehler nicht zurueck gesetzt - zudem machst du es auch nicht davon abhaengig, was am port gelesen wird, sondern lediglich davon, ob was im puffer der seriellen steht oder nicht!

Deine Aussage vorhin bezueglich "du liest alle sekunden was vom port" stimmt auch nicht, denn die schleife laeuft ungetimed!
Gib mal einen chronographen mit 1sec wartezeit rein und beobachte nochmals was passiert - die duerfte dein generelles problem beheben!
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 09:33
Beitrag #6

roman_bock Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2005



kA



lesen von der seriellen schnittstelle
hi!

wollt dir noch was wichtiges zeigen.

die Version sunmaster130S_v2.vi funktioniert tadellos.
gibt man jetzt die erkennung hinzu,ob bytes an der seriellen anliegen (Version sunmaster130S_v7.vi) funktioniert nichts.das programm liefert ständig als ausgangstring "xy". es erkennt nicht mehr,dass doch bytes anliegen.

wär echt voll toll,wenn du noch einen tipp für mich hättest.

hab das mit der init probiert.dann funktioniert aber nichts mehr.

gruss
roman


Angehängte Datei(en)
Sonstige .vi  Sunmaster130S_v7.vi (Größe: 202,52 KB / Downloads: 188)

Sonstige .vi  Sunmaster130S_v2.vi (Größe: 184,72 KB / Downloads: 203)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 12:06
Beitrag #7

Buhrz Offline
LVF-Stammgast
***


Beiträge: 407
Registriert seit: Oct 2004

1.2 - 2015
1987
EN

22844
Deutschland
lesen von der seriellen schnittstelle
Hi freedive

Vielleicht postet er ja noch sein VI hier dann können wir mal schauen was er so macht

Gruß

Jürgen

A old LabVIEW User
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 12:18
Beitrag #8

roman_bock Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2005



kA



lesen von der seriellen schnittstelle
hi!

hab mein vi jetzt hineingestellt.

hab eine zeitverzögerung in die while schleife gegeben.
in diesem vi ist die verzögerung noch nicht enthalten.

jetzt funktioniert es.

gruss
roman


Angehängte Datei(en)
Sonstige .vi  Sunmaster130S_v7.vi (Größe: 202,52 KB / Downloads: 181)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 12:25
Beitrag #9

roman_bock Offline
LVF-Grünschnabel
*


Beiträge: 12
Registriert seit: Sep 2005



kA



lesen von der seriellen schnittstelle
hi!

hab ich noch vergessen zum sagen. die zeitverzögerung in der kleineren while schleife muss mindestens 160ms sein,sonst funktioniert das programm nicht.
nächste problem wär dann,dass ich nicht mehr auf eine sekunde als intervall komm.
kleinster messzyklus wär dann nur mehr 4s.

gruss
roman
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.09.2005, 12:51
Beitrag #10

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
lesen von der seriellen schnittstelle
Hallo Roman,

roman_bock schrieb:die Version sunmaster130S_v2.vi funktioniert tadellos.
gibt man jetzt die erkennung hinzu,ob bytes an der seriellen anliegen (Version sunmaster130S_v7.vi) funktioniert nichts.das programm liefert ständig als ausgangstring "xy". es erkennt nicht mehr,dass doch bytes anliegen.

Aufgrund des Strings den du an das Gerät sendest und dem was ich der Rückantwort entnehmen kann, vermute ich, dass das Gerät ein mehr oder minder vernünftiges Protokoll abwickelt. Es wäre aus meiner Sicht besser, wenn du dieses zuminest Ansatzweise implementieren würdest.

So wie du das jetzt machst, versuchst du auf den Zustand "das Gerät sendet keine Zeichen mehr" zu warten. Das funktioniert aber nicht, weil du dabei überhaupt keinen Zeitraum definiert hast innerhalb dessen das Gerät normalerweise seine Zeichen sendet (timeout). Oder anders formuliert, dein "Timeout" ist erheblich niedriger, als die Zeit zum übertragen eines einzelnen Zeichens bei 1200 Baud.

Vorschlag: Wirf die Schleife komplett raus und setze den timeout für die serielle Kommunikation auf einen vernünftigen Wert innerhalb dessen dein Gerät üblicherweise antwortet. Anstatt nur ein Byte zu lesen, liest du gleich alle 19 Bytes. Bei der Konfiguration der seriellen Schnittstelle setzt du den Eingang "Enable Termination Char" auf FALSE.


Angehängte Datei(en) Thumbnail(s)
   

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  VISA: I/O Fehler beim Auslesen einer seriellen Schnittstelle konne 5 7.619 19.07.2017 13:04
Letzter Beitrag: konne
  Alle seriellen Schnittstellen auslesen Exl 1 5.068 01.04.2017 16:41
Letzter Beitrag: GerdW
  Modul am seriellen Port ansprechen Charly82 2 5.921 22.05.2016 07:34
Letzter Beitrag: Charly82
  Daten von Seriellen Port in While-Schleife auswerten Bensch 4 6.269 26.10.2015 11:28
Letzter Beitrag: Bensch
  Problem bei seriellen Schnittstellen gammel 7 7.372 27.10.2014 13:01
Letzter Beitrag: gammel
  Lesen der seriellen Schnittstelle EIA-232 (RS232) AnhTeo 4 7.291 06.09.2011 03:15
Letzter Beitrag: AnhTeo

Gehe zu: