Hallo,
(11.05.2015 08:44 )GerdW schrieb: Hallo Björn,
Zitat:edit: Hab die untere Schleife jetzt mal durch eine zeitgesteuerte Schleife ersetzt. Das Timing scheint jetzt, bis auf minimalste Abweichungen, zu stimmen.
Wenn das Timing mit der TWL stimmt, mit einer normalen Schleife aber nicht, dann ist die CPU auf deinem cRIO anscheinend überlastet.
Wie sieht die CPU-Last auf dem cRIO aus?
Die CPU-Last verwundert mich sehr. Habe eben mal nachgeschaut und gesehen, dass sich der Real-Time Controller mit 100 % abmüht. Nachdem ich nochmal meine Real-Time VI unter einem anderen Namen gespeichert und einen neuen Build dieser Datei erstellt habe, ist die Last auf ca. 15 % gesunken. Testweise hab ich auch mal das Wait in der Hauptschleifen von 10 ms auf 5 ms verkürzt, wobei die Last nur um ca. 3 % gestiegen ist.
Da war ich mir dann sicher, irgendetwas beim Verteilen falsch gemacht zu haben. Hab mich an die Nachrichten für den zweiten CAN-Port gesetzt. Problem dabei: eine der 5-6 Nachrichten muss jede Millisekunde und die anderen eigentlich nur 10-500 ms gesendet werden. Hab die zeitgesteuerte Schleife auf 1 MHz Takt mit einem Intervall von 500 µs gestellt. Im Array mit den IDs ist einfach jede zweite ID die gleiche, wodurch die Nachrichte jede Millisekunden rausgehen sollten. Naja, auf jeden Fall treibt das die CPU-Last sofort nach oben, seltsam wird es jetzt aber, wenn ich die eben angelegte Struktur einfach aus dem VI entferne. Wenn ich den Build neu erstelle, verteile und als "Startup" festlege, liegt die Last nach Reboot immernoch bei 100%. Genau wie auch am Anfang.
Bleiben beim Verteilen des Builds noch irgendwelche Altlasten auf dem Controller?
Hast du eine Lösung für den zweiten CAN-Port? Deine von dir geposteter Vorschlag funktioniert ja im 5 ms Raster und zeitgesteuerter Schleife gut. Ich kann bei der cRIO überhaupt nicht abschätzen wo die Grenzen sind...
Grüße
Björn