30.08.2010, 14:40
Beitrag #1
|
Prince Amir
LVF-Gelegenheitsschreiber
Beiträge: 134
Registriert seit: Aug 2009
8.6 - 2009
2009
de_en
80809
Deutschland
|
DAQ Digital I/O und AI
Hallo an alle,
ich will eine Pumpensteuerung über LabVIEW machen. Die Steuerung sollte über Digitalausgänge meiner DAQ Karte realisiert werden.
(Digital I/O in LabVIEW über DAQ zu programmieren ist kein Problem.)
Wie die Pumpen gesteuert werden, hängen von den Daten ab, die (anhand der selben Messkarte über DAQ) erfasst werden. Diese sind Analogwerte (Beispielweise Druck und Temperatur) und sind bereits auch realisiert worden.
Mein Problem ist wie ich diese 2 Aufgaben zusammenbringe. Ich nenne ein kurze Beispiel:
Die Wassertemperatur wird anhand DAQ AI erfasst und bearbeitet. Wenn diese einen bestimmten Wert überschreitet, sollte anhand der Digital Output der Karte eine Pumpe geschaltet werden (entspricht High pegel).
Wie kann ich die Informationen die ich von AI bekomme, für die Steuerung der DO benutzen? (Locale Vari..,?)
Normal habe ich in meinem Programm eine DAQ Messschleife, wo die Kanäle konfiguriert werden und die daten gelesen werden. Für die entgültige Auswertung hab ich eine 2.Schleife, wobei die Daten per Queues in die 2.Schleife fliessen.
wäre dankbar für jeden Tipp,
Grüße,
Prince.
Coming together is a beginning, keeping together is progress, working together is success.
|
|
|
30.08.2010, 14:51
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2010 14:52 von Matze.)
Beitrag #2
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
DAQ Digital I/O und AI
Hallo,
lokale Variablen sollte man vermeiden, wo es nur geht.
Über die Queue kommunizierst du ja bereits zwischen beiden Schleifen.
Du könntest die Erfassungin in der ersten Schleife machen, wie bisher.
Wenn die Messdaten per Queue in die 2. Schleife kommen, kannst du diese dort auswerten (Werte vergleichen) und ggf. die digitalen Ausgänge ansteuern.
Oder was ist nun genau das Problem?
Theoretisch kannst du das auch mit einer Schleife lösen.
|
|
|
30.08.2010, 14:59
Beitrag #3
|
Prince Amir
LVF-Gelegenheitsschreiber
Beiträge: 134
Registriert seit: Aug 2009
8.6 - 2009
2009
de_en
80809
Deutschland
|
DAQ Digital I/O und AI
' schrieb:Du könntest die Erfassungin in der ersten Schleife machen, wie bisher.
Wenn die Messdaten per Queue in die 2. Schleife kommen, kannst du diese dort auswerten (Werte vergleichen) und ggf. die digitalen Ausgänge ansteuern.
Oder was ist nun genau das Problem?
Theoretisch kannst du das auch mit einer Schleife lösen.
kann ich den Task für Digital I/O praktisch in die 2.Schleife erst öffnen, oder sollen alle DAQ Kanäle in der ersten schleife geöffnet bzw geschlossen werden?
hmm..ich habe eine ziemlich große datenmege. Mit nur einer Schleife ist irgedwann schluß mit der LV.Resources und CPU-Leistung.
Grüße,
Coming together is a beginning, keeping together is progress, working together is success.
|
|
|
30.08.2010, 15:01
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2010 15:01 von Matze.)
Beitrag #4
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
DAQ Digital I/O und AI
Gut, das kommt auf den Anwendungsfll an. Ich ging davon aus, dass sich die Temperaturwerte nicht schnell ändern.
Beispiel (sind eigene SubVIs, aber dennoch sollte das Prinzip klar werden):
Aber mit der Queue, die du nutzt, geht das doch auch.
Sonst solltest du deine Problemstellung noch etwas präzisieren (Hardware, Abtastrate, ...).
|
|
|
30.08.2010, 15:05
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2010 15:06 von jg.)
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
DAQ Digital I/O und AI
Der DO-Task kann doch vollkommen unabhängig in einer eigenen Schleife laufen, gerne auch Queue-gesteuert.
Ich würde zu Programmstart die DO-Tasks initialisieren und immer mitlaufen lassen, bzw. besser gesagt, nach Initialisierung wartet deine DO-Loop auf neue Events, die sie per Queue bekommt. Wenn dann was zu tun ist - was du in deiner Datenverarbeitungsschleife feststellst - dann löst du das entsprechende DO-Event per Queue aus.
Gruß, 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.
|
|
|
30.08.2010, 15:24
Beitrag #6
|
Prince Amir
LVF-Gelegenheitsschreiber
Beiträge: 134
Registriert seit: Aug 2009
8.6 - 2009
2009
de_en
80809
Deutschland
|
DAQ Digital I/O und AI
Dankeschön
ich werde es probieren und berichten. Die Benutzung von Queues wollte ich nochmal vermeiden, aber so gehts auch, oder mache ich wie in Bsp.
Viele Grüße,
Prince.
Coming together is a beginning, keeping together is progress, working together is success.
|
|
|
| |