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 

Zeitgenaues Auslesen eines Counters



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!

31.05.2008, 13:57
Beitrag #1

kirby Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: May 2008

8.5
-
de

0
Deutschland
Zeitgenaues Auslesen eines Counters
Hallo Forum,

als LabVIEW-Neuling stehe ich vor folgender Aufgabe:

Ich möchte an verschiedenen Positionen eines Motors einen Counter für eine benutzerspezifische Zeit auslesen. Der Ablauf eines solchen "Scan" ist demnach so:

1. Motor fährt Position an
2. Wenn Motor Position erreicht hat, starte die Zählung auf dem Counter für X Sekunden
3. Wenn Zählung beendet, lies den Zähler aus und schreibe Wert in Array
4./1. Motor fährt nächste Position an

solange bis die Endposition erreicht ist.

Die Zählung erfolgt über eine PCI-6602 mit BNC-2121. Die Ansteuerung des Motors habe ich mit den Hersteller-VIs im Griff, auch Schleifen und Entscheidungen sind kein Problem.

Probleme habe ich beim Zählen für X Sekunden.
Wenn möglich sollte der Timer der 6602 genutzt werden, da bereits kleine Unterschiede der Zählzeiten durch Verzögerungen im Programmablauf die Zählrate verfälschen würden.


Ich habe weder bei DAQ noch bei DAQmx etwas gefunden, mit dem ich zeitgenau zählen könnte.
Geht sowas überhaupt? Und falls ja, wie?


Danke für Eure Tipps!

Viele Grüße
Kirby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2008, 16:27 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2008 16:28 von Lucki.)
Beitrag #2

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeitgenaues Auslesen eines Counters
Verstehe nicht, was Du willst. Am Anfang schreibst Du, daß Du den Zähler an verschiedenen Positionen des Motors auslesen willst. Dann heißt es, daß der Zähler bei Erreichen das Position gestartet (resetet?) werden soll. Nein, er wird nicht einfach gestartet, sondern "für X Sekunden" gestartet. Was heißt das genau? Was passiert nach diesem Starten? Was passiert nach Ablauf der Zeit X? Und dient der Zähler überhaupt zum Messen von Zeiten, oder mehr zum Generieren von Wartezeiten, oder soll er irgendwie für beides herhalten?
Am besten wäre eine klare Programmieranweisung in Form eines Flußdiagramms statt dieser mehrdeutigen Beschreibung.
Nützlich ist auch ein Hinweis über die Größenordnung und geforderte Genauigkeit der zu erwartenden Zeiten, denn davon kann die Programmierweise entscheidend abhängen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2008, 17:21 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2008 17:45 von kirby.)
Beitrag #3

kirby Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: May 2008

8.5
-
de

0
Deutschland
Zeitgenaues Auslesen eines Counters
Dann versuche ich es, konkreter zu erklären:

Nachdem der Motor seine Position erreicht hat, sollen die eingehenden Impulse für die Zeit von X Sekunden gezählt werden.

Ziel ist die Messung der Impulsanzahl pro Zeit in Abhängigkeit der Motorposition. Dabei ist es schon relevant, ob man für 1,01 s oder 0,999 s zählt.

Die Impulse stammen aus einem Photonendetektor für Röntgenstrahlung. Der Motor dient der Positionierung der Probe im Röntgenstrahl. Aus dem Verlauf von Impulsen pro Zeit gegen Position lassen sich Rückschlüsse auf die Eigenschaften der Probe schließen. Die physikalischen Details würden hier aber wohl zu weit führen. Bei Interesse gerne mehr...


Das Problem könnte man aber auch ganz unabhängig von Motor und Positionierung betrachten:
<blockquote>Nach seinem Start soll ein Counter für eine bestimmte Zeit zählen. Der Wert des Counters soll anschließend in LabVIEW zur Verfügung stehen.</blockquote>

Das ist jetzt hoffentlich ein wenig verständlicher.

Gruß,
Kirby
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.05.2008, 19:19 (Dieser Beitrag wurde zuletzt bearbeitet: 31.05.2008 19:21 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeitgenaues Auslesen eines Counters
' schrieb:Das ist jetzt hoffentlich ein wenig verständlicher.
Da war das auch ein Mißverständnis von mir. Ich hatte mich darauf fixiert, daß Du irgendwelche Zeitparameter das Motorlaufs messen oder steuern willst, deshalb bekam ich keinen Sinn in Deine Erklärungen rein.
Also Deine Karte ist dafür bestens geeignet. Ich selbst habe aber noch nie Flanken gezählt und kann Dir nur ganz ungefähr sagen wie es langgeht.

Am Einfachsten ist es, den Flankenzähl-Task bereits im M&A-Explorer zu erstellen:
(Rechte Maustaste, Datenumgebung, Neu..) Dort bekommst Du auch auf einem silbernem Tablett die externe Verschaltung präsentiert, also welche Pins der Karte Du wie verdrahten mußt.

   

Das Messprinzip ist: Wenn Du N Samples mit N=10 und Rate=10 einstellst, dann werden die Impulse 1sec lang gezählt, und Du erhälst alle Zwischenergebnisse nach 0,1 0,2 ..1.0 sec als Array.
Wenn Du nur 1 Ergebnis braucht, dann bin ich mir nicht sicher was dann passiert, das Bild oben ist da etwas komisch. Sichere Methode wäre, N=2 zu wählen und nur das letzte Ergebnis zu benutzen.

Bei Erstellung der Aufgabe im Blockdiagramm muß nichts extra konfiguriert werden, das geschah schon im M&A-Explorer. Einfach mit der rechten Maustaste an den Tasg-Eingang gehe, Konstante erzeugen, dort nochmal mit der rechten Maustaste klicken und den Task auswählen:
   

Mehr kann ich jetzt nicht sagen. Wie man z.B. immer wieder startet usw. das mußt Du selbt probieren. Es besteht auch die Möglichkeit, überm einen externen Pin den Task zu starten, wird aber nicht nötig sein.
Viel Spaß damit
Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Auslesen eines Kamera Sensors eixi 8 7.358 09.10.2013 14:34
Letzter Beitrag: eixi
  Probleme beim gleichzeitigen Ein- und Auslesen eines Sinussignals mit myDAQ SuperMaWio 4 6.736 09.03.2011 00:03
Letzter Beitrag: kpalime
  Eigenschaften eines Tasks auslesen ? uzelle 3 4.822 16.02.2011 15:57
Letzter Beitrag: GerdW
  Synchronize Two Counters Jontef 1 4.495 25.01.2011 16:15
Letzter Beitrag: RHeil

Gehe zu: