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 

Endlicher numerischer Wertebereich



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!

04.04.2007, 20:16
Beitrag #11

mctommson Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 99
Registriert seit: Mar 2007

8.6
2007
de

1210
Oesterreich
Endlicher numerischer Wertebereich
So, da ich leider nicht mehr in der Arbeit bin, habe ich nur noch eine alte Version von meinem Programm gefunden.
Im Grunde macht es dasselbe wie die neue Version, nur das ich die While-Schleifen durch eine For-Schleife ersetzt hab und jetzt für jeden Case von 2-71 alle Zahlen logge, bei dieser Version schreibt er nur 9999 rein, wenn mehr als 10 Positionen nicht gelesen werden konnten...
Im Grunde habe ich nur unterschieden, ob nach oben oder unten gezählt wird, der Rest in den Cases sind die Anzahl der zu loggenden Werte!
Das 2. File ist die V-Abfrage... hab ich als SubVi auch eingebaut.

Beide Files sowohl im 8.2er als auch im 8.0er Format (versteh sowieso nicht warum ich mit 8.2 nicht auch auf 7.1 oder andere Versionen downgraden kann...)

Lg,
Tommy


Angehängte Datei(en)
Sonstige .vi  Kuppel_Pos_Fehlerlog_v1.8_Subvi.vi (Größe: 138,01 KB / Downloads: 163)

Sonstige .vi  Kuppel_Pos_Fehlerlog_V_Abfrage_v1.0_Subvi.vi (Größe: 7,36 KB / Downloads: 144)

Sonstige .vi  Kuppel_Pos_Fehlerlog_v1.8_Subvi_8.0.vi (Größe: 145,84 KB / Downloads: 163)

Sonstige .vi  Kuppel_Pos_Fehlerlog_V_Abfrage_v1.0_Subvi_8.0.vi (Größe: 7,3 KB / Downloads: 153)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.04.2007, 20:25 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2007 20:33 von eg.)
Beitrag #12

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Endlicher numerischer Wertebereich
Also wenn es gerade um etwas ähnliches wie Winkeloperationen geht. Ich hatte mal eine Aufgabe, in der ich Winkeldifferenz ausrechnen und mit einem Kompaß anzeigen sollte. Da er aber nur die Winkel zwischen 0 und 360 anzeigen kann und die Differenz diesen Bereich überschreiten kann, sollte ich das Ergebnis erstmal normieren. D.h. ich habe in einer While-Schleife vom Ergebnis solange 360 abgezogen, bis mein Ergebnis zwischen 0 und 360 lag. Und auch andersrum, wenn mein Ergebnis kleiner 0 war habe ich 360 solange dazuaddiert, bis ich die Zahl zwischen 0 und 360 hatte.
Wäre das ein Lösungsansatz für dich?

Eugen

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2007, 23:20
Beitrag #13

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Endlicher numerischer Wertebereich
Soda habs mir ganz kurz angesehen.

Was mir erstens auffällt: Du benutzt ganz grausam globale und lokale Variablen.
Du beschreibst und liest die Variablen mehrfach in deinem Programm. Das Problem daran ist, dass du keine zeitliche Synchronisation hast. Das kann sehr schnell zu Problemen führen.

- Deine Arrayvariable hast du doch schon in die Schleifen hineingezogen. Da brauchst du die lok. Variablen ja nicht mehr.
- Die glob. Variable würde ich mit einem Event "Value change" abgreifen. Da steht dir der alte und neue Wert zur Verfügung und dein Programm arbeitet nur, wenn auch wirklich sich was ändert.

Um dein Problem zu lösen sollte meine Lösung von oben funktionieren. Einfach aus Zahl1 und Zahl2 deinen alten, neuen Wert der glob. Variable nehmen. Der Array am Ende beeinhaltet dann die fehlenden Zahlen.

Probiers mal aus, sonst überarbeite ich es dir morgen, wenn ich auf der Arbeit bin und mein Vi zur Hand habe.

