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 

Leistungsmessung mit CompactRIO



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!

15.04.2008, 14:06
Beitrag #1

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Leistungsmessung mit CompactRIO
Hallo,
ich habe mal eine etwas umfangreichere Frage. Ich möchte eine Langzeitleistungsmessung durchführen.
Als Hardware habe ich eine
CompactRIO 9072
Mit den Einschub NI 9215
Leider weiß ich nicht genau in welcher Datenform ich die Messwerte verarbeiten soll. In der FPGA der CompactRIO bekomme ich die Werte als FXP (Fließkomma) dargestellt.
Habt ihr vielleicht ein Idee wie ich die Werte am sinnvollsten weiter verarbeite ? Falls jemand eine Idee hat wie man dabei am besten vorgeht, dann wäre es nett wenn ihr es posten würdet.
Ich habe überlegt ob ich die Messwerte in ein Array schreibe und als Array an den Echtzeitprozessor übertrage.
Vielen Dank
Gruß Benjamin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.04.2008, 14:44
Beitrag #2

jhoormann Offline
LVF-Grünschnabel
*


Beiträge: 43
Registriert seit: Apr 2006

8.0, 8.2.1, 8.5,8.6, 2009SP1 und 2010 Dev-Suite
2006
de_en

21031
Deutschland
Leistungsmessung mit CompactRIO
Ich würde auf die Übertragung vom FPGA zum RTSystem auf ein Array verzichten, es ist sehr langsam. Die Daten kannst du dir auch als Rohdaten auslesen und ebenso die Kalibrirungsdaten von dem Analogmodul, diese können dann im RT-System z.B. in float selbst umgerechnet werden, hierfür gibt es im Examplefinder Bespiele.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2008, 02:15
Beitrag #3

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Leistungsmessung mit CompactRIO
wenn du 8.5.1 mit rio 2.4 hast, dann nimm direkt die FXP darstellung.
d.h. lass dir die werte im FPGA bereits kalibrierter vom AI node zurueck geben, wandle diese in ein boolsches array um und dieses wiederum in einen U32. die werte uebertraegst dann am einfachsten per DMA an den host. dort alles wieder zurueck wandeln und feddich.

Im fpga koenntest du noch eventuelle verrechnungen durchfuehren sofern diese nicht allzu aufwendig sind.
hierfuer kannst dir unter ni.com/lab die FXP bibliothek downloaden
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2008, 13:06
Beitrag #4

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Leistungsmessung mit CompactRIO
Vielen Dank für die schnelle Antwort. Ich habe es heute mal ausprobiert und leider nicht richtig hinbekommen. Deshalb habe ich noch einige Fragen. Ich habe mein kleines Testprogramm mal angehängt.
1) Warum kann ich den FXP-Datentyp nicht direkt auf das RT-System übertragen ?
Weshalb diese Umwandlung in ein Boolsches Array und dann in U32, was bewirkt diese.

2) Leider entsprachen die im RT-System angezeigten Werte nicht den angeschlossenen Eingangssignalen. Kann es sein das sich durch die Umwandlung das Komma verschiebt oder verloren geht.

3) Kann ich zur Einstellung der Abtastrate die zeitgesteuerte Schleife verwenden wie ich es im Programm verwendet habe oder wird dies in kleinen Zeitbereichen ungenau ?

Vielen Dank im voraus
Gruß Benjamin

   
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2008, 13:15
Beitrag #5

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Leistungsmessung mit CompactRIO
die zeitgesteuerte schleife unter FPGA hat nur die gleiche appearance aber net den gleichen flavor. unter FPGA heisst die schleife single-cycle timed loop (SCTL) und in dieser koennen nur funktionen verwendet werden, die nativ 0 oder max 1 tick benoetigen. dein ai benoetigt in abhaengigkeit der abtastrate x ticks, definitiv aber immer mehr als 1 tick.
ein loop timer reicht voellig aus.

der fxp datentyp ist aktuell noch nicht im c-strom erfasst, deshalb die umwandlung damit dieser per DMA gesendet werden kann.
Die umwandlung in das boolsche array hat zur folge dass du im prinzip vorkomma und nachkomma als 32 bit darstellst (du kannst auch weniger oder mehr jedoch aktuell max. 64 bit nehmen). Die ersten x stellen sind die vor und die zweiten y stellen die nachkommawerte. diese kannst du wiederum in einen u32 konvertieren, der aktuell vom DMA verlangt wird....

