16.10.2007, 10:33
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:BTW: Ich habe noch nie Feedback-Nodes verwendet (weil ich sie noch nicht gebraucht habe). Wozu sind die da? Was ich damit meine ist: Was können die, was ein Schieberegister nicht kann? Sind die wirklich nur da drin, um den Programmiergeschmack verschiedener Leute nachzukommen? Feedback-Nodes sparen mehr Platz, sind aber (zumindest für mich) undurchsichtiger. Ist das alles?
Hi,
ja das ist (fast) alles. Die wurden meines Wissens erfunden, um sich lange Leitungen zu sparen...die können ein Programm unübersichtlich machen, wenn sie quer durchs BD geführt werden müssen!
Der Unterschied zu Schieberegistern ist außerdem der, das nur der Wert aus der Iteration n-1 in der Iteration n verwendet werden kann, wohin gegen mit Schieberegistern "beliebig" viele in der Vergangenheit liegende Werte genutzt werden können - je nachdem wie weit man das Register am linken Schleifenrand aufzieht!
Ich hab die Feedback-Nodes auch noch nie gebraucht! Ich finde auch, die Funktion wird durch ein Schieberegister klarer und übersichtlicher dargestellt!
Gruss
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)
|
|
|
16.10.2007, 11:26
(Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2007 11:28 von rolfk.)
|
rolfk
LVF-Guru
Beiträge: 2.306
Registriert seit: Jun 2007
alle seit 6.0
1992
EN
2901GG
Niederlande
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:Hi,
ja das ist (fast) alles. Die wurden meines Wissens erfunden, um sich lange Leitungen zu sparen...die können ein Programm unübersichtlich machen, wenn sie quer durchs BD geführt werden müssen!
Der Unterschied zu Schieberegistern ist außerdem der, das nur der Wert aus der Iteration n-1 in der Iteration n verwendet werden kann, wohin gegen mit Schieberegistern "beliebig" viele in der Vergangenheit liegende Werte genutzt werden können - je nachdem wie weit man das Register am linken Schleifenrand aufzieht!
Ich hab die Feedback-Nodes auch noch nie gebraucht! Ich finde auch, die Funktion wird durch ein Schieberegister klarer und übersichtlicher dargestellt!
Stimmt alles soweit! Noch eine Zusatzinformation:
Seit LabVIEW 8.5 ist die Feedbacknode wirklich dasselbe wie ein Schieberegister und LabVIEW erzeugt auch den gleichen Code dafür. Von 8.0 bis 8.2.x war das anders. Da war die Feedbacknode ganz anders implementiert und hatte im Vergleich zu einem Schieberegister oftmals eine katastrophale Performance, da scheinbar keinerlei Datenkopieoptimalisierung durchgeführt wurde. Scheint ein Internship Projekt gewesen zu sein, und der Student hat leider übersehen dass die Feedbacknode im Prinzip dasselbe ist wie ein Schieberegister und hat alles nochmal implementiert, nur viel schlechter.
Für 8.5 hat sich ein LabVIEW-Programmierer dieses Gadgets angenommen und dieselben Routinen wiederverwendet die auch fürs Schieberegister verwendet werden mit allen Performancevorteilen davon.
Ich bin ebenfalls der Meinung dass die Feedback Node zwar Drahtmeter sparen kann, aber das Programm im Sinne der Datenflussprogrammierung nicht gerade verständlicher macht. Aber das ist vielleicht auch etwas Geschmacksache. Ich denke mal, dass das Schieberegisters, obwohl für effiziente Datenverarbeitung vielleicht das wichtigste Element in LabVIEW, das am Schwierigsten zu begreifende Element für LabVIEW Neulinge ist.
Rolf Kalbermatter
|
|
|
16.10.2007, 11:42
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
Hallo, Rolf,
danke für die tollen Hintergrundinfos.
Ansonsten kann ich dir nur zustimmen. Ich mag die Feedback-Node auch nicht. Hatte sie anfangs mal zu Testzwecken eingesetzt, aber logischer wird der Code dadurch nicht. Wenn man mal das mit Datenfluß und Shift-Register gerafft hat, ist das auch aus meiner Sicht wesentlich übersichtlicher und verständlicher als die Feedback-Node. Ich kann mich erinneren, irgendwo in den CLAD-Beispiel-Tests war auch mal ne Frage mit Feedback-Node, fand ich total unübersichtlich.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
16.10.2007, 12:55
(Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2007 12:57 von Lucki.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:Der Unterschied zu Schieberegistern ist außerdem der, das nur der Wert aus der Iteration n-1 in der Iteration n verwendet werden kann, wohin gegen mit Schieberegistern "beliebig" viele in der Vergangenheit liegende Werte genutzt werden können - je nachdem wie weit man das Register am linken Schleifenrand aufzieht!
Das stimmt - und auch wieder nicht. Ein aufgezogenes Schieberegister (Bild 1) ist ja nur eine platzsparende Schreibweise für mehrere verkettete Schieberegister (Bild 2), und die kann ich wiederum einzeln durch Feedbacks ersetzen Bild 3). Ob das im Einzelfall Sinn macht, ist etwas anderes, es geht hier nur um die Realisierbarkeit.
Zitat:Ich hab die Feedback-Nodes auch noch nie gebraucht!
Kein Wunder, denn "brauchen" tut sie niemand, genau so wenig wie man das Wort xxx braucht, wenn es dafür schon das Synonym yyy gibt. Es bereichert nur die Sprache - hier die deutsche, dort die von LabVIEW.
|
|
|
16.10.2007, 14:48
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:Das stimmt - und auch wieder nicht. Ein aufgezogenes Schieberegister (Bild 1) ist ja nur eine platzsparende Schreibweise für mehrere verkettete Schieberegister (Bild 2)
[attachment=36075:Rueckkop...gsknoten.png]
Ich weiß nicht...ich interpretiere das etwas anders:
Für mich ist das sowas wie ein "1D-Array von Werten", die hintereinander im Speicher liegen. Dieses Array allokiert immer genau so viele "Speicherplätze", wie ich am Schleifenrand "Abgriffe" des Schieberegisters aufziehe. Durch Schreiben in das Register am Schleifenausgang schiebt man die Werte innerhalb des allokierten Speichers nach "hinten", der letzte Wert fällt raus.
Bei deiner Variante hätte ich mehrere Schieberegister mit je einer Speicherstelle, die ich tatsächlich miteinander verkette. Ist das so? Ich glaube nicht, lasse mich aber gerne eines besseren belehren!
Ob das Speichertechnisch einen Unterschied macht, vermag ich nicht zu sagen. Was nach der Kompilierung besser "da stehen" würde, weiß ich auch nicht...
Gruss
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)
|
|
|
18.10.2007, 07:35
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:Bei deiner Variante hätte ich mehrere Schieberegister mit je einer Speicherstelle, die ich tatsächlich miteinander verkette. Ist das so? Ich glaube nicht, lasse mich aber gerne eines besseren belehren!
Weiß auch nicht mehr als Du, und ehrlich gesagt bin ich da auch nicht sonderlich wissbegierig, denn es gibt gar keinen vernünftigen Grund - und darin stimme ich sicher mit Dir überein -, etwas anderes als die Aufzieh-Variante zu verwenden. Die anderen beiden Varianten sind doch nur eine rein schöngeistige Spielerei, man könnte fast sagen sie sind hier "off topic". Bekenne mich schuldig, diesen Müll gepostet zu haben
|
|
|
18.10.2007, 07:41
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Pausieren des Elapsed Timers? Array löschen?
' schrieb:Weiß auch nicht mehr als Du, und ehrlich gesagt bin ich da auch nicht sonderlich wissbegierig, denn es gibt gar keinen vernünftigen Grund
Aber gut das wir drüber geredet haben
Nee, mal ehrlich...ich finde solche "Off-Topic-Diskussionen" ziemlich interessant...im eigentlichen Sinne sind sie nämlich doch nicht am Thema vorbei!
Gruss
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)
|
|
|
| |