Hallo Jens und andere,
(01.10.2014 18:08 )jg schrieb: (01.10.2014 17:30 )Kurt.Döner schrieb: @Jens:
An meiner Programmstrukur etc, arbeite ich ;-) Den Seitenhieb nehme ich mit Würde an.
Viele der SubVIs (u.a. die Federberechnung) sind alle bereits rausgeflogen, da ich dort die Ursache vermutete. Wenn ich nur den Zugriff auf Steuerung und Messung über eine CaseStructure deaktiviere, braucht meine Schleife 0...1ms. Das heißt nicht, dass da nicht noch einiges schöner und besser werden kann, aber ich denke, ich bin auf dem richtigen Weg.
Ich bemühe mich gerade, die FlatSequence Structure zu verstehen und das dahingehend umzubauen. Auch die Sache mit den lokalen Variablen habe ich auf dem Schirm und nehme ich in Angriff.
SubVIs kannst du ruhig verwenden und drinnen lassen. Sie machen das Blockdiagramm übersichtlicher und den Programm-Ablauf nicht wesentlich langsamer.
Aber bitte nicht alles auf Flat-Sequence umbauen, dafür gibt es
1) Datenfluss
2) State-Machines.
Ich meinte natürlich nicht grundsätzlich SubVIs (sorry für's Missverständnis!), sondern grundsätzlich Komponenten, wie zB den Datenzugriff auf die von dir genannte Datei!
Rest arbeite ich ab, danke für die Hinweise!
(01.10.2014 18:08 )jg schrieb: Eine mögliche Bremse ist in deinem neuen Screenshot jetzt zu erkennen: Der File-Access!!! Schreiben von Daten hat in einer "schnellen" Regelschleife nichts verloren, das gehört in einen parallelen Prozess, der bei Bedarf abgearbeitet wird.
Das ist mir klar, den Effekt kann ich 1:1 sehen, schalte ich ihn über die CaseStructure ein, geht die Schleifendauer etwas hoch. Das kostet mich tatsächlich 3-5ms. Aber das ist berücksichtigt!
Grundsätzlich muss ich mir noch überlegen, wie ich das mache... eigentlich brauche ich nämlich die Daten. Und letztendlich will ich den Prüfstand im schlimmsten Fall 1-2 Tage laufen lassen und hinterher auch die Messwerte noch haben. Ich hatte zunächst das innerhalb der Schleife nur in einen Array geschrieben und beim Beenden der Schleife die Werte in eine Datei geschrieben. Meint ihr, dass das schneller ist?
Als Hintergrund-Info: Ich betreibe damit einen Prüfstand, der mit 15Hz eine rein schwellende Belastung auf ein Bauteil ausüben soll. Im genannten schlimmsten Fall belaste ich das Bauteil 2.000.000 mal. Selbst wenn ich pro Belastungszyklus nur 5x 4 Messwerte aufnehme, ist das ein ziemlich großer Array. Mein Gedanke dahinter war, dass es auf lange Sicht vielleicht schneller ist, den Wert in die Datei zu schreiben, als den Riesen-Array in der Schleife zu halten.
Aber ich bin gedanklich schon darauf vorbereitet, das Konzept zu überdenken... Ich würde die Daten gerne mit Excel auswerten und dort ist bei Zeile ~1,5x10^6 Schluss... :-(
Ergo: Ja, der File-Access frisst Zeit, aaaaber... DAS ist klar ;-)