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 

DAQ und COM-Abfrage gleichzeitig



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!

28.04.2008, 08:52
Beitrag #1

Atomos Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Apr 2008

9.00
2007
de

91522
Deutschland
DAQ und COM-Abfrage gleichzeitig
Hallo zusammen!


Ich habe ein Problem bei der Datenerfassung über DAQ-Karte und RS232 gleichzeitig.

LabVIEW-Version: 8.0
DAQ-Karte: NI DAQCard 6024E (200kS/s)

Ich frage in einer Schleife Signaldaten vom COM-Port ab und verarbeite diese noch in der gleichen Schleife (Ausgabe, Spektrum,....u.s.w.).
Die Daten kommen mit einer Frequenz von ~4,4kHz an (pro Schleifendurchlauf 100 Bytes).

Das funktioniert auch alles ganz gut.
Jetzt will ich aber noch "gleichzeitig" drei Referenzsignale über die DAQ-Karte einlesen. Dazu verwende ich den DAQ-Assistenten.
Diesen muss ich ja in einer Schleife platzieren....also hab ich mir gedacht in der selben Schleife in der ich auch die Daten vom COM-Port abrufe.


Das Problem ist jetzt, dass die Daten vom Port nicht mehr schnell genug abgefragt werden. Es kommt schon nach kurzer Zeit zu einem Puffer-Überlauf am COM-Port, obwohl der Prozessor nicht mal annähernd belastet wird.


Kann man irgendwie die Daten "parallel" abfragen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2008, 18:40
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
DAQ und COM-Abfrage gleichzeitig
' schrieb:Hallo zusammen!
Ich habe ein Problem bei der Datenerfassung über DAQ-Karte und RS232 gleichzeitig.

LabVIEW-Version: 8.0
DAQ-Karte: NI DAQCard 6024E (200kS/s)

Ich frage in einer Schleife Signaldaten vom COM-Port ab und verarbeite diese noch in der gleichen Schleife (Ausgabe, Spektrum,....u.s.w.).
Die Daten kommen mit einer Frequenz von ~4,4kHz an (pro Schleifendurchlauf 100 Bytes).

Das funktioniert auch alles ganz gut.
Jetzt will ich aber noch "gleichzeitig" drei Referenzsignale über die DAQ-Karte einlesen. Dazu verwende ich den DAQ-Assistenten.
Diesen muss ich ja in einer Schleife platzieren....also hab ich mir gedacht in der selben Schleife in der ich auch die Daten vom COM-Port abrufe.
Das Problem ist jetzt, dass die Daten vom Port nicht mehr schnell genug abgefragt werden. Es kommt schon nach kurzer Zeit zu einem Puffer-Überlauf am COM-Port, obwohl der Prozessor nicht mal annähernd belastet wird.
Kann man irgendwie die Daten "parallel" abfragen?
Na klar (zu mindest theoretisch), einfach 2 While-Schleifen parallel legen. Und von der blinden Verwendung des DAQ-Assistenten würde ich abraten. Zumindest dann das Ganze in LV-Code umwandeln. Und schau dir auch die Beispiele zur Datenerfassung im NI-Examplefinder an.

Ohne weitere Blicke auf deinen Sourcecode lässt sich aber nicht viel mehr sagen.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2008, 10:46 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2008 17:57 von jg.)
Beitrag #3

Atomos Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Apr 2008

9.00
2007
de

91522
Deutschland
DAQ und COM-Abfrage gleichzeitig
Ok.....hab jetzt mal eine eigene Schleife mit dem DAQ-Assistent erstellt.

Jetzt funktioniert es auch besser....jedoch sind die Daten vom COM-Port fehlerhaft. Es kommen in unregelmäßigen Abständen Peaks an.
Es scheint mir so als hätte die DAQ-Abfrage eine höhere Priorität....deshalb hab ich schon mit zeitgesteuerten Schleifen und Sequenzen herumgespielt, leider ohne Verbesserung.

Anbei habe ich jetzt mal meinen Source-Code hinzugefügt. Bitte nicht verwirren lassen ;-).


Ich frage am COM-Port immer nur ein Bytre ab und überprüfe dann ob die Folge 'A4 67 60' kam.....Das sind Start- und Status-Bytes meines ankommenden Signals. Wenn dies der Fall ist, Lese ich mit der for-Schleife 99 Bytes ein (Länge des Datenpakets). Dies dauert immer ca. 10ms.
Das scheint auch der Flaschenhals zu sein. Ich denke, dass der DAQ-Assi die Schleife unterbricht und deshalb fehlerhafte Daten ankommen.
Die Abfrage einzelner Bytes ist vllt nicht die typische Lösung, aber für meine Zwecke leicht zu verarbeiten, da ich immer nach der Folge 'A4 67 60' 100 Bytes auslesen muss. (Ein Byte übernehme ich durch Indizierung des Schiebregisters von der vorhergehenden Abfrage)

Lv80_img


Angehängte Datei(en)
Sonstige .vi  Code001.vi (Größe: 227,61 KB / Downloads: 218)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  DAQ bzw MAX Abfrage rapa 0 3.095 01.12.2005 14:51
Letzter Beitrag: rapa

Gehe zu: