Hallo,
ich will zwei CAN-Kanäle einlesen, der eine mit 100 kbaud der andere mit 500 kbaud, dazu kommt noch ein analoger Kanal mit 1000 Hz und eine Kamera die ich über NI-Vision mit 10Hz einlese. Das alles soll parallel eingelesen, verarbeitet und gespeichert werden, da ich mein analog Signal als Trigger für die anderen Sachen brauch. Mein Problem ist das sich alles dem langsamsten Signal anpasst d.h. es scheint so als ob das ganze Vi nur mit 10 Hz läuft. Ich hab vorhin zwar im Forum gelesen das der Schleifenzähler nichts mit der Samplerate zu tun hat, aber bei mir läuft es tatsächlich ziemlich "ruckelig."
Kann mir jemand einen Tip geben was ich ändern muß das es sauber läuft.
Ich hoffe mal das ihr versteht was ich will, ist etwas kompliziert zu beschreiben.
Schon mal Danke im vorraus!
Gruß
Claus
Hi claus!
Ich hatte und habe auch so ein ähnliches problem. ich hab meine hardware über die daqmx - vi's angesprochen.
wenn du jetzt alles parallel einliest, kann es sein das der speicher mit 100% augelastet ist ( überprüf dies vielleicht mit dem task manager) und du eine Messwerterfassung mit mehr als 10Hz nicht schaffst.
ich habe meine analogen kanäle unter einen task definiert und mein problem so teilweise gelöst.
vielleicht hilft dir das weiter!?
Gruß
Peter
Hi Peter,
an der Speicherauslastung liegts bei mir definitiv nicht der hat immer nur 30-40 % auslastung ich les meinen analog Kanal traditionell ein da ich ein USB Daq-Pad hab und die noch nicht unterstüzt werden.
Die Daten die ich Brauch sind wirklich nur analog und der schnelle CAN-Bus den rest muß ich eigentlich nur noch zusätzlich abspeichern aber es klappt nicht so wie ich mir das vorstell. Trotzdem mal Danke!
Gruß
Claus
1. USB DAQ (6008 und 6009) wird vom DAQ7.5 (mx) unterstuetzt - du benoetigst also keinen daqmx Base mehr oder dgl.
2. Das ruckelige haengt damit zusammen dass du bei Indikatoren (Anzeigeelemente) 2 Optionen zur Auswahl hast - Synchronos Display enabled/disabled
Der Unterschied darin liegt, dass bei enabled der neue Schleifenwert an die Variable uebergeben wird. Diese meldet dann Windows - "halt, ich habe einen neuen Wert - update das Frontpanel" - Windows "zeichnet" das Frontpanel neu, gibt ein OK an LabVIEW zurueck und dann erst laeuft die Applikation weiter. Wenn diese Funktion disabled ist, updated Windows das Frontpanel je nach Moeglichkeit (also ohne Handshaking)
Hast du schon mal versucht, das ganze zu entkoppeln - sprich deine Prozesse in eigenen Timed Loops laufen zu lassen - jeder Timed Loop gibst du dann einzelne Prioritaeten! Wenn du dann noch etwas raus schreiben musst, koenntest du ganz angenehm mit Queues arbeiten! Diese nehmen dir keine Performance und stellen sicher, dass die Datenerfassung autark laeuft und die Datenspeicherung je nach Moeglichkeit der zur Verfuegung stehenden Ressourcen passiert!
Gruß
Tom
Hallo Tom,
ich hab leider das Daq-Pad 6020E soviel ich weiß wird das immer noch nicht unterstüzt :-(
Das mit dem Synchronos Display hab ich heut mal ausprobiert scheint daran gelegen zu haben auf jeden Fall ruckelts nicht mehr *freu*
Mit Queues kenn ich mich überhaupt nicht aus, hab noch nie was mit denen gemacht, hast du vielleicht ein kleines Beispiel oder noch besser irgendeine Seite wo es genau erklärt wird?
Danke erst mal für Deine Hilfe!
Gruß
Claus
im example finder tippst einfach "queues" ein...