23.02.2016, 13:56
Hallo,
ich habe hier eine ziemlich große VI, welches unter anderem 7 Netzgeräte steuert und abfragt. Dabei laufen Abfrage und Befehle in seperaten Loops.
Nun zum eigentlichen Problem. Ich habe eine feste Vorgabe, in welchem Tackt die Loops laufen sollen (10 Hz). Leider hängt die Iterationszeit davon ab, wie schnell die Hardware antwortet. Wenn diese mehrere Befehle verarbeiten muss, wird sie signifikant langsamer (95ms für 2 Befehlen - ist RS232).
1. Aktuell laufen alle Schleifen als While-Schleifen mit Timern (Warten [ms]), welche Vorteile/Nachteile hätten zeitgesteuerte Schleifen? Damit habe ich selber noch garnicht gearbeitet.
2. Ein absolut unnötiger Fehler ist, dass die Befehlsschleife teilweise Cases hat, welche 6 unterschiedliche Hardware-Sub-VIs in Reihe geschalten hat (hab ich nicht verbrochen). Nun wartet die Software natürlich immer schön auf das Ok jedes einzelnen Sub-VIs bevor es zum nächsten Springt (verbunden über Fehlerkette). Ich könnte es unelegant lösen und jedes einzelne Sub-Vi in einen Case schieben, damit die Loop ihre 100ms schafft. Alternativ könnte man doch statt einer Reihenschaltung auch eine Parallelschaltung der Fehlerkette nehmen. Es ist mir unverständlich warum dies nicht von Anfang an so umgesetzt wurde, immerhin wurde es von einem externen Experten geschrieben. Seh ich das Problem nicht? Oder kann ich ohne zögern zur Tat schreiten?
Grüße,
Stefan
ich habe hier eine ziemlich große VI, welches unter anderem 7 Netzgeräte steuert und abfragt. Dabei laufen Abfrage und Befehle in seperaten Loops.
Nun zum eigentlichen Problem. Ich habe eine feste Vorgabe, in welchem Tackt die Loops laufen sollen (10 Hz). Leider hängt die Iterationszeit davon ab, wie schnell die Hardware antwortet. Wenn diese mehrere Befehle verarbeiten muss, wird sie signifikant langsamer (95ms für 2 Befehlen - ist RS232).
1. Aktuell laufen alle Schleifen als While-Schleifen mit Timern (Warten [ms]), welche Vorteile/Nachteile hätten zeitgesteuerte Schleifen? Damit habe ich selber noch garnicht gearbeitet.
2. Ein absolut unnötiger Fehler ist, dass die Befehlsschleife teilweise Cases hat, welche 6 unterschiedliche Hardware-Sub-VIs in Reihe geschalten hat (hab ich nicht verbrochen). Nun wartet die Software natürlich immer schön auf das Ok jedes einzelnen Sub-VIs bevor es zum nächsten Springt (verbunden über Fehlerkette). Ich könnte es unelegant lösen und jedes einzelne Sub-Vi in einen Case schieben, damit die Loop ihre 100ms schafft. Alternativ könnte man doch statt einer Reihenschaltung auch eine Parallelschaltung der Fehlerkette nehmen. Es ist mir unverständlich warum dies nicht von Anfang an so umgesetzt wurde, immerhin wurde es von einem externen Experten geschrieben. Seh ich das Problem nicht? Oder kann ich ohne zögern zur Tat schreiten?
Grüße,
Stefan