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!
kann mir jemand ein VI posten, aus dem ich die Syntax für die Programmierung im Formelknoten ablesen/abspicken/lernen kann? Vor Allem eine While-Schleife wäre mir wichtig. Die Hilfe finde ich zu dem Thema nicht sehr gelungen.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Programmieren im Formelknoten
Hallo,
das hier ist ein Beispiel aus dem LabVIEW-Example-Finder. Was genau hinter der Berechnung steckt blicke ich nicht. Jedenfalls wird das Volumen berechnet.
Wenn Du (oder auch jemand anders) den Code genau verstanden hast (hat), dann kannst Du (er) ihn gerne posten. Mir ist die Verschachtelung der Schleifen und die Sytax (While(0), While(1)) suspekt. Irgendwie werden aber wohl die Schleifen so lange erhöht, bis der Eingangswert erreicht ist, aber wo dann multipliziert wird, weiß ich nicht.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
das hier ist ein Beispiel aus dem LabVIEW-Example-Finder. Was genau hinter der Berechnung steckt blicke ich nicht. Jedenfalls wird das Volumen berechnet.
Wenn Du (oder auch jemand anders) den Code genau verstanden hast (hat), dann kannst Du (er) ihn gerne posten. Mir ist die Verschachtelung der Schleifen und die Sytax (While(0), While(1)) suspekt. Irgendwie werden aber wohl die Schleifen so lange erhöht, bis der Eingangswert erreicht ist, aber wo dann multipliziert wird, weiß ich nicht.
Der Formelknoten in neueren LabVIEW Versionen folgt im Wesentlichen der C Syntax. Ganz früher war das wesentlich eingeschränkter. Viele Dinge von C können auch im Formelknoten mit ein paar signifikanten Einschränkungen wie etwa keine Pointer, die aber auch die höhere Schule von C sind.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Programmieren im Formelknoten
Ich weiß, das ist jetzt , aber könntest Du kurz erklären was da in dem Formelknoten (in meinem Bsp. von Beitrag 2) vor sich geht?
Mit C habe ich schon ewig nichts mehr zu tun gehabt (und damals nur Grundlagen).
Rein interessehalber würde mich aber die Programmierung in dem Knoten doch interessieren.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Ich weiß, das ist jetzt , aber könntest Du kurz erklären was da in dem Formelknoten (in meinem Bsp. von Beitrag 2) vor sich geht?
Mit C habe ich schon ewig nichts mehr zu tun gehabt (und damals nur Grundlagen).
Rein interessehalber würde mich aber die Programmierung in dem Knoten doch interessieren.
Gruß Markus
Im wesentlichen sind es drei ineinander verschachtelte Schlaufen um das Volumen eines"Kubuses mit den Dimensionen x, y, und z zu berechnen. Im Prinzip macht diese Routine nichts anderes dann:
vol = 0;
for (i=0; i < x; i)
{
for (j=0; j < y; j)
{
for (k=0; k < z; k)
{
vol = vol + 1;
}
}
}
und noch einfacher:
vol = x * y * z;
while (1) ist eigentlich nichts anderes als "solange bis 1 nicht mehr 1 ist", was natürlich nie passiert,
aber mit dem break; wird die Schlaufe irgendwann doch abgebrochen.
Warum so kompliziert dann?
So wie das aussieht kommt das direkt aus dem Testframework von LabVIEW. Jede Nacht wird auf mehreren Servern automatisch eine neue Version von LabVIEW kompiliert aus den letzten Quellcodebestandteilen aus dem Quellcodecontrolsystem. Dieses LabVIEW wird dann auf eine umfangreiche Bibliothek von VIs losgelassen, die mittels eines Testframworks geladen und ausgeführt werden. Alle diese VIs geben eine Boolean zurück der Success oder Failure angibt. Alle Fehler werden gelogt und am morgen erhalten die Entwickler eine Liste von Fehlern die aufgetreten sind. Dann können sie gleich schauen, was sie am Tag zuvor vermurkst haben.
Dieses Beispiel verwendet nicht so oft benützte Schreib- und Benützungsweisenvon Schlaufen. Normalerweise werden die Abbruchbedingungen von Schlaufen in der Schalufenbedingung festgelegt, aber man kann eine Schlaufe auch voreitig mit einem break; abbrechen.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Programmieren im Formelknoten
Danke für die Info. Das muss ich mir jetzt mal in Ruhe anschauen.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
27.12.2007, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2008 14:17 von jg.)
' schrieb:Warum so kompliziert dann?
So wie das aussieht kommt das direkt aus dem Testframework von LabVIEW.
Das ist die offensichtliche Erklärung, warum diese ganz einfache Sache auf maximal umständliche Art programmiert wird.
Habe das mal in LV umgesetzt. Wenn es nur darum ginge, die Einheits-Volumenwürfel auszuzählen, dann würde man es wie im Bild ganz unten mit 3 einfachen for-Schleifen machen. Die verschachtelten Schleifen darüber sollen den Formelknoten implementieren. Sie bewirken genau dasselbe, mit dem Unterschied, daß die Abbruchbedingung in jeder Schleife anders und immer möglichst kompliziert formuliert sind.
29.12.2007, 11:18 (Dieser Beitrag wurde zuletzt bearbeitet: 29.12.2007 11:19 von rolfk.)
' schrieb:Das ist die offensichtliche Erklärung, warum diese ganz einfache Sache auf maximal umständliche Art programmiert wird.
[attachment=37495:Calculate.png]
Habe das mal in LV umgesetzt. Wenn es nur darum ginge, die Einheits-Volumenwürfel auszuzählen, dann würde man es wie im Bild ganz unten mit 3 einfachen for-Schleifen machen. Die verschachtelten Schleifen darüber sollen den Formelknoten implementieren. Sie bewirken genau dasselbe, mit dem Unterschied, daß die Abbruchbedingung in jeder Schleife anders und immer möglichst kompliziert formuliert sind.
Es ist nicht so sehr die Abbruchbedingung die hier wohl getested werden soll. Eher der Umstand das die richtigen Schleifen mit break verlassen werden (immer nur die jeweils Innerste), sowie die etwas ungebräuchliche Schreibweise der FOR Schlaufe, da der Bedingungsoperator leer ist.
Also einfach ein Test dass der eingebaute C Parser korrekten Code für diese Dinge produziert.
In LV2012 konnte ich noch im Formelknoten einfach
y=y+1;
programmieren, so wie in C, PASCA VC, VB. u.s.w
in LV2020 funktioniert das nicht mehr!!!
Wer weiß warum???
warum sollte ein "y=y+1;" in LabVIEW 2020 nicht mehr funktionieren?
(ziemlich unvorstellbar)
Wenn du das so in den Raum stellst, dann schiebe bitte noch ein Beispiel hinterher.