![]() |
NI cRIO 9042 Synchronisation - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Module (/Forum-LabVIEW-Module) +---- Forum: LabVIEW RealTime (/Forum-LabVIEW-RealTime) +---- Thema: NI cRIO 9042 Synchronisation (/Thread-NI-cRIO-9042-Synchronisation) |
NI cRIO 9042 Synchronisation - vicious - 08.07.2025 13:58 Hallo Gemeinde, im Anhang befindet sich mein Programm zur Erzeugung von zwei Digitalsignalen in Abhängigkeit vom zwei unterschiedlichen Frequenzen. Ich möchte beide synchonisieren, bin aber kläglich gescheitert.. Weiss jemand wie es funktionieren könnte? Davon abgesehen ändert sich das clock signal mit der Triggerfrequenz. Ist es möglich eine Periode der Triggerfrequenz in N-Teile zu teilen und das dann als Clocksignal auszugeben? Vielen Dank im Voraus Eric RE: NI cRIO 9042 Synchronisation - GerdW - 08.07.2025 14:19 Hallo vicious, Zitat:mein Programm zur Erzeugung von zwei Digitalsignalen in Abhängigkeit vom zwei unterschiedlichen Frequenzen.Wie stellst du dir die Synchronisierung von "zwei unterschiedlichen Frequenzen" vor? Kannst du mal ein Diagramm malen, wo du diese "zwei Frequenzen" (das sind wohl zwei pulse trains?) darstellst und darunter die gwünschte Ausgabe deiner Digitalsignale? Zitat:Davon abgesehen ändert sich das clock signal mit der Triggerfrequenz.Was ist jetzt das "clock signal" und wo findet sich die "Triggerfrequenz"? Zitat:Ist es möglich eine Periode der Triggerfrequenz in N-Teile zu teilen und das dann als Clocksignal auszugeben?Sicherlich. Wie groß darf der Delay dabei sein? Kannst du dein VI auch für LV2019 runter konvertieren und nochmal anhängen? RE: NI cRIO 9042 Synchronisation - vicious - 08.07.2025 14:39 Zitat:Wie stellst du dir die Synchronisierung von "zwei unterschiedlichen Frequenzen" vor? Ich will in einer Triggerperiode 3600 Impulse haben. Wenn eine neue Triggerperiode beginnt, sollen wieder 3600 Impulse augeben werden. Zitat:Was ist jetzt das "clock signal" und wo findet sich die "Triggerfrequenz"? Das sind Netzwerkvariablen die vom Host-Pc berechnet werden. Die Clockfrequenz sollte theoretisch so hoch sein, dass 3600 Impulse innerhalb einer Triggerperiode entstehen. Zitat:Sicherlich.Möglichst Null ![]() Zitat:Kannst du dein VI auch für LV2019 runter konvertieren und nochmal anhängen?ist drin. Die Skizze würde ich heut Abend nachreichen RE: NI cRIO 9042 Synchronisation - GerdW - 08.07.2025 19:21 Hallo vicious, warum ist dein VI soooo unaufgeräumt??? Warum sieht es nicht in etwa so aus: [attachment=62934] In "sauberem" Code können sich Bugs viel schwerer verstecken!!! Warum wird bei einem Task gleich zweimal DAQmxStart aufgerufen??? Warum wird bei beiden Tasks "Is Done" aufgerufen - aber überhaupt nicht verwendet? Warum wird der "f-trg"-Wert erst eine Iteration später ausgegeben? Warum wird der untere Task in JEDER Iteration gestartet? Du weißt, dass das Prüfen von Floats auf (Un-)Gleichheit gefährlich ist? Du weißt, was du per "low ticks"/"high ticks" einstellst? Zitat:Das sind Netzwerkvariablen die vom Host-Pc berechnet werden. Die Clockfrequenz sollte theoretisch so hoch sein, dass 3600 Impulse innerhalb einer Triggerperiode entstehen.Du weißt, das Netzwerkvariablen einen Delay mitbringen (können)? Zitat:Ich will in einer Triggerperiode 3600 Impulse haben. Wenn eine neue Triggerperiode beginnt, sollen wieder 3600 Impulse augeben werden.Das wäre mMn eine prima Aufgabe für den FPGA in deinem cRIO: der kann sehr genau Pulse erzeugen, auf Flanken achten, etc! Um das mit DAQmx umzusetzen, müsste ich mich auch erst durch die ganzen DAQmx-CTR-Beispiele wühlen - ich denke aber, dass das ein ziemlicher Aufwand wird, einen DAQmx-CTRout-Task in Abhängigkeit eines zweiten CTRout-Task nach deinen Anforderungen zu konfigurieren… RE: NI cRIO 9042 Synchronisation - vicious - 08.07.2025 20:23 Zitat:warum ist dein VI soooo unaufgeräumt???weil ich keine Ahnung hab und relativ wenig Erfahrung mit der Umgebung habe. Zitat:Warum sieht es nicht in etwa so aus:vielen Dank für den Hinweis. Ich versuch mich zu bessern. Zitat:Warum wird bei einem Task gleich zweimal DAQmxStart aufgerufen???ich bin am hin und her probieren und hab wahrscheinlich vergessen das zu löschen. Zitat:Warum wird bei beiden Tasks "Is Done" aufgerufen - aber überhaupt nicht verwendet?ich habe keine Ahnung was das überhaupt bewirken soll. Ich hab mich nur an Beispielen orientiert. Zitat:Warum wird der "f-trg"-Wert erst eine Iteration später ausgegeben?auch keine Ahnung.. Zitat:Warum wird der untere Task in JEDER Iteration gestartet?ich bekomme die Netzwerkvariable nicht aus der Schleife raus (durch den Tunnel). Ich will nur ab und zu prüfen ob sich daran etwas geändert hat. Zitat:Du weißt, dass das Prüfen von Floats auf (Un-)Gleichheit gefährlich ist?die Lösung ist aus der Doku/Forum von NI Zitat:Du weißt, was du per "low ticks"/"high ticks" einstellst?das werde ich morgen mal recherchieren.. Zitat:Du weißt, das Netzwerkvariablen einen Delay mitbringen (können)?ja ich will nur prüfen ob sie sich geändert hat und dann mit dem neuen Wert weiter machen. In dem dem Programm, was die Variable liefert stelle ich eine Drehzahl ein.. Zitat:Das wäre mMn eine prima Aufgabe für den FPGA in deinem cRIO: der kann sehr genau Pulse erzeugen, auf Flanken achten, etc!Kann ich nicht eine Art Puffer schreiben (für die Clock-Signale) und die solang im Voraus berechnen bis sie sich ändert und dann den Puffer neu schreiben? Ich belaste morgen mal meinen Betreuer, mal sehen was der so sagt.. Vielen Dank! |