26.06.2008, 07:28
Beitrag #1
|
Booner
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Jun 2008
8.6.1
2008
kA
85764
Deutschland
|
Verständnisfrage zu SubVI
Hallo Leute,
ich hab da mal ein paar grundlegende Fragen zu SubVI´s.
So wie ich das jetzt gesehen habe, werden Daten bei Aufruf an das SubVI übergeben, dieses dann abgearbeitet und anschließend die Daten ausgegeben? Erst danach wird das Hauptprogramm fortgesetzt?
Ich möchte nun eine Motorsteuerung als SubVI programmieren.
Darin soll der Motor mit Rampe anfahren, solange eine Freigabe vom Hauptprogramm erteilt ist.
Fällt diese Freigabe weg, so soll der Motor abgebremst werden.
Ich sehe nun nur die Möglichkeit, das SubVI mehrmals hintereinander aufzurufen um darin dann die Rampe zu berechnen?
Gibts da noch ne elegantere Version? Und wenn nein, wie übergebe ich Werte vom vorherigen Aufruf des SubVIs an den nächsten Aufruf des SubVIs? Ein Schieberegister ausserhalb ist mir eingefallen, aber ich würde es lieber innerhalb des SubVIs lösen...
Das SubVI sollte kontinuierlich Daten von einem Wegmesssystem bekommen und kontinuierlich den Motor dazu regeln.
Grüße,
Tom
PS: LabVIEWversion 7.1
|
|
|
26.06.2008, 08:10
Beitrag #2
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:So wie ich das jetzt gesehen habe, werden Daten bei Aufruf an das SubVI übergeben, dieses dann abgearbeitet und anschließend die Daten ausgegeben?
Das ist soweit richtig. Das ist das allgemeine Vorgehen mit einem SubVI.
Zitat:Erst danach wird das Hauptprogramm fortgesetzt?
Das ist nur bedingt richtig. Es wird der der Datenfluß gestoppt - respektive fortgesetzt, in den das SubVI eingebunden ist. Wenn du mehrere Datenflüße parallel hast, werden die parallelen unabhängig von diesem SubVI weitergeführt.
Zitat:Ich möchte nun eine Motorsteuerung als SubVI programmieren.
Darin soll der Motor mit Rampe anfahren, solange eine Freigabe vom Hauptprogramm erteilt ist.
Fällt diese Freigabe weg, so soll der Motor abgebremst werden.
Mach das SubVI als Modul, selbständig laufend (also ohne Einbindung in einen Datenfluß), steuerbar mittels Queue etc.
Zitat:Ich sehe nun nur die Möglichkeit, das SubVI mehrmals hintereinander aufzurufen um darin dann die Rampe zu berechnen?
Genau dieses ist ja schlecht. Deswegen also ein Modul, das selbständig läuft und durch eine Queue gestuertet wird.
Zitat:Gibts da noch ne elegantere Version? Und wenn nein, wie übergebe ich Werte vom vorherigen Aufruf des SubVIs an den nächsten Aufruf des SubVIs? Ein Schieberegister ausserhalb ist mir eingefallen, aber ich würde es lieber innerhalb des SubVIs lösen...
Das SubVI sollte kontinuierlich Daten von einem Wegmesssystem bekommen und kontinuierlich den Motor dazu regeln.
Das Modul besteht aus einer While-Schleife, die beliebig viele Schieberegister hat. In der While-Schleife ist eine case-Sequenz, die als Statemachine dienen kann. Neben der Case-Sequenz steht eine Queue-Abfrage, die Anforderungen von außen bearbeitet. Dann kann es noch eine Queue bzw. einen Melder geben, der Daten nach außen gibt. Wie das Modul genau aufgebaut ist ist dabei völlig egal. Hauptsache While-Schleife mit Schieberegistern, Case-Sequenz und Queue.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
26.06.2008, 08:23
Beitrag #3
|
Booner
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Jun 2008
8.6.1
2008
kA
85764
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:Mach das SubVI als Modul, selbständig laufend (also ohne Einbindung in einen Datenfluß), steuerbar mittels Queue etc.
Hei,
das hört sich schon ziemlich gut an!
Kannst Du mir noch kurz auf die Sprünge helfen, wie ich es zu einem "Modul" mache?
Grüße,
Tom
|
|
|
26.06.2008, 08:37
Beitrag #4
|
IchSelbst
LVF-Guru
Beiträge: 3.695
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:Kannst Du mir noch kurz auf die Sprünge helfen, wie ich es zu einem "Modul" mache?
Umbauen geht nicht. Neu machen ist wahrscheinlich angesagt. Weißst du was eine Queue ist und wie man sie verwendet etc? Hilfe lesen! Das selbe für Statemachine?
Guckst du hier - Muster Ohne Wert.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
26.06.2008, 08:43
(Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2008 08:43 von Booner.)
Beitrag #5
|
Booner
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Jun 2008
8.6.1
2008
kA
85764
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:Umbauen geht nicht. Neu machen ist wahrscheinlich angesagt. Weißst du was eine Queue ist und wie man sie verwendet etc? Hilfe lesen! Das selbe für Statemachine?
Guckst du hier - Muster Ohne Wert.
Hei,
vielen Dank für Deine Hilfe! Neumachen ist kein Problem. Ich stehe eh noch ziemlich am Anfang.
Bis gerade eben wusste ich nicht was ein "Queue" ist, aber ich lese mich bereits ein.
Statemachine? Das ist (wenn ich es richtig verstanden habe) wohl sowas wie mein Problem mit den zwei Schaltern, das ich mit einer Ereignisstruktur gelöst habe.
Herzlichen Dank für Deine Hilfe!
Grüße,
Tom
|
|
|
26.06.2008, 13:56
(Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2008 14:01 von blacky.)
Beitrag #6
|
blacky
LVF-Grünschnabel
Beiträge: 46
Registriert seit: Jan 2008
8.2.1
2008
de
6900
British Virgin Islands
|
Verständnisfrage zu SubVI
] ' schrieb:Hei,
vielen Dank für Deine Hilfe! Neumachen ist kein Problem. Ich stehe eh noch ziemlich am Anfang.
Bis gerade eben wusste ich nicht was ein "Queue" ist, aber ich lese mich bereits ein.
Statemachine? Das ist (wenn ich es richtig verstanden habe) wohl sowas wie mein Problem mit den zwei Schaltern, das ich mit einer Ereignisstruktur gelöst habe.
Herzlichen Dank für Deine Hilfe!
Grüße,
Tom
Hallo erstmal.
Also verwechel bitte Eventstrukturen nicht mit State Machines.
Da gibts nur 2 Möglichkeiten. Hilfe lesen oder die beiden Strukturen mal als Vorlage laden und vergleichen.
Weiters wäre der Basic 1 Kurs zu entpfehlen, da wird zumindestens die Statemachine erklärt.
Edit: Hab noch einen Beitrag aus dem Forum gefunden:
Hier ein vergleich zwischen Statemachine und eventstruktur
mfg blacky
|
|
|
01.07.2008, 14:23
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2008 14:31 von Booner.)
Beitrag #7
|
Booner
LVF-Grünschnabel
Beiträge: 24
Registriert seit: Jun 2008
8.6.1
2008
kA
85764
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:Weiters wäre der Basic 1 Kurs zu entpfehlen, da wird zumindestens die Statemachine erklärt.
Hei,
vielen Dank für Deinen Hinweis!
Hab gerade den Basic I hinter mir, aber State Machines haben wir nicht drangenommen.
Werde mich gleich noch genauer einlesen... Dein Link hilft mir.
Grüße,
Tom
|
|
|
01.07.2008, 14:35
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2008 14:52 von eg.)
Beitrag #8
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Verständnisfrage zu SubVI
Ich würde in dem Fall lieber einen "Treiber" empfehlen. Pro Aktion (Init, Start, Stop, Move, Close) ein SubVI machen und das entsprechende SubVI im Hauptprogramm verwenden.
Dabei hat aber dein Motor auch irgendwelche Statis, aktuelle Werte u.s.w. Diese würde ich in einen (Typedef) Cluster packen und in jedem TreiberVI als Eingang und Ausgang definieren und diesen Cluster im HauptVI vom SubVI zum SubVI verdrahten.
Gruß
|
|
|
01.07.2008, 15:05
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2008 15:07 von Achim.)
Beitrag #9
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:Dabei hat aber dein Motor auch irgendwelche Statis,
/KLUGSCHEISSMODUS_ON
Also wenn schon, dann "Stati"...aber auch das ist Quatsch! Das wäre so wie " Praktikas" als Mehrzahl von "Praktikum"...es ist halt einfach ein "s" zuviel...
Die Mehrzahl von "Status" ist "Status" (gesprochen etwa " Statuuuus")
KLUGSCHEISSMODUS_OFF/
Gruß
Achim
"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)
|
|
|
01.07.2008, 15:12
(Dieser Beitrag wurde zuletzt bearbeitet: 01.07.2008 15:16 von eg.)
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Verständnisfrage zu SubVI
' schrieb:
/KLUGSCHEISSMODUS_ON
Also wenn schon, dann "Stati"...aber auch das ist Quatsch! Das wäre so wie "Praktikas" als Mehrzahl von "Praktikum"...es ist halt einfach ein "s" zuviel...
Die Mehrzahl von "Status" ist "Status" (gesprochen etwa "Statuuuus")
KLUGSCHEISSMODUS_OFF/
Gruß
Achim
Sorry, gut zu wissen.
P.S. Modus wird aber zu Modi. Aber klar, ein "s" ist hier auf jeden Fall zu viel.
|
|
|
| |