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,
Wie kann ich den Inhalt eines Data String löschen?
In meine Anzeige werden mehre Alarmmeldungen geschrieben die ich aber bei Bedarf restlos löschen möchte.
Ich bekomme es einfach nicht hin das sie ganz weg sind, bei mir werden sie lediglich nur ausgeblendet.
Mein zweites Problem ist es das bei meiner Meldung immer die Einheit vor das Datum der nachfolgenden Zeile rutscht (siehe .vi)
sie soll jedoch hinter den Messwert stehen.
Ich hoffe ihr könnt mir weiterhelfen.
so wie das programmiert ist, wird der String alle 500 ms wieder in den Indicator geschrieben, d.h. auch wenn du den Indicator über die Property Node löschst, wird er beim nächsten Schleifendurchlauf erneut geschrieben. Die Property Node hätte man sich im Übrigen sparen können, das geht auch so:
Den Rest bekomme ich leider nicht auf, irgendwas ist da wohl beim Hochladen der SubVIs falsch gelaufen, auf jedenfall ist mir LV abgeschmiert
Jetzt eine Lösung zu präsentieren ist etwas schwierig, weil ich nicht genau weiss, was du erreichen möchtest
' schrieb:so wie das programmiert ist, wird der String alle 500 ms wieder in den Indicator geschrieben, d.h. auch wenn du den Indicator über die Property Node löschst, wird er beim nächsten Schleifendurchlauf erneut geschrieben. Die Property Node hätte man sich im Übrigen sparen können, das geht auch so:
[attachment=30970:del.png]
Den Rest bekomme ich leider nicht auf, irgendwas ist da wohl beim Hochladen der SubVIs falsch gelaufen, auf jedenfall ist mir LV abgeschmiert
Jetzt eine Lösung zu präsentieren ist etwas schwierig, weil ich nicht genau weiss, was du erreichen möchtest
Hallo,
das mit dem abschmieren von LV tut mir leid, ich kann mir es aber leider nicht erklären da es bei mir Problemlos läuft.
Ich erfasse die Temperatur von 23 Sensoren, wird ein Wert über bzw. unterschritten gibt es eine Alarmmeldung.
Diese soll dann in das "String-Fenster" geschrieben werden.
Da meine Schleife auf 500 getimed ist wird natürlich bei einer Alarmmeldung, solange eine neue Meldung in die Anzeige geschrieben
bis der Wert wieder in der Toleranz ist.
Das Problem ist das sich möglicherweise eine sehr große Dateimenge anhäuft die dann gespeichert wird.
Wenn ich beispielweise den String alle 5 Minuten aktuallisiere verpasse ich vieleicht eine Alarmmeldung.
Wie realisiert ihr solch eine Anwendung mit Alarmprotokoll?
Ich habe bisher alles hinbekommen bis auf zwei Sachen.
Was meine Frage mit dem Löschen angeht:
Ich möchte das String-Fenster alle 24 Stunden restlos löschen so das nur die Alarmmeldungen des aktuellen Tages zu sehen sind.
Mit deinem Beispiel habe ich es auch versucht, doch auch da wird der String nicht gelöscht sondern nur ausgeblendet,
die gleichen Meldungen stehen wieder drin.
Was ich mir auch nicht erklären kann ist wieso die Einheit (°C) nicht hinter dem Temperatur-Wert geschrieben wird sondern eine Zeile drunter.
Ich versuche es nochmals meine .vi hochzuladen.
' schrieb:So, ich hab mal ein Beispiel programmiert, das ungefähr das machen sollte was du brauchst. Schaus dir mal an
Hi i2dx,
das ist echt der Hammer, wie ich schon erwähnt habe ist das .vi das ich gepostet habe nur der Problem betrefende Teil meines schon fast fertigem .vi
Allerdings ist der Programmumfang deines Blockdiagramms deutlich kleiner als bei mir.
Ich schätze das ich manche Sachen noch etwas umständlicher programmier.
Ich habe jedenfalls mein .vi deinem Beispiel angepasst und jetzt funktioniert es auch mit dem String löschen.
Deine Lösung das immer nur der neue Wert ins Protokoll geschrieben wird ist genial,
aber leider funktioniert es bei mir nicht mehr sobald einer der 23 Messwert in Alarmstellung ist.
Keine einzige Meldung geht mehr durch, erst wenn ich denn jeweiligen Wert wieder in die Toleranz setze wird eine neue Alarm-Meldung geschrieben.
Kann ich diese Funktion möglicherweise immer nur bei Anwendungen mit einem Messwert benutzen?
Ich habe mein aktuelles .vi nochmals hochgeladen und hoffe das es nicht wieder Schwierigkeiten macht sich bei dir öffnen zu lassen.
Liebe Grüße
Gregor
P.S.: Herzlichen Dank für dein ausführliches Beispiel,
da es mich zu einigen Änderungen in meiner Anwendung veranlast hat.
' schrieb:aber leider funktioniert es bei mir nicht mehr sobald einer der 23 Messwert in Alarmstellung ist.
Keine einzige Meldung geht mehr durch, erst wenn ich denn jeweiligen Wert wieder in die Toleranz setze wird eine neue Alarm-Meldung geschrieben.
joh, mir ist klar warum
ich könnt's dir jetzt sagen, aber ich würd mal vorschlagen, du läßt das VI mal im Highlightning Modus laufen und achtest ganz genau drauf, was in der inneren For-Schleife passiert - Stichwort "auto indexing";)
Anbei nochmal ein modifiziertes Beispiel, das hoffentlich Licht ins Dunkel bringt
Hallo,
Das ist mal eine harte Nuss
Mit Hilfe deines zweiten .vi ist es mir gelungen das auch Fehlermeldungen durchgehen wenn andere noch in Alarmstellung sind.
Somit wäre auch dieses Problem gelöst.
Allerdings habe ich jetzt das Problem bei jeder neuen Alarmmeldung die alten Meldungen die noch in Alarmstellung sind mitgeschrieben werden.
Das dramatische ist das ich es weiß an was es liegen könnte aber den ganzen Sonntag alle Möglichkeiten versucht habe die jedoch zu keinem Erfolg führten.
Wie ich schon erwähnt habe erfasse ich 24 Sensoren, jeder Sensor hat seine eigen Bezeichnung und wird durch sein eigenes
Toleranz-Abfrage-subvi geschickt. Diese Bezeichnung sollte auch in der Alarm-Meldung dargestellt werden.
Wenn hier ein Wert über-oder unterschritten wird, wird ein Boolesches Signal erzeugt (siehe .jpg)
Dieses Signal aktiviert das jeweilige Case in dem Nachfolgenden subvi in dem das Alarm-String generiert wird (siehe .jpg)
Diese Meldung wird dann in das Haupt-vi geschrieben.
Und genau hier liegt denke ich das Problem das die einzelnen Alarmmeldungen nicht aus dem ersten subvi gelöscht werden sondern immer wieder
übergeben werden. Und bei jeder neuen Alarmmeldung mitgenommen werden da sie ja immer noch in der inneren For-Schleife vorhanden sind (siehe .jpg)
Wie ich das Problem in meiner Anwendung mit dem "auto indexing" lösen kann komme ich einfach nicht drauf.
autoindexing bedeutet dass eine for-Schleife die Elemente eines angeschlossenen Arrays automatisch indiziert und so viele Schleifendurchläufe ausführt, wie Elemente in dem Array sind. Wenn mehrere Arrays angeschlossen sind, dann werden so viele Schleifendurchläufe ausgeführt, wie das kleinste Array Elemente hat
P.S. schaut komplizierter aus, als es ist, ich hatte keine Lust die Drähte zu sortieren;)lass es im Highlightning Modus laufen und schau, was passiert ...
' schrieb:schau dir mal das folgende Beispiel an ...
[attachment=31095:l_sung.zip]
autoindexing bedeutet dass eine for-Schleife die Elemente eines angeschlossenen Arrays automatisch indiziert und so viele Schleifendurchläufe ausführt, wie Elemente in dem Array sind. Wenn mehrere Arrays angeschlossen sind, dann werden so viele Schleifendurchläufe ausgeführt, wie das kleinste Array Elemente hat
P.S. schaut komplizierter aus, als es ist, ich hatte keine Lust die Drähte zu sortieren;)lass es im Highlightning Modus laufen und schau, was passiert ...
Hallo,
ich danke dir für dieses Beispiel, im Gegesatz zu meinen vi´s sieht das alles bei dir immer super übersichtlich aus.
Bitte gib mir etwas Zeit mich damit auseinander zu setzen, bin gerade erst von der Schule gekommen.
Ich möchte das endlich kappieren mit den "autoindexing"
lg Gregor
P.S.: Ende Feb. bin ich in Stuttgart und mache die LV-Basics-Kurse I+II.
Das ist das Honorar von meinem Chef für meine Techniker-Arbeit (endlich!)
Und ab März beantworte ich natürlich gerne auch deine Fragen (Spaß)