Gute Nacht, Gruß

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 08:12 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2007 08:22 von Lucki.)
Beitrag #14

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Endlicher numerischer Wertebereich
' schrieb:Kann ich einer numerischen Eingabe irgendwie verdeutlichen, dass es keine Zahlen größer (bsp.) 100 und keine Zahlen kleiner 0 gibt?
Ich meine jetzt nicht eine Minimal- und Maximalwert angabe, sondern eine Art Kreislauf wie bei der Gradangabe in einem Kreis, sprich:
0, 1, 2, ..., 99, 100, 0, 1, ..., usw.
Ja, genau das gibt es, allerdings habe ich es mehr durch Zufall entdeckt, ich weiß nicht, ob das irgendwo beschrieben ist. Wenn Du bei einer Enum-Type die "+1"-Funktion anwendest und der aktuelle Wert war der höchste Wert, dann kommt es nicht etwa zu einer Fehlermeldung, sondern das Ergebnis ist das erste Element. Entsprechend funktioniert es auch mit der Dekrement-Funktion.
Wenn Du nicht 1, sondern z.B. 13 addieren willst, dann würde ich das so machen, das ich die 13 an das N einer For-Schleife anschließe, in der sich das Inkrement-Element an einem Schieberegister befindet. Verständlich?

Habe jetzt nicht viel Zeit, mach doch bitte mal selbst eine kleine Demo, wie das schön funktioniert , und poste uns das mal - dann muß ich es nicht machen.

Die Namen der Enum-Elemente kannst Du ja einfach nach dem entsprechendem Zahlenwert benennen. Tip: Mit Shift-Return geht das Erstellen der Elemente ganz schnell.

Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 08:36
Beitrag #15

Achim Offline
*****
*****


Beiträge: 4.223
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Endlicher numerischer Wertebereich
' schrieb:Nimm ein Enum und gib dort deine Zahlen als Strings ein, beim Durchblättern ergibt sich ein Kreislauf...

@Lucki: Siehe oben...

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 10:06 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2007 14:51 von Lucki.)
Beitrag #16

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Endlicher numerischer Wertebereich
' schrieb:@Lucki: Siehe oben...
Oh ja, bitte entschuldige, aber in diesem Wust von komplizierten Vorschlägen und Beispielen geht Dein einzeiliger Beitrag, auch wenn er die ultimative Antwort ist, ja glatt unter....

Edit: Meine allgemeinen Vorwürfe wegen komplizierter Vorschläge nehme ich zurück, den Preis für die ultimativ beste Antwort gebe ich hiermit Jens. Allerdings hätte er seinen Vorschlag mit einem Beispiel noch besser "rüberbringen" können, und so hole ich das hiermit nach:
   
Es funktioniert auch bei negativen Werten einwandfrei, was noch meinen Erfahrungen in manchen Programmiersprachen bei der Modulo-Funktion nicht immer der Fall ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 16:00
Beitrag #17

mctommson Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 99
Registriert seit: Mar 2007

8.6
2007
de

1210
Oesterreich
Endlicher numerischer Wertebereich
Hey, danke Leute!

Ich war heute leider nicht auf der Arbeit, aber ich werde alle Vorschläge morgen mal testen!

Danke euch!
Ich sage dann bescheid, wie alles funktioniert!

Lg,
Tommy!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 17:38 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2007 17:40 von Kvasir.)
Beitrag #18

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Endlicher numerischer Wertebereich
Das ganze ist aber nur ein Teil der Lösung, so wie ich das sehe.

Wenn ich Tommy richtig verstehe will er alle Zahlen zwischen 2 Werten sich ausgeben lassen.

Das Problem liegt dann bei einem Sprung in der Gradangabe. Z.B.: Werte zwischen 355 und 2: 356,357,358,359,0,1.
Da nutzt eure Lösung alleine noch nichts, weil er zuerst bestimmen muss, dass zwischen 355 und 2 nur 6 Werte liegen und nicht 353.

