04.10.2019, 10:19
Hallo Robert,
Aber berechtigte Kritik solltest du schon annehmen können!
Zum VI:
[attachment=60397]
Der Ausschnitt zeigt typische Anfängerfehler, die vom fehlenden "THINK DATAFLOW" zeugen!
Warum musst du lokale Variablen verwenden, wenn die Terminals der entsprechenden Indicators ungenutzt im Blockdiagramm rumliegen???
Tipp: IndexArray kann von allein den Index hochzählen und startet dabei automatisch mit Null. Da brauchst du in deinem Fall keine Konstanten anschließen…
[attachment=60398]
Andere Fehler:
Warum heißen die Anschlüsse "error out", wenn dort eindeutig ein Errorwire hineingeht?
Warum iterieren die Schleifen genau einmal? Dann sind sie überflüssig!
Warum verwendest du nicht den Errorwire, um die Funktionen zu sequenzieren? (THINK DATAFLOW!)
Warum verwendest du stattdessen den Ausgang des Iterators der ersten/oberen Schleife, um damit die zweite Schleife zu sequenzieren? (Das scheinst du mit allen Schleifen darunter auch zu machen…)
Verwende eine Statemachine mit klar definierten States (z.B. das, was in den einzelnen Schleifen steckt)! Rufe die States in der richtigen Reihenfolge auf: du brauchst exakt eine While-Loop mit einer Case-Struktur drin!
Alle lokalen Variablen in den "States"/Schleifen können dann direkt durch die Terminals ersetzt werden…
[attachment=60399]
Dieser Teil mit den boolschen Verknüpfungen wird dann der Teil der Statemachine, in der die Logik steckt, mit der der nächste State ausgewählt wird:
Bitte nutze die ganzen Einsteigerkurse, die NI so anbietet…
Allgemeines, auch zu Statemachines:
- Daten sinnvoll in Clustern bündeln, z.B. diese ganzen Referenzen
- Cluster (und Enums) immer typdefinieren!
- Daten speichert man in Drähten und Schieberegistern!
- Erstelle sinnvolle subVIs
- Bündele alles in einem LabVIEW-Projekt und einem Projektordner auf der Festplatte…
Zitat:Mein vi, RSM-New-01 hab ich nun mal drangehängt. Bitte spottet nicht all zu viel über meine Fehler ;-)Hier wird nicht (oder nur sehr selten) "gespottet".
Aber berechtigte Kritik solltest du schon annehmen können!
Zum VI:
[attachment=60397]
Der Ausschnitt zeigt typische Anfängerfehler, die vom fehlenden "THINK DATAFLOW" zeugen!
Warum musst du lokale Variablen verwenden, wenn die Terminals der entsprechenden Indicators ungenutzt im Blockdiagramm rumliegen???
Tipp: IndexArray kann von allein den Index hochzählen und startet dabei automatisch mit Null. Da brauchst du in deinem Fall keine Konstanten anschließen…
[attachment=60398]
Andere Fehler:
Warum heißen die Anschlüsse "error out", wenn dort eindeutig ein Errorwire hineingeht?
Warum iterieren die Schleifen genau einmal? Dann sind sie überflüssig!
Warum verwendest du nicht den Errorwire, um die Funktionen zu sequenzieren? (THINK DATAFLOW!)
Warum verwendest du stattdessen den Ausgang des Iterators der ersten/oberen Schleife, um damit die zweite Schleife zu sequenzieren? (Das scheinst du mit allen Schleifen darunter auch zu machen…)
Verwende eine Statemachine mit klar definierten States (z.B. das, was in den einzelnen Schleifen steckt)! Rufe die States in der richtigen Reihenfolge auf: du brauchst exakt eine While-Loop mit einer Case-Struktur drin!
Alle lokalen Variablen in den "States"/Schleifen können dann direkt durch die Terminals ersetzt werden…
[attachment=60399]
Dieser Teil mit den boolschen Verknüpfungen wird dann der Teil der Statemachine, in der die Logik steckt, mit der der nächste State ausgewählt wird:
Code:
IF stateX AND/OR BedingungY THEN
stateY
ELSE
stateZ
ENDIF
Bitte nutze die ganzen Einsteigerkurse, die NI so anbietet…
Allgemeines, auch zu Statemachines:
- Daten sinnvoll in Clustern bündeln, z.B. diese ganzen Referenzen
- Cluster (und Enums) immer typdefinieren!
- Daten speichert man in Drähten und Schieberegistern!
- Erstelle sinnvolle subVIs
- Bündele alles in einem LabVIEW-Projekt und einem Projektordner auf der Festplatte…