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!
ich hab mal wieder ein Problem, oder besser gesagt, zwei!
Ich nutze die express VI "Trigger und Gate" um ein gestörtes Sinussignal (analog mit Rauschen) zu zähle, in dem ich die abfallende Flanke bei 500 Bar erfasse!
1. Problem
Der Zähler funktioniert wunderbar, bis zum Wert 32767. Dann ändert sich beim nächsten Zählwert das Vorzeichen auf -32768. Und dann zählt er wieder rückwärts!
Hat da jemand eine Idee warum?
2. Problem
Ich habe eine Universal Anwendung geschrieben, die die meisten Funktionen beinhaltet die wir benötigen!
In dieser ist der Zähler integriert und Manuel zu oder abschaltbar!
Dazu müsste aber auch der Startpegel der express VI "Trigger und Gate", Manuel aus dem Frontpanel veränderbar sein!
Gibt es dafür eine Möglichkeit?
(14.11.2013 15:32 )erzengelsamael schrieb: 1. Problem
Der Zähler funktioniert wunderbar, bis zum Wert 32767. Dann ändert sich beim nächsten Zählwert das Vorzeichen auf -32768. Und dann zählt er wieder rückwärts!
Hat da jemand eine Idee warum?
Der Datentyp I16 hat den Wertebereich -32768 bis 32767. Selber Schuld, wenn du das für einen Zähler-Wert nimmst.
(14.11.2013 15:32 )erzengelsamael schrieb: 2. Problem
Ich habe eine Universal Anwendung geschrieben, die die meisten Funktionen beinhaltet die wir benötigen!
In dieser ist der Zähler integriert und Manuel zu oder abschaltbar!
Dazu müsste aber auch der Startpegel der express VI "Trigger und Gate", Manuel aus dem Frontpanel veränderbar sein!
Gibt es dafür eine Möglichkeit?
Nur über Klimmzüge. Express-VI Frontpanel öffnen (Rechtsklick -> Open Frontpanel), dann die erstellte Kopie irgendwo im Projekt speichern und modifizieren.
Oder noch besser: Ganz auf Express-VIs verzichten.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(14.11.2013 15:32 )erzengelsamael schrieb: 1. Problem
Der Zähler funktioniert wunderbar, bis zum Wert 32767. Dann ändert sich beim nächsten Zählwert das Vorzeichen auf -32768. Und dann zählt er wieder rückwärts!
Hat da jemand eine Idee warum?
Bei deinem Zähler handelt es sich um einen "Integer mit Vorzeichen" - dieser hat 16bit zur Verfügung, was 2^16 enspricht bzw. 65.535. Diese Zahl teilt er mehr oder weniger symmetrisch um 0 auf und rennt dann am Ende (im Überlauf) wieder von vorne los. Um das "Problem" abzustellen kannst du per rechtsklick -> representation den Datentyp auf SGL umstellen, bei dem du dieses Phänomen nicht mehr erleben wirst.
(14.11.2013 15:32 )erzengelsamael schrieb: 2. Problem
Ich habe eine Universal Anwendung geschrieben, die die meisten Funktionen beinhaltet die wir benötigen!
In dieser ist der Zähler integriert und Manuel zu oder abschaltbar!
Dazu müsste aber auch der Startpegel der express VI "Trigger und Gate", Manuel aus dem Frontpanel veränderbar sein!
Gibt es dafür eine Möglichkeit?
Mal abgesehen davon, dass ich Mitleid mit dem zu- und abschaltbaren Manuel habe, kenne ich keine Möglichkeit, diese Einstellung während der Laufzeit des Programms zu ändern.
If you're havin' serial communication problems I feel bad for you, son, I got 99 problems but a baud ain't one! (except if using USB2serial converters, then I experience serialous problems)
Bei Datenformat SGL oder DBL wirst du irgendwann das Problem bekommen, dass "Wert+1 = Wert" herauskommt, Stichwort Gleitkommazahl. Für Zähler sind ganzzahlige Datentypen auf jeden Fall besser geeignet.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(14.11.2013 16:12 )jg schrieb: Bei Datenformat SGL oder DBL wirst du irgendwann das Problem bekommen, dass "Wert+1 = Wert" herauskommt, Stichwort Gleitkommazahl.
Das hab ich gleich mal probiert, Zählen mit SGL funktioniert bis zu 16 Millionen:
(14.11.2013 17:48 )jg schrieb: Und bei I32 geht es bis über 2,14 Milliarden, bei U32 bis über 4 Milliarden, bei I64 bis weit über 9*10^18.
Das klingt jetzt fast so, als ob ich Kritik an Deinen Bedenken gegen die SGL-Zahl hätte hätte üben wollen, nach dem Motto: "Ätsch, mit SGL-Zahlen geht das Zählen doch!" Das wollte aber ich aber absolut nicht, mich interessierte nur, wie weit man mit dem SGL-Format Ganzzahlen fehlerfrei darstellen kann.
Übrigens häte man sich das VI auch sparen könnne, denn beim SGL-Format ist die Mantisse 23 bit lang, und zwar ohne das MSB, welches immer 1 ist (Ausnahme bei Wert=0) und daher weggelassen wird. Das entspricht genau dem Ergebnis:
167772175 = FF FF FF Hex --> 24 bit.
Gruß Ludwig