Aber die Modulofunktion hilft natürlich trotzdem beträchtlich. Ich wusste nicht, dass sie auch bei negativen Werten so gut geht. Habe nun meine Lösung entsprechend angepasst.


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  t.vi (Größe: 12,78 KB / Downloads: 148)

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.04.2007, 19:25 (Dieser Beitrag wurde zuletzt bearbeitet: 05.04.2007 19:26 von Lucki.)
Beitrag #19

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Endlicher numerischer Wertebereich
' schrieb:Wenn ich Tommy richtig verstehe will er alle Zahlen zwischen 2 Werten sich ausgeben lassen

Wenn ich mir Tommys ersten Beitrag lese, dann verstehe ich das nicht so, sondern so: Die Zahlen 0..100 sind gleichmäßig auf einem auf einem Ring angeordnet, und bei Rechenoperationen wie z.B Addition um 40, bewegt man sich um 40 Werte entlang dieses Kreises, so daß man also bei 80 + 40 auf der 20 landet. Also ich denke, er will nur eine Zahl als Ergebnis und nicht ein ganzes Array.

Aber was ich noch sagen wollte:
Für eine optimale Lösung muß als Erstes gefragt werden, ob es hier um ganze Zahlen handelt oder nicht. Bei ganzen Zahlen ist es mit der Modulo-Funktion ganz einfach. Wenn es sich aber z.B um Winkelgrade handelt, dann sollte man von rellen Zahlen ausgehen, und dann ist man mit der Lösung, wie sie Eugen genannt hat, auf dem richtigem Weg. Dasselbe geht allerdings auch ohne while-Schleife:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.04.2007, 01:23
Beitrag #20

mctommson Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 99
Registriert seit: Mar 2007

8.6
2007
de

1210
Oesterreich
Endlicher numerischer Wertebereich
Hi!

Also, es geht um ganze Zahlen und zwar um Werte zwischen 0 und 71.

Außerdem brauche ich, wie Kvasir richtig erkannt hat, alle Werte zwischen den beiden Zahlen, also wenn er von 68 auf 2 hüpft, dann soll er 69, 70, 71, 0 und 1 in das Array schreiben!

Bin leider noch nicht dazu gekommen, das Problem mit dem Sprung von 71 auf 0 anzugehen...ich habe aber eine neue Version von meinem Programm. Das main-Programm ruft alle anderen auf!

Außerdem hab ich noch das Prob aus folgendem Thread gelöst:
http://www.LabVIEWforum.de/index.php?showtopic=5454

Hab da jetzt noch 4 Stunden dran gesessen, mir lässt das keine RuheBig Grin

Lg,
Tommy!


Angehängte Datei(en)
Sonstige .vi  Kuppel_Pos_Fehlerlog_mainsim_v1.0.vi (Größe: 12,27 KB / Downloads: 145)

Sonstige .vi  Kuppel_Pos_Fehlerlog_v1.91_Subvi.vi (Größe: 17,94 KB / Downloads: 146)

Sonstige .vi  Kuppel_Pos_Fehlerlog_Schreibvorgang_v1.0_Subvi.vi (Größe: 93,82 KB / Downloads: 146)

Sonstige .vi  Kuppel_Pos_Fehlerlog_V_Abfrage_v1.0_Subvi.vi (Größe: 7,3 KB / Downloads: 157)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zeitdauer in Wertebereich ermitteln karl. 3 3.525 13.02.2017 13:33
Letzter Beitrag: karl.
  Kritik zu meinem LabVIEW-Grundgerüst für einfache Messungen mit endlicher Ausgabe lumaxo 0 3.048 13.02.2015 13:38
Letzter Beitrag: lumaxo
  Error-200077 at DAQmx StartTask.vi | Wertebereich lumaxo 4 5.032 18.09.2014 14:30
Letzter Beitrag: jg
  Zahl auf Wertebereich überprüfen und Ausgang setzen Serial 3 5.085 29.04.2014 06:20
Letzter Beitrag: Serial
  unterschiedliche Anzahl numerischer Eingabeelemente? gerln 8 4.977 29.04.2013 08:33
Letzter Beitrag: Lucki
  Objektfarbe anhand numerischer Werte ändern lassen Holg 3 5.768 20.03.2012 09:18
Letzter Beitrag: Holg

Gehe zu: