IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> am Analog Output Modul messe ich zu viel Spannung
Gunni1979
post 08. May 2007, 12:48
Post #1


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



Hallo.

Hat jemand nen Plan woran das liegen kann, dass das Analoge Output Modul cRIO 9263 mehr Spannung abgibt als es laut Berechnung soll? Kann man da was einstellen/korrigieren? Laut einer Formel (aus einer der Seiten von NI) beträgt die Spannung die am Modul anliegt Output Voltage = BinaryCode * 20 / 2^Resolution of Modul. Das heißt in diesem Fall mit 16 Bit sollten bei gewünschten 5 Volt eine Zahl 16384 auf das Modul gelegt werden. Mit meinem externen Oszi messe ich aber 5,5 V. Ist meines Erachtens ein wenig heftig. Kann man da etwas korrigieren mit so ner Art Stellschraube oder so? Oder muss doch softwareseitig was getan werden?
Wir haben hier ein zweites Gerät stehen mit den gleichen Modulen. Habe jetzt mal diese beiden analogen Module getauscht aber es ist der gleiche Effekt.


Gunni
Go to the top of the page
 
+Quote Post
CB
post 09. May 2007, 12:27
Post #2


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 08. May 2007, 13:48) [snapback]203[/snapback]
Hallo.

Hat jemand nen Plan woran das liegen kann, dass das Analoge Output Modul cRIO 9263 mehr Spannung abgibt als es laut Berechnung soll? Kann man da was einstellen/korrigieren? Laut einer Formel (aus einer der Seiten von NI) beträgt die Spannung die am Modul anliegt Output Voltage = BinaryCode * 20 / 2^Resolution of Modul. Das heißt in diesem Fall mit 16 Bit sollten bei gewünschten 5 Volt eine Zahl 16384 auf das Modul gelegt werden. Mit meinem externen Oszi messe ich aber 5,5 V. Ist meines Erachtens ein wenig heftig. Kann man da etwas korrigieren mit so ner Art Stellschraube oder so? Oder muss doch softwareseitig was getan werden?
Wir haben hier ein zweites Gerät stehen mit den gleichen Modulen. Habe jetzt mal diese beiden analogen Module getauscht aber es ist der gleiche Effekt.
Gunni


schau dir mal das Beispiel an, dass ich damals im LabVIEW Forum für dich gepostet hatte. Da lese ich irgendwo die Kalibrierdaten des Moduls aus. Bei einem AO Modul kann man das auch machen, in der Formel oben hast du nämlich den Offset vergessen und den kannst du aus dem Modul auslesen ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 09. May 2007, 12:59
Post #3


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 09. May 2007, 13:27) [snapback]206[/snapback]
schau dir mal das Beispiel an, dass ich damals im LabVIEW Forum für dich gepostet hatte. Da lese ich irgendwo die Kalibrierdaten des Moduls aus. Bei einem AO Modul kann man das auch machen, in der Formel oben hast du nämlich den Offset vergessen und den kannst du aus dem Modul auslesen ...


Gut. Ausgelesen habe ich diese beiden Sachen mit LSB Weigth und Offset jetzt schon.
Wenn ich auf FPGA-Seite aber meinen Sinusgenerator benutze, wie kann ich diese beiden Werte mit ner Formel dann benutzen um da die Amplitude genau auf 10 V zu bringen. Denn der ist Original immer auf 32767(positive Halbwelle) und -32768(negative Halbwelle) eingestellt. Mit den beiden vorher besagten Daten ändert sich dieser wert ja dann auf etwas weniger .

Gunni

This post has been edited by Gunni1979: 09. May 2007, 13:03
Go to the top of the page
 
+Quote Post
CB
post 09. May 2007, 20:51
Post #4


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 09. May 2007, 13:59) [snapback]207[/snapback]
Gut. Ausgelesen habe ich diese beiden Sachen mit LSB Weigth und Offset jetzt schon.
Wenn ich auf FPGA-Seite aber meinen Sinusgenerator benutze, wie kann ich diese beiden Werte mit ner Formel dann benutzen um da die Amplitude genau auf 10 V zu bringen. Denn der ist Original immer auf 32767(positive Halbwelle) und -32768(negative Halbwelle) eingestellt. Mit den beiden vorher besagten Daten ändert sich dieser wert ja dann auf etwas weniger .

Gunni


