Hallo,
Ich habe folgendes Problem. Ich möchte mit LabVIEW abwechselnd vom Digitalport der NI PCIe6363 lesen,bzw. darauf schreiben. Lesen und Schreiben sollen jeweils mit einer Rate von einigen kHz geschehen. Durch das ständige neue Init/Read(Write/Clear) des Kanals erreiche ich aber nur Raten um die 200Hz.
Hat vielleicht irgendwer eine Idee wie man den Code effizienter gestalten könnte oder sind meine angestrebten Samplingraten mit LabVIEW einfach nicht zu erreichen.
[
attachment=21706]
Hi,
das kriegst du SW-technisch nicht auf die Reihe...das müsstest du als HW-Lösung (=Microprozessor) realisieren!
Evtl. sagst du mal, was du vorhast...vermutlich willst du SW-technisch irgend eine Kommunikations-Schnittstelle simulieren, right?
Gruß
Achim
Genauso ist es.
Die Karte soll mit einem FPGA kommunizieren. Der FPGA bekommt die Sollwerte für eine Scannerpositionierung übergeben. und liest die Istposition von einem Inkrementaldrehgeber aus. Daraus bildet er die Regeldifferenz, die er D/A-gewandelt an den PID-Regler weitergibt. Über die zu simulierende Schnittstelle werden also die Sollwerte der Regelung vorgegeben, sowie die Istwerte des Inkrementaldrehgebers entgegengenommen und protokolliert.
Als Backup- Lösung habe ich auch schon angedacht über zwei verschiedene Ports der Karte zu lesen und zu schreiben und diese Ports über einen Mikroprozessor zum FPGA durchschalten zu lassen. Würde das LabVIEW direkt hinbekommen wäre es allerdings optimal...
Danke erstmal für die schnelle Antwort...
Gruß Sebastian
' schrieb:Ich möchte mit LabVIEW abwechselnd vom Digitalport der NI PCIe6363 lesen,bzw. darauf schreiben.
[attachment=49842:digital_in_out.PNG]
Solange du auf verschieden Lines eines Ports lesen und schreiben willst, dann geht das meines Wissens nach einfach so. Du brauchst nicht den Read-Part für Line1 stoppen, um auf Line0 des Ports zu schreiben.
Gruß, Jens
Da hast du recht. Allerdings will ich auf einem 12bit Datenport parallel lesen und schreiben.
Ich werde wohl zwei 12 bit Ports nehmen. Auf einem lese ich kontinuierlich mit 4kHz und auf dem anderen schreibe ich. Die Richtung des Prüflingsinterface wird mit einem Read- und einem Writesignal gesteuert.
Es sollte also funktionieren die beiden Ports zu verbinden und bei read access den write Port über einen tristate-Transceiver wegzuschalten. Der Read-Port kommt direkt ans Prüflingsinterface. So wird der Writeport beim Lesen vom Bus getrennt und beim Schreiben hört der Readport halt mit. Das Timing sollte sich Softwaremäßig richtig konfigurieren lassen.
Hat irgendwer eine bessere Idee????
Hi,
also erstmal:
[
attachment=21730]
Und wie liest du mit 4 kHz von einem digitalen Port? Willst du das per SW-timing (Schleife?) machen? Das wird nix...
Ich weiß jetzt aber auch nicht, wie man die Abtastrate für nen DI-Port bei kontinuierlichem Betrieb einstellt...außer, man liest ein "digitale Waveform" an jedem Channel ein, dafür gibts Beispiele...wie du diese dann aber synchronisiert (Channels untereinander), weiß ich nicht...
Wer weiß da mehr?
A.