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!
Ich bin ja jetzt seit ca. einem Monat mit LabVIEW am basteln und ausprobieren. Allerdings nicht vollzeit, sondern nur so nebenbei.
Da man ja bekanntlich am besten von den Besten lernt *schleimschleim* hab ich gedacht ich lade mal ein Vi hoch und warte auf Eure Kritik und Verbesserungsvorschläge.
Natürlich dürfen auch alle die sich nicht für die Besten halten kräftig mitmischen. XD
Das Vi kann also aus Euren Gedanken lesen... wahrscheinlich kann man da einiges verbessern.
Wer also Zeit und Lust hat sei herzlich eingeladen mir zu zeigen was man alles eleganter lösen kann.
Lokale Variablen sind überflüssig, die eine Sequenz kann man durch Datenfluß ersetzen, die andere durch eine Statemachine (was aber nicht unbedingt notwendig ist).
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
danke für deine Mühe IchSelbst. Deine Version sieht irgendwie überichtlicher aus als meine, wirf aber wiederum ein paar Fragen bei mir auf.
' schrieb:Lokale Variablen sind überflüssig, (...)
Gilt das speziell für mein Vi, oder sollte ich Variablen generell vermeiden. Wie gesagt hab ich hier einfach nur rumgespielt und wollte die Sachen ausprobieren. Mit den Variablen wollte ich haupsächlich zu viel Kabelsalat vermeiden (und die Variablen ausprobieren).
' schrieb:(...) die eine Sequenz kann man durch Datenfluß ersetzen, (...)
Hab ich verstanden. Danke für die bildliche Umsetzung.
' schrieb:(...) die andere durch eine Statemachine (was aber nicht unbedingt notwendig ist)
Es geht mir ja nicht darum ob es notwendig ist, sondern darum etwas zu lernen...
Sobald ich Zeit hab werd ich mich dran setzten und versuchen eine Statemachine zu realisieren.
So, eine Sache die mir noch aufgefallen ist: Die Funktion "Auf nächste ganze Zahl runden (Round to Nearest)" liefert doch eigentlich einen Integer-Wert, warum bleibt der Ausgang der Funktion dann trotzdem auf Double?
--> Du wandelst ja nach I32 um. Ich gehe mal davon aus, dass das Speicher- bzw. Ressourcenvorteile bringt.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
' schrieb:Gilt das speziell für mein Vi, oder sollte ich Variablen generell vermeiden. Wie gesagt hab ich hier einfach nur rumgespielt und wollte die Sachen ausprobieren. Mit den Variablen wollte ich haupsächlich zu viel Kabelsalat vermeiden
Wenn du eine lok. Var. einsparen kannst, weil du sie z.B. durch ein Schieberegister ersetzen kannst, dann solltest du das tun. Aber du hast schon richtig erkannt: Das sollte nicht "um jeden Preis" geschehen...und der Preis wäre, die Übersichtlichkeit durch den angesprochenen Kabelsalat zu verlieren! Du wirst jetzt gleich einen Aufschrei hören...das sind diverse User, die das für Dünnpfiff halten und sagen "bloß keine lok. Var."...aber das ist mir schnurz!
"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)
' schrieb:Deine Version sieht irgendwie überichtlicher aus als meine, wirf aber wiederum ein paar Fragen bei mir auf.
Beides habe ich so erwartet.
Zitat:Gilt das speziell für mein Vi, oder sollte ich Variablen generell vermeiden.
Generell gilt das Prinzip des Datenflusses. Wo immer es möglich ist, soll Datenfluß verwendet werden. D.h. von vorne herein kommst du schon mal gar nicht auf den Gedanken, lokale Variablen zu verwenden. Nach dem Datenfluss kommen noch andere programmtechnische Konstrukte wie z.B. SubVI mit der Funktion einer Variablen - erst dann kommen lokale Variablen.
Um zwei parallele While-Schleifen zu beenden, darf mal eine lokale Variable verwenden.
Zitat:Mit den Variablen wollte ich haupsächlich zu viel Kabelsalat vermeiden
Das alleine ist aber eine Milchmädchenrechnung. Du sparst zwar Kabelsalat dafür Kostet das Rechenzeit und RaceConditions.
Zitat:So, eine Sache die mir noch aufgefallen ist: Die Funktion "Auf nächste ganze Zahl runden (Round to Nearest)" liefert doch eigentlich einen Integer-Wert, warum bleibt der Ausgang der Funktion dann trotzdem auf Double?
Nein. Das Element liefert keinen Integer-Wert. Wäre dem so, wäre der Ausgang blau statt gelb.
Integer und Gleitkommazahl sind zuerst einmal zwei (unterschiedliche) Typen. Runden macht nichts weiter als die Nachkommastellen auf Null setzen, der Typ der Zahl bleibt erhalten.
Der "Basis-Rechen-Typ" ist double.
Zitat:Du wandelst ja nach I32 um.
Hier kommt ein Integerwert heraus.
Zitat:Ich gehe mal davon aus, dass das Speicher- bzw. Ressourcenvorteile bringt.
Nein, das spart nichts. Das einzige was gespart wird, ist der rote Konvertierungspunkt am Index-Eingang. Und der soll vermieden werden.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).