Hallo Titus,
Zitat:sollte Euch sonst noch etwas auffallen was ich verbessern könnte.... ich bin für jede Kritik dankbar.
- Wieso um Himmels willen muss man ein Array aus 3 Waveforms mittels SplitSignal in drei einzelne DDT-Drähte vereinzelen? Warum nicht einfach IndexArray verwenden und mit den Waveforms arbeiten!?
- Wieso gibt es einen Button "Boolesch"? Warum hat der keinen passenden Namen? Warum ist das ein Switch und kein Latch? Mit einem Latch könntest du dir die lokale Variable zum Zurücksetzen des Buttons sparen!
- Wieso laufen alle Schleifen endlos? Wird der Teststand NIE ausgeschaltet?
- Wieso ist das VI so unaufgeräumt? Styleguide…
- Warum haben alle subVIs so nichtssagende Icons? Styleguide…
- Warum steckt der PID in einer Case-Struktur? Den kann man doch zwischen "manuell" und "Automatik" umschalten!?
Zitat:2. Gibts außer dem Chaos im Blockdiagramm sonst noch Gründe warum es Leute gibt die sagen man solle auf lokale Variablen verzichten?
Man sollte auf lokale Variablen verzichten, weil sie RaceConditions-anfällig sind. Wie z.B. in deiner Schleife unten links: wer setzt den letzten Wert in "Steuerung pneumatischer Druck", der PID oder dein Case darunter?
Wenn man Daten von einer Schleife in eine andere schicken will, kann man prima Queues oder Notifier verwenden.
Zitat:1. Die einzige Alternative die mir dazu einfallen würde wäre ein Formelknoten...
Wie soll ein Formelknoten helfen, wenn du nach Erzeugen eines subVIs Control-Referenzen im BD hast?
Bei Queues/Notifier brauchst du auch keine Referenzen ans subVI geben, die kann man per Namen referenzieren!
Zitat:3. Ist es gut mehrere Schleifen zu nutzen, so wie Ihr es auf dem Bild seht,
Prinzipiell ist dagegen nichts einzuwenden, ABER:
Warum hast du eine PID-Regelschleife und eine Schleife, die die Werte dann per DAQmx ausgibt? Warum nicht beides in eine Schleife? Die laufen doch beide im 100ms-Takt!?
Warum wartet eine Schleife 100ms und die andere auf das nächste Vielfache von 100ms?