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 

Schalter in bestimmten Rahmen einer Sequenz "latchen"?



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!

25.03.2010, 12:20
Beitrag #41

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Bei mir kommt genau das selbe raus, wie bei dir.

Das beruhigt mich schon malSmile

' schrieb:Erster Schritt war ja auch nur, diese eine 1 beim zweiten Start zu eliminieren.
Jetzt muss ich fragen warum wir die 1 eleminieren? Dachte, das wäre die "Bestätigung", dass wir im Unterprogramm die Case Struktur im Rahmen 0 einmalig ausführen.
Oder hat dies jetzt wieder mit dem "Nichtverstehen meinerseits" des Datenflusses zu tun?

' schrieb:Jetzt kommt der zweite Schritt. Und der lautet: Was erwartest du denn an diesen beiden Stellen? Sollen die Werte, die beim ersten Start generiert worden sind, so weitergeführt werden, dass es in der ersten Spalte mit 3,436 3,437 usw. weitergeht? Was soll in der letzten Spalte stehen: Neubeginn bei 0 oder weiter bei 1000,0?

Was also erwartest du ab dem 2. Start in Spalte eins und drei?
In Spalte eins und drei soll es wieder bei 0 beginnen. Sprich die Zeit soll nach Reset wieder hochlaufen und ebenso der Sollweg.
Beim gleichen Eingabegrößen Weg, Geschwindigkeit und Beschleunigung sollten somit beim 2. Durchlauf in etwa die gleichen Werte wie beim ersten rauskommen. So mein GedankeSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2010, 12:48
Beitrag #42

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Jetzt muss ich fragen warum wir die 1 eleminieren? Dachte, das wäre die "Bestätigung", dass wir im Unterprogramm die Case Struktur im Rahmen 0 einmalig ausführen.
Richtig. Die eliminierte Eins ist die Bestätigung, dass dieser eine Befehl nur ein einziges Mal gemacht wird.

Zitat:In Spalte eins und drei soll es wieder bei 0 beginnen. Sprich die Zeit soll nach Reset wieder hochlaufen und ebenso der Sollweg.
Das ist doch mal ein Wort.

Zitat:Beim gleichen Eingabegrößen Weg, Geschwindigkeit und Beschleunigung sollten somit beim 2. Durchlauf in etwa die gleichen Werte wie beim ersten rauskommen.
"In etwa die gleichen Werte" geht nicht. Wenn die Eingangswerte "gleich" sind, müssen auch die Ausgangswerte "gleich" sein. Es muss also heißen "beim 2. Durchlauf die gleichen Werte wie beim ersten". Sollte es anders gedacht sein, so muss es einen Unterschied geben zwischen 1. und 2. Durchlauf.

Sollen die Werte also "gleich" sein, oder nur "ungefähr gleich"?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2010, 13:27
Beitrag #43

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Richtig. Die eliminierte Eins ist die Bestätigung, dass dieser eine Befehl nur ein einziges Mal gemacht wird.
Okay, ganz verinnerlicht hab ich das noch nicht, aber das wird schon.
Hab das jetzt so verstanden, dass die "1"nicht mehrgeschrieben wird, aufgrund des Befehls im Hauptprogramm (die von dir hinzugefügte Struktur), der Rahmen ansich aber ausgeführt wird?!

' schrieb:"In etwa die gleichen Werte" geht nicht. Wenn die Eingangswerte "gleich" sind, müssen auch die Ausgangswerte "gleich" sein. Es muss also heißen "beim 2. Durchlauf die gleichen Werte wie beim ersten". Sollte es anders gedacht sein, so muss es einen Unterschied geben zwischen 1. und 2. Durchlauf.

Sollen die Werte also "gleich" sein, oder nur "ungefähr gleich"?

Nach dieser Aussage "gleich"! War mir nicht sicher ob mein delta t immer identisch ist, und somit die gleichen Werte rauskommen. Aber nach dieser Aussage sollen es die gleichen Werte bei identischen Eingangsparametern sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.03.2010, 20:56
Beitrag #44

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Oder hat dies jetzt wieder mit dem "Nichtverstehen meinerseits" des Datenflusses zu tun?

"Hilfs-Position" gilt neben den drei tatsächlichen Eingängen s, v und a ebenfalls als Eingangsparameter - nämlich für den Algorithmus im SubVI. Daher müssen die Ergebnisse des zweiten Durchlaufes nicht zwangsläufig mit denen des ersten Duchlaufes identisch sein, obwohl a, v und a identisch sind.

