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 

cRIO



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!

30.10.2008, 07:46 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2008 07:50 von cb.)
Beitrag #18

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
cRIO
' schrieb:Hallo id2x,

ich habe das Prinzip schon verstanden. Die 80ms hatte ich als Timer gesetzt, bevor ich den IRQ benutzt habe. Mit IRQ wird die RT-Schleife ja jetzt mit der FPGA-Schleife synchronisiert.

Ich hatte aber übersehen, dass ich in der FPGA-Schleife noch einen Trigger eingebaut habe, der bei periodischen Signalen erst bei Nulldurchgang mit dem FIFO-Schreiben startet, so dass es im ungünstigsten Fall bei einem periodischen Signal von 50Hz eine Verzögerung von 20ms gibt. Außerdem werden die Daten in meiner "RT-Abholschleife" nach dem Auslesen noch verarbeitet (rechenintensivere Aufbereitung und Analyse).

Ich habe noch recht wenig praktische Erfahrung im Bereich RT-Programmierung. Würde es Sinn machen, die ganze Datenanalyse in eine extra Schleife zu packen? Ich habe noch zwei weitere für Regelung/Datenausgabe und den Datenaustausch über TCP/IP.

Schon mal Danke für deine bisherige Hilfe!

Ja, das macht IMHO schon Sinn. In der Abhol-Schleife wandle ich die Roh-Daten eigentlich nur in Spannungen um (=Verrechnung mit der Kalibrierung) und wende die Skalierung darauf an (Spannungen --> Messdaten). Anschließend schicke ich die Daten über einen RT-FIFO oder eine Queue* an die Auswerte-Schleife.

Wenn du einen Trigger in der FPGA-Schleife eingebaut hast ist das natürlich klar, dass sich der Takt verzögern kann. So lang dadurch der FIFO und das warten auf den IRQ nicht in einen Timeout laufen seh ich da auch kein Problem damit. Sehe ich das jetzt richtig, dass du nach einem Nulldurchgang genau 512 Samples pro Kanal aufzeichen willst?

* RT-FIFOs verwende ich eigentlich nur, wenn es richtig schnell gehen muss. Bei Beispielen wie diesem - weil die Übertragung alle 100ms doch recht langsam ist- nehm ich eine Queue (frag mich nicht warum, hat sich irgendwann so eingebürgert und wenn mir Tom gleich ne Watschen gibt, dann weiß ich dass das grundsätzlich falsch istWink) die ich am Anfang des Programms mal initialisiert hab: Erstellen, mit z.b. 200 werten füllen, Flush Queue => der Speicher für diese Queue ist initialisiert

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
cRIO - MichaDu - 21.10.2008, 21:05
cRIO - thomas.sandrisser - 22.10.2008, 03:50
cRIO - cb - 22.10.2008, 07:05
cRIO - MichaDu - 22.10.2008, 08:30
cRIO - cb - 22.10.2008, 09:14
cRIO - thomas.sandrisser - 22.10.2008, 09:33
cRIO - cb - 22.10.2008, 17:42
cRIO - MichaDu - 27.10.2008, 07:22
cRIO - cb - 27.10.2008, 08:23
cRIO - DAX5 - 27.10.2008, 12:58
cRIO - MichaDu - 27.10.2008, 15:46
cRIO - cb - 27.10.2008, 16:58
cRIO - MichaDu - 29.10.2008, 09:24
cRIO - cb - 29.10.2008, 10:52
cRIO - MichaDu - 29.10.2008, 15:38
cRIO - cb - 29.10.2008, 16:25
cRIO - MichaDu - 30.10.2008, 07:35
cRIO - cb - 30.10.2008 07:46
cRIO - MichaDu - 30.10.2008, 08:26
cRIO - cb - 30.10.2008, 10:36
cRIO - MichaDu - 30.10.2008, 12:11
cRIO - cb - 30.10.2008, 14:15

Gehe zu: