Hallo liebes Forum,
ich beschäftige mich gerade zum ersten Mal mit Hardware Timing im Zusammenhang mit Labview. Dazu möchte ich ein VI programmieren, das einen digitalen Ausgang und/oder einen analogen Ausgang für eine einstellbare Zeit einschalten soll. Da diese Zeit möglichst genau eingehalten werden sollte, bietet es sich wohl an, hierzu einen Hardware Timer heranzuziehen. Die zur Verfügung stehende Hardware ist ein USB6002, mir ist allerdings nicht ganz klar, wie ich das umsetzen kann und ich finde leider auch kein geeignetes Beispiel unter "Beispiele suchen...".
Daher wäre ich für den ein oder anderen Vorschlag zur Umsetzung sehr dankbar!
Im Voraus vielen Dank und natürlich weiterhin eine schöne Osterzeit!
Mit diesem Gerät funktioniert Hardware Timing, mit Bezug auf Deine Frage, wie ich sie verstanden habe, nur mit analogen Ausgängen. Einfach eine Waveform mit endlichen vielen Samples ausgeben, und den Start der Ausgabe mit einem digitalen Trigger, PF0 oder PF1, starten.
Digitale Ausgabe geht nur mit Software Timing.
Mehr funktioniert nur mit höherwertiger Hardware.
Gruß Holger
Hallo Holger,
vielen Dank für deine Antwort. Ich denke, ich kann mit der preiswerten Karte arbeiten, da ich den zweiten analogen Ausgang als "digitales Signal" verwenden kann.
Bei der Umsetzung deines Vorschlags habe ich allerdings noch Schwierigkeiten. Ich habe mich am Beispiel "Spannung - Einzelwertausgabe mit HW-Timing" orientiert und mir einen entsprechenden konstanten Signalverlauf mit endlicher, einstellbarer Länge definiert. Diesen würde ich dann in Abhängigkeit vom Timer PFI0 über die zwei verfügbaren analogen Ports ausgeben. Da ich allerdings schon beim DAQmx Timing-VI den Fehler 200077 erhalte, kann ich nicht testen, ob der Rest vom Programm so funktioniert, wie ich mir das wünschen würde.
Die USB-6002 unterstützt keinen Sample-Trigger. Du kannst nur die kontinuierliche Ausgabe benutzen und den Start der Ausgabe mit einem Start-Trigger (PFI0/1) benutzen.
Gruß Holger
Ich habe leider kein geeignetes Beispiel gefunden und auch aus der Hilfe werde ich nicht schlau, wie ich den Trigger in diesem Fall richtig anwende, da mir nicht klar ist, wie ich den Trigger mit der Ausgabe der Spannungen verknüpfe. Hättest du hier vielleicht noch einen Hinweis oder einen geeignetes Beispiel für mich?
Nochmals vielen vielen Dank für die Unterstützung!
Was hältst Du davon einfach mal die Beispiele von NI anzuschauen und zu kombinieren?
Wenn Du zusätzlich die Spezifikationen Deiner Hardware konsultierst, kannst Du auch sinnvolle Auswahl der Optionen der Beispiele treffen.
Beispiel:
Voltage - Finite Output.vi
Zur Zeit sind auch die
Online-Kurse von NI freigeschaltet. Versuch's doch mal mit dem Kurs:
Data Acquisition Using NI-DAQmx and LabVIEW.
Gruß Holger
Vielen Dank für die zwei Links! Ich habe die Spannungsausgabe jetzt so umsetzen können. Eigentlich habe ich die Beispiele ja auch durchgeschaut, war aber wohl zu fixiert auf das Beispiel "Spannung - Einzelwertausgabe mit HW-Timing".
Ich möchte das Programm jetzt noch um einen AI-Task erweitern, den ich entsprechend triggern und timen möchte. Hierzu habe ich mich am Beispiel "Spannung - Endliche Erfassung" orientiert. Ich bin mir hier aber nicht sicher, ob ich den gleichen Trigger nutzen kann. Momentan erhalte ich den folgenden Fehler:
Fehler -89137 bei Spannungsausgabe.vi
Mögliche Ursachen:
Die angegebene Route kann nicht verwendet werden, da sie Ressourcen erfordert, die zur Zeit von einer anderen Route verwendet werden.
Eigenschaft: Start.DigFlanke.Quelle
Eigenschaft: Start.DigFlanke.Flanke
Quellgerät: Dev2
Quellanschluss: PFI0
Benötigte Ressourcen belegt von
Gerät: Dev2
Reservierter Anschluss: AO/PFI0
Task-Name: _unnamedTask<4A>
Dazu habe ich den folgenden Link gefunden,
https://knowledge.ni.com/KnowledgeArticl...AE&l=de-DE
was ja genau meinem Problem entspricht, da ich die OnBoardClock und den Trigger in zwei verschiedenen Tasks verwende. Ein Ergänzen des entsprechenden Eigenschaftsknoten hat allerdings nicht geholfen. Daher die Frage, ob das denn überhaupt so funktionieren kann mit der zur Verfügung stehenden Hardware. Laut Spezifikation lassen sich die analogen Inputs zumindest auch über PFI0 oder PFI1 triggern.
Es gibt ja nur zwei externe Trigger-Eingänge. Vielleicht einfach PFI1 benutzen?
Alternativ kann ein anderes internes Signal verwendet werden. Im MAX gibt eine Routing-Tabelle.
Ich Online-Kurs erfährst Du Details.
Gruß Holger
Hallo creo,
Zitat:Momentan erhalte ich den folgenden Fehler:
Fehler -89137 bei Spannungsausgabe.vi
Mögliche Ursachen: Die angegebene Route kann nicht verwendet werden, da sie Ressourcen erfordert, die zur Zeit von einer anderen Route verwendet werden.
Eigenschaft: Start.DigFlanke.Quelle
Eigenschaft: Start.DigFlanke.Flanke
Quellgerät: Dev2
Quellanschluss: PFI0
Benötigte Ressourcen belegt von
Gerät: Dev2
Reservierter Anschluss: AO/PFI0
Du verwendest immer noch die USB6002? Die hat nur sehr eingeschränkte Fähigkeiten!
Warum nimmst du nicht zusätzlich PFI
1 für deine AI-Kanäle, wenn PFI
0 schon für die AO-Kanäle benutzt wird?
Naja, ich wollte mir eine zusätzliche Kabelbrücke sparen und beide Tasks über den PFI0 triggern. Daher hatte ich gefragt, ob das nicht vielleicht doch geht. Mit den zwei verschiedenen Triggern läuft jetzt aber alles wie gewünscht, auch auf einer USB6002
Insofern an dieser Stelle auch nochmal vielen Dank für die Unterstützung euch allen!