hallo zusammen,
meine VI für meine Prüfanlage enthält zwei parallele Schleifen, eine schnelle Schleife (100 Hz) zur Regelung und Datenerfassung; eine langsame Schleife (5 Hz) zum Anzeige der Daten auf Graphen und zum loggen in einer Datei. Das Programm wurde von einer ähnlichen Anlage übernommen, auf der es auch funktioniert, ich habe jedoch folgendes Problem:
Die Daten werden in der schnellen Schleife erzeugt, pro Schleifendurchlauf entstehen 9 Messdaten
. Diese werden gesammelt und in ein Array geschrieben, welches von der langsamen Schleife ausgelesen und gelöscht werden sollen
. In dem Array sollten somit immer 9*20=180 Datensätze liegen (pro langsamen Schleifendurchlauf ist die schnelle Schleife 20 mal ausgeführt worden). Das Löschen funktioniert jedoch nicht, das Array läuft in die Begrenzung von 486 Daten und bleibt permanent gefüllt. Wenn die Daten mit Hilfe eines Cases und eines Schalters manuell gelöscht werden, enthält das Array 0 Elemente nur solange, bis der Schalter gelöst wird, danach ist es direkt wieder voll (im Gegensatz zum Programmstart, wo es langsam vollläuft). Die dargestellten lokalen Variablen sind die einzigen Zugriffspunkte auf das Array, einen Feedback Knoten o.ä. gibt es auch nicht, in dem die Daten zwischengespeichert werden könnten.
Hat jemand eine Idee, wo die Daten zwischengespeichert werden bzw. wieso das Löschen nicht funktioniert?
Gibt es alternative Möglichkeiten die Daten zu übertragen? Bei Queues hatte ich gelesen, dass die empfangenen Daten schneller ausgelesen werden müssen als die gesendeten Daten erzeugt werden, was bei dieser Schleifenkonstellation nicht gegeben ist.
Ich bin für jede Idee dankbar!
Schöne Pfingsten!
Tobias