Es gibt ein Beispiel im Example Finder, das VI das du brauchst heisst "Binary to nominal" bzw. "Nominal to Binary". Such das mal, dann spar ich mir die Erklärerei <faul=on> smile.gif


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 10. May 2007, 08:39
Post #5


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 09. May 2007, 21:51) [snapback]208[/snapback]
Es gibt ein Beispiel im Example Finder, das VI das du brauchst heisst "Binary to nominal" bzw. "Nominal to Binary". Such das mal, dann spar ich mir die Erklärerei <faul=on> smile.gif



Ja stimmt. Mit dem "einen" hatte ich schon Werte berechnet. Ich glaube ich hab ne Idee. Ich berechne vorher mit "Nominal to Binary" den Binärwert und setzte ihn in ein Verhältnis zu 32767 (die angeblich 10 V wären). Den Faktor schiebe ich auf die FPGA-Anwendung und rechne ihn zum Ausgang des Generators dazu.


Gunni
Go to the top of the page
 
+Quote Post
CB
post 10. May 2007, 11:56
Post #6


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 10. May 2007, 09:39) [snapback]209[/snapback]
Ja stimmt. Mit dem "einen" hatte ich schon Werte berechnet. Ich glaube ich hab ne Idee. Ich berechne vorher mit "Nominal to Binary" den Binärwert und setzte ihn in ein Verhältnis zu 32767 (die angeblich 10 V wären). Den Faktor schiebe ich auf die FPGA-Anwendung und rechne ihn zum Ausgang des Generators dazu.
Gunni


ne, das ist falsch. Mit "Nominal to Binary" berechnest du schon den I16 Wert, der auf den AO geschrieben werden soll, skalierung und um das Offset bereinigt. Da brauchst du nicht nochmal was berechnen ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 10. May 2007, 13:12
Post #7


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 10. May 2007, 12:56) [snapback]210[/snapback]
ne, das ist falsch.

Da bin ich mir noch nicht sicher ob du jetzt recht hast.
QUOTE(CB @ 10. May 2007, 12:56) [snapback]210[/snapback]
Mit "Nominal to Binary" berechnest du schon den I16 Wert, der auf den AO geschrieben werden soll, skalierung und um das Offset bereinigt. Da brauchst du nicht nochmal was berechnen ...

Dem bin ich mir im Klaren. Da der Sinusgenerator aber ne Amplitude mit festen Wert von 32767 / -32768 liefert, muss ich die Berechnung die eigentlich "Nominal to Binary" macht auf FPGA-Seite bringen. in der eben besagten wird erst der Offset zum eigentlichen Wert dazu addiert und danach wird alles mit dem Skalierungsfaktor multipliziert.
Der FPGA kann nur mit ganzen Zahlen rechnen, also habe ich auf HOST-Seite den Offset für das Modul ausgerechnet. Offset = Offset vom Modul * 10^-9 *2^16 / 20. Da kam bei mir ein wert um 46 raus.[attachment=100:HOST_HardwareCAL.JPG]
dann habe ich mir was für den Faktor gedacht und zwar 1 * 20 * 1000 / LSB Weight * 10^-9 * 2^16. Mal 1000 habe ich genommen, weil sonst ne Komma zahl raus kommt. Auf FPGA-Seite ziehe ich nun von den vom Sinusgenerator festen Wert 32767 den Offset ab. Multipliziere die gesamte Geschichte mit dem 1000fachen Skalierungsfaktor und dividiere es dann wieder durch 1000 ( mit der Quotient und Rest - Division).[attachment=101:FPGA_HardwareCAL.JPG]

Das sollte meines Erachtens das gleiche sein wie mit "Nominal to Binary.vi".


Gunni

This post has been edited by Gunni1979: 10. May 2007, 13:20
Go to the top of the page
 
+Quote Post
CB
post 10. May 2007, 18:05
Post #8


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 10. May 2007, 14:12) [snapback]211[/snapback]
Da bin ich mir noch nicht sicher ob du jetzt recht hast.

Dem bin ich mir im Klaren. Da der Sinusgenerator aber ne Amplitude mit festen Wert von 32767 / -32768 liefert, muss ich die Berechnung die eigentlich "Nominal to Binary" macht auf FPGA-Seite bringen. in der eben besagten wird erst der Offset zum eigentlichen Wert dazu addiert und danach wird alles mit dem Skalierungsfaktor multipliziert.
Der FPGA kann nur mit ganzen Zahlen rechnen, also habe ich auf HOST-Seite den Offset für das Modul ausgerechnet. Offset = Offset vom Modul * 10^-9 *2^16 / 20. Da kam bei mir ein wert um 46 raus.[attachment=100:HOST_HardwareCAL.JPG]
dann habe ich mir was für den Faktor gedacht und zwar 1 * 20 * 1000 / LSB Weight * 10^-9 * 2^16. Mal 1000 habe ich genommen, weil sonst ne Komma zahl raus kommt. Auf FPGA-Seite ziehe ich nun von den vom Sinusgenerator festen Wert 32767 den Offset ab. Multipliziere die gesamte Geschichte mit dem 1000fachen Skalierungsfaktor und dividiere es dann wieder durch 1000 ( mit der Quotient und Rest - Division).[attachment=101:FPGA_HardwareCAL.JPG]

Das sollte meines Erachtens das gleiche sein wie mit "Nominal to Binary.vi".
Gunni


ich würd das einfacher machen:

rechne dir einfach mit Nominal to Binary den i16 Wert für -10 Volt und +10 Volt aus, dann *weisst du wo du liegst". Die Skalierung an sich musst du nicht mehr verändern, die ist ja schon durch das Modul gegeben, du musst nur deinen Sinus Generator noch so anpassen, dass er nicht von -32767 bis 32767 ausgibt sondern nur bis zu *deinen* +- 10 Volt (in i16). Dann musst du nur noch den halben Offset abziehen, und dann sollte alles genau so funktionieren, wie du das willst ...

Da sich der Offset und die Skalierung des Modules nicht ändert kannst du da durchaus Konstanten für verwenden ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 11. May 2007, 07:53
Post #9


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 10. May 2007, 19:05) [snapback]212[/snapback]
ich würd das einfacher machen:

Du kannst mir galuben, ich hätte es gern einfacher gemacht.

QUOTE(CB @ 10. May 2007, 19:05) [snapback]212[/snapback]
rechne dir einfach mit Nominal to Binary den i16 Wert für -10 Volt und +10 Volt aus, dann *weisst du wo du liegst". Die Skalierung an sich musst du nicht mehr verändern, die ist ja schon durch das Modul gegeben, du musst nur deinen Sinus Generator noch so anpassen, dass er nicht von -32767 bis 32767 ausgibt sondern nur bis zu *deinen* +- 10 Volt (in i16).

Genau hiernach habe ich schon vergebens gesucht. Ich kann die Amplitude des Sinusgenerators nicht verändern. Da müßte ich ja dessen LookUpTable neu schreiben, oder?
Irgendwie muss ich doch da ne Verhältnisgleichung auf die FPGA-Seite bringen.

QUOTE(CB @ 10. May 2007, 19:05) [snapback]212[/snapback]
Dann musst du nur noch den halben Offset abziehen, und dann sollte alles genau so funktionieren, wie du das willst ...

Da sich der Offset und die Skalierung des Modules nicht ändert kannst du da durchaus Konstanten für verwenden ...

Und das wiederum verstehe ich gar nicht. Wieso nur noch den halben Offset abziehen?


Gunni


Update: ...kleine Fehler in der rechnung bei mir habe ich schon selbst gefunden - hier die Korrektur
[attachment=102:FPGA_HardwareCAL.JPG]
[attachment=103:HOST_HardwareCAL.JPG]

für den Offset bekomme ich ein Wert: 49 und für den Faktor CAL1000: 1070

damit habe ich es jetzt geschafft von ehemals 5,5V (fast 5,6V bei eingestellten 5Volt) auf 5,2Volt runter zu kommen. Aber das ist noch nicht das Wahre. Es sollten ja 5,0 Volt sein

This post has been edited by Gunni1979: 11. May 2007, 09:41
Go to the top of the page
 
+Quote Post
CB
post 11. May 2007, 19:41
Post #10


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 11. May 2007, 08:53) [snapback]213[/snapback]
Genau hiernach habe ich schon vergebens gesucht. Ich kann die Amplitude des Sinusgenerators nicht verändern. Da müßte ich ja dessen LookUpTable neu schreiben, oder?


nein, musst du nicht. mach einfach den Haken weg und stell das Maximum neu ein smile.gif


Attached Image


