LabVIEWForum.de - cDAQ Kanalsteuerung und Spannungserfassung

LabVIEWForum.de

Normale Version: cDAQ Kanalsteuerung und Spannungserfassung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=44793]Hallo Zusammen,

mein Programm schaltet eine Pumpe alle 500ms Ein- und Aus,
und gelichzeitig soll es alle 100ms den Druck erfassen.

1. Das Programm läuft nur mit 500 ms, schnelle Druckerfassung (100ms) wird nicht berücksichtig!

2. ... und beim STOP bekomme ich folgende Fehlermeldung:

Fehler -200279 ist bei Pumpenmessung.vi
Mögliche Ursachen:
Es wurde versucht Abtastwerte zu lesen, die nicht mehr zur Verfügung stehen. Der angeforderte Abtastwert war zuvor verfügbar, wurde jedoch überschrieben.


Wie kann ich das Problem lösen?

Vielen Dank + Gruß
ecper
PS: Das Programm habe ich angehängt!
THINK Dataflow!

Deine Digital & dein Analog-Task laufen in derselben While-Loop, Digital-Task braucht auf Grund der Waits zwischen 500 und 1000 ms.
Und wie soll jetzt der Analog-Task alle 100 ms Daten erfassen, schließlich muss er auf deinen Digital-Task warten?

Mögliche Lösung: 2 unabhängige Schleifen.

Gruß, Jens
(27.05.2013 12:58 )jg schrieb: [ -> ]THINK Dataflow!

Deine Digital & dein Analog-Task laufen in derselben While-Loop, Digital-Task braucht auf Grund der Waits zwischen 500 und 1000 ms.
Und wie soll jetzt der Analog-Task alle 100 ms Daten erfassen, schließlich muss er auf deinen Digital-Task warten?

Mögliche Lösung: 2 unabhängige Schleifen.

Gruß, Jens


Danke,
aber wie sollen zwei unabhängige Schleifen in einem Programm funktionieren?
Weil LabVIEW schon immer MultiThread-fähig war.
2 parallele Schleifen werden auch quasi parallel abgearbeitet, und somit läuft die eine dann mit 1s Takt und die andere mit deinem gewünschten 100 ms Takt.

Es gibt natürlich auch andere Lösungen. Du könntest z.B. nur bei jedem 5. Durchlauf (bei Taktzeit 100 ms) das DI-Task ausführen.
Oder, oder, oder...

Gruß, Jens
(27.05.2013 13:21 )jg schrieb: [ -> ]Weil LabVIEW schon immer MultiThread-fähig war.
2 parallele Schleifen werden auch quasi parallel abgearbeitet, und somit läuft die eine dann mit 1s Takt und die andere mit deinem gewünschten 100 ms Takt.

Es gibt natürlich auch andere Lösungen. Du könntest z.B. nur bei jedem 5. Durchlauf (bei Taktzeit 100 ms) das DI-Task ausführen.
Oder, oder, oder...

Gruß, Jens

Danke für deine Lösungsvorschläge, mit 2 parallelen Schleifen hat es jetzt funktioniert.
Erstmal ist es ok!

GRuß
ecper
Referenz-URLs