Hallo,
Ich bekomme zeilenweise Signale vom COM Port geschickt und versuche wie unten dargestellt zu warten bis eine eine Zeile ankommt.
Leider verursacht dieses "Warten" eine sehr hohe Prozessorlast...von ca 95% ^^
Wäre super wenn mir jemand helfen könnte, das wichtigste wäre halt das keine ankommende Zeile "verschluckt" wird oder verloren geht, daher eigentlich auch die idee mit dem warten...
Gruß lohr
LabVIEW 8.5
[
attachment=12046]
Kannst du die Initialisierung des COM-Ports zeigen?
Bei der Initialisierung mach Term Char On und beim Lesen eine sehr große Zahl für Bytes To Read.
Wenn du mit BytesAtPort einliest, verschluckst du eigentlich nie was...die hohe Prozessorlast kommt wohl daher, das in der Warte-While-Schleife kein Wait-VI (und sei die Zeit auch nur 1ms) eingebaut ist!
Vielen dank für eure Hilfe!
Ich liebe dieses Forum
Steh nur leider immer noch auf dem Schlauch
So hier einmal die Initialisierung:
[
attachment=12048][
attachment=12049]
Das Warte-VI hat keine deutliche Besserung gebracht:
[
attachment=12050]
LabVIEW 8.2
So hatte ich das mit dem Warten nicht gemeint: Pack mal in die Schleife das Wait.vi aus der Palette Timing...
Und was bekommst von der Gegenstelle? ASCII Text mit Zeilenumbruch am Ende jeder Zeile? Es ist wichtig.
Wenn ja, dann wie oben schon gesagt. Bei der Konfiguration der Schnittstelle Termination Character einschalten. Keine VISA Event VIs verwenden, nur Init vor der Schleife, Read in der While-Schleife und Close nach der Schleife.
Super das mit dem Warten klappt astrein, nur noch 1-2% Prozessorauslastung bei 1ms wartezeit ^^
danke!
was wäre denn wenn genau in dieser ms ein befehl ankommen würde, LabVIEW würde diesen nicht verschlucken oder? sondern im nächsten schleifendurchlauf "holen", richtig?
Der sollte im Puffer landen...und den kannst du ja beim Init entsprechend groß machen!
wie funktioniert das mit dem puffer?
sry...hab ich noch nicht gemacht...
' schrieb:wie funktioniert das mit dem puffer?
sry...hab ich noch nicht gemacht...
[
attachment=12051]
Das wäre durch ein bisschen probieren auch selber rauszufinden gewesen...aber ohne dir jetzt nen Vorwurf zu machen: Das ist irgendwie ein generelles Problem bei den meisten Fragestellern hier im LVF...