LabVIEWForum.de - Projekt Prüfstand für Getriebe-Generatoreinheit

LabVIEWForum.de

Normale Version: Projekt Prüfstand für Getriebe-Generatoreinheit
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6
(22.02.2011 19:48 )moe_85 schrieb: [ -> ]Eigentlich habe ich noch keine Nerven wieder für das gute LabView Big Grin
Aaaaaaaber, warum startet meine Schrittkette wenn ich den Wiederholungsbutton drücke
zum Starten des Vi in Schritt 4?
Wo ist dies festgelegt?
Wenn es einmal durchgelaufen ist geht es ja auch von vorne wieder los.
Ich rate jetzt mal, dass es um das VI aus Beitrag #15 geht?! Glas1

Das VI startet immer in Schritt2, nicht in Schritt4. Das siehst du bloss nicht. Führe es mal mit aktivierter Highlight-Funktionalität aus (die Glühbirne im BD aktivieren), dann siehst du das.

Und dann ist dein 2. Shift-Register nicht initialisert. Bei wiederholter Ausführung steht bei so einem uninitialisiertem Shift-Register immer der Wert des letzten Durchlaufs drin (zumindest, solange das VI im Speicher bleibt).

Gruß, Jens
Ja es geht um das VI aus Beitrag 15.

Zitat:Und dann ist dein 2. Shift-Register nicht initialisert. Bei wiederholter Ausführung steht bei so einem uninitialisiertem Shift-Register immer der Wert des letzten Durchlaufs drin (zumindest, solange das VI im Speicher bleibt).

Mein was ist wo nicht Initialisiert o.O Smile
Wo finde ich dieses Shift-Register denn?
Und was bewirkt dieses?
Wird wieder eine Lange Nacht werden bestimmt.
Immer wenn ich denke ich hätte was kapiert
kommt ein nächster Punkt... Sad
Shift-Register = Schieberegister, hier sind 2 Stück davon:
[attachment=32424]
Beim oberen ist ein Wert angeschlossen -> initialisiert.
unten nichts -> uninitialisiert.
Wenn du das VI zum allerersten Mal in den Speicher lädst, dann steht für die erste Ausführung der Standard-Wert des Datentypen im unteren Schieberegister drin (Think Datenfluss). Wenn du auf den Wiederholen-Button klickst, dann steht dort der Wert von der letzten Ausführung.

Gruß, Jens
(22.02.2011 20:53 )moe_85 schrieb: [ -> ]Ja es geht um das VI aus Beitrag 15.
... da ist ja immer noch ein roter Punkt. Und der Enumerator ist immer noch nicht strict. Schlecht.

Zweitens:
Seit wann beginnt eine Schrittkette mit "sk_S2_Schritt2", also mittendrinn irgendwo innerhalb der Schrittkette? In S7 fängst du ja auch nicht irgendwo an, sondern am Anfang.

Das untere Schieberegister muss nicht initialisiert werden. Die Nutzung des Schieberegisters beginnt immer ein einem Case X mit Vorbesetzen des Schieberegisters, damit im gegebenenfalls öfters hintereinander auszuführenden Case X+1 eine Berechnung mit dem Schieberegisterwert gemacht werden kann.
Okay, ich habe nun an das zweite shift Register eine Konstante 0 angeschlossen, wäre dies Falsch?
Nun besteht aber immer noch das Problem das es nach dem Stoppen und wieder starten in schritt 4 beginnt, obwohl ich in
Schritt 1 stoppe zum Beispiel.

Edit:
Zitat:Zweitens:
Seit wann beginnt eine Schrittkette mit "sk_S2_Schritt2", also mittendrinn irgendwo innerhalb der Schrittkette? In S7 fängst du ja auch nicht irgendwo an, sondern am Anfang.
Ich nutze doch das Beispiel was mir gegeben wurde und versuche daran zu verstehen was
geht und was nicht, du hast schon recht das eine Schrittkette in Schritt 1 beginnt, doch
ich nutze es doch zurzeit nur wie es mir gegeben wurde. Sad

Ich habe nun versucht das enum zu ändern in Schritt 1, aber jetzt hat es mir alles irgendwie
gerötet, was Anschlüsse sind und ähnliches, auch heißen die Cache Strukturen nun anders.
Wollte doch nichts kaputt machen.
(22.02.2011 21:53 )moe_85 schrieb: [ -> ]Okay, ich habe nun an das zweite shift Register eine Konstante 0 angeschlossen, wäre dies Falsch?
Falsch nicht, aber unnötig. Dieses Schieberegister wird im Ablauf zu gegebener Zeit vorbesetzt ...

Zitat:Nun besteht aber immer noch das Problem das es nach dem Stoppen und wieder starten in schritt 4 beginnt, obwohl ich in Schritt 1 stoppe zum Beispiel.
Beim Wiederstart des SubVIs wird "sk_S2_Schritt2" in das Schieberegister geschrieben. Der Schritt sk_S1_Schritt1 wird also beim Wiederstart übersprungen. Wie ich ja schon sagte, Anfang der Schrittkette ...

Hast du dich eigentlich schon mit dem Verfahren "Datenfluss" auseinandergesetzt?

Das VI beginnt mit der Enum-Konstanten "sk_S2_Schritt2". Der blaue Draht ("Datenfluss") geht dann von links in das Schieberegister. Um den Draht zu sehen, darf die Konstante natürlich nicht über dem Schieberegister liegen. Von dort geht der Datenfluss in den Selektor der Case-Struktur. Mit diesem Werte beginnt nun der Ablauf ...
Zitat:Hast du dich eigentlich schon mit dem Verfahren "Datenfluss" auseinandergesetzt?

Das VI beginnt mit der Enum-Konstanten "sk_S2_Schritt2". Der blaue Draht ("Datenfluss") geht dann von links in das Schieberegister. Um den Draht zu sehen, darf die Konstante natürlich nicht über dem Schieberegister liegen. Von dort geht der Datenfluss in den Selektor der Case-Struktur. Mit diesem Werte beginnt nun der Ablauf ...

Dies habe ich ja versucht zu ändern, indem ich ein neues Enum eingefügt habe
mit Schritt1, nur geht nun gar nichts mehr. Im Nachhinein hätte logisch sein müssen
mit dem Schritt2, da ja schritt 3 einfach durchläuft und schritt 4 dann mit Weiterschaltung
droht erst.
Ich glaube, das mit dem Enums hast du auch noch nicht so richtig verstanden (neben dem Thema Datenfluss). Dazu nochmals der Hinweis auf die "Glühbirne" oben in der Menüleiste im Blockdiagramm.

Ein Enum ist im ersten Schritt "nur" eine Zahl, ein Integer. Allerdings ist jedem Zahlenwert (auch zur Laufzeit) ein anfangs definierter Text zugewiesen. Dies erleichtert unglaublich die Lesbarkeit des Sourcecodes. Jedem Status der State-Machine kann somit ein aussagekräftiger Namen gegeben werden (z.B. Initialisierung, Speichern, Lesen, Datenerfassung, Fehlerfall, usw., usw.).

Richtig Sinn macht der Einsatz eines Enums natürlich nur, wenn du bei jedem Auftreten immer "dasselbe" Enum mit den gleichen "Zuständen" verwendest, alleine schon, um Programmierfehler zu vermeiden.

In diesem Zusammenhang ist der Hinweis von IchSelbst auf die "Typdefinition" eines Enums zu sehen, um z.B. folgenden Fall abzufangen: Irgendwann fällt dir ein, dass du zwischen "Schritt 2" und "Schritt 3" noch einen "Fall 2 b" brauchst. Jetzt heißt es also, alle Enums anzupassen - oder halt nur die "Typdefinition".

Zum Anlegen einer Typdefinition: Wähl mal im Kette-VI im FP das Enum aus, und wähle dann im Pulldownmenü "Edit->Customize Control" aus. Es öffnet sich ein neues FP nur mit dem Enum. Hier jetzt oben Type Definition auswählen:
[attachment=32425]
und dieses Custom Control speichern, danach schließen. Dieses Custom Control verwendest du jetzt im Sourcecode an jeder Stelle, wo du genau dieses Enum brauchst.

Gruß, Jens
Ich danke dir für den Tip, aber, und jetzt bitte nicht schlagen, habe anstatt die Hand, den Pfeil genommen,
mit dem man ja nichts einstellen kann. Mit der Hand kann ich es auswählen. Wall

Das Enum abzuspeichern und als einfügeelement zu benutzen finde ich
großartig. Habe ich probiert und geht. Aber nun habe ich rote Anschlusspunkte
an den blauen Linien. Kann dies sein wegen den Orangen Linien, also DBL?
Oder liegt der Fehler wieder an mir?
Ich habe es schon versucht mit neu Verknüpfen.

Gruß moe

Edit
Zitat:Ich glaube, das mit dem Enums hast du auch noch nicht so richtig verstanden (neben dem Thema Datenfluss). Dazu nochmals der Hinweis auf die "Glühbirne" oben in der Menüleiste im Blockdiagramm.
Gebe ich dir Recht ohne zu lügen oder dir was anderes erzählen zu wollen.
Die Glühbirne nutze ich aber. Nur so sehe ich wie er zählt genau oder ähnliches.
(22.02.2011 23:22 )moe_85 schrieb: [ -> ]Das Enum abzuspeichern und als einfügeelement zu benutzen finde ich
großartig. Habe ich probiert und geht. Aber nun habe ich rote Anschlusspunkte
an den blauen Linien. Kann dies sein wegen den Orangen Linien, also DBL?
Oder liegt der Fehler wieder an mir?
DBL? Im VI aus Beitrag 15 sind kein Double drin. Also keine Ahnung, wo du jetzt überall "rote Punkte" hast. Glas2 Das ist übrigens ein Hinweis auf eine automatische Typkonversion und muss nicht unbedingt schlecht sein.
Wie wärs mal wieder mit einem VI-Upload?

Gruß, Jens
Seiten: 1 2 3 4 5 6
Referenz-URLs