gib mir mal die Original Werte (so wie sie vom Modul zurückgegeben werden) für Offset und LSB Waight, dann rechne ich dir das aus ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 13. May 2007, 20:36
Post #11


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 11. May 2007, 20:41) [snapback]214[/snapback]
nein, musst du nicht. mach einfach den Haken weg und stell das Maximum neu ein smile.gif


Attached Image


gib mir mal die Original Werte (so wie sie vom Modul zurückgegeben werden) für Offset und LSB Waight, dann rechne ich dir das aus ...


Hi.

Kannnst de mir den Rechenweg auch mit auf den Weg geben? Offset: 14885969, LSB Weight: 326528

Go to the top of the page
 
+Quote Post
Gunni1979
post 14. May 2007, 14:48
Post #12


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(Gunni1979 @ 13. May 2007, 21:36) [snapback]215[/snapback]
Hi.

Kannnst de mir den Rechenweg auch mit auf den Weg geben? Offset: 14885969, LSB Weight: 326528



Ich glaube ich habe den Rechenweg selbst gefunden. Habe es mir auch schon ausgerechnet. 30626 habe ich drin stehen. dann ziehe ich die 46 Offset ab und es funzt. Danke.

Gunni
Go to the top of the page
 
+Quote Post
Gunni1979
post 19. Jul 2007, 09:05
Post #13


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(Gunni1979 @ 14. May 2007, 15:48) *
Ich glaube ich habe den Rechenweg selbst gefunden. Habe es mir auch schon ausgerechnet. 30626 habe ich drin stehen. dann ziehe ich die 46 Offset ab und es funzt. Danke.

Gunni


Hi CB,

kannst du mir bitte trotzdem mal den Rechenweg und die dazu gehörigen Ergebnisse ins Forum schreiben. Es müssten namlich 46 für Offset raus kommen, aber ich hatte 49 ausgerechnet.

danke

This post has been edited by Gunni1979: 19. Jul 2007, 11:37
Go to the top of the page
 
+Quote Post
CB
post 22. Jul 2007, 08:10
Post #14


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 19. Jul 2007, 10:05) *
Hi CB,

kannst du mir bitte trotzdem mal den Rechenweg und die dazu gehörigen Ergebnisse ins Forum schreiben. Es müssten namlich 46 für Offset raus kommen, aber ich hatte 49 ausgerechnet.

danke


1. Schritt: du liest die Kalibrier-Daten aus

2. Schritt: du läßt dir mit den Kalibrierdaten durch das "nominal to binary" VI für dein Modul den binären Wert für 0 Volt ausrechnen

=> dieser Wert ist dein Offset, den du im FPGA fest einprogrammieren kannst (einfach abziehen)


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Gunni1979
post 22. Jul 2007, 20:09
Post #15


Member
**

Group: Members
Posts: 68
Joined: 14.02.2007
From: Erfurt
Member No.: 19
LV Version: 8.00 / 8.2
Zertifizierung: keine
LV User seit: 2006



QUOTE(CB @ 22. Jul 2007, 09:10) *
1. Schritt: du liest die Kalibrier-Daten aus

2. Schritt: du läßt dir mit den Kalibrierdaten durch das "nominal to binary" VI für dein Modul den binären Wert für 0 Volt ausrechnen

=> dieser Wert ist dein Offset, den du im FPGA fest einprogrammieren kannst (einfach abziehen)


Einfach abziehen, oder die Hälfte davon abziehen. In einen der vorigen Beiträge zu diesem Thema hattest du was von die Hälfte abziehen gesagt. Wieso die Hälfte?

Gunni
Go to the top of the page
 
+Quote Post
CB
post 23. Jul 2007, 06:48
Post #16


proven Member
****

Group: Administrators
Posts: 315
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE(Gunni1979 @ 22. Jul 2007, 21:09) *
Einfach abziehen, oder die Hälfte davon abziehen. In einen der vorigen Beiträge zu diesem Thema hattest du was von die Hälfte abziehen gesagt. Wieso die Hälfte?

Gunni


joh, frag ich mich jetzt auch grade smile.gif wieso eigentlich die Hälfte? keine Ahnung ....

zur Not kannst du das ja ausprobieren:

Attached Image


häng ein sehr genaues Messgerät an den Analog-Ausgang, lass das VI auf dem FPGA laufen und schau dir an, welchen Wert du eingeben muss, damit du genau 0 Volt rausbekommst ...


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 19.03.2024 - 08:00