Hallo zusammen,
sobald man einen Task eröffnet mit dem CreateChanel.vi (Physical Channels zB. AI 0 bis AI 5) steht dieser ja zur Weiterverwendung bereit. Ich möchte jetzt aber flexibel sein und im Programm verschiedene Kombinationen von Kanälen auslesen. Gibt es eine Möglichkeit nur auf gewünschte Kanäle (von den definierten) zuzugreiffen?? Ansonsten lese ich ja immer alle 6 Kanäle ein & benötige zB. nur zwei von den Sechs. Somit wäre meine maximale Abtastrate ja immer gleich klein. (Summenabtastrate / Anzahl Kanäle)..
Oder muss man in einem solchen Fall immer genau die Kanäle definieren, die man anschliessend auch auslesen möchte?
Bin sehr dankbar über Tipps
Merci und viele Grüsse
Um mehrere Kanäle abzutasten gibt es zwei Möglichkeiten: Zeitmultiplex und Kanalmultiplex
Zeitmultiplex:
Abtastreihenfolge ist: Alle ersten Datenpunkte aller Kanäle, Alle zweiten Datenpunkte aller Kanäle...
Kanalmultiplex: Alle Datenpunkte Kanal1, alle Datenpunkte kanal 2...
Zeitmultiplex kennt jeder und ist das Normale. Kanalmultiplex kennt niemend und muß im Handbetrieb konfiguriert werden.
Zeitmultiplex:
Nachteile:
Die maximale Datenrate veringert sich umgekehrt zur Anzahl der Kanäle
Phasenverschiebung zwischen den Kanälen
Vorteile:
Für einmalige Vorgänge verwendbar
Hohe Refrexhrate.
Kanalmultiplex:
Nachteile:
Die Refreshrate verringert sich entsprechend der Anzahl von Kanälen
Nur für periodisch sich wiederholenden Vorgängen einsetzbar
Vorteil:
Die Abtastrate ist immer die maximale, da pro Durchlauf nur ein Kanal abgetastet wird.
Keine Phasenverschiebung zwischen den Kanälen.
Weitere Vorteil - und damit komme ich zum Thema:
Die Zusammenstellung der zu verwendeten Kanäle kann bei jedem Durchlauf neu ausgesucht werden.
Bei Kanalmultiplex mache ich es so:
Jeder Kanal ist ein eigener Task. Man kann dann, ohne neu konfigurieren müssen, bei jedem Durchlauf neu festlegen, welche Kanäle berücksichtigt werden sollen. Z.B nur Kanal 1 oder Kanäle 2..6.
Die Abtastrate ist immer maximal. Wenn aber z.B die Periodendauer eines Vorganges 50ms ist, dann habe ich bei einer Refreshrate von 1/50ms = 20 Hz. Bei 5 Kanälen sind es dann nur noch 4 Hz, da ich nach de Abtastung von Kanal 1 erst mal die anderen Kanäle abtasten muß, bevor Kanal 1 wieder an der Reihe ist.
V
Hallo Lucki,
könntest du zum besseren Verständnis ein kleines Screenshot-Bsp. zu Zeit- und Kanalmultiplex hochladen?
Danke.
Herzlichen Dank für deine schnelle Antwort... nun frage ich mich aber, wie ich möglichst elegant die einzelnen Tasks "verbinden" kann (bei Kanalmultiplex).. Habe schon mehrere Möglichkeiten ausprobiert, leider klappt nichts wirklich richtig...
Merci und einen schönen Tag
' schrieb:Herzlichen Dank für deine schnelle Antwort... nun frage ich mich aber, wie ich möglichst elegant die einzelnen Tasks "verbinden" kann (bei Kanalmultiplex).. Habe schon mehrere Möglichkeiten ausprobiert, leider klappt nichts wirklich richtig...
Was ich gemacht habe, ist viele zu komplex, um als Lehrbeispiel zu taugen. Aber ich mache mal ein Beispiel, dazu brauche ich nur ein paar Tage Zeit.
Zu den Tasks: bei 16 Kanälen gibt es 16 eigene Tasks mit je einem physikalischen Kanal, es ist aber äußerst sinnvoll, die zu einem Array of Tasks zusammenzufassen. Die Grundkonfiguration erfolgt nur einmal, und die Tasks können hintereinander in beliebiger Reihenfolge und Anzahl gestartet und gestoppt werden. Man kann auch dt oder die Bereichswahl vor jeden Start einzeln oder für alle Tasks neu festlegen, ohne deswegen alles alles neu konfigurieren zu müssen.
Ein weiterer Trick war auch, wenn ein Kanal nicht verwendet wird, dann eine Waveform mit leerem Array zu erzeugen. Man hat also den immer ein Array of Waveforms mit 16 Elementen. Der Vorteil ist, daß dann den aktiven Kanälen in den Plots nicht immer andere Farben zugewiesen werden.