Sehr geehrte Labview Community,
bin noch ein ziemlicher Frischling und arbeite zur Zeit an einer automatischen Steuerung für einen DC Generator. Hierfür habe ich eine Messbox mit digitalen und analogen Input/Output Möglichkeiten. Ein gewisses Grundgerüst des Steuerprogramms steht bereits.
Hier bin ich mir allerdings sehr unsicher, wie ich die Funktionalitäten auf VIs aufteile. Ich möchte ja eine maximale Performance erreichen mit einer maximalen Samplerate von Messwerten, die ich verarbeite.
Zu meiner DAQ gehören 3 Analoge Spannungssignale.
Der Generator wird mit einem analogen Outputsignal angesteuert. Dieses Ausgangssignal wird in abwechselnden VIs durch einen Regelkreis berechnet, in einer globalen Variable gespeichert und an die Messbox gesendet.
In diesem Regelkreis der AVG(Durchschnitts)/RMS(Leistung/Peak(Spitze)-Wert eines analogen Inputsignals eine begrenzende Rolle.
In meiner Anzeige sollen die 3 analogen Inputsignale sowie mein analoges Outputsignal (Steuersignal) in einem Wafeform Chart dargestellt werden.
- Ein Teil der Messwerte muss verrechnet werden (RMS/AVG/Peak-Werte über ein bestimmtes Zeitfenster bestimmen.)
- Meine Messwerte müssen geprüft werden, ob nicht verschiedene Grenzwerte überschritten wurden, woraufhin ein Alarm ausgelöst werden soll und die Maschine erst einmal stillgelegt wird.
- Die Messwerte inkl. AO-Signal sollen im selben Chart im Anzeige-VI FP dargestellt werden.
- Die Messwerte inkl. AO-Signal müssen gespeichert werden.
Das Anzeige-VI FP möchte ich durch global gespeicherte Referenzen auf die FP-Elemente und Propertynodes(Value) lösen.
Das bedeutet aber auch, dass ich im DAQ-VI die DAQ-Daten um mein AO-Signal erweitern muss bevor ich dem Propertynode(Value) diese Daten übergebe.
Wohin mit der RMS/AVG/Peak-Wertgeschichte? Wenn ich diese ins DAQ-VI packe, sorgt das für eine geringere Updaterate, nehme ich an.
- DAQ.vi Kontinuierliche DAQ n Channel mit m Samples/Update; Erweiterung der Waveform-Daten um das AO-Signal; Berechnung der AVG/RMS/Peak-Werte; Speichern aller Werte in globaler Variable
- Anzeige.vi Wafeformchart zur Anzeige der DAQ und des AO-Signals sowie Skalenanzeige der AVG/RMS/Peak-Werte
- Global_Stats.vi Hier wird der jeweils aktuellste Wert aller digitalen und analogen Messwerte gespeichert.
Andere Optionen wären Shared Variables für den Datentransfer vom DAQ-VI zum Anzeige-VI...
Soll ich diese Berechnung von AVG/RMS/Peak-Werten über ein bestimmtes Zeitfenster in seperate VIs packen, welche parallel funktionieren und auf die geshareten Wafeform-Daten zugreifen? Hier müsste ich mich erst reinlesen und einiges ausprobieren. Ist das sinnvoll?
Meine Regelkreis-VIs (es sind mehrere) greifen auf eines der AI-Signale zu sowie die AVG/RMS/Peak-Werte und bestimmt das neue AO-Signal. Ist es sinnvoll, wenn dieser Regelkreis nur über globale Variablen auf den Wert des einen AI-Signals sowie die berechneten AVG/RMS/Peak-Werte zugreift? Oder geht das schneller/direkter?
Zeitkritisch ist die eigentliche Steuerung nicht, nur dass der gemessene Peakwert nicht länger als 10ms über einem Grenzwert liegen darf.
Vielen Dank schonmal, morgen wird der Beitrag noch ergänzt.
Grüße
Masse
PS: Anmerkung zu den Kommentaren in den angehängten VIs: mit "SCR" ist das AO-Signal gemeint
PPS: Aktuell programmiere ich mit simulierten Devices in MAX. (AI-Gerät, Spannung)