Okay, dankeschön!
Die Typidentischen Referenzen funktionieren nach der Methode, die du genannt hast. (Roter Punkt ist weg und Value ist nicht mehr Variable)
(18.11.2015 17:02 )IchSelbst schrieb: Zitat:Von welcher Zyklusdauer redest du hier?
Viele meiner Programm sind "Dauerlaufprogramme". Da wird ein Prüfling ständig mit der selben Betätigung beaufschlagt. Eine Betätigung (was immer das auch ist) dauert z.B. 30 Sekunden. Von diesen Betätigungen werden dann z.B. 2 Mio gemacht. Die Zyklusdauer ist dann 30 Sekunden. Zu Beginn eines Zyklusses werden diverse Daten im Sample-VI resettet (z.B. Länge Array). Am Ende des Zyklusses wird das Array aus dem Melder gelesen ...
Zitat:Ich habe einmal eine Updaterate meiner DAQmx, wie viele Datenpakete mit jeweils so und so vielen Samples ich erhalte. Danach richtet sich die Zyklusdauer der Whileschleife im Sample-VI.
Eigentlich gefällt mir das nicht. Uneigentlich kannst du das aber auch so machen.
Ich selbst bevorzuge eine konstante, also Abtastraten-unabhängige Schleifendauer, z.B. 50ms. Innerhalb dieser Zeit werden sich einige Samples ansammeln. Wie viele es sind, ist dem Algorithmus eigentlich egal - dafür ist er ja ein Anzahl-unabhängiger Algorith
Mhhh...
Ich soll sozusagen eine recht lange Zyklusdauer entwerfen, in welcher mein Sample-VI in regelmäßigen Abständen diverse Daten resettet werden.
Läuft das dann folgendermaßen ab?
Ich hab eine äußere Whileschleife mit dieser fixen relativ langen Zyklusdauer in welcher die Initialisierung verschiedener Daten vorgenommen wird und eine innere Whileschleife in welcher die Samples entnommen werden sowie die Zeit seit dem letzten mal Resetten gemessen wird. Ein Reset ist dann das Beenden der inneren Schleife um somit diverse Daten zu Reinitialisieren.
Mein TestAnzeige-VI flusht in regelmäßigen Abständen (Anzeigezyklusdauer) die Queue in welcher die (im Sample-VI um zwei weitere Signale erweiterten) Messwerte gespeichert sind. Die Queue Referenz sowie diverse Parameter habe ich in einer FGV gespeichert.
Im TestAnzeige-VI lassen sich die Zykluszeit der Anzeige sowie die Updaterate und die Samplerate (Samples/Update) für das Sample-VI erstellen. Bei Start des TestAnzeige-VI öffnet das Sample-VI.
Das Sample-VI im aktuellen Zustand hat zwei Indicator, einmal für die Anzahl der Iterationen der Whileschleife und einmal für die Zeit (in ms) zwischen zwei Iterationen. Diese variiert sehr stark und hängt sehr davon ab, wie viele Samples/Update ich erfasse. Woran liegt das? Ich blick da noch nicht ganz durch. Meine eingestellte Updaterate wird ja gar nicht eingehalten... mh.
Zitat:Zitat:Die berechneten AVG/Peak/RMS-Werte werden in einer Eventstructure bei einem Valuechange mit ihrem Grenzwert verglichen, um zu testen, ob ein Alarm ausgelsöt werden muss und die Maschine gestoppt.
Wie, was, wo: Eventstruktur? Im Sample-VI befindet sich keine Eventstruktur!
Ansonsten klingt das an sich ja richtig - naja, ist es ja auch. Aber:
Woher weis die Eventstructur, dass ein ValueChange eingetreten ist? Den ValueChange würde ich im Sample-VI feststellen und dann, z.B. mit einer Melder oder einer Queue oder im Sample-VI selbst speziell zu dem Zeitpunkt, an dem der Notfall eingetreten ist, reagieren.
Genau, die Evenstructure wollte ich ins Sample-VI packen. Die Reaktion erfolgt direkt in dieser Eventstructure. Ist allerdings noch nicht programmiert. Hier kommen auch noch weitere Prüfalgorithmen hinein. Mein SampleVI soll nicht nur 3 AI-Signale sondern auch 8 Digitale DI-Signale erfassen. Für ein paar dieser Daten wird es auch verschiedene Prüfalgorithmen geben.
Die Prüfalgorithmen mag ich möglichst schnell nach der Datenerfassung abwickeln. Das Anzeige-VI hat eine zu lange Zyklusdauer, deshalb dachte ich wäre es sinnvoll alle Prüfalgorithmen direkt ins Sample-VI zu packen.
Nachtrag:
Weiß nicht genau, ob Test-Global.vi noch nötig ist, wollt alles wichtige ins FGV packen, bin noch nicht ganz fertig. Und inwiefern diese Typedefinitionen (Control_blabla.vi) nötig sind.
Bin mal weitermachen.