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 

Dieses Thema hat akzeptierte Lösungen:

Dauerhafter, aktualisierter Signaloutput



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!

14.02.2016, 19:50
Beitrag #1

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



Dauerhafter, aktualisierter Signaloutput
Hallo,

ich bin noch blutiger Anfänger in Labview, soll aber eine Regelung für einen Heizkessel erstellen. Mein aktuelles Problem ist, dass ich über das Frontpanel, einen Prozessparameter einstellen lassen will (In meinem Fall ist das einfach eine Zahl, die über einen Drehregler (numeric control) eingestellt werden soll), der dann vom Programm weiterverarbeitet wird. Dieser Parameter wird in einer While-schleife eingelesen, das heißt er soll jeden Schleifendurchlauf aktualisiert eingelesen werden (je nachdem welcher Wert eben gerade am Frontpanel eingestellt wird).
Jetzt habe ich den Parameter einfach über einen Tunnel in die While-Schleife geleitet, doch wenn ich das Programm starte wird lediglich der Wert der am Anfang am Frontpanel eingestellt ist an die Schleife weitergegeben. Wenn ich diesen (während dem das Programm läuft) am Drehregler ändere, passiert gar nix. Was ist denn der Sinn eines Drehreglers, wenn der Wert dann wie eine Konstante verarbeitet wird?
Ich hoffe mit kann da jemand helfen. Danke schonmal,

Malte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.02.2016, 22:32 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016 07:55 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Dauerhafter, aktualisierter Signaloutput
Hallo Malte,

LabVIEW arbeitet nach dem Datenflussprinzip...

Dein Control wird einmal vor der Schleife gelesen. Der dann gerade aktuelle Wert wird dann per Draht in die Schleife geleitet. Und innerhalb der Schleife wird nur der Wert aus dem Draht bzw. dem Tunnel gelesen: Think DATAFLOW!

Zitat:ich bin noch blutiger Anfänger in Labview
Wie man an der Schreibweise von LabVIEW sieht… Big Grin
Schau dir doch mal die Links in meiner Signatur an!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2016, 15:02
Beitrag #3

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



RE: Dauerhafter, aktualisierter Signaloutput
Das mit dem Dataflow Prinzip habe ich schon verstanden, aber es muss doch eine Möglichkeit geben für jeden Schleifendurchlauf den Parameter neu vom Drehregler einzulesen... oder nicht?

Grüße, Malte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2016, 15:07 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016 15:10 von GerdW.)
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Dauerhafter, aktualisierter Signaloutput
Hallo Malte,

Zitat:es muss doch eine Möglichkeit geben für jeden Schleifendurchlauf den Parameter neu vom Drehregler einzulesen...
Na klar gibt es die! Aber eben durch THINK DATAFLOW!

Vergleiche mal diese beiden Pseudocodes:
Code:
Beispiel 1
Wert := Input(Drehregler)
WHILE
  do something with Wert
WEND

Beispiel 2
WHILE
  Wert := Input(Drehregler)
  do something with Wert
WEND
Und jetzt bitte überlegen, welches Beispiel du programmiert hast und welches du eigentlich haben willst…

Tipp: Wenn du etwas "in einer Schleife" erledigen willst, dann sollte sich dieses "etwas" auch in einer Schleife befinden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2016, 15:18
Beitrag #5

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



RE: Dauerhafter, aktualisierter Signaloutput
Ich habe das erste Beispiel programmiert und will das zweite Beispiel realisieren. Ich schätze du deutest an, dass Labview den Drehregler in der Schleife selber haben will. Mein Problem ist dann aber noch, dass sich die While-Schleife in einem SubVI befindet, ich möchte den Drehregler aber über das Frontpanel des MainVIs bedienen. Gibt es hierfür noch einen Workaround?
Danke für deine Hilfe und Geduld,
Malte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.02.2016, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016 15:25 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Dauerhafter, aktualisierter Signaloutput

Akzeptierte Lösung

Hallo Malte,

Zitat:Mein Problem ist dann aber noch, dass sich die While-Schleife in einem SubVI befindet, ich möchte den Drehregler aber über das Frontpanel des MainVIs bedienen.
Das hast du bisher aber noch nicht erwähnt!
Mit einem VI im Anhang wäre das alles sicher schneller gegangen…

Zitat:Ich schätze du deutest an, dass Labview den Drehregler in der Schleife selber haben will.
Und schon sind wir wieder beim Schlagwort THINK DATAFLOW! Big Grin

Zitat:Gibt es hierfür noch einen Workaround?
Ja klar, LabVIEW ist schließlich eine Programmiersprache… Big Grin
- offensichtliche Lösung: Schleife aus dem subVI entfernen…
- andere Lösung: das "subVI" nicht in der Hauptschleife deines MainVIs laufen lassen, sondern parallel dazu. Dann die Daten wie zwischen parallelen Schleifen üblich transportieren (Melder, Queues, globale Variablen, FGVs/AEs, …).

Mal was grundsätzliches: Je mehr Informationen (Bilder, VIs, Beschreibungen) du über dein Problem bereitstellst, desto treffsicherer werden die Antworten/Lösungen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.02.2016, 15:25
Beitrag #7

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



RE: Dauerhafter, aktualisierter Signaloutput
Alles klar, werde das morgen alles mal ausprobieren.
Danke für die Hilfe
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2016, 11:58
Beitrag #8

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



RE: Dauerhafter, aktualisierter Signaloutput
Erstmal danke nochmals für die Hilfe, klappt jetzt soweit.
Es hat sich nur leider ein zweites Problem aufgetan. Den Parameter, den ich in jeder Schleife übergebe, brauche ich auch noch an anderer (früherer Stelle). Wegen des Dataflow Prinzips kann ich diesen Parameterwert ja nicht aus der erst später ablaufenden Schleife übertragen, wenn ich das probiere kommt auch der Fehler "befindet sich in einer Endlosschleife". Die beiden Prozesse bei denen ich den Parameter brauche müssen auch beide zeitlich getrennt voneinander stattfinden.
Kennt da jemand einen Ausweg?

Grüße, Malte

Anbei das Blockdiagramm, der Parameter von dem ich spreche ist der rot umkreiste Temperaturfühler, der hier erstmal als Bedienelement modelliert ist.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2016, 12:30 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2016 12:31 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Dauerhafter, aktualisierter Signaloutput
Hallo Malte,

Zitat:kommt auch der Fehler "befindet sich in einer Endlosschleife".
Du willst hier auf einen Wert zugreifen, der aufgrund des DATAFLOW erst zu einem späteren Zeitpunkt ermittelt wird…

So wie dein Bild aussieht, würde ich dir eine Statemachine empfehlen: die States könnten (u.a.) "Vorspülen", "Zünden", "Regeln" heißen. Dann hättest du wieder alles in einer Schleife und somit ständig Zugriff auf den Temperaturmesswert!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.02.2016, 20:35
Beitrag #10

MalteSe94 Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2016

2012
2015
EN



RE: Dauerhafter, aktualisierter Signaloutput
Aber ermittelt wird der Wert ja eigentlich nicht, das ist ja bloß ein Temperaturfühler, der während dem Prozess die Temperatur in der Brennkammer misst. Auf diesen Wert will ich dann in verschiedenen Abschnitten des Prozess zugreifen (nur halt natürlich immer den aktuellen Wert zum jeweiligen Zeitpunkt). Das kann doch eigentlich nicht so kompliziert sein oder?Blink
Gruß,
Malte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: