LabVIEWForum.de - Konstanten im laufenden Programm ändern

LabVIEWForum.de

Normale Version: Konstanten im laufenden Programm ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,
gibt es eine Möglichkeit Konstanten im laufenden Programm zu ändern?
Hintergrund ist folgender:
Ich habe auf einer cRio ein Programm laufen, welches ich ungern unterbrechen möchte. Nun will ich aber in diesem Programm ein Counter Wert ändern.
Kann ich dies, wenn ich das Programm in den Pausenmodus setzte? Oder geht das überhaupt nicht?

PS: ich weiß, dass man dafür eigentlich ein Bedienelement benutzt.-->Kann das Programm jetzt aber nicht Beenden.
Hi,

es würde mich doch sehr wundern, wenn das möglich wäre. Ähnliche wie bei normalen Quellcode (z.B. C) wird das Programm auch bei LabVIEW erst kompiliert und dann ausgeführt. Programme kann man während der Laufzeit nicht ändern.

Gruß
Christoph
Hallo Holg,

Konstanten heißen Konstanten, weil
[ ] sie zur Laufzeit konstant bleiben
[ ] man sie zur Laufzeit ändern kann

Bitte kreuze den richtigen Punkt an... Big Grin

Der "Pausenmodus" ist ein Debug-Tool, welches dein Programm anhält. Verändern kannst du es trotzdem nicht...
OK, danke für die Antworten. War mir ja eigentlich schon klar. Hätte ja sein könne, dass bei Labview der Hase irgendwie anders läuft.
Dein Fehler ist, die Frage ungeschickt formuliert zu haben - entsprechend schulmeisterhaft sind da die Antworten. Aber es ist wahr, "Konstanten" lassen sich natürlich nicht ändern. Worauf Du wahrscheinlich hinauswillst, das sind "verborgene Elemente". Das sind Variable, also Bedien- oder Anzeigeelemente, die nicht auf dem FP sichtbar ist.
Einfach die Variable mit rechtem Mausklick unsichtbar machen, man hat sie dann nur noch auf dem BD, nicht mehr auf dem FP - so wie Konstanten. Mittels lokalen Variablen lassen sich diese Elemente an beliebig vielen Stellen im Programm lesen und beschreiben.
(24.07.2012 21:07 )Lucki schrieb: [ -> ]Einfach die Variable mit rechtem Mausklick unsichtbar machen, man hat sie dann nur noch auf dem BD, nicht mehr auf dem FP - so wie Konstanten. Mittels lokalen Variablen lassen sich diese Elemente an beliebig vielen Stellen im Programm lesen und beschreiben.

Ich fand's immer toll, wenn du Expertenkonventionen über den Haufen geworfen hast ... aber auf den hier beschriebenen Weg würde ich niemand schicken =)

... dann doch einfach 'ne globale und man spart sich die verwirrten Blicke potentieller Nachfolger.



Gruß Dimitri
(24.07.2012 21:54 )dimitri84 schrieb: [ -> ]Ich fand's immer toll, wenn du Expertenkonventionen über den Haufen geworfen hast ...
Fall das ein Lob sein soll und keine Ironie: Danke.
Viele Fragen sind leider falsch oder missverstädlich formuliert, und es hilft dem Betreffenden nichts, wenn man sie exakt gemäß Frageinhalt beantwortet.
Aber oft steckt hinter einer sinnlosen Fage ein sinnvolles Problem, und das versuche ich zu erraten und gehe dann auf das Problem ein und nicht auf die Frage.
Also im konkreten Fall vermutete ich, dass mit der Frage :
"Wie kann ich Konstanten im laufenden Programm ändern"
gemeint ist:
"Wie kann ich Werte im laufendem Programm speichern und ändern, ohne dazu ein Frontpanel-Element zu verwenden?"

Aber zu Deiner Aussage:

Ja, zur Zwischenspeicherung von irgendwelchen Werten, ohne dass diese auf dem FP abgebildet werden, gib es noch einige andere Möglichkeiten. Also außer verborgenen Anzeigen und Globalen Variablen noch FGV, Shift-Register, Queues und Melder.
Wenn sich die Speicherung aber nur intern in einem einzigen VI abspielt, dann würde ich hier nicht GVs vor allen anderen priorisieren. Aber das ist Geschmackssache. GVs haben schon mal den Nachteil, dass man ein zusätzliches VI braucht. (Unkomfortabel z.B für Forums-Beipiele, sowohl für den Up- als auch für den Downloader)
Gruß Ludwig
(25.07.2012 09:55 )Lucki schrieb: [ -> ]Fall das ein Lob sein soll und keine Ironie: Danke.
Nein, das war keine Ironie.

Und ja, in diesem Zusammenhang, würde ich, die hier im Forum vorherrschen Meinung, mittragen, und von allem was potentiell Race-Conditions verursacht, abraten. Im Zweifelsfall immer Draht!
Nichts für Ungut Ludwig, aber die Frage und das dahinterstehende Problem war ganz klar, ob man in einem laufenden Programm (und zwar beim Programm des Threaderstellers, welches beim Erstellen dieses Threads schon lief) noch festgeschriebene Werte ändern kann ohne es beenden zu müssen.
Demenstrechend empfinde ich die Antworten nicht schulmeisterhaft sondern konkret und zielgerichtet.

Das von dir dargestellt Problem besteht natürlich auch, aber in einem anderen Zusammenhang und ist in diesem Falle wohl eher überinterpretiert.


Gruß
Christoph
Referenz-URLs