wenn die werte nicht korrekt sind, dann ist es moeglich, dass du entweder die automatische konvertierung nicht aktiviert hast oder noch den alten rio treiber verwendest.
wenn du auf das c-series modul im project manager einen rechtsklick machst und in die properties gehst, dann musst du die angehaengten einstellungen sehen. wenn das nicht der fall ist, dann lad dir aus dem example finder ein default beispiel, wo gezeigt wird wie man die kalibrierdaten aus dem cseries modul ausliest und in die physikalische einheit konveritert.


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.04.2008, 15:01
Beitrag #6

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Leistungsmessung mit CompactRIO
Danke für die schnelle Antwort. Leider klappt es immer noch nicht. Wenn ich das FPGA wie im Anhang programmiere, dann „verliere ich doch die Kommastelle“ da ich es in ein Integer umwandeln. Es muss doch einfach möglich sein die Messwerte zu übertragen. Kann man diese Tricks mit dem Boolschen Array irgendwo nachlesen oder muss man so was einfach wissen.
Hat jemand vielleicht ein Beispielprogramm.
Danke im Voraus
Gruß Benjamin


   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2008, 02:00
Beitrag #7

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Leistungsmessung mit CompactRIO
vergiss net auf den rechtsklick bei boolean array to number


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2008, 10:39
Beitrag #8

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Leistungsmessung mit CompactRIO
Danke ich denke jetzt klappt es.
Aber kann es sein, dass ich mit dieser Methode negative Werte nicht richtig übertragen kriege ?? Wenn nicht dann liegt das wohl an meinem Messaufbau.
Danke Gruß Benjamin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.04.2008, 15:53
Beitrag #9

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Leistungsmessung mit CompactRIO
Hallo,
langsam bin ich am verzweifeln. Jetzt kann ich mir zwar die Werte anzeigen lassen aber wenn ich im FPGA noch eine Multiplikation durchführen will, kriege ich kein richtiges Ergebnis angezeigt. Hat jemand eine Idee ?? Im Anhang sind die VI als Jpg.

Alles was ich will ist das Produkt von zwei Eingangssignalen zu bilden um es dann im RT-System über der Zeit zu Integrieren. Ich hätte nicht gedacht das dies so schwer wird.
Danke im Voraus
Gruß Benjamin

           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2008, 01:57
Beitrag #10

thomas.sandrisser Offline
LVF-SeniorMod


Beiträge: 1.298
Registriert seit: Sep 2005

xxxx
2005
EN

78759
United States
Leistungsmessung mit CompactRIO
ich glaube du hast das prinzip noch net so ganz verstanden.
wenn du die werte ohne irgendwelches buffering an den host uebertragen willst, dann musst du NICHT die umwandlung in einen U32 wert veranstalten.
Wenn du am Host mit dem Read/Write Control zugreifst, dann ist das ein registerzugriff im sinne von on demand und keine gepufferte erfassung.

wenn ich mir deinen code ansehe, dann willst du auch nichts anderes machen als lediglich den aktuellsten wert auslesen ohne irgendeine handshaking aktion durchzufuehren.
in diesem fall, schreib direkt in einen indikator im fpga und verwende die read/write funktion am host.



hier zur frage warum ein falscher wert raus kommt:
du erfasst einen I16 wert und typecastest diesen zu einem U32 -> vorzeichen verschwindet und fliesst in die zahl ein. zudem multiplizierst du einen u32 mit einem u32 wert. du beruecksichtigst niergends einen ueberlauf. wenn du am host den U32 wert in einen I16 zurueck castest, kommt wieder das richtige ergebnis raus.
diese information ist jedoch hinfaellig, wenn du kein DMA verwendest und direkt die indikatoren repsektive register ausliest.


ich glaube, du solltest den example finder oeffnen und fpga - crio getting started beispiele ansehen und diese fuer den anfang verwenden
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Einstellung der Systemzeit einer CompactRIO ?? Benjamin84 4 6.609 17.12.2009 10:24
Letzter Beitrag: Jansen83

Gehe zu: