[attachment=61179:SUB_Date...relation.vi]Och menno - LV ist doch echt ein gemeines Programm. Den ganzen Tag habe ich das VI umgeschrieben und mir wirklich Gedanken über den Datenfluss gemacht und nun klemmt es noch mehr
. Das ursprüngliche "all in one" VI wo alles in einer einzigen while steckte hat irgendwas zwischen 5 und 25 % CPU gezogen. Dieses hier zieht fast durchgehend 100% und insbesondere die Korrelationsschleife braucht länger als 1000 ms. Interessanterweise braucht sie immer irgendwas um 1000 oder 2000 aber nie z.B. 1500 ms. Wenn man etwas wartet und nicht am Rechner arbeitet rattert sie mit Durchlaufzeiten von 5-10 ms die Queue runter, um dann wieder nachzuhängen
. Könnt ihr mir sagen, was ich hier falsch mache? Sind Queues generell Systembremsen? In meinen steckt ja noch nicht mal viel drin - nen paar Arrays zu vielleicht 500 Werten ist doch eigentlich nix...?!
Vorgesehener Ablauf des Programms:
-1,2,3 (s.o.) laufen autark und werden ggf. über lokale Variablen beeinflusst ebenso wie jetzt auch der Thermostat (6)
-4 und 5 laufen in Queues und werden unabhängig voneinander skaliert
-Beide skalierten Verläufe laufen in eine Schleife, die von einem davon die Werte puffert, glättet und ggf. differenziert (warum waren hier eigentlich die ersten 3 differenzierten Werte immer "falsch"?! -> daher der workaround mit Länge +5 und hinten die ersten 5 vom array wieder löschen)
-Das Queue dieser Aufarbeitung läuft in den Kreuzkorrelator
...Und eigentlich nur letzterer macht Zicken. Wie gesagt habe ich Schon Werte deutlich unter 20 gesehen (was auch normal sein sollte) und sonst nur Werte zwischen 1850 und 2150 und ab und zu mal 900-1100. Das spricht doch irgendwie dafür, dass die Schleife nen Timing bekommt aber mehr als die Queue hängt doch nicht dran. Und solange diese Werte hat sollte die Korrelation doch schnell durchlaufen (was sie ja auch ab und zu mal tut...)?!
Diesmal etwas mehr Anhang - vielleicht steckt der Fehler ja im sub-VI?? Ist aber rel. unwahrscheinlich, da die "all in one" Version fast identische sub-VIs genutzt hat.
(Kompatibel gespeichert aus 2010)
PS: Die KPCI dauert mal +10, mal -10 - Sie ist nicht die Ursache, wie man an der leeren Queue sieht.
PPS: Kurzer Trockentest: Simulierter Verlauf mit 10.000 Werten läuft etwa 4-5 Mal pro sek durch den Korrelator incl. Gererierung des Verlaufes, Puffer und co. Hier sind es i.d.R. nur 270 oder ~1500 Werte...