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!
Hallo an alle,
ich möchte gerne ein Programm schreiben, dass mir Werte in eine Tabelle schreibt und folgendes erfüllen soll:
Wenn ein Wert mal über 2000mbar ist soll der Wert evakuiert und zwischengespeichert werden.
Danach soll ein erneuter Wert gemessen, mit dem 1. zwischengespeicherten Wert subtrahiert u. wieder zwischengespeichert werden.
Die darauffolgenden Messungen sollen dann alle mit dem 2. zwischengespeicherten Wert addiert werden.
So wie mein Programm jetzt aussieht, fängt es schon mal problemlos Werte über 2000mbar ab u. regelt das ganze über Pop-up Fenster. Allerdings fehlt in meinem Gedankengang der Punkt, dass ich sage, dass die erste Messung zwischengespeichert u. von der Quelle, die mir Werte liefert(sind hier Zufallszahlen) ein erneuter Wert mit dem alten substrahiert wird usw.
Kann mir jmd evtl helfen bzw. einen Tip geben?
Danke schon mal im voraus
Anmerkung: Die Konstanten in der 2. und 3. Sequenz stehen für die potentiellen neuen Werte^^
leider muss ich gestehen, war die Erklärung nicht ganz schlüssig für mich evtl. hilft dir aber das VI. Um Nachrichten an den Benutzer zu senden kann man die Eingänge von "Select" benutzen. Ich hoffe der Code ist selbst erklärend.
Gruß snuz
Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.
Hallo snuz,
erstmal vielen Dank für die VI. Sie macht auch schon fast das, was ich möchte.
Der einzige Haken ist, dass wenn der Wert über 2000mbar geht und die Differenz davon zwischengespeichert wird(2. bzw. 3. Wert) soll dieser als nächstes in die Tabelle "berechnet" geschrieben werden u. danach alle darauffolgenden Werte mit diesem addiert werden.
So wie die VI jetzt arbeitet, schreibt sie den ersten Wert über 2000 doppelt rein u. addiert dann die darauffolgenden Werte. Habe das Miniproblem in einer PNG-Datei markiert.
hab mir gerade den Kopf zerbrochen warum der 2mal den gleichen Wert hat und dachte das kann nicht sein. Aber, dass ist nicht das Problem des VIs, dass ist deine Logik Du wolltest das so. Es wird der erste Wert über 2000 gesucht, wenn der gefunden wird, nimmt er den nächsten Wert minus. Er speichert nun den Maxwert ab, so wie er soll und wie auch die Logik vorgibt, addiert er alle kommenden Werte mit der Differenz und auch den Wert den er vorher von 2000 abgezogen hat. Und das gibt logischerweise den gleichen Wert. Verstanden? ;-)
Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.
Hm ja, ich verstehe was du meinst.
Hab mir den Verlauf mal durch Highlighting angesehen.
Gibt es trotzdem eine Möglichkeit diesen 1. Wert iwie zu löschen?
Diese Selector-Vergleichsfunktionen hab ich bspw. noch nie benutzt, aber so wie du die VI
gebaut hast erscheint sie mir auch am sinnvollsten für mein Problem...
Naja sicher, man kann vieles, nur würde die Datenreihe ja manipuliert werden. Aber wenn es dich stört dann schau dir mal die Array Palette an, bei mir heißt die Funktion "Delete from Array". Damit kann man Teile eines Arrays "ausschneiden", sicherlich ist es auch möglich eine Logik einzubauen die den zweiten Wert eliminiert. Mach ruhig mal, wenn Du dein Ergebnis postest schau ich mir es an.
Gruß snuz
P.S. zur gesamten Lösung, diese "Selector" Bausteine sollen, nach Angaben von NI, mehr Auslastung des Systems verursachen (bestimmt nicht tragisch viel), aber das da ist nur eine Lösung, wenn Du in LabView einsteigen willst, dann versuch deinen Weg.
Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.
Hab das Problem gelöst
Ich hab einige Vergleiche hinzugefügt u. jetzt taucht der 1.Wert nicht mehr doppelt auf.
Fall irgendjemand mal ein ähnliches Problem hat lad ich die Endlösung dafür hoch.
also ich hab es gleich zweimal mal runter geladen, weil bei mir kommt der Wert noch zweimal vor. Was macht eigentlich die zweite Case-Struktur da, nichts? Die Schieberegister würde ich alle noch mit einer Konstante verbinden, damit diese beim Start "leer" sind.
Gruß snuz
Es gibt 10 Arten von Menschen... Die die Binärrechnung beherrschen und die die es nicht tun.