LabVIEWForum.de
RS232 Daten empfangen zu langsam (Anfänger) - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: RS232 Daten empfangen zu langsam (Anfänger) (/Thread-RS232-Daten-empfangen-zu-langsam-Anfaenger)

Seiten: 1 2


RS232 Daten empfangen zu langsam (Anfänger) - christoph2 - 24.07.2010 21:03

Hi,

Ich habe die offene Verbindung jetzt verdrahtet, das war leider nicht der Fehler.

Ich glaube es liegt irgendwie an der for schleife, entweder die Ausführung der for-Schleife funktioniert nicht so wie ich das will oder das "indexing" der Arrays ist das Problem...

Die Eingänge der Funktion "Replace Array Subset" sind nämlich immer konstant.

Beispiel:
Empfangene Werte/Befehle:
1. Befehlsnummer 21, Wert 120
2. Befehlsnummer 22, Wert 60

Eingänge von "Replace Array Subset"
index: 22
new element: 60

Eigentlich sollten diese Eingänge doch ständig wechseln - Bei index zwischen 21 und 22 und bei new element zwischen 120 und 60. Tun sie aber nicht, die Anzeige bleibt immer konstant, sie zuckt kein einziges mal auf einen anderen Wert.

Ich habe die komplette Schleife zum VISA einlesen von dem Programm das mir Lucki geschrieben hat übernommen. Ich verstehe das Programm jetzt eigentlich, nur einen Teil nicht, nämlich die for-Schleife.
Normalerweise gibt man einer for-Schleife ja die Schleifendurchläufe (N) vor. Lucki hat das nicht so gemacht, N ist nirgens angeschlossen. Ich hab in der LabVIEW Hilfe nachgelesen, aber konnte dort nichts finden, was passiert wenn N nicht vorgegeben wird...

lg Christoph

Anhang: Selbes Programm, nur die offene Verbindung ist jetzt verdrahtet. LabVIEW Version 8.6 Englisch
[attachment=28158]


RS232 Daten empfangen zu langsam (Anfänger) - jg - 24.07.2010 22:06

In einem leeren Array kann per "Replace Array Subset" nichts ersetzt werden. Das bleibt leer.
[attachment=28159]

Gruß, Jens


RS232 Daten empfangen zu langsam (Anfänger) - Lucki - 25.07.2010 09:03

' schrieb:[attachment=56942:Image01.png]
Die Nicht-Verbindung hat hier seine Richtigkeit. Die byteweise gelesenen Daten laufen über eine kleine Queue (vierstufiges Schieberegister). Wird dort die 4-byte Startsequenz erkannt, dann wird der abgebildete Case aktiv. Das Array des letzten Datensatzes wird geleert und initialisiert. Vorher sollen aber die 4 Bytes in der Queue ins Nirvana geschickt werden, weil es sich hier nicht um Daten handelt, sondern um die Startsequenz. Dieser Case wird also 4 mal durchlaufen, und dann werden wieder Daten gesammelt.


RS232 Daten empfangen zu langsam (Anfänger) - christoph2 - 25.07.2010 12:12

' schrieb:In einem leeren Array kann per "Replace Array Subset" nichts ersetzt werden. Das bleibt leer.
Das erklärt natürlich alles... saudummer Fehler. Ich habe das Array jetzt einfach am Anfang mit 0ern beschrieben und jetzt funktioniert alles.

Die Verbindung habe ich jetzt auch wieder weggelöscht.

Die Kommunikation in beide Richtungen funktioniert jetzt perfekt!
Vielen Dank an alle!

lg
Christoph