Hallo,
ich möchte einen numeric indicator erstellen, der im Extended Precision Format Werte zwischen 0 und 360 annehmen kann. Wenn 360 überschritten wird, soll das Ganze wieder von vorne anfangen. (Also: 355+10=5). Wenn Null unterschritten wird, soll das gleiche passieren. Wie kann ich das Realisieren?
Mach doch mal ein Bsp., wo man auch sieht was Du vorhast (wo Du z.B. 10 addieren möchtest,...).
Weil ansonsten würde ich sagen, nimm eine Casestruktur und wenn die Zahl größer als 360 ist, dann setze den Indicator auf 0.
Gruß Markus
Was hälst Du davon? Wert Modulo 360 und das Ergebnis anzeigen. Modulo findest Du in der Numeric-Palette.
Gruß Holger
' schrieb:Was hälst Du davon? Wert Modulo 360 und das Ergebnis anzeigen. Modulo findest Du in der Numeric-Palette.
Gruß Holger
Das ist schonmal ein guter Ansatz.
Allerdings wollte ich wissen, ob es möglich wäre das Ganze in den indicator zu integrieren. Das hätte den Vorteil, dass man nicht jedes mal an das Modulo denke müsste. Bei einer Control kann man ja auch einen Datebereich festlegen, den die Control annehmen kann, ich hatte gedacht, dass das vielleicht auch mit einem Indicator geht und dass ein Overflow möglich wäre. Wie gesagt, das wäre vom handling her einfacher. Da ich das aber in einer Objektorientierung verwenden werde, wird es wohl mit Modulo auch gehen. Danke für die Antworten.
Du kannst Dir ja auch ein x-control basteln. Das kannst Du dann überall verwenden.
Gruß Markus
Hallo jak,
ein Indicator zeigt die Werte an, die du per Draht an ihn weiterleitest. Ich würde es sehr befremdlich finden, wenn ein Indicator da plötzlich eigene Rechnungen vornimmt (abgesehen von einer "normalen" Skalierung wie bei Graph-Achsen). Von daher eine Modulo-Operation verwenden. Wenn du öfter Winkel-Angaben darstellen musst, würde sich ja ein kleines Umrechnungs-subVI anbieten, so wie hier:
[
attachment=29948] (Umrechnung PID-Parameter von 1/s nach 1/min für den NI-PID-Regler)
Bei einem Control kannst du zwar einen Wertebereich vorgeben - der gilt aber nur, wenn ein User manuell Werte ändern/eingeben will. Wenn dieses Control als VI-Eingang verbunden ist, werden die Werte auch ohne Änderungen durchgereicht! (Ist, glaub ich, ab LV6 Standardverhalten. Vorher wurde auch in diesem Fall der Wert auf den gewünschten Range angepasst.)

Extended Precision bei Werte von "nur" 0-360, wow, was für Genauigkeiten brauchst du denn?!
Gruß, Jens
' schrieb:
Extended Precision bei Werte von "nur" 0-360, wow, was für Genauigkeiten brauchst du denn?!
Gruß, Jens
Naja, mein Dozent hat mal gemeint, dass mein Vorgänger Mondphasen gemessen hat, mittels Beschleunigungssensor. Der Einfluss des Mondes liegt überschlägig bei 10^-4 - 10^-22 mal g. Daher hab ich beim ersten Entwurf meiner Software alles so genau wie möglich eingestellt. Ich denke allerdings nicht, dass der Sensor das erreichen kann von der Genauigkeit her. Später muss man sich wohl nochmal überlegen, welchen Bereich man verwendet und was der Sensor wirklich kann. (nämlich höchstens 0,366*10^-3*g)
Hallo jak,
die Frage ist nicht, welches der kleinste zu messende Wert deines Beschleunigungssensors ist, sondern wieviele Stellen dein Messwert hat!
Wenn dein Sensor einen Wert wie "0,366e-3" liefert, reichen dir doch schon 3 Stellen Genauigkeit - d.h. du kommst mit SGL locker aus. Nur wenn der Sensor stattdessen "0,36598765432109e-03" liefern sollte (was ich stark bezweifle), bräuchtest du DBL oder gar EXT! Da viele Rechenfunktionen aber auf DBL festgelegt sind, würde ich hier immer mit DBL arbeiten...