RE: Zeitverzögerung zwischen parallelen Schleifen - ungewollt!
Hi,
ich werde aus einigen Dingen nicht so recht schlau. Du fängst viele unsinnige Nutzereingaben merkwürdig ab (z.B. in den einzelnen Haus-Schleifen), die es zumindest mir schwierig machen, das zu verstehen.
Zu Deiner Frage mit lokalen Variablen: m.E. werden für den FPGA globale Variablen aus Effizienzgründen empfohlen. Das könnte schon sein, dass das häufige Aufrufen zusammen mit den Waits sich entsprechend aufaddiert. Warum hast Du eigentlich Waits in Deinen Schleifen? Da der FPGA echt parallel arbeitet, braucht man die eigentlich nicht. direkte Nutzereingaben auf dem FP gehen auch nicht im Live-Betrieb, daher sind die m.E. unnötig. (BTW: Wie bedienst du das ganze? Wenn du direkt das FP des FPGA bedienst und nicht über das RT-Target ist die Performanz natürlich schlecht, was Deine Wartezeiten angeht...)
Folgende Vorschläge hätte ich so generell zu Deinem VI:
- Da Du eigentlich 6 mal dasselbe hast, würde ich mir überlegen, die Ein- und Ausgaben in ein Array zu packen. Damit kannst Du in einer For-Schleife autoindiziert einfach alle Häuser abarbeiten, sparst Dir Platz im BD und Schleifen. Änderungen musst Du nur an einer Stelle machen, macht's Debugging deutlich einfacher.
- Generell könnte man eine Programmstruktur überlegen, die sich an einer SPS orientiert: Einlesen aller Eingänge, Verarbeiten, Ausgabe. Da der FPGA für diese boolschen Operationen deutlich schneller als Nutzer und Temperatur ist, sollte man damit deutlich einfacher programmieren können.
- FPGAs sind m.E. nicht so die richtigen Targets für User-Interaktion, Temperaturregelung m.E. auch nicht wirklcih zeitkritisch durch die großen Zeitkonstanten. Daher vielleicht mal überlegen, ob eine andere hardware-Basis das ganze nicht einfacher macht (Rechner mit Event-Struktur, State-Machine etc.)
Grüße,
ch
|