Hallo zusammen,
ich beschreibe mal zunächst mein Vorhaben: Ich habe 4 Durchflussmesser, die Durchfluss und Temperatur als Frequenzsignal ausgeben. Durchfluss und Temperatur sollen via LabView angezeigt und am dann zusammen mit diversen anderen gemessen Temperaturen aus anderen tasks in eine Datei geschrieben werden. Erstmal geht es jetzt nur um Durchflussgeschichte, die anderen Tasks tun was sie sollen.
Das Equipment:
cDAQ-9178 mit NI-9401 mit DSUB-Anschluss, 4x SV4200 Durchlfussmesser von ifm.
Anschlussplan:
PFIO: Durchfluss_1
PFI1: Temperatur_1
PFI2: Durchfluss_2
PFI3: Temperatur_2
PFI4: Durchfluss_3
PFI5: Temperatur_3
PFI6: Durchfluss_
PFI7: Temperatur_4
Der Einfachheit halber habe ich zunächst nur Durchflussmesser_1 angeschlossen: crt0 auf PFI0 und PFI1; die anderen Kabel hängen zwar an der Messkarte, aber ohne Sensor.
Task-Erstellung:
Zähler-Task in NI MAX erstellt:
Signalerfassung – Zählergestütze Erfassung – Frequenz – crt0 – Eingangsanschluss PFI0 – Signalbereich 1 – 100 Hz; Messmethode: 1 Zähler niedrige Frequenz; keine Skalierung; Messert auf Anfrage.
Die 1-100 Hz entsprechen der aktuell eingestellten Frequenz des Durchlfussmessers. (vgl. Bild "frequenz-task")
Das ganze nochmal für PFI1 - also 2 Tasks: "Frequenz" für PFI0 und "Frequenz_1" für PFI1.
VI-Beschreibung:
Das VI öffnet den task und liest die Frequenz aus. Diese wird mittels eines Faktors in die Temperatur umgerechnet. Der Durchfluss wird aktuell noch nicht berücksichtigt. Das ganze soll so lange ausgeführt werden, bis "Stop" gedrückt wird. Die 100 ms Wiederholungsrate sind aktuell willkürlich gewählt.
Die umgerechnete Temperatur stimmt mit der Anzeige auf dem Durchflussmesser überein.
Meine Probleme:
a) Der Versuch für PFI0 und PFI1 jeweils einen eigenen task laufen zu lassen, verursacht einen Fehler (Error -50103 occured at DAQmx Start Task.vi:7220002; Possible reason(s):
The specified resource is reserved. The operation could not be completed as specified). D.h. man muss in einem Task auf PFI0 und PFI1 gleichermaßen zugreifen, da sich zwei Tasks auf einem Kanal gegenseitig blockieren - in NI MAX kann ich für den Frequenz-task aber nur 1 Pin als Eingang festlegen: PFI0 oder PFI1.
b) Das VI gibt für Task1 und Task2 das selbe Ergbnis aus, obwohl der Durchfluss auf PFI0 ja 0 sein müsste. Seltsamerweise wird sogar ein Signal auf ctr1-ctr3 erkannt, obwohl an diesen Kanälen nur Kabel ohne Gerät hängen.
Ich vermute, dass nicht zwischen PFI0 und PFI1 unterschieden wird, sondern einfach der Input in ctr0 gezählt wird. Ist das korrekt? Und falls dem so ist: Gibt es eine Möglichkeit PFI0 und PFI1 getrennt anzusteuern bzw. zu zählen/auszuwerten? Und warum werden dann auf crt1 - ctr3 auch Signale empfangen?
Schonmal vorne weg: Vielen Dank für eure Hilfe