30.03.2012, 07:37
Beitrag #1
|
|
|
30.03.2012, 08:04
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2012 08:08 von GerdW.)
Beitrag #2
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
Hallo Funaukel,
Sechs, setzen!
Oder etwas verständlicher ausgedrückt: Nochmal den in meiner Signatur verlinkten Basics-Kurs durchgehen und DATAFLOW verinnerlichen!
Fehler:
- Dataflow missachtet und lokale Variablen benutzt
- Dataflow missachtet und eine Case-Struktur in einer Iteration deiner Schleife zweimal aufrufen wollen
- Aufräumknopf nicht benutzt: warum sollen wir erst dein BD aufräumen, wenn du Lösungen haben willst
Mögliche Lösung:
- QSM (QueuedStateMachine) verwenden und Befehle als Cluster[String,Wert,Wartezeit] versenden
- statt eines Strings ein typdefiniertes Enum verwenden
- parallele Schleifen verwenden
- Basics-Kurs durchgehen!
|
|
|
30.03.2012, 08:36
Beitrag #3
|
Funaukel
LVF-Grünschnabel
Beiträge: 32
Registriert seit: Apr 2011
2011
2010
DE
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
(30.03.2012 08:04 )GerdW schrieb: Sechs, setzen!
Besser hätte ich meine LabView Künste nicht beschreiben können.
Immer wenn ich denke, ich habe LabView halbwegs verstanden, kommt wieder eine neue Baustelle auf mich zu.
(30.03.2012 08:04 )GerdW schrieb: Oder etwas verständlicher ausgedrückt: Nochmal den in meiner Signatur verlinkten Basics-Kurs durchgehen und DATAFLOW verinnerlichen!
Fehler:
- Dataflow missachtet und lokale Variablen benutzt
- Dataflow missachtet und eine Case-Struktur in einer Iteration deiner Schleife zweimal aufrufen wollen
- Aufräumknopf nicht benutzt: warum sollen wir erst dein BD aufräumen, wenn du Lösungen haben willst
Mögliche Lösung:
- QSM (QueuedStateMachine) verwenden und Befehle als Cluster[String,Wert,Wartezeit] versenden
- statt eines Strings ein typdefiniertes Enum verwenden
- parallele Schleifen verwenden
- Basics-Kurs durchgehen!
Vielen Dank.....Mit der Aussage hast du mir so eben mein Wochenende versaut/gerettet.
Werde mich dann mal an die Arbeit begeben.
ciao
Funaukel
|
|
|
30.03.2012, 10:56
Beitrag #4
|
|
|
30.03.2012, 12:26
Beitrag #5
|
Funaukel
LVF-Grünschnabel
Beiträge: 32
Registriert seit: Apr 2011
2011
2010
DE
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
Vielen Dank für eure Hilfe.
Habe eine Frage zum Datentyp der Queue.
Kann dieser variabel sein?
d.h. Ich schreibe an Queue Position 1: Enum + I8
und an Position 2: Enum + Cluster
und an Position 3: Enum + DBL
usw.....
Da in den State-Maschines auch verschiedene Datentypen verwendet werden können, will ich in die Queue veränderbare Variablen schreiben.
Ist das möglich in LabView?
ciao
|
|
|
30.03.2012, 12:30
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2012 12:31 von GerdW.)
Beitrag #6
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
Hallo Funaukel,
nein, eine Queue kann nur mit einem festen Datentyp arbeiten.
Aber:
Du kannst natürlich einen Datentyp designen, der alle deine Erfordernisse abdeckt, z.B. ein Cluster mit String, DBL, INT32, Enum-Kommando. Je nach Kommando wird dann der passende Wert aus dem Cluster weiterverwendet...
Noch mehr Aber:
Du kannst natürlich auch ein Variant für die Queue-Definition verwenden, musst dann aber jeweils korrekt konvertieren...
|
|
|
30.03.2012, 13:02
(Dieser Beitrag wurde zuletzt bearbeitet: 30.03.2012 13:19 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
Eine andere Möglichkeit, die verschiedensten Datentypen zu übertragen, ist deren Serialisierung/Deserialisierung zu/aus einem String. Ich habe noch ein altes Labview-Buch aus Zeiten von LV6/LV7, da ist die QSM bereits mit Beispielen vertreten, es gab aber noch nicht den Datentyp Variant. Deshalb wurde es ausschließich so gemacht. Beispiel (Zu sehen ist hier nur die Deserialisierung):
.
Gerd hat aber Recht, wenn er das gar nicht erwähnt. Der Datentyp Variant ist gewissermassen die modernere Variante dieser Prozedur, ich würde es jetzt auch nur noch so machen. Neuere Lehrbeispiele sehen dementsprechend eher so aus:
|
|
|
30.03.2012, 15:51
Beitrag #8
|
THL
LVF-Gelegenheitsschreiber
Beiträge: 111
Registriert seit: May 2011
2012
2009
EN
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
Ich verwende inzwischen durchwegs statt Variant die Funktionen 'flatten to XML' und 'unflatten from XML' wenn ich Argumente mit unterschiedlichen Datentypen in einer State Machine zu übergeben habe. Habe ich mir angewöhnt, als ich bei irgendeiner Variant-Umwandlung auf ein 'das geht nicht' gestossen bin (weiss nimmer genau was es war - irgendwas mit Array oder Cluster).
|
|
|
30.03.2012, 17:37
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Zwangssteuerung Ereignissteuerung
@THL
Sehr guter Hinweis, das wußte ich gar nicht.
Da bei HTML der meiste Zeichensalat erzeugt wird, vermute ich zwar, daß die Konvertierungsgeschindigkeit in abnehmender Reihenfolge Variant - String - HTML ist. Aber ich will den Vorschlag damit nicht herunterspielen, meist ist ja die Ausführungsgeschwindigkeit nicht an einer kritischen Grenze.
|
|
|
| |