Beim ersten Aufruf von SubVI beim ersten START wird "Hilfs-Position" explizit auf Null gesetzt. Beim ersten Aufruf von SubVI beim zweiten START hat "Hilfs-Position" den Wert vom letzten Aufruf von SubVI beim ersten Start (das klinkt zwar komsich, ist aber so: so geht halt dein Algorithmus). Dieses "Verhalten" von Hilfs-Position bewirkt, dass die ersten Werte des zweiten Durchlaufes nicht mit den ersten Werten des ersten Durchlaufes identsich sind.

Das, was du als letztem Tabelleninhalt gepostet hast, entspricht also genau deinem Algorithmus.

Willst du dagegen haben, dass die Werte beider Durchläufe identsich sind, dann musst du bei jedem Start die Hilfs-Position resettet. Das aber wolltest du ja explizit nicht haben.

Der dritte Schritt wäre jetzt den Algorithmus zu überprüfen.

Hier noch zwei Hinweise:
Beachte, dass das Express-VI nur eine Auflösung von ca. 16ms hat. Daher sind in der ersten Spalte manchmal doppelte Werte. Ich würde ja sagen, dass das bestimmt nicht im Sinne deines Algorithmusses ist.

Die unterschiedliche Anzahl der Nuller in der Zeitspalte zu Beginn eines jeden STARTs kommt daher, weil die Programmlaufzeit nicht konstant ist. Bedenke: Windows ist kein Echtzeitsystem. Wenn du die anderen Zeitwerte ankuckst, siehst du, dass auch bei diesen Werten die Anzahl mal mehr mal weniger ist.

Hier noch meine Muster-VIs. Beachte, dass die Sequenzstruktur nicht notwendig ist.

Lv86_img


Angehängte Datei(en)
Sonstige .vi  Beispiel.vi (Größe: 25,65 KB / Downloads: 144)

Sonstige .vi  Sinus_SubVI.vi (Größe: 34,26 KB / Downloads: 168)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2010, 09:45
Beitrag #45

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:"Hilfs-Position" gilt neben den drei tatsächlichen Eingängen s, v und a ebenfalls als Eingangsparameter - nämlich für den Algorithmus im SubVI. Daher müssen die Ergebnisse des zweiten Durchlaufes nicht zwangsläufig mit denen des ersten Duchlaufes identisch sein, obwohl a, v und a identisch sind.

Beim ersten Aufruf von SubVI beim ersten START wird "Hilfs-Position" explizit auf Null gesetzt. Beim ersten Aufruf von SubVI beim zweiten START hat "Hilfs-Position" den Wert vom letzten Aufruf von SubVI beim ersten Start (das klinkt zwar komsich, ist aber so: so geht halt dein Algorithmus). Dieses "Verhalten" von Hilfs-Position bewirkt, dass die ersten Werte des zweiten Durchlaufes nicht mit den ersten Werten des ersten Durchlaufes identsich sind.

Das, was du als letztem Tabelleninhalt gepostet hast, entspricht also genau deinem Algorithmus.

Okay, das kann ich soweit alles nachvollziehen. Top1

' schrieb:Willst du dagegen haben, dass die Werte beider Durchläufe identsich sind, dann musst du bei jedem Start die Hilfs-Position resettet. Das aber wolltest du ja explizit nicht haben.

Da haben wir an einander vorbeigeredet, bzw ich hab mich nicht explizit ausgedrückt.
Das war eigentlich genau das, was ich wollte. Bin eigentlich auch davon ausgegangen, dass das der Weg zum Ziel ist.
Nur scheitern meine Fähigkeiten die Hilfs-Position wirklich bei jedem Start zu reseten, dass sie auch wirklich mit 0 in den ersten Schleifendurchlauf eingeht und nicht wie bisher bei mir erst im zweiten.
Wie du ja sagtest ist die Hilfs-Position ein Eingangsparameter für das SubVI.

Wär klasse, wenn wir da noch mal ansetzen könntenSmile

' schrieb:Hier noch zwei Hinweise:
Beachte, dass das Express-VI nur eine Auflösung von ca. 16ms hat. Daher sind in der ersten Spalte manchmal doppelte Werte. Ich würde ja sagen, dass das bestimmt nicht im Sinne deines Algorithmusses ist.

Die unterschiedliche Anzahl der Nuller in der Zeitspalte zu Beginn eines jeden STARTs kommt daher, weil die Programmlaufzeit nicht konstant ist. Bedenke: Windows ist kein Echtzeitsystem. Wenn du die anderen Zeitwerte ankuckst, siehst du, dass auch bei diesen Werten die Anzahl mal mehr mal weniger ist.

Dass mein Windows Rechner nicht Echtzeitfähig ist, ist mir bewusst. Denke, dass die entstehenden Werte (natürlich abgesehen von den Anfangswerten worum sich derzeit alles drehtWink) tolerierbar sind. Meine Regelung des Systems findet auf einer cRIO statt, wobei meine Sollposition dort "nur" als Eingangsgröße für einen Positionierschlitten dient.

Wie gesagt wichtig wär es mir die "Störgrößen", resultierend aus der nicht- bzw zu spät zurückgesetzen Hilfsgröße zu eleminieren.


Danke und Gruß Jan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.03.2010, 11:00
Beitrag #46

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Das war eigentlich genau das, was ich wollte. Bin eigentlich auch davon ausgegangen, dass das der Weg zum Ziel ist.
Zwischen diesen Zeilen lese ich, dass dein Vorgehen im Allgemeinen richtig war: Ziel erfassen, nachdenken, programmieren! Dass einer der Punkte falsch ausgeführt wurde, ist erst im zweiten Schritt relevant. Wo es heutezutage leider oft mangelt ist, dass keiner gelernt hat, dass man zuerst mal ein Ziel erfassen muss.

Zitat:Nur scheitern meine Fähigkeiten die Hilfs-Position wirklich bei jedem Start zu reseten, dass sie auch wirklich mit 0 in den ersten Schleifendurchlauf eingeht und nicht wie bisher bei mir erst im zweiten.
Guckst du meine Ausführung des SubVIs. Hier wird jetzt mit diesem einen Boolschen Eingang eigentlich nichts weiter gemacht als die Hilfsposition vor den Algorithmus zu resetten. Wenn du im MainVI das Schieberegister in der While-Schleife nicht mehr von diesem einen Zähler abhängig machst, sondern vom Button wie zuvor, dann wird bei jedem Start die Hilfsposition gelöscht.

Zitat:Wär klasse, wenn wir da noch mal ansetzen könntenSmile
Wenn tatsächlich bei jedem START immer das selbe Ergebnis (siehe Tabelle) herauskommen soll, dann musst du im MainVI lediglich eben den Zähler wieder eliminieren und das Schieberegister vor der While-Schleife mit TRUE initialisieren.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30.03.2010, 10:15
Beitrag #47

Jansen83 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 95
Registriert seit: May 2009

8.6
-
de

18055
Deutschland
Schalter in bestimmten Rahmen einer Sequenz "latchen"?
' schrieb:Guckst du meine Ausführung des SubVIs. Hier wird jetzt mit diesem einen Boolschen Eingang eigentlich nichts weiter gemacht als die Hilfsposition vor den Algorithmus zu resetten. Wenn du im MainVI das Schieberegister in der While-Schleife nicht mehr von diesem einen Zähler abhängig machst, sondern vom Button wie zuvor, dann wird bei jedem Start die Hilfsposition gelöscht.

Wenn tatsächlich bei jedem START immer das selbe Ergebnis (siehe Tabelle) herauskommen soll, dann musst du im MainVI lediglich eben den Zähler wieder eliminieren und das Schieberegister vor der While-Schleife mit TRUE initialisieren.
Ich glaub ich habs! Ich kann dir gar nicht genug danken. Vielen Dank, du hast mir einiges an weiteren Kopfschmerzen erspart. SmileSmile

' schrieb:Zwischen diesen Zeilen lese ich, dass dein Vorgehen im Allgemeinen richtig war: Ziel erfassen, nachdenken, programmieren! Dass einer der Punkte falsch ausgeführt wurde, ist erst im zweiten Schritt relevant. Wo es heutezutage leider oft mangelt ist, dass keiner gelernt hat, dass man zuerst mal ein Ziel erfassen muss.
Dank auch dafür. Aber ich denke, dass es Grundlage ist, möchte ich denn in absehbarer Zeit wirklich Ingenieur werden.Smile

Werde noch ein wenig mit meinem Programm herumexperimentieren, aber ich hoffe nicht, dass weitere tiefgreifende Probleme auftauchen, die ich nicht selber lösen kann.

Riesen Dank und Gruß
JAN
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Rahmen oder Kasten eines XY-Graphen ändern bachatero18 2 3.840 04.11.2020 20:22
Letzter Beitrag: bachatero18
  Sequenz wird zweimal durchlaufen mprocket 7 5.623 21.01.2018 18:59
Letzter Beitrag: mprocket
  Schalter an/aus Tobolf 1 3.954 27.01.2017 11:00
Letzter Beitrag: GerdW
  Eingabe String nach einen bestimmten Format bearbeiten galilio 18 11.530 27.01.2017 10:58
Letzter Beitrag: jg
  Sequenz zur Dokumentation, Einfluss auf das Timing TSC 7 5.145 19.10.2016 07:08
Letzter Beitrag: TSC
  Auf Wunsch zusätzliche Sequenz erstellen Rayid 7 5.901 29.09.2016 11:50
Letzter Beitrag: GerdW

Gehe zu: