Probleme mit Zykluszeiten...
Die Hauptgründe, warum es nicht gut funktioniert, wurden ja schon genannt:
1.) Funktion Ersetzen statt Anhängen bei den Arrays verwenden
2.) Man kann/soll ein Diagramm nicht 1000mal in des Sekunde Updaten.
Das Übel beginnt hier schon bei der Datenerfassung. (Auch ich kann allerdings nicht hellsehen, wie das bei Dir genau ist. Aber so viel steht fest: Die Optimierung der Datenerfssung ist das wichtigste)
Folgendes sollte da beachtet werden:
1) Die Datenerfassungs VI, und nicht die übergeordnete Schleife, sollte den Takt bestimmen. Der Takt sollte von der Hardware der Messkarte getriggert sein, und nicht wie bei Dir, wo jeder einzelen Messwert von der übergeordneten Schleife ausgelöst wird. Wenn man das VI DAQmx Lesen verwendet, bestimmt dieses automatisch den Takt, da es immer so lange wartet, bis die gewünschte Anzahl von (hardwaregeriggerten) Werten im DAQ-Buffer erreicht ist
2) Bei einer Rate von 1000Sampes/sec ist es der helle Wahnsinn, jeden Wert einzeln aus dem DAQ-Buffer auszulesen und zu verarbeiten. Sinnvoll währe z.B eine Bufferlänge von 200 Samples. Dann würde auch das Diagramm nicht 1000 mal ind er Sekunde, sondern nur noch 5 Mal upgedatet. Natürlich muß da manches in der Organisation geändert werden.
2 kleine Hinweise:
a) Die Timer in der Eventschliefe ist überflüssig. Das Timeout ist bereits auf Unendlich eingestellt, d.h ein Schleifendurchlauf findet überhaupt nur dann statt, wenn ein Ereignis anliegt.
b) Der Stop-Taster muß spätesten beim Neustart des Pragramms mit eine lokalen Variablen auf false rückgesetzt werden.
Wenn man mich fragen würde, wie ich es machen würde, dann würde ich dies sagen:
Signalverlaufsdiagramm statt XY-Garaph verwenden. Dort ist eine Rinpuffer schon eingebaut, Du brauchst Dich nicht mit dem Sammeln und Aufbewahren aller Daten (Inserte oder Replace) im Vorfeld herumzuschinden. Außerdem hast Du nur dort die Möglichkeit Stapelplots zu verwenden (Deine Signalbezeichnungen "Hub", "Lastwert", "Kraft" sehen mir nicht so aus, als ob man sie in einem Diagramm mit einer einheitlichen Y-Achse konfortabel darstellen